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

Builds filtered S-function term lists from multipole pairs. More...

#include <sfunction_term_builder.h>

Public Member Functions

 SFunctionTermListBuilder (int max_rank=4, double tolerance=1e-12)
 
SFunctionTermList build_electrostatic_terms (const occ::dma::Mult &mult1, const occ::dma::Mult &mult2, int max_interaction_rank=-1) const
 Build term list for electrostatic interaction.
 

Static Public Member Functions

static int get_total_term_count (int rank1, int rank2)
 Get expected term count for full interaction (no filtering)
 

Detailed Description

Builds filtered S-function term lists from multipole pairs.

Implements Orient's optimization: only include terms where Q(t1)*Q(t2) != 0 This typically skips 75-85% of terms for hexadecapole interactions.

Constructor & Destructor Documentation

◆ SFunctionTermListBuilder()

occ::mults::SFunctionTermListBuilder::SFunctionTermListBuilder ( int  max_rank = 4,
double  tolerance = 1e-12 
)
explicit
Parameters
max_rankMaximum multipole rank (0-5)
toleranceThreshold below which multipole components are zero

Member Function Documentation

◆ build_electrostatic_terms()

SFunctionTermList occ::mults::SFunctionTermListBuilder::build_electrostatic_terms ( const occ::dma::Mult mult1,
const occ::dma::Mult mult2,
int  max_interaction_rank = -1 
) const

Build term list for electrostatic interaction.

Only includes terms where:

  • abs(q1[t1]) > tolerance AND abs(q2[t2]) > tolerance
  • l1 + l2 <= max_interaction_rank (if specified)
Parameters
mult1Multipole at site A
mult2Multipole at site B
max_interaction_rankMaximum l1+l2 to include (-1 = no limit)
Returns
Filtered list of non-zero terms

◆ get_total_term_count()

static int occ::mults::SFunctionTermListBuilder::get_total_term_count ( int  rank1,
int  rank2 
)
static

Get expected term count for full interaction (no filtering)

Parameters
rank1Max rank of multipole 1
rank2Max rank of multipole 2
Returns
Total possible terms for this rank pair

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