8 #ifndef SPARROW_MULTIPOLEMULTIPOLEINTERACTIONCONTAINER_H
9 #define SPARROW_MULTIPOLEMULTIPOLEINTERACTIONCONTAINER_H
31 using InteractionLists = std::array<std::array<MultipoleMultipoleInteraction, 13>, 13>;
45 template<Utils::DerivativeOrder O>
46 static Utils::AutomaticDifferentiation::Value1DType<O>
calculate(Multipole m1, Multipole m2,
double R,
double D1,
47 double d2,
double squaredRhos);
62 return termLists[
static_cast<int>(m1)][static_cast<int>(m2)];
70 #endif // SPARROW_MULTIPOLEMULTIPOLEINTERACTIONCONTAINER_H
This header-only class performs the actual calculation of the multipole-multipole interaction...
Definition: MultipoleMultipoleInteraction.h:29
static const MultipoleMultipoleInteraction & get(Multipole m1, Multipole m2)
The function generated the list of multipole interactions statically, and then returns a MultipoleMul...
Definition: MultipoleMultipoleInteractionContainer.h:60
static Utils::AutomaticDifferentiation::Value1DType< O > calculate(Multipole m1, Multipole m2, double R, double D1, double d2, double squaredRhos)
this function calculates all the possible interactions between the two multipoles m1 and m2 ...
This class keeps a list of terms of charge-charge-interactions for a pair of multipoles.
Definition: MultipoleMultipoleInteractionContainer.h:28
std::array< std::array< MultipoleMultipoleInteraction, 13 >, 13 > InteractionLists
InteractionLists is the matrix storing the 13x13 possible interactions.
Definition: MultipoleMultipoleInteractionContainer.h:31