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:

List[nanotools.totalenergy.TotalEnergy]

equilibrium_volume

Equilibrium volume.

Type:

pint.registry.Quantity

initial_volume

Initial volume.

Type:

pint.registry.Quantity

reference_calculator

Total energy calculator.

Type:

nanotools.totalenergy.TotalEnergy

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]

get_bulk_modulus()[source]

Returns the bulk modulus as calculated with a Birch-Murnaghan fit.

get_equilibrium_volume()[source]

Returns the equilibrium volume as calculated with a Birch-Murnaghan fit.

plot_eos(filename=None, show=True)[source]

Generates a plot of the equation of states (+ fit).

Parameters:
  • filename (str, optional) – If not None, then the figure is saved to filename.

  • show (bool, optional) – If True block and show figure. If False, do not show figure.