Scine::Sparrow  5.0.0
Library for fast and agile quantum chemical calculations with semiempirical methods.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
Scine::Sparrow::nddo::multipole::MultipoleMultipoleInteraction Class Reference

This header-only class performs the actual calculation of the multipole-multipole interaction. More...

#include <MultipoleMultipoleInteraction.h>

Collaboration diagram for Scine::Sparrow::nddo::multipole::MultipoleMultipoleInteraction:
Collaboration graph

Public Member Functions

template<Utils::DerivativeOrder 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_ More...
 
void add (const MultipoleMultipoleTerm &m)
 add an interaction between two charges in the multipoles to the total interaction More...
 
unsigned int size () const
 gets the current size of the std::list<MultipoleMultipoleTerm> containing the charge configurations
 

Detailed Description

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(...)

Member Function Documentation

void Scine::Sparrow::nddo::multipole::MultipoleMultipoleInteraction::add ( const MultipoleMultipoleTerm m)
inline

add an interaction between two charges in the multipoles to the total interaction

Parameters
ma MultipoleMultipoleTerm, i.e. a configuration of two charges in two multipoles to be calulated
template<Utils::DerivativeOrder O>
Utils::AutomaticDifferentiation::Value1DType<O> Scine::Sparrow::nddo::multipole::MultipoleMultipoleInteraction::calculate ( double  R,
double  D1,
double  d2,
double  squaredRhos 
) const
inline

calculates the complete interaction between two multipoles whose single interactions have been stored in the private member std::list<MultipoleMultipoleTerms> terms_

Template Parameters
Oorder of the desired derivative, for the value this is 0.
Parameters
Rthe distance between the centers of the multipoles
D1the charge separation on the first multipole
d2the charge separation on the second multipole
squaredRhosthe Klopman–Ohno parameters to compute the repulsion in the Klopman approximation
Returns
an Utils::AutomaticDifferentiation::Value1D<O>, i.e. a collection of all the derivative orders up to the O-th for a 1-dimensional object

The documentation for this class was generated from the following file: