atomistics.workflows.evcurve.fit.EnergyVolumeFit#

class atomistics.workflows.evcurve.fit.EnergyVolumeFit(volume_lst: ndarray | None = None, energy_lst: ndarray | None = None)[source]#

Bases: object

Fit energy volume curves

Parameters:
  • volume_lst (list/numpy.dnarray) – vector of volumes

  • energy_lst (list/numpy.dnarray) – vector of energies

.. attribute:: volume_lst

vector of volumes

.. attribute:: energy_lst

vector of energies

.. attribute:: fit_dict

dictionary of fit parameters

__init__(volume_lst: ndarray | None = None, energy_lst: ndarray | None = None)[source]#

Initialize the EnergyVolumeFit object.

Parameters:
  • volume_lst (np.ndarray, optional) – Vector of volumes. Defaults to None.

  • energy_lst (np.ndarray, optional) – Vector of energies. Defaults to None.

Methods

__init__([volume_lst, energy_lst])

Initialize the EnergyVolumeFit object.

birch(V, E0, B0, BP, V0)

Birch equation from Intermetallic compounds: Principles and Practice, Vol.

birchmurnaghan_energy(V, E0, B0, BP, V0)

BirchMurnaghan equation from PRB 70, 224107

fit([fit_type, fit_order])

Fit the energy volume curves.

fit_eos_general([volume_lst, energy_lst, ...])

Fit one of the equations of state.

fit_polynomial([volume_lst, energy_lst, ...])

Fit a polynomial.

interpolate_energy(volume_lst)

Interpolate the energy values for the corresponding energy volume fit defined in the fit dictionary.

murnaghan(V, E0, B0, BP, V0)

Murnaghan equation from PRB 28,5480 (1983)

pouriertarantola(V, E0, B0, BP, V0)

Pouriertarantola equation

vinet_energy(V, E0, B0, BP, V0)

Vinet equation from PRB 70, 224107

Attributes

energy_lst

Get the vector of energies.

fit_dict

Get the fit dictionary.

volume_lst

Get the vector of volumes.

static birch(V: ndarray, E0: float, B0: float, BP: float, V0: float) ndarray[source]#

Birch equation from Intermetallic compounds: Principles and Practice, Vol. I: Principles Chapter 9 pages 195-210 by M. Mehl. B. Klein, D. Papaconstantopoulos paper downloaded from Web

case where n=0

Parameters:
  • V (np.ndarray) – Vector of volumes.

  • E0 (float) – Energy at equilibrium volume.

  • B0 (float) – Bulk modulus at equilibrium volume.

  • BP (float) – Pressure derivative of bulk modulus at equilibrium volume.

  • V0 (float) – Equilibrium volume.

Returns:

Vector of energies.

Return type:

np.ndarray

static birchmurnaghan_energy(V: ndarray, E0: float, B0: float, BP: float, V0: float) ndarray[source]#

BirchMurnaghan equation from PRB 70, 224107

Parameters:
  • V (np.ndarray) – Vector of volumes.

  • E0 (float) – Energy at equilibrium volume.

  • B0 (float) – Bulk modulus at equilibrium volume.

  • BP (float) – Pressure derivative of bulk modulus at equilibrium volume.

  • V0 (float) – Equilibrium volume.

Returns:

Vector of energies.

Return type:

np.ndarray

property energy_lst: ndarray#

Get the vector of energies.

Returns:

Vector of energies.

Return type:

np.ndarray

fit(fit_type: str = 'polynomial', fit_order: int = 3) dict[source]#

Fit the energy volume curves.

Parameters:
  • fit_type (str, optional) – Type of fit to perform. Defaults to “polynomial”.

  • fit_order (int, optional) – Order of the polynomial fit. Defaults to 3.

Returns:

Dictionary containing the fit results.

Return type:

dict

property fit_dict: dict#

Get the fit dictionary.

Returns:

Fit dictionary.

Return type:

dict

fit_eos_general(volume_lst: ndarray | None = None, energy_lst: ndarray | None = None, fittype: str = 'birchmurnaghan') dict[source]#

Fit one of the equations of state.

Parameters:
  • volume_lst (np.ndarray, optional) – Vector of volumes. Defaults to None.

  • energy_lst (np.ndarray, optional) – Vector of energies. Defaults to None.

  • fittype (str, optional) – Type of fit to perform. Defaults to “birchmurnaghan”.

Returns:

Dictionary containing the fit results.

Return type:

dict

fit_polynomial(volume_lst: ndarray | None = None, energy_lst: ndarray | None = None, fit_order: int = 3) dict[source]#

Fit a polynomial.

Parameters:
  • volume_lst (np.ndarray, optional) – Vector of volumes. Defaults to None.

  • energy_lst (np.ndarray, optional) – Vector of energies. Defaults to None.

  • fit_order (int, optional) – Order of the polynomial fit. Defaults to 3.

Returns:

Dictionary containing the fit results.

Return type:

dict

interpolate_energy(volume_lst: ndarray) ndarray[source]#

Interpolate the energy values for the corresponding energy volume fit defined in the fit dictionary.

Parameters:

volume_lst (np.ndarray) – List of volumes.

Returns:

List of energies.

Return type:

np.ndarray

static murnaghan(V: ndarray, E0: float, B0: float, BP: float, V0: float) ndarray[source]#

Murnaghan equation from PRB 28,5480 (1983)

Parameters:
  • V (np.ndarray) – Vector of volumes.

  • E0 (float) – Energy at equilibrium volume.

  • B0 (float) – Bulk modulus at equilibrium volume.

  • BP (float) – Pressure derivative of bulk modulus at equilibrium volume.

  • V0 (float) – Equilibrium volume.

Returns:

Vector of energies.

Return type:

np.ndarray

static pouriertarantola(V: ndarray, E0: float, B0: float, BP: float, V0: float) ndarray[source]#

Pouriertarantola equation

Parameters:
  • V (np.ndarray) – Vector of volumes.

  • E0 (float) – Energy at equilibrium volume.

  • B0 (float) – Bulk modulus at equilibrium volume.

  • BP (float) – Pressure derivative of bulk modulus at equilibrium volume.

  • V0 (float) – Equilibrium volume.

Returns:

Vector of energies.

Return type:

np.ndarray

static vinet_energy(V: ndarray, E0: float, B0: float, BP: float, V0: float) ndarray[source]#

Vinet equation from PRB 70, 224107

Parameters:
  • V (np.ndarray) – Vector of volumes.

  • E0 (float) – Energy at equilibrium volume.

  • B0 (float) – Bulk modulus at equilibrium volume.

  • BP (float) – Pressure derivative of bulk modulus at equilibrium volume.

  • V0 (float) – Equilibrium volume.

Returns:

Vector of energies.

Return type:

np.ndarray

property volume_lst: ndarray#

Get the vector of volumes.

Returns:

Vector of volumes.

Return type:

np.ndarray