PhononBS
- class emmet.core.phonon.PhononBS(**data)
Bases:
BandStructureDefine schema of pymatgen phonon band structure.
- Parameters:
identifier (str | None)
structure (Annotated[StructureTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.structure_adapter.pop_empty_structure_keys, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.structure_adapter.<lambda>, return_type=~emmet.core.types.pymatgen_types.structure_adapter.TypedStructureDict, when_used=always)] | None)
run_type (RunType | None)
path_convention (BSPathType)
kpath (list[str] | None)
labels_dict (dict[str, tuple[float, float, float]])
qpoints (list[tuple[float, float, float]])
lattice_rec (Annotated[tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]], BeforeValidator(func=~emmet.core.band_theory._deser_lattice, json_schema_input_type=PydanticUndefined)])
has_nac (bool)
bands (list[list[float]])
eigendisplacements (Annotated[list[list[list[tuple[complex, complex, complex]]]] | None, BeforeValidator(func=~emmet.core.phonon._deser_eigenmode, json_schema_input_type=PydanticUndefined), PlainSerializer(func=~emmet.core.phonon._ser_eigenmode, return_type=PydanticUndefined, when_used=always)])
- classmethod from_pmg(config)
Ensure fields are correctly populated.
- Return type:
Any- Parameters:
config (PhononBandStructureSymmLine | dict)
- property primitive_structure: Structure | None
Cache primitive structure for use in computing entropy, heat capacity, etc.
- property to_pmg: PhononBandStructureSymmLine
Get / cache corresponding pymatgen object.
- classmethod from_phonopy(phonon_bandstructure_file, structure_file=None, path_convention=None, label_match_tol=1e-3, **kwargs)
Create a PhononBS from phonopy .yaml output.
Args: phonon_bandstructure_file (FSPathType) : path to a band.yaml-like file. structure_file (FSPathType or None) : path to a POSCAR-like structure file.
If provided, takes precedence over the structure embedded in the band.yaml.
- path_convention (str or None)name of the high-symmetry path
convention used to generate the band.yaml (e.g.
"latimer_munro","setyawan_curtarolo","hinuma"). When provided AND the band.yaml does not already carry per-entrylabelkeys, from_phonopy reconstructslabels_dictby matching segment-boundary q-positions against pymatgen.symmetry.bandstructure.HighSymmKpath labels for the requested convention. If the lookup fails for any reason (e.g. missing optional seekpath dep for"hinuma", or no match within label_match_tol), label recovery is skipped silently.- label_match_tol (float)tolerance (in fractional reciprocal-lattice
coordinates) for matching boundary q-positions to canonical high-symmetry kpoint labels. Defaults to 1e-3.
**kwargs : other kwargs to pass to the class constructor
- Return type:
Self- Parameters:
phonon_bandstructure_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)])
structure_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)
path_convention (str | None)
label_match_tol (float)
- model_config: ClassVar[ConfigDict] = {'populate_by_name': True, 'validate_by_alias': True, 'validate_by_name': True}
Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].
- model_post_init(_BandStructure__context)
Override this method to perform additional initialization after __init__ and model_construct. This is useful if you want to do some validation that requires the entire model to be initialized.
- Return type:
None- Parameters:
_BandStructure__context (Any)