PhononBSDOSTask

class emmet.core.phonon.PhononBSDOSTask(**data)

Bases: StructureMetadata

Phonon band structures and density of states data.

Parameters:
  • nsites (int | None)

  • elements (list[Annotated[ElementTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.element_adapter.<lambda>, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.element_adapter.<lambda>, return_type=str, when_used=always)]] | None)

  • nelements (int | None)

  • composition (Annotated[CompositionTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, return_type=dict[str, float], when_used=always)] | None)

  • composition_reduced (Annotated[CompositionTypeVar, BeforeValidator(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, json_schema_input_type=PydanticUndefined), WrapSerializer(func=~emmet.core.types.pymatgen_types.composition_adapter.<lambda>, return_type=dict[str, float], when_used=always)] | None)

  • formula_pretty (str | None)

  • formula_anonymous (str | None)

  • chemsys (str | None)

  • volume (float | None)

  • density (float | None)

  • density_atomic (float | None)

  • symmetry (SymmetryData | None)

  • identifier (str | None)

  • phonon_method (PhononMethod | None)

  • phonon_bandstructure (PhononBS | None)

  • phonon_dos (PhononDOS | None)

  • epsilon_static (tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None)

  • epsilon_electronic (tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None)

  • born (list[tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]]] | None)

  • force_constants (list[list[tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]]]] | None)

  • last_updated (Annotated[datetime, FieldInfo(annotation=NoneType, required=False, default_factory=utcnow), BeforeValidator(func=~emmet.core.utils.convert_datetime, json_schema_input_type=PydanticUndefined)])

  • sum_rules_breaking (SumRuleChecks | 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)

  • total_dft_energy (float | None)

  • volume_per_formula_unit (float | None)

  • formula_units (int | None)

  • supercell_matrix (tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None)

  • primitive_matrix (tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None)

  • code (str | None)

  • post_process_settings (PhononComputationalSettings | None)

  • thermal_displacement_data (ThermalDisplacementData | None)

  • calc_meta (list[CalcMeta] | None)

classmethod migrate_fields(**config)

Migrate legacy input fields.

Return type:

Any

property charge_neutral_sum_rule: tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None

Sum of Born effective charges over sites should be zero.

property acoustic_sum_rule: tuple[tuple[float, float, float], tuple[float, float, float], tuple[float, float, float]] | None

Sum of q=0 atomic force constants should be zero.

property check_sum_rule_deviations: SumRuleChecks

Report deviations from sum rules.

entropy(temperature, normalization='formula_units')

Compute the entropy in J/(K * mol * formula units).

Return type:

float | None

Parameters:
  • temperature (float)

  • normalization (Literal['atoms', 'formula_units'] | None)

temperature : float normalization : “atoms”, “formula_units”, or None

Whether to normalize by the number of atoms in the cell (“atoms”), the number of formula units (“formula_units”), or not (None).

heat_capacity(temperature, normalization='formula_units')

Compute the heat capacity in J/(K * mol * formula units).

Return type:

float | None

Parameters:
  • temperature (float)

  • normalization (Literal['atoms', 'formula_units'] | None)

temperature : float normalization : “atoms”, “formula_units”, or None

Whether to normalize by the number of atoms in the cell (“atoms”), the number of formula units (“formula_units”), or not (None).

internal_energy(temperature, normalization='formula_units')

Compute the internal energy in J/(mol * formula units).

Return type:

float | None

Parameters:
  • temperature (float)

  • normalization (Literal['atoms', 'formula_units'] | None)

temperature : float normalization : “atoms”, “formula_units”, or None

Whether to normalize by the number of atoms in the cell (“atoms”), the number of formula units (“formula_units”), or not (None).

free_energy(temperature, normalization='formula_units')

Compute the Helmholtz free energy in J/(mol * formula units).

Return type:

float | None

Parameters:
  • temperature (float)

  • normalization (Literal['atoms', 'formula_units'] | None)

temperature : float normalization : “atoms”, “formula_units”, or None

Whether to normalize by the number of atoms in the cell (“atoms”), the number of formula units (“formula_units”), or not (None).

compute_thermo_quantities(temperatures, normalization='formula_units')

Compute all thermodynamic quantities as a convenience method.

Return type:

dict[str, Sequence[float | None]]

Parameters:
  • temperatures (Sequence[float])

  • normalization (Literal['atoms', 'formula_units'] | None)

classmethod from_phonopy_pheasy_files(structure_file, phonon_bandstructure_file=None, phonon_dos_file=None, force_constants_file=None, born_file=None, epsilon_static_file=None, phonopy_output_file=None, **kwargs)

Create a PhononBSDOSDoc from a list of explicit Phonopy/Pheasy file paths.

Return type:

Self

Parameters:
  • structure_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)])

  • phonon_bandstructure_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)

  • phonon_dos_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)

  • force_constants_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)

  • born_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)

  • epsilon_static_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)

  • phonopy_output_file (Annotated[str | Path | DirEntry[str] | PathLike[str], PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=str, when_used=always)] | None)

classmethod from_phonopy_pheasy_directory(phonon_dir, **kwargs)

Create a PhononBSDOSDoc from a Phonopy/Pheasy directory.

Return type:

Self

Parameters:

phonon_dir (Path | str)

Parameters

phonon_dir : str or Path **kwargs to pass to PhononBSDOSDoc.from_phonopy_pheasy_files

model_config: ClassVar[ConfigDict] = {}

Configuration for the model, should be a dictionary conforming to [ConfigDict][pydantic.config.ConfigDict].