ElasticDocument

class atomate2.common.schemas.elastic.ElasticDocument(*, nsites=None, elements=None, nelements=None, composition=None, composition_reduced=None, formula_pretty=None, formula_anonymous=None, chemsys=None, volume=None, density=None, density_atomic=None, symmetry=None, structure=None, elastic_tensor=None, eq_stress=None, derived_properties=None, fitting_data=None, fitting_method=None, order=None, warnings=None)[source]

Bases: StructureMetadata

Document containing elastic tensor information and related properties.

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)

  • structure (Structure | None)

  • elastic_tensor (ElasticTensorDocument | None)

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

  • derived_properties (DerivedProperties | None)

  • fitting_data (FittingData | None)

  • fitting_method (str | None)

  • order (int | None)

  • warnings (list[str] | None)

classmethod from_stresses(structure, stresses, deformations, uuids, job_dirs, fitting_method=SETTINGS.ELASTIC_FITTING_METHOD, order=None, equilibrium_stress=None, symprec=SETTINGS.SYMPREC, allow_elastically_unstable_structs=True, failed_uuids=None)[source]

Create an elastic document from strains and stresses.

Parameters:
  • structure (.Structure) – The structure for which strains and stresses were calculated.

  • stresses (list of Stress) – A list of corresponding stresses.

  • deformations (list of Deformation) – A list of corresponding deformations.

  • uuids (list of str) – A list of uuids, one for each deformation calculation.

  • job_dirs (list of str) – A list of job directories, one for each deformation calculation.

  • fitting_method (str) – The method used to fit the elastic tensor. See pymatgen for more details on the methods themselves. The options are: - “finite_difference” (note this is required if fitting a 3rd order tensor) - “independent” - “pseudoinverse”

  • order (int or None) – Order of the tensor expansion to be fitted. Can be either 2 or 3.

  • equilibrium_stress (list of list of float) – The stress on the equilibrium (relaxed) structure.

  • symprec (float) – Symmetry precision for deriving symmetry equivalent deformations. If symprec=None, then no symmetry operations will be applied.

  • allow_elastically_unstable_structs (bool) – Whether to allow the ElasticDocument to still complete in the event that the structure is elastically unstable.

  • failed_uuids (list of str) – The uuids of perturbations that were not completed

Return type:

Self

model_config = {}

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