2121 from pymatgen .analysis .structure_matcher import StructureMatcher
2222 from pymatgen .core import Structure
2323 from pymatgen .entries .computed_entries import ComputedEntry
24- from pymatgen .io .vasp .outputs import VolumetricData
2524
2625
2726logger = logging .getLogger (__name__ )
@@ -92,9 +91,9 @@ def get_stable_inserted_results(
9291 add_name = f"{ n_inserted } "
9392
9493 static_job = static_maker .make (structure = structure )
95- chg_job = get_charge_density_job (static_job .output .dir_name , get_charge_density )
9694 insertion_job = get_inserted_structures (
97- chg_job .output ,
95+ static_job .output .dir_name ,
96+ get_charge_density ,
9897 inserted_species = inserted_element ,
9998 insertions_per_step = insertions_per_step ,
10099 )
@@ -120,13 +119,12 @@ def get_stable_inserted_results(
120119 n_inserted = n_inserted + 1 ,
121120 )
122121
123- for job_ in [static_job , chg_job , insertion_job , min_en_job , relax_jobs , next_step ]:
122+ for job_ in [static_job , insertion_job , min_en_job , relax_jobs , next_step ]:
124123 job_ .append_name (f" { add_name } " )
125124 combine_job = get_computed_entries (next_step .output , min_en_job .output )
126125 replace_flow = Flow (
127126 jobs = [
128127 static_job ,
129- chg_job ,
130128 insertion_job ,
131129 relax_jobs ,
132130 min_en_job ,
@@ -204,7 +202,8 @@ def get_insertion_electrode_doc(
204202
205203@job
206204def get_inserted_structures (
207- chg : VolumetricData ,
205+ prev_dir : Path | str ,
206+ get_charge_density : Callable ,
208207 inserted_species : ElementLike ,
209208 insertions_per_step : int = 4 ,
210209 charge_insertion_generator : ChargeInterstitialGenerator | None = None ,
@@ -213,7 +212,8 @@ def get_inserted_structures(
213212
214213 Parameters
215214 ----------
216- chg: The charge density.
215+ prev_dir: The previous directory where the static calculation was performed.
216+ get_charge_density: A function to get the charge density from a task document.
217217 inserted_species: The species to insert.
218218 insertions_per_step: The maximum number of ion insertion sites to attempt.
219219 charge_insertion_generator: The charge insertion generator to use,
@@ -226,6 +226,7 @@ def get_inserted_structures(
226226 """
227227 if charge_insertion_generator is None :
228228 charge_insertion_generator = ChargeInterstitialGenerator ()
229+ chg = get_charge_density (prev_dir )
229230 gen = charge_insertion_generator .generate (chg , insert_species = [inserted_species ])
230231 inserted_structures = [defect .defect_structure for defect in gen ]
231232 return inserted_structures [:insertions_per_step ]
@@ -297,22 +298,3 @@ def get_min_energy_summary(
297298 return None
298299
299300 return min (topotactic_summaries , key = lambda x : x .entry .energy_per_atom )
300-
301-
302- @job
303- def get_charge_density_job (
304- prev_dir : Path | str ,
305- get_charge_density : Callable ,
306- ) -> VolumetricData :
307- """Get the charge density from a task document.
308-
309- Parameters
310- ----------
311- prev_dir: The previous directory where the static calculation was performed.
312- get_charge_density: A function to get the charge density from a task document.
313-
314- Returns
315- -------
316- The charge density.
317- """
318- return get_charge_density (prev_dir )
0 commit comments