pymatgen.analysis.magnetism.jahnteller module
JahnTeller distortion analysis.
- 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.
Init for JahnTellerAnalyzer.
- get_analysis(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: Structure, calculate_valences: bool = True, guesstimate_spin: bool = False, op_threshold: float = 0.1) tuple[dict, 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: str | Species, 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: 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: str | Species, motif: Literal['oct', 'tet'], spin_state: Literal['high', 'low']) float | None [source]
Calculates the spin-only magnetic moment for a given species. Only supports transition metals.
- Parameters:
species – Species
motif ("oct" | "tet") – Tetrahedron or octahedron crystal site coordination
spin_state ("low" | "high") – Whether the species is in a high or low spin state
- Returns:
- Spin-only magnetic moment in Bohr magnetons or None if
species crystal field not defined
- Return type:
float
- tag_structure(structure: Structure, calculate_valences: bool = True, guesstimate_spin: bool = False, op_threshold: float = 0.1) 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.