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 the structures for the energy-volume curve.
get_thermal_properties([t_min, t_max, ...])Get the thermal properties of the system.
Attributes
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