Enumerate Example — Systematic Dopant Screening ================================================ Purpose ------- Screen multiple dopants and concentrations automatically. Use this mode when: - You want combinatorial exploration. - You define allowed dopants and doping levels. - You limit the maximum number of dopants per structure. Note ---- The current implementation supports **up to 3 dopants per structure** via: :: max_dopants_total = 3 Run --- :: dopingflow run-all -c input.toml Example input.toml ------------------ :: [structure] outdir = "random_structures" [references] reference_mode = "metal" host = "SnO2" host_dir = "reference_structures/" supercell = [ 5, 2, 1] metals_ref = [ "Ti","Zr","Nb","Sb","Sn"] oxides_dir = "reference_structures/" fmax = 0.02 skip_if_done = false [generate] poscar_order = ["Ti","Zr","Nb","Sb","Sn","O"] seed_base = 12345 clean_outdir = true [doping] mode = "enumerate" host_species = "Sn" dopants = ["Sb", "Ti", "Zr", "Nb"] must_include = ["Sb"] max_dopants_total = 3 allowed_totals = [5.0, 10.0, 15.0] levels = [5.0, 10.0, 15.0] # Other sections identical to previous example Result ------ The workflow automatically generates composition folders like: :: random_structures/ Sb5/ Sb5_Ti5/ Sb5_Ti5_Zr5/ Sb10_Nb5/ ... Each is processed independently through all stages.