occ
Loading...
Searching...
No Matches
cartesian_hessian.h File Reference
Include dependency graph for cartesian_hessian.h:

Classes

struct  occ::mults::PairHessianResult
 Result of Hessian computation for a pair of rigid bodies. More...
 
struct  occ::mults::SiteHessianDerivatives
 Precomputed per-site rotation derivatives for Hessian computation. More...
 
struct  occ::mults::MoleculeHessianData
 Precomputed data for one molecule in the Hessian computation. More...
 

Namespaces

namespace  occ
 
namespace  occ::mults
 

Functions

PairHessianResult occ::mults::compute_charge_charge_hessian (const Vec3 &posA, double qA, const Vec3 &posB, double qB)
 Compute analytical Hessian for charge-charge interactions only.
 
PairHessianResult occ::mults::compute_charge_dipole_hessian (const Vec3 &posA, double qA, const Vec3 &posB, const Vec3 &dipole_B, const Vec3 &body_dipole_B, const Mat3 &M, const std::array< Mat3, 3 > &dM, const std::array< Mat3, 9 > *d2M=nullptr)
 Compute analytical Hessian for charge-dipole interactions.
 
MoleculeHessianData occ::mults::build_molecule_hessian_data (const CartesianMolecule &mol, bool signed_side)
 Build per-molecule Hessian data (rotation derivatives of multipoles).
 
PairHessianResult occ::mults::compute_molecule_hessian_truncated (const CartesianMolecule &molA, const CartesianMolecule &molB, const Vec3 &offset_B=Vec3::Zero(), double site_cutoff=0.0, int max_interaction_order=-1, const CutoffSpline *taper=nullptr, bool taper_hessian=true)
 Compute analytical rigid-body Hessian for a molecule pair.
 
PairHessianResult occ::mults::compute_molecule_hessian_truncated (const CartesianMolecule &molA, const CartesianMolecule &molB, const MoleculeHessianData &dataA, const MoleculeHessianData &dataB, const Vec3 &offset_B=Vec3::Zero(), double site_cutoff=0.0, int max_interaction_order=-1, const CutoffSpline *taper=nullptr, bool taper_hessian=true)
 Overload using precomputed molecule Hessian data (avoids recomputing rotation derivatives per pair — call build_molecule_hessian_data once per molecule, then pass to all pairs involving that molecule).