Loading...
Searching...
No Matches
Hessian.h File Reference
#include "Eigen.h"
#include "EonLogger.h"
#include "FiniteDifference.h"
#include "Matter.h"
#include "Parameters.h"
#include <vector>

Go to the source code of this file.

Classes

class  eonc::Hessian

Namespaces

namespace  eonc
 RAII resource manager for the ARTn C library with global synchronization.

Functions

bool eonc::trivialModeCountIsPhysical (long removed, long fixedAtoms)
 Whether removed zero-frequency modes are what the structure's symmetries give: 6 for a free cluster (3 translations and 3 rotations), 5 for a linear one, 3 for a periodic cell, where rotations are no symmetry of the lattice, and none once any atom is fixed.
std::vector< double > eonc::cartesianMode (const Matter &matter, const VectorXi &atoms, const Eigen::Ref< const VectorXd > &mode)
 Cartesian displacement of every atom along one mass-weighted mode over the mobile degrees of freedom atoms: x = q / sqrt(m), unit norm, zero on atoms outside atoms.
bool eonc::writeNormalModes (Matter &matter, const VectorXi &atoms, const VectorXd &eigenvalues, const MatrixXd &modes, const std::string &path)
 Writes one frame of matter per mode to path, the mode as the displacements section and mode_eigenvalue (eV / (Angstrom^2 amu)), hbar_omega (eV, negative for an imaginary mode) and wavenumber (cm^-1, same sign) as frame metadata.
std::vector< int > eonc::greedyColorCutoffGraph (const std::vector< std::vector< int > > &adj)
 Greedy coloring of an undirected graph.
std::vector< int > eonc::colorMobileCutoffGraph (const Matter &matter, const VectorXi &atoms, double cutoff)
 Conflict graph on atoms: two mobile atoms share an edge when their closed cutoff neighborhoods intersect, then greedy-colored.

Variables

constexpr double eonc::kEvToWavenumber = 8065.543937349212
 1 eV in cm^-1, e / (h c) from the exact SI values.