File MultipoleMultipoleInteraction.h¶
- Copyright
This code is licensed under the 3-clause BSD license.
Copyright ETH Zurich, Laboratory for Physical Chemistry, Reiher Group.
See LICENSE.txt for details.
-
namespace
Scine -
namespace
Sparrow -
namespace
nddo -
namespace
multipole -
class
MultipoleMultipoleInteraction - #include <MultipoleMultipoleInteraction.h>
This header-only class performs the actual calculation of the multipole-multipole interaction.
First all the charge-charge configurations between two multipoles (MultipoleMultipoleTerm) are inferred and stored in a list, then they are calculated by calling MultipoleMultipoleTerm::calculate(…)
Public Functions
-
template<Utils::derivOrder
O>
Utils::AutomaticDifferentiation::Value1DType<O>calculate(double R, double D1, double d2, double squaredRhos) const calculates the complete interaction between two multipoles whose single interactions have been stored in the private member std::list<MultipoleMultipoleTerms> terms_
- 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: order of the desired derivative, for the value this is 0.
- Parameters
R: the distance between the centers of the multipolesD1: the charge separation on the first multipoled2: the charge separation on the second multipolesquaredRhos: the KlopmanOhno parameters to compute the repulsion in the Klopman approximation
-
void
add(const MultipoleMultipoleTerm &m) add an interaction between two charges in the multipoles to the total interaction
- Parameters
m: a MultipoleMultipoleTerm, i.e. a configuration of two charges in two multipoles to be calulated
-
unsigned int
size() const gets the current size of the std::list<MultipoleMultipoleTerm> containing the charge configurations
Private Members
-
std::list<MultipoleMultipoleTerm>
terms_¶
-
template<Utils::derivOrder
-
class
-
namespace
-
namespace
-
namespace