pele.thermodynamics._normalmodes#
- class pele.thermodynamics._normalmodes.NormalModeError[source]
-
class NormalModeError(Exception):raised if the normal mode results are not as expected
this typically means that a minimum is actually a transition state, or a transition state is actually a higher order saddle
- pele.thermodynamics._normalmodes.normalmode_frequencies()[source]
-
def normalmode_frequencies(hessian, metric=None, eps=1e-4):calculate (squared) normal mode frequencies
- Parameters:
- hessian: 2d array
hessian matrix
- metric: 2d array
mass weighted metric tensor
- Returns:
- sorted array of normal mode frequencies
- pele.thermodynamics._normalmodes.normalmodes()[source]
-
def normalmodes(hessian, metric=None, eps=1e-4, symmetric=False):calculate (squared) normal mode frequencies and normal mode vectors
- Parameters:
- hessian: array
hessian marix
- metric: array
mass weighted metric tensor
- symmetric: bool
If true, the Hessian times the metric tensor is assumed to be symmetric. This is not usually the case, even if the metric tensor is symmetric. It is true if the metric tensor is the identity.
- Returns:
- freq, evecs tuple array of squared frequencies and normal modes
- pele.thermodynamics._normalmodes.logproduct_freq2()[source]
-
def logproduct_freq2(freqs, nzero, nnegative=0, eps=1e-4):calculate the log product of positive (squared) frequencies
calculates log(product_i f_i^2)
- Parameters:
- freqs:
array of (squared) normalmode frequencies
- nzero: int
expected number of zero eigenvalues
- nnegative: int, optional
expected number of negative frequencies, 0 for minimum, 1 for transition states
- eps: float, optional
cutoff to determine if eigenvalue is no zero
- Returns:
- tuple of number of considered frequencies and log product of frequencies