atomistics.workflows.evcurve.workflow.EnergyVolumeCurveWorkflow#

class atomistics.workflows.evcurve.workflow.EnergyVolumeCurveWorkflow(structure: Atoms, num_points: int = 11, fit_type: str = 'polynomial', fit_order: int = 3, vol_range: float = 0.05, axes: tuple[str, str, str] = ('x', 'y', 'z'), strains: list[float] | None = None)[source]#

Bases: Workflow

__init__(structure: Atoms, num_points: int = 11, fit_type: str = 'polynomial', fit_order: int = 3, vol_range: float = 0.05, axes: tuple[str, str, str] = ('x', 'y', 'z'), strains: list[float] | None = None)[source]#

Initialize the EnergyVolumeCurveWorkflow object.

Parameters:
  • structure (Atoms) – The atomic structure.

  • num_points (int, optional) – The number of points in the energy-volume curve. Defaults to 11.

  • fit_type (str, optional) – The type of fitting function. Defaults to “polynomial”.

  • fit_order (int, optional) – The order of the fitting function. Defaults to 3.

  • vol_range (float, optional) – The range of volume variation. Defaults to 0.05.

  • axes (tuple[str, str, str], optional) – The axes along which to vary the volume. Defaults to (“x”, “y”, “z”).

  • strains (list, optional) – The list of strains to apply. Defaults to None.

Methods

__init__(structure[, num_points, fit_type, ...])

Initialize the EnergyVolumeCurveWorkflow object.

analyse_structures(output_dict[, output_keys])

Analyse the structures and fit the energy-volume curve.

generate_structures()

Generate the structures for the energy-volume curve.

get_thermal_properties([t_min, t_max, ...])

Get the thermal properties of the system.

Attributes

fit_dict

Get the fit dictionary.

analyse_structures(output_dict: dict[str, Any], output_keys: tuple = ('b_prime_eq', 'bulkmodul_eq', 'volume_eq', 'energy_eq', 'fit_dict', 'energy', 'volume')) Any[source]#

Analyse the structures and fit the energy-volume curve.

Parameters:
  • output_dict (dict) – The output dictionary.

  • output_keys (tuple, optional) – The keys to include in the output. Defaults to OutputEnergyVolumeCurve.keys().

Returns:

The fit dictionary.

Return type:

dict

property fit_dict: dict[str, Any]#

Get the fit dictionary.

Returns:

The fit dictionary.

Return type:

dict

generate_structures() dict[str, Any][source]#

Generate the structures for the energy-volume curve.

Returns:

The generated structures.

Return type:

dict

get_thermal_properties(t_min: float = 1.0, t_max: float = 1500.0, t_step: float = 50.0, temperatures: ndarray | None = None, constant_volume: bool = False, output_keys: tuple[str, ...] = ('temperatures', 'volumes', 'free_energy', 'entropy', 'heat_capacity')) dict[str, Any][source]#

Get the thermal properties of the system.

Parameters:
  • t_min (float, optional) – The minimum temperature. Defaults to 1.0.

  • t_max (float, optional) – The maximum temperature. Defaults to 1500.0.

  • t_step (float, optional) – The temperature step. Defaults to 50.0.

  • temperatures (np.ndarray, optional) – The array of temperatures. Defaults to None.

  • constant_volume (bool, optional) – Whether to calculate properties at constant volume. Defaults to False.

  • output_keys (tuple[str], optional) – The keys to include in the output. Defaults to OutputThermodynamic.keys().

Returns:

The thermal properties.

Return type:

dict