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()
| static 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: