occ
Loading...
Searching...
No Matches
occ::mults::CartesianInteractions Class Reference

High-level API for Cartesian T-tensor multipole interaction calculations. More...

#include <cartesian_interaction.h>

Classes

struct  Config
 

Public Member Functions

 CartesianInteractions ()=default
 
 CartesianInteractions (const Config &config)
 
double compute_interaction_energy (const occ::dma::Mult &mult1, const Vec3 &pos1, const occ::dma::Mult &mult2, const Vec3 &pos2) const
 Compute electrostatic interaction energy between two multipoles.
 
double compute_interaction_energy (const occ::dma::Mult &mult1, const Vec3 &pos1, const Mat3 &rot1, const occ::dma::Mult &mult2, const Vec3 &pos2, const Mat3 &rot2) const
 Body-frame variant: multipoles defined in body frame, rotated to lab.
 
const Configconfig () const
 

Detailed Description

High-level API for Cartesian T-tensor multipole interaction calculations.

This engine computes electrostatic interaction energies between multipole distributions using the Cartesian interaction tensor approach:

E = sum_{tuv,t'u'v'} m^A_{tuv} * T_{t+t',u+u',v+v'} * m^B_{t'u'v'}

where m^A absorbs the (-1)^l sign and 1/(t!u!v!) factorial, and m^B absorbs only the 1/(t'!u'!v'!) factorial.

Intended to run side-by-side with the S-function engine for cross-validation and benchmarking.

Constructor & Destructor Documentation

◆ CartesianInteractions() [1/2]

occ::mults::CartesianInteractions::CartesianInteractions ( )
default

◆ CartesianInteractions() [2/2]

occ::mults::CartesianInteractions::CartesianInteractions ( const Config config)
explicit

Member Function Documentation

◆ compute_interaction_energy() [1/2]

double occ::mults::CartesianInteractions::compute_interaction_energy ( const occ::dma::Mult mult1,
const Vec3 pos1,
const Mat3 rot1,
const occ::dma::Mult mult2,
const Vec3 pos2,
const Mat3 rot2 
) const

Body-frame variant: multipoles defined in body frame, rotated to lab.

Parameters
rot1Rotation matrix for molecule 1 (body to lab)
rot2Rotation matrix for molecule 2 (body to lab)

◆ compute_interaction_energy() [2/2]

double occ::mults::CartesianInteractions::compute_interaction_energy ( const occ::dma::Mult mult1,
const Vec3 pos1,
const occ::dma::Mult mult2,
const Vec3 pos2 
) const

Compute electrostatic interaction energy between two multipoles.

Parameters
mult1First multipole distribution (spherical, Stone convention)
pos1Position of first multipole
mult2Second multipole distribution
pos2Position of second multipole
Returns
Interaction energy in atomic units

◆ config()

const Config & occ::mults::CartesianInteractions::config ( ) const
inline

The documentation for this class was generated from the following file: