\(\newcommand{\AA}{\text{Å}}\)
lmodea_k.CNM#
- class CNM(K: ndarray, L: ndarray, masses: ndarray, adiabatic_vectors: ndarray)#
Characterisation of Normal Modes (CNM) analysis.
Computes alternative CNM amplitudes using the full Hessian metric, taking pre-processed eigenvalues and eigenvectors as input, similar to the local_mode_analysis workflow. The Hessian is reconstructed per k-point from the clamped eigenvalues and eigenvectors.
- Parameters:
K (ndarray, shape (nkpts, nmodes)) – Eigenvalues from NormalModes (with clamping applied if needed).
L (ndarray, shape (nkpts, 3*n_atoms, nmodes)) – Eigenvectors from NormalModes (mass-weighted displacements).
masses (ndarray, shape (n_atoms,)) – Atomic masses in amu.
- Variables:
K (ndarray, shape (nkpts, nmodes)) – Eigenvalues.
L (ndarray, shape (nkpts, 3*n_atoms, nmodes)) – Eigenvectors.
masses (ndarray, shape (n_atoms,)) – Atomic masses.
adiabatic_vectors (ndarray, shape (nkpts, ncoords, 3*n_atoms)) – Adiabatic vectors.
- __init__(K: ndarray, L: ndarray, masses: ndarray, adiabatic_vectors: ndarray)#
Initialize CNM analysis with pre-processed mode data.
The Hessian is reconstructed per k-point from the clamped eigenvalues and eigenvectors when needed.
- Parameters:
K (ndarray, shape (nkpts, nmodes)) – Eigenvalues from NormalModes (clamped if needed).
L (ndarray, shape (nkpts, 3*n_atoms, nmodes)) – Eigenvectors from NormalModes (mass-weighted displacements).
masses (ndarray, shape (n_atoms,)) – Atomic masses in amu.
adiabatic_vectors (ndarray, shape (nkpts, ncoords, 3*n_atoms)) – Adiabatic displacement vectors.
Methods
__init__(K, L, masses, adiabatic_vectors)Initialize CNM analysis with pre-processed mode data.
compute_Konkoli_Cremer_amplitudes()Compute Konkoli-Cremer CNM amplitudes using the full Hessian metric.
compute_deoverlapped_amplitudes(groups[, ...])Compute overlap-free collective local-mode amplitudes using the Hessian-metric projector formalism.