Skip to content

Equation Of States Utility

Equation of state (EOS) utilities.

This module centralizes common equation-of-state formulas used across ReaxKit. Currently includes Vinet EOS in two forms:

1) Energyโ€“volume form in eV (used for fitting E(V) from fort.99/fort.74). 2) Legacy "trainset" form matching the translated Fortran elastic_energy_v2 generator.

Notes
  • The two Vinet implementations use different parameterizations/units, so they are conceptually related but not drop-in replacements for each other.
  • Explanation for the Roseโ€“Vinet equation of state can be found here: doi:10.1029/JB092iB09p09319

vinet_energy_ev(V, E0, K0_eV_A3, V0, C)

Vinet EOS: energyโ€“volume form (eV, eV/ร…^3).

Parameters:

Name Type Description Default
V ndarray

Volume(s) (ร…^3).

required
E0 float

Equilibrium energy (eV).

required
K0_eV_A3 float

Bulk modulus at equilibrium (eV/ร…^3).

required
V0 float

Equilibrium volume (ร…^3).

required
C float

Vinet shape parameter (dimensionless).

required

Returns:

Type Description
ndarray

Energy at each volume V (eV).

vinet_energy_trainset(*, volume, reference_volume, bulk_modulus_gpa, bulk_modulus_pressure_derivative, reference_energy=0.0, energy_conversion_factor)

Vinet EOS: legacy trainset-generator form.

This matches your translated Fortran elastic_energy_v2 bulk block logic. It returns energies in the generator's legacy energy units.

Parameters:

Name Type Description Default
volume float

Current volume V (ร…^3).

required
reference_volume float

Reference volume V0 (ร…^3).

required
bulk_modulus_gpa float

Bulk modulus B0 (GPa).

required
bulk_modulus_pressure_derivative float

Pressure derivative B0' (dimensionless).

required
reference_energy float

Reference energy offset E0 (legacy units).

0.0
energy_conversion_factor float

The generator's conversion factor (the one you currently call ENERGY_CONVERSION_FACTOR).

required

Returns:

Type Description
float

EOS energy in the generator's legacy energy units.