ElectrodeInsertionMaker

class atomate2.vasp.flows.electrode.ElectrodeInsertionMaker(relax_maker, static_maker, bulk_relax_maker=None, name='ion insertion', structure_matcher=<factory>)[source]

Bases: ElectrodeInsertionMaker

Attempt ion insertion into a structure.

The basic unit for cation insertion is:
[get_stable_inserted_structure]:

(static) -> (chgcar analysis) -> N x (relax) -> (return best structure)

The workflow is:

[relax structure] [get_stable_inserted_structure] [get_stable_inserted_structure] [get_stable_inserted_structure] … until the insertion is no longer topotactic.

If you use this workflow please cite the following paper:

Shen, J.-X., Horton, M., & Persson, K. A. (2020). A charge-density-based general cation insertion algorithm for generating new Li-ion cathode materials. npj Computational Materials, 6(161), 1—7. doi: 10.1038/s41524-020-00422-3

Variables:
  • name (str) – The name of the flow created by this maker.

  • relax_maker (RelaxMaker) – A maker to perform relaxation calculations.

  • bulk_relax_maker (Maker) – A separate maker to perform the first bulk relaxation calculation. If None, the relax_maker will be used.

  • static_maker (Maker) – A maker to perform static calculations.

  • structure_matcher (StructureMatcher) – The structure matcher to use to determine if additional insertion is needed.

Parameters:
  • relax_maker (Maker)

  • static_maker (Maker)

  • bulk_relax_maker (Maker | None)

  • name (str)

  • structure_matcher (StructureMatcher)

get_charge_density(prev_dir)[source]

Get the charge density of a structure.

Parameters:

prev_dir (Path | str) – The previous directory where the static calculation was performed.

Return type:

The charge density.

update_static_maker()[source]

Ensure that the static maker will store the desired data.

Return type:

None