|
occ
|
High-level API for multipole electrostatic calculations. More...
#include <multipole_interactions.h>
Classes | |
| struct | Config |
| Configuration for interaction calculations. More... | |
Public Member Functions | |
| MultipoleInteractions () | |
| MultipoleInteractions (const Config &config) | |
| double | compute_esp (const occ::dma::Mult &multipole, const Vec3 &site_position, const Vec3 &eval_point) const |
| Compute electrostatic potential at a point. | |
| std::vector< double > | compute_esp_grid (const occ::dma::Mult &multipole, const Vec3 &site_position, Mat3NConstRef eval_points) const |
| Compute ESP at multiple points (batch) | |
| double | compute_interaction_energy (const occ::dma::Mult &mult1, const Vec3 &pos1, const occ::dma::Mult &mult2, const Vec3 &pos2) const |
| Compute interaction energy between two multipoles. | |
| const Config & | config () const |
| const SFunctionEvaluator & | evaluator () const |
High-level API for multipole electrostatic calculations.
Provides optimized multipole interaction calculations using:
This is the recommended API for production use.
|
inline |
|
explicit |
| double occ::mults::MultipoleInteractions::compute_esp | ( | const occ::dma::Mult & | multipole, |
| const Vec3 & | site_position, | ||
| const Vec3 & | eval_point | ||
| ) | const |
Compute electrostatic potential at a point.
ESP is computed as interaction energy between multipole and unit charge. Uses term filtering to skip zero multipole components.
| multipole | Multipole distribution at site |
| site_position | Position of multipole site |
| eval_point | Position where ESP is evaluated |
| std::vector< double > occ::mults::MultipoleInteractions::compute_esp_grid | ( | const occ::dma::Mult & | multipole, |
| const Vec3 & | site_position, | ||
| Mat3NConstRef | eval_points | ||
| ) | const |
Compute ESP at multiple points (batch)
More efficient than calling compute_esp() in a loop because the term list is built once and reused.
| multipole | Multipole distribution |
| site_position | Position of multipole site |
| eval_points | 3xN matrix where each column is an evaluation point |
| double occ::mults::MultipoleInteractions::compute_interaction_energy | ( | const occ::dma::Mult & | mult1, |
| const Vec3 & | pos1, | ||
| const occ::dma::Mult & | mult2, | ||
| const Vec3 & | pos2 | ||
| ) | const |
Compute interaction energy between two multipoles.
Uses term filtering and batch evaluation for optimal performance. Typically 3-5x faster than naive evaluation for hexadecapole interactions.
| mult1 | First multipole distribution |
| pos1 | Position of first multipole |
| mult2 | Second multipole distribution |
| pos2 | Position of second multipole |
|
inline |
|
inline |