occ
Loading...
Searching...
No Matches
occ::dma Namespace Reference

Classes

class  AnalyticalIntegrator
 Handles analytical calculation of multipole moments using Gauss-Hermite quadrature. More...
 
class  BinomialCoefficients
 Class to compute and store binomial coefficients. More...
 
class  DMACalculator
 
struct  DMAResult
 
struct  DMASettings
 
struct  DMASites
 
class  GridIntegrator
 Handles numerical integration on grids. More...
 
struct  LinearDMASettings
 Settings for linear multipole analysis. More...
 
class  LinearMultipoleCalculator
 Calculator for distributed multipole analysis of linear molecules. More...
 
class  LinearMultipoleShifter
 Handles 1D multipole shifting operations along a single axis. More...
 
struct  Mult
 
class  MultipoleCalculator
 Main calculator for multipole moments. More...
 
class  MultipoleShifter
 

Functions

void addqlm (int l, int lmax, double f, Eigen::Ref< const Vec > gx, Eigen::Ref< const Vec > gy, Eigen::Ref< const Vec > gz, Mult &out)
 
void addql0 (int l, double f, Eigen::Ref< const Vec > gx, Eigen::Ref< const Vec > gy, Eigen::Ref< const Vec > gz, Mult &out)
 
Vec gauss_hermite_points (int n)
 
Vec gauss_hermite_weights (int n)
 
void shiftz (const Mult &source, int l1, int m1, Mult &destination, int m2, double displacement)
 Convenience function for 1D multipole shifting.
 
void movez (Mult &multipoles, double position, const Mat3N &site_positions, const Vec &site_radii, const IVec &site_limits, std::vector< Mult > &site_multipoles, int max_rank)
 Convenience function for moving multipoles to sites along an axis.
 
void solid_harmonics (Eigen::Ref< const Vec3 > pos, int j, Eigen::Ref< Vec > r)
 

Function Documentation

◆ addql0()

void occ::dma::addql0 ( int  l,
double  f,
Eigen::Ref< const Vec gx,
Eigen::Ref< const Vec gy,
Eigen::Ref< const Vec gz,
Mult out 
)

◆ addqlm()

void occ::dma::addqlm ( int  l,
int  lmax,
double  f,
Eigen::Ref< const Vec gx,
Eigen::Ref< const Vec gy,
Eigen::Ref< const Vec gz,
Mult out 
)

◆ gauss_hermite_points()

Vec occ::dma::gauss_hermite_points ( int  n)

◆ gauss_hermite_weights()

Vec occ::dma::gauss_hermite_weights ( int  n)

◆ movez()

void occ::dma::movez ( Mult multipoles,
double  position,
const Mat3N site_positions,
const Vec site_radii,
const IVec site_limits,
std::vector< Mult > &  site_multipoles,
int  max_rank 
)

Convenience function for moving multipoles to sites along an axis.

Parameters
multipolesMultipole moments to be moved
positionSource position along the axis
site_positionsMatrix of site positions
site_radiiVector of site radii
site_limitsVector of maximum rank for each site
site_multipolesVector of multipoles at each site
max_rankMaximum multipole rank

◆ shiftz()

void occ::dma::shiftz ( const Mult source,
int  l1,
int  m1,
Mult destination,
int  m2,
double  displacement 
)

Convenience function for 1D multipole shifting.

Parameters
sourceSource multipoles
l1Minimum rank to shift
m1Maximum rank to shift from source
destinationDestination multipoles
m2Maximum rank to keep at destination
displacementDisplacement along the axis

◆ solid_harmonics()

void occ::dma::solid_harmonics ( Eigen::Ref< const Vec3 pos,
int  j,
Eigen::Ref< Vec r 
)