occ
Loading...
Searching...
No Matches
cartesian_force.h File Reference
#include <occ/mults/cartesian_molecule.h>
#include <occ/mults/cutoff_spline.h>
#include <occ/core/linear_algebra.h>
#include <Eigen/Geometry>
#include <vector>
Include dependency graph for cartesian_force.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  occ::mults::CartesianForceResult
 Energy and force gradient for a single site pair. More...
 
struct  occ::mults::MoleculeForceResult
 Per-site forces for a molecule pair interaction. More...
 
struct  occ::mults::RigidBodyForceResult
 Rigid body force and torque (lever-arm only, no multipole rotation). More...
 
struct  occ::mults::FullRigidBodyResult
 Full rigid body result including multipole rotation contribution. More...
 

Namespaces

namespace  occ
 
namespace  occ::mults
 

Functions

Eigen::Vector4d occ::mults::quaternion_gradient (const Eigen::Quaterniond &q, const Vec3 &grad_angle_axis)
 Convert angle-axis gradient to quaternion gradient.
 
void occ::mults::apply_quaternion_gradient_step (Eigen::Quaterniond &q, const Vec3 &grad_angle_axis, double step)
 Apply quaternion gradient update (gradient descent step)
 
CartesianForceResult occ::mults::compute_site_pair_energy_force (const CartesianSite &siteA, const CartesianSite &siteB)
 Compute energy AND force gradient for a single pair of precomputed sites.
 
MoleculeForceResult occ::mults::compute_molecule_forces (const CartesianMolecule &molA, const CartesianMolecule &molB)
 Compute per-site forces for two molecules.
 
RigidBodyForceResult occ::mults::aggregate_rigid_body_forces (const std::vector< Vec3 > &site_forces, const std::vector< Vec3 > &site_positions, const Vec3 &center_of_mass, const Mat3 &rotation=Mat3::Identity())
 Aggregate per-site forces into rigid body force and lever-arm torque.
 
FullRigidBodyResult occ::mults::compute_molecule_forces_torques (const CartesianMolecule &molA, const CartesianMolecule &molB, double site_cutoff=0.0, int max_interaction_order=-1, const Vec3 &offset_B=Vec3::Zero(), const CutoffSpline *taper=nullptr)
 Full force/torque including multipole rotation contribution.