atomate.tools package¶
Subpackages¶
Submodules¶
atomate.tools.analysis module¶
-
class
atomate.tools.analysis.QuasiharmonicDebyeApprox(energies, volumes, structure, t_min=300.0, t_step=100, t_max=300.0, eos=u'vinet', pressure=0.0, poisson=0.25, use_mie_gruneisen=False)¶ Bases:
objectImplements the quasiharmonic Debye approximation as described in papers: http://doi.org/10.1016/j.comphy.2003.12.001 (2004) and http://doi.org/10.1103/PhysRevB.90.174107 (2014)
- Args:
energies (list): list of DFT energies in eV volumes (list): list of volumes in Ang^3 structure (Structure): t_min (float): min temperature t_step (float): temperature step t_max (float): max temperature eos (str): equation of state used for fitting the energies and the volumes.
options supported by pymatgen: “quadratic”, “murnaghan”, “birch”, “birch_murnaghan”, “pourier_tarantola”, “vinet”, “deltafactor”pressure (float): in GPa, optional. poisson (float): poisson ratio. use_mie_gruneisen (bool): whether or not to use the mie-gruneisen formulation to compute
the gruneisen parameter. The default is slater-gamma formulation.
-
__init__(energies, volumes, structure, t_min=300.0, t_step=100, t_max=300.0, eos=u'vinet', pressure=0.0, poisson=0.25, use_mie_gruneisen=False)¶
-
static
debye_integral(y)¶ Debye integral. Eq(5) in doi.org/10.1016/j.comphy.2003.12.001
- Args:
- y (float): debye temperature/T, upper limit
- Returns:
- float: unitless
-
debye_temperature(volume)¶ Calculates the debye temperature. Eq(6) in doi.org/10.1016/j.comphy.2003.12.001. Thanks to Joey.
- Args:
- volume (float): in Ang^3
- Returns:
- float: debye temperature in K
-
get_summary_dict()¶ Returns a dict with a summary of the computed properties.
-
gruneisen_parameter(temperature, volume)¶ - Slater-gamma formulation(the default):
- gruneisen paramter = - d log(theta)/ d log(V)
- = - ( 1/6 + 0.5 d log(B)/ d log(V) ) = - (1/6 + 0.5 V/B dB/dV), where dB/dV = d^2E/dV^2 + V * d^3E/dV^3
- Mie-gruneisen formulation:
Eq(31) in doi.org/10.1016/j.comphy.2003.12.001 Eq(7) in MA Blanc0 ef al.lJoumal of Molecular Structure (Theochem) 368 (1996) 245-255 Also se J.-P. Poirier, Introduction to the Physics of the Earth’s Interior, 2nd ed.
(Cambridge University Press, Cambridge, 2000) Eq(3.53)- Args:
- temperature (float): temperature in K volume (float): in Ang^3
- Returns:
- float: unitless
-
optimize_gibbs_free_energy()¶ Evaluate the gibbs free energy as a function of V, T and P i.e G(V, T, P), minimize G(V, T, P) wrt V for each T and store the optimum values.
Note: The data points for which the equation of state fitting fails are skipped.
-
optimizer(temperature)¶ Evaluate G(V, T, P) at the given temperature(and pressure) and minimize it wrt V.
- Compute the vibrational helmholtz free energy, A_vib.
- Compute the gibbs free energy as a function of volume, temperature and pressure, G(V,T,P).
- Preform an equation of state fit to get the functional form of gibbs free energy:G(V, T, P).
- Finally G(V, P, T) is minimized with respect to V.
- Args:
- temperature (float): temperature in K
- Returns:
- float, float: G_opt(V_opt, T, P) in eV and V_opt in Ang^3.
-
thermal_conductivity(temperature, volume)¶ Eq(17) in 10.1103/PhysRevB.90.174107
- Args:
- temperature (float): temperature in K volume (float): in Ang^3
- Returns:
- float: thermal conductivity in W/K/m
-
vibrational_free_energy(temperature, volume)¶ Vibrational Helmholtz free energy, A_vib(V, T). Eq(4) in doi.org/10.1016/j.comphy.2003.12.001
- Args:
- temperature (float): temperature in K volume (float)
- Returns:
- float: vibrational free energy in eV
-
vibrational_internal_energy(temperature, volume)¶ Vibrational internal energy, U_vib(V, T). Eq(4) in doi.org/10.1016/j.comphy.2003.12.001
- Args:
- temperature (float): temperature in K volume (float): in Ang^3
- Returns:
- float: vibrational internal energy in eV
-
atomate.tools.analysis.get_phonopy_gibbs(energies, volumes, force_constants, structure, t_min, t_step, t_max, mesh, eos, pressure=0)¶ Compute QHA gibbs free energy using the phonopy interface.
- Args:
energies (list): volumes (list): force_constants (list): structure (Structure): t_min (float): min temperature t_step (float): temperature step t_max (float): max temperature mesh (list/tuple): reciprocal space density eos (str): equation of state used for fitting the energies and the volumes.
options supported by phonopy: vinet, murnaghan, birch_murnaghanpressure (float): in GPa, optional.
- Returns:
- (numpy.ndarray, numpy.ndarray): Gibbs free energy, Temperature
-
atomate.tools.analysis.get_phonopy_qha(energies, volumes, force_constants, structure, t_min, t_step, t_max, mesh, eos, pressure=0)¶ Return phonopy QHA interface.
- Args:
energies (list): volumes (list): force_constants (list): structure (Structure): t_min (float): min temperature t_step (float): temperature step t_max (float): max temperature mesh (list/tuple): reciprocal space density eos (str): equation of state used for fitting the energies and the volumes.
options supported by phonopy: vinet, murnaghan, birch_murnaghanpressure (float): in GPa, optional.
- Returns:
- PhonopyQHA
-
atomate.tools.analysis.get_phonopy_thermal_expansion(energies, volumes, force_constants, structure, t_min, t_step, t_max, mesh, eos, pressure=0)¶ Compute QHA thermal expansion coefficient using the phonopy interface.
- Args:
energies (list): volumes (list): force_constants (list): structure (Structure): t_min (float): min temperature t_step (float): temperature step t_max (float): max temperature mesh (list/tuple): reciprocal space density eos (str): equation of state used for fitting the energies and the volumes.
options supported by phonopy: vinet, murnaghan, birch_murnaghanpressure (float): in GPa, optional.
- Returns:
- (numpy.ndarray, numpy.ndarray): thermal expansion coefficient, Temperature