spawn_defect_q_jobs#

atomate2.common.jobs.defect.spawn_defect_q_jobs(defect, relax_maker, relaxed_sc_lattice, sc_mat=None, defect_index='', add_info=None, validate_charge=True, relax_radius=None, perturb=None)[source]#

Perform charge defect supercell calculations.

Run a atomic relaxation calculation for each available charge state of the defect.

Parameters:
  • defect (Defect) – A defect object representing the defect in a unit cell.

  • relax_maker (RelaxMaker) – A RelaxMaker object to use for the atomic relaxation.

  • sc_mat (NDArray | None) – The supercell matrix. If None, the code will attempt to create a nearly-cubic supercell.

  • defect_index (int | str) – Additional index to give unique names to the defect calculations. Useful for external bookkeeping of symmetry distinct defects.

  • add_info (dict | None) – Additional information to store with the defect cell relaxation calculation. By default only the defect object and charge state are stored.

  • relaxed_sc_lattice (Lattice) – The lattice of the relaxed supercell. If provided, the lattice parameters of the supercell will be set to value specified. Otherwise, the lattice it will only by set by defect.structure and sc_mat.

  • validate_charge (bool) – Whether to validate the charge states of the defect after the atomic relaxation. Assuming the final output of the relaxation is a TaskDoc, we should make sure that the charge state is set properly and matches the expected charge state from the input defect object.

  • relax_radius (float | str | None) – The radius to include around the defect site for the relaxation. If “auto”, the radius will be set to the maximum that will fit inside a periodic cell. If None, all atoms will be relaxed.

  • perturb (float | None) – The amount to perturb the sites in the supercell. Only perturb the sites with selective dynamics set to True. So this setting only works with relax_radius.

Returns:

A response object containing the summary of the calculations for different charge states.

Return type:

Response