ElasticityDoc

class emmet.core.elasticity.ElasticityDoc(**data)

Bases: PropertyDoc

Parameters:
  • builder_meta (EmmetMeta | None)

  • 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)

  • material_id (Annotated[MPID | AlphaID, BeforeValidator(func=~emmet.core.types.typing._fault_tolerant_id_serde, json_schema_input_type=PydanticUndefined), PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=PydanticUndefined, when_used=always)] | None)

  • deprecated (bool)

  • deprecation_reasons (list[DeprecationMessage | str] | None)

  • last_updated (Annotated[datetime, BeforeValidator(func=~emmet.core.utils.convert_datetime, json_schema_input_type=PydanticUndefined)])

  • origins (list[PropertyOrigin] | None)

  • warnings (list[str])

  • 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)

  • property_name (str)

  • order (int)

  • elastic_tensor (ElasticTensorDoc | None)

  • compliance_tensor (ComplianceTensorDoc | None)

  • bulk_modulus (BulkModulus | None)

  • shear_modulus (ShearModulus | None)

  • sound_velocity (SoundVelocity | None)

  • thermal_conductivity (ThermalConductivity | None)

  • youngs_modulus (float | None)

  • universal_anisotropy (float | None)

  • homogeneous_poisson (float | None)

  • debye_temperature (float | None)

  • fitting_data (FittingData | None)

  • fitting_method (str | None)

  • state (TaskState | None)

classmethod from_deformations_and_stresses(structure, deformations, stresses, material_id=None, deformation_task_ids=None, deformation_dir_names=None, equilibrium_stress=None, optimization_task_id=None, optimization_dir_name=None, fitting_method='finite_difference', **kwargs)

Fitting the elastic tensor from deformation and stresses.

Note, the elastic tensor are obtained by fitting to the Lagrangian strains and second Piola-Kirchhoff stresses. In continuum mechanics nomenclature, it’s the material elasticity tensor. For more, see Section 6.5 of Continuum Mechanics and Thermodynamics – From Fundamental Concepts to Governing Equations Tadmor, Miller, and Elliott, Cambridge University Press, 2012.

Args:

structure: relaxed structure. material_id: material id. deformations: deformations applied to the relaxed structure that generate

the strained structures.

stresses: Cauchy stresses on the deformed structures. Expected units: GPa. deformation_task_ids: id of the deformation tasks. deformation_dir_names: directories where the deformation tasks are run. equilibrium_stress: Cauchy stress on the relaxed structure. optimization_task_id: id of the optimization task to relax the structure. optimization_dir_name: directory where the optimization task run. fitting_method: method used to fit the elastic tensor:

{finite_difference, pseudoinverse, independent}.

Parameters:
  • structure (Structure)

  • deformations (list[Deformation])

  • stresses (list[Stress])

  • material_id (Annotated[MPID | AlphaID, BeforeValidator(func=~emmet.core.types.typing._fault_tolerant_id_serde, json_schema_input_type=PydanticUndefined), PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=PydanticUndefined, when_used=always)] | None)

  • deformation_task_ids (list[Annotated[MPID | AlphaID, BeforeValidator(func=~emmet.core.types.typing._fault_tolerant_id_serde, json_schema_input_type=PydanticUndefined), PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=PydanticUndefined, when_used=always)]] | None)

  • deformation_dir_names (list[str] | None)

  • equilibrium_stress (Stress | None)

  • optimization_task_id (Annotated[MPID | AlphaID, BeforeValidator(func=~emmet.core.types.typing._fault_tolerant_id_serde, json_schema_input_type=PydanticUndefined), PlainSerializer(func=~emmet.core.types.typing.<lambda>, return_type=PydanticUndefined, when_used=always)] | None)

  • optimization_dir_name (str | None)

  • fitting_method (str)

model_config: ClassVar[ConfigDict] = {}

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