Class Scine::Sparrow::nddo::multipole::MultipoleMultipoleInteractionContainer¶
-
class
MultipoleMultipoleInteractionContainer
¶ This class keeps a list of terms of charge-charge-interactions for a pair of multipoles.
All the possible interactions can be stored in a 13x13 matrix, as there are 13 multipole types: 1 monopole, 3 dipoles, 3 linear quadrupoles, 3 square quadrupoles with charges between the axis, 3 square quadrupoles with charges along the axis.
Public Types
-
using
InteractionLists
= std::array<std::array<MultipoleMultipoleInteraction, 13>, 13>¶ InteractionLists is the matrix storing the 13x13 possible interactions.
Public Static Functions
-
template<Utils::derivOrder
O
>
static Utils::AutomaticDifferentiation::Value1DType<O>calculate
(multipole_t m1, multipole_t m2, double R, double D1, double d2, double squaredRhos)¶ this function calculates all the possible interactions between the two multipoles m1 and m2
- Return
an Utils::AutomaticDifferentiation::Value1D<O>, i.e. a collection of all the derivative orders up to the O-th for a 1-dimensional object
- Template Parameters
O
: The order of the derivative required
- Parameters
m1
: The first multipolem2
: The second multipoleR
: The distance between the two multipole centersD1
: The charge separation in the first multipoled2
: The charge separation in the second multipolesquaredRhos
: The squared Klopman-Ohno parameters
-
const MultipoleMultipoleInteraction &
get
(multipole_t m1, multipole_t m2)¶ The function generated the list of multipole interactions statically, and then returns a MultipoleMultipoleInteraction object with these two multipoles.
-
using