Builds filtered S-function term lists from multipole pairs.
More...
#include <sfunction_term_builder.h>
|
| static int | get_total_term_count (int rank1, int rank2) |
| | Get expected term count for full interaction (no filtering).
|
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.
◆ SFunctionTermListBuilder()
| occ::mults::SFunctionTermListBuilder::SFunctionTermListBuilder |
( |
int | max_rank = 4, |
|
|
double | tolerance = 1e-12 ) |
|
explicit |
- Parameters
-
| max_rank | Maximum multipole rank (0-5) |
| tolerance | Threshold below which multipole components are zero |
◆ build_electrostatic_terms()
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
-
| mult1 | Multipole at site A |
| mult2 | Multipole at site B |
| max_interaction_rank | Maximum l1+l2 to include (-1 = no limit) |
- Returns
- Filtered list of non-zero terms
◆ get_total_term_count()
| int occ::mults::SFunctionTermListBuilder::get_total_term_count |
( |
int | rank1, |
|
|
int | rank2 ) |
|
static |
Get expected term count for full interaction (no filtering).
- Parameters
-
| rank1 | Max rank of multipole 1 |
| rank2 | Max rank of multipole 2 |
- Returns
- Total possible terms for this rank pair
The documentation for this class was generated from the following file: