anharm module
- class anharm.anharm_measure(*args: Any, **kwargs: Any)
Bases:
pyepfd.elph_classes.
This class have all methods to compute anharmonicity measure. Currently only anharmonic measure proposed by Knoop, Purcell, Scheffler, and Carbogno is implemented.
Citation: Phys. Rev. Mater 4, 083809 (2020)
Arguments:
dynmat = dynamical matrix, a (3 N x 3 N) numpy array of floats ; where N is the number of atoms.
mass = A numpy array of length 3 N containing mass matrix
forces = A (n,3N) numpy float matrix: n 3N-dimensional vector containing cartesian forces from n number of MD/MC snapshots
disp_coords = A (n,3N) numpy float matrix: n 3N-dimensional vector containing cartesian coordinates from n number of MD/MC snapshots
opt_coord = 3N-dimensional vector of cartesian coordinates of a optimized geometry/structure
asr = Acoustic Sum Rule; a string. Allowed values are: (1)
'none'
(Default): asr is not applied, OR (2)'crystal'
: For infinite systems / crystals, OR (3)'poly'
: For poly-atomic non-linear molecules, OR (4)'lin'
: For any linear moleculesmode_resolved = Allowed values are (1)
True
: Mode-resolved anharmonic measure is computed, OR (2)False
: Mode-resolved anharmonic measure is not computed.- write(file_path, atoms, vib_freq_unit='cm-1')
This function writes the anharmonic measure for each mode and atoms.
Arguments:
file_path = A string; path to the output files where anharmonic measure values would be written
atoms = A python list of strings containing symbols of all atoms
vib_freq_unit = A string. The unit in which vibrational frequency of normal modes would be printed. The allowed values are: (1)
'cm-1'
(Default), OR (2)'THz'
, OR (3)'K'
, OR (4)'meV'
.Returns:
In the given file_path it will create files with suffix _atom_res_anh_mes.out and _mode_res_anh_mes.out (if
mode_resolved = True
) where anharmonic measure would be printed.
- class anharm.boltzmann_reweighting(*args: Any, **kwargs: Any)
Bases:
pyepfd.elph_classes.
Warning
This class is experimental and not recommended for use.
This class uses a Boltzmann reweighting technique at a finite T to include anharmonicity. T cannot be small or 0.
Arguments:
dynmat = Dynamical matrix
mass = Mass matrix
disp_coords = (n,3N) matrix: n 3N-dimensional vector containing cartesian coordinates from n number of MD/MC snapshots
opt_coord = 3N-dimensional vector of cartesian coordinates of a optimized geometry/structure
opt_energy = A float representing energy (atomic_unit) of the optimized coordinates
temperature = A float representing Temperature (in K)
asr = acoustic sum rule; a string. Allowed values are: (1)
'none'
(Default): asr is not applied, OR (2)'crystal'
: For infinite systems / crystals, OR (3)'poly'
: For poly-atomic non-linear molecules, OR (4)'lin'
: For any linear moleculesremove_rot_trans = A boolean. Allowed values are: (1)
True
: removes global translations and rotations, OR (2)False
: does not remove global translations and rotations, from the disp_coordsReturns:
The modified weights for new configurations as an object anharm.boltzmann_reweighting.weights.