fit_elastic_tensor

atomate2.common.jobs.elastic.fit_elastic_tensor(structure, deformation_data, equilibrium_stress=None, order=2, fitting_method=SETTINGS.ELASTIC_FITTING_METHOD, symprec=SETTINGS.SYMPREC, allow_elastically_unstable_structs=True, max_failed_deformations=None)[source]

Analyze stress/strain data to fit the elastic tensor and related properties.

Parameters:
  • structure (Structure) – A pymatgen structure.

  • deformation_data (list of dict) – The deformation data, as a list of dictionaries, each containing the keys “stress”, “deformation”.

  • equilibrium_stress (None or tuple of tuple of float) – The equilibrium stress of the (relaxed) structure, if known.

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

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

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

  • max_failed_deformations (int or float) – Maximum number of deformations allowed to fail to proceed with the fitting of the elastic tensor. If an int the absolute number of deformations. If a float between 0 an 1 the maximum fraction of deformations. If None any number of deformations allowed.

Return type:

ElasticDocument