|
| 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).
|
| |