Multiple Oxide References and Relative Energies =============================================== This example evaluates Sb-doped SnO2 against three separate Sb oxide references. The workflow keeps **one candidate per row** and writes a separate column for all energies calculated from each oxide reference. Configuration ------------- Add every required binary oxide to the existing ``[references].oxides_ref`` list:: [references] reference_mode = "oxide" host = "SnO2" host_dir = "reference_structures/" supercell = [2, 2, 5] oxides_dir = "reference_structures/" oxides_ref = ["SbO2", "Sb2O3", "Sb2O5"] gas_ref = "O2" gas_dir = "reference_structures/" [formation] skip_if_done = false normalize = "per_dopant" relative_enabled = true endpoint_x = "auto" Both relative-energy parameters remain directly inside the existing ``[formation]`` section. No nested configuration section is required. ``"auto"`` identifies the pure oxide endmember and is recorded as ``endpoint_x = 1.0`` in the output metadata. Place one POSCAR file for every oxide in ``reference_structures/``: :: reference_structures/SbO2.POSCAR reference_structures/Sb2O3.POSCAR reference_structures/Sb2O5.POSCAR Then rebuild the cached reference energies before calculating formation energies:: dopingflow refs-build -c input.toml dopingflow formation -c input.toml dopingflow collect -c input.toml Wide output format ------------------ For one Sb-doped candidate, the output remains one row. The oxide choice is encoded in the column suffix:: candidate,x_dopant,E_form_eV_total__SbO2,E_form_eV_total__Sb2O3,E_form_eV_total__Sb2O5,... candidate_000,0.05,...,...,...,... The following values are written for every oxide reference: - ``E_form_eV_total__`` - ``E_form_eV_per_atom__`` - ``E_form_eV_per_cation__`` - ``E_form_eV_per_dopant__`` - ``E_mix_eV_total__`` - ``E_mix_eV_per_atom__`` - ``E_mix_eV_per_cation__`` - ``E_mix_eV_per_dopant__`` - ``E_form_rel_eV_per_cation__`` - ``E_mix_rel_eV_per_cation__`` Relative-energy definition -------------------------- The oxide chemical potentials and atom-balanced mixing reaction already place each candidate on the host-oxide/dopant-oxide tie-line reference. Applying a second database-derived endpoint subtraction would double-correct the energy. Therefore the relative per-cation columns preserve the corresponding oxide-referenced formation and mixing values. The pure oxide endpoint energy, the composition-weighted co-doping correction, and the reference identity are written as separate provenance columns. Collection and sequential merging preserve these formation-stage values. The legacy database endpoint calculation is used only when reading an older result database that has absolute reference-specific columns but no relative columns. Co-doping --------- For co-doping, dopingflow evaluates all valid combinations of the listed binary oxide references. For example, Sb2O3 together with TiO2 is written as one suffix:: E_mix_eV_per_cation__Sb2O3__TiO2 The dopant order in these combined suffixes is alphabetical and deterministic.