nanotools.eos module
Created on 2021-06-03
@author: Vincent Michaud-Rioux
- class nanotools.eos.EquationOfState(reference_calculator, bulk_modulus=None, equilibrium_volume=None, initial_volume=None, relative_volumes=array([0.94, 0.96, 0.98, 1., 1.02, 1.04, 1.06]), calculators: List[TotalEnergy] = [])[source]
Bases:
Base
EquationOfState
class.Examples:
from nanotools import Atoms, Cell, System, TotalEnergy from nanotools.eos import EquationOfState as EOS a = 5.64 / 2. # lattice constant (ang) cell = Cell(avec=[[0.,a,a],[a,0.,a],[a,a,0.]], resolution=0.15) fxyz = [[0.00,0.00,0.00],[0.25,0.25,0.25]] atoms = Atoms(fractional_positions=fxyz, formula="GaAs") sys = System(cell=cell, atoms=atoms) sys.kpoint.set_grid([7,7,7]) calc = TotalEnergy(sys) eos = EOS.from_totalenergy(calc) eos.relative_volumes = [0.96, 0.98, 1.00, 1.02, 1.04] eos.solve() eos.plot_eos()
- calculators
Stores the calculators for each volume.
- Type:
- equilibrium_volume
Equilibrium volume.
- Type:
pint.registry.Quantity
- initial_volume
Initial volume.
- Type:
pint.registry.Quantity
- reference_calculator
Total energy calculator.
- relative_volumes
Relative volumes used to compute the equation of states. For instance, setting [0.96, 0.98, 1. , 1.02, 1.04] will compute the total energy for five volumes corresponding to 96% up to 104% of initial_volume.
- Type:
nptyping.ndarray.NDArray[Any, Any]