pymatgen.analysis.magnetism.jahnteller module

class JahnTellerAnalyzer[source]

Bases: object

Will attempt to classify if structure may be Jahn-Teller active. Class currently uses datafile of hard-coded common Jahn-Teller active ions. If structure is annotated with magnetic moments, will estimate if structure may be high-spin or low-spin. Class aims for more false-positives than false-negatives.

get_analysis(structure: pymatgen.core.structure.Structure, calculate_valences: bool = True, guesstimate_spin: bool = False, op_threshold: float = 0.1) → Dict[source]

Convenience method, uses get_analysis_and_structure method.

Obtain an analysis of a given structure and if it may be Jahn-Teller active or not. This is a heuristic, and may give false positives and false negatives (false positives are preferred).

Parameters
  • structure – input structure

  • calculate_valences – whether to attempt to calculate valences or not, structure should have oxidation states to perform analysis (Default value = True)

  • guesstimate_spin – whether to guesstimate spin state from magnetic moments or not, use with caution (Default value = False)

  • op_threshold – threshold for order parameter above which to consider site to match an octahedral or tetrahedral motif, since Jahn-Teller structures can often be quite distorted, this threshold is smaller than one might expect

Returns

analysis of structure, with key ‘strength’ which may be ‘none’, ‘strong’, ‘weak’, or ‘unknown’ (Default value = 0.1)

get_analysis_and_structure(structure: pymatgen.core.structure.Structure, calculate_valences: bool = True, guesstimate_spin: bool = False, op_threshold: float = 0.1) → Tuple[Dict, pymatgen.core.structure.Structure][source]

Obtain an analysis of a given structure and if it may be Jahn-Teller active or not. This is a heuristic, and may give false positives and false negatives (false positives are preferred).

Parameters
  • structure – input structure

  • calculate_valences – whether to attempt to calculate valences or not, structure should have oxidation states to perform analysis (Default value = True)

  • guesstimate_spin – whether to guesstimate spin state from magnetic moments or not, use with caution (Default value = False)

  • op_threshold – threshold for order parameter above which to consider site to match an octahedral or tetrahedral motif, since Jahn-Teller structures can often be quite distorted, this threshold is smaller than one might expect

Returns

analysis of structure, with key ‘strength’ which may be ‘none’, ‘strong’, ‘weak’, or ‘unknown’ (Default value = 0.1) and decorated structure

get_magnitude_of_effect_from_species(species: Union[str, pymatgen.core.periodic_table.Specie], spin_state: str, motif: str) → str[source]

Get magnitude of Jahn-Teller effect from provided species, spin state and motif.

Parameters
  • species – e.g. Fe2+

  • spin_state – “high” or “low”

  • motif – “oct” or “tet”

Returns: “none”, “weak” or “strong

static get_magnitude_of_effect_from_spin_config(motif: str, spin_config: Dict[str, float]) → str[source]

Roughly, the magnitude of Jahn-Teller distortion will be: * in octahedral environments, strong if e_g orbitals unevenly occupied but weak if t_2g orbitals unevenly occupied * in tetrahedral environments always weaker

Parameters
  • motif – “oct” or “tet”

  • spin_config – dict of ‘e’ (e_g) and ‘t’ (t2_g) with number of electrons in each state

Returns: “none”, “weak” or “strong”

is_jahn_teller_active(structure: pymatgen.core.structure.Structure, calculate_valences: bool = True, guesstimate_spin: bool = False, op_threshold: float = 0.1) → bool[source]

Convenience method, uses get_analysis_and_structure method. Check if a given structure and if it may be Jahn-Teller active or not. This is a heuristic, and may give false positives and false negatives (false positives are preferred).

Parameters
  • structure – input structure

  • calculate_valences – whether to attempt to calculate valences or not, structure should have oxidation states to perform analysis (Default value = True)

  • guesstimate_spin – whether to guesstimate spin state from magnetic moments or not, use with caution (Default value = False)

  • op_threshold – threshold for order parameter above which to consider site to match an octahedral or tetrahedral motif, since Jahn-Teller structures can often be quite distorted, this threshold is smaller than one might expect

Returns

boolean, True if might be Jahn-Teller active, False if not

static mu_so(species: Union[str, pymatgen.core.periodic_table.Specie], motif: str, spin_state: str) → Optional[float][source]

Calculates the spin-only magnetic moment for a given species. Only supports transition metals.

Parameters
  • species – Species

  • motif – “oct” or “tet”

  • spin_state – “high” or “low”

Returns

Spin-only magnetic moment in Bohr magnetons or None if species crystal field not defined

tag_structure(structure: pymatgen.core.structure.Structure, calculate_valences: bool = True, guesstimate_spin: bool = False, op_threshold: float = 0.1) → pymatgen.core.structure.Structure[source]

Convenience method, uses get_analysis_and_structure method. Add a “possible_jt_active” site property on Structure.

Parameters
  • structure – input structure

  • calculate_valences – whether to attempt to calculate valences or not, structure should have oxidation states to perform analysis (Default value = True)

  • guesstimate_spin – whether to guesstimate spin state from magnetic moments or not, use with caution (Default value = False)

  • op_threshold – threshold for order parameter above which to consider site to match an octahedral or tetrahedral motif, since Jahn-Teller structures can often be quite distorted, this threshold is smaller than one might expect

Returns

Decorated Structure, will be in primitive setting.