occ
Loading...
Searching...
No Matches
cartesian_kernels.h File Reference
Include dependency graph for cartesian_kernels.h:
This graph shows which files directly or indirectly include this file:

Classes

struct  occ::mults::kernel_detail::TUV
 (t, u, v) tuple stored for each hermite index. More...
 
struct  occ::mults::kernel_detail::TUVTable< MaxL >
 Build the index-to-(t,u,v) table for all ranks up to MaxL at compile time. More...
 
struct  occ::mults::kernel_detail::WeightTable< MaxL >
 Precomputed weight table: (-1)^l / (t! u! v!) for site A, and 1 / (t! u! v!) for site B. More...
 
struct  occ::mults::kernel_detail::HermiteAddTable< MaxL >
 Precomputed hermite_index addition tables for contraction hot paths. More...
 
struct  occ::mults::kernel_detail::EnergyGradient
 Lightweight energy + gradient result (no Eigen dependency). More...
 
struct  occ::mults::EnergyForceFields
 Combined energy+force+fields kernel. More...
 

Namespaces

namespace  occ
 
namespace  occ::mults
 
namespace  occ::mults::kernel_detail
 

Functions

constexpr double occ::mults::kernel_detail::fact (int n)
 Factorial lookup (sufficient for max index 8).
 
template<int Order>
double occ::mults::contract_ranked (const CartesianMultipole< 4 > &A, int rankA, const InteractionTensor< Order > &T, const CartesianMultipole< 4 > &B, int rankB)
 Preweighted contraction: compute energy for multipoles with known ranks.
 
template<int Order>
kernel_detail::EnergyGradient occ::mults::contract_ranked_with_force (const CartesianMultipole< 4 > &A, int rankA, const InteractionTensor< Order+1 > &T, const CartesianMultipole< 4 > &B, int rankB)
 Preweighted contraction with force: compute energy AND gradient dE/dR.
 
template<int Order, bool OtherSigned = false>
void occ::mults::compute_interaction_field (int rankLocal, const InteractionTensor< Order > &T, const CartesianMultipole< 4 > &other, int rankOther, CartesianMultipole< 4 > &field)
 Compute per-site interaction field at a local site from another site's multipoles.
 
template<int HigherOrder, bool OtherSigned = false>
void occ::mults::compute_interaction_field_from_tensor (int rankLocal, const InteractionTensor< HigherOrder > &T, const CartesianMultipole< 4 > &other, int rankOther, CartesianMultipole< 4 > &field)
 Compute interaction field from a pre-computed T-tensor of higher order.
 
template<int Order>
EnergyForceFields occ::mults::compute_pair_ef_and_fields (const CartesianMultipole< 4 > &cartA, int rankA, const CartesianMultipole< 4 > &cartB, int rankB, double Rx, double Ry, double Rz)
 

Variables

constexpr TUVTable< 4 > occ::mults::kernel_detail::tuv4 {}
 Global constexpr table for MaxL=4 (35 entries) and MaxL=8 (165 entries).
 
constexpr TUVTable< 8 > occ::mults::kernel_detail::tuv8 {}
 
constexpr WeightTable< 4 > occ::mults::kernel_detail::weights4 {}
 
constexpr HermiteAddTable< 4 > occ::mults::kernel_detail::add_table4 {}