lmodea_k.CNM

Contents

\(\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.