8 #ifndef SPARROW_CHARGESEPARATIONPARAMETER_H
9 #define SPARROW_CHARGESEPARATIONPARAMETER_H
52 void computeFromExponents(
unsigned int ns,
unsigned int np,
unsigned int nd,
double zs,
double zp,
double zd);
59 void set(MultipolePair type,
double value);
65 double get(MultipolePair type)
const;
69 long long factorial(
long long n)
const;
71 double A(
unsigned int n1,
unsigned int n2,
double z1,
double z2,
int L)
const;
72 std::array<double, 5> D_;
76 using Underlying = std::underlying_type<nddo::multipole::MultipolePair>::type;
77 D_[
static_cast<Underlying
>(type)] = value;
81 using Underlying = std::underlying_type<nddo::multipole::MultipolePair>::type;
82 return D_[
static_cast<Underlying
>(type)];
89 #endif // SPARROW_CHARGESEPARATIONPARAMETER_H
void computeFromExponents(unsigned int ns, unsigned int np, double zs, double zp)
calculates the charge separation from the main quantum numbers and the orbital exponents of s and p o...
Definition: ChargeSeparationParameter.cpp:24
void set(MultipolePair type, double value)
sets the value of a charge separation for a given multipole type
Definition: ChargeSeparationParameter.h:75
double get(MultipolePair type) const
gets the value corresponding to one of the multipolescharge configuration.
Definition: ChargeSeparationParameter.h:80
ChargeSeparationParameter()
constructor, resets the charge separation array to zero.
Definition: ChargeSeparationParameter.cpp:18
Charge separation D of semi-empirical models. It describes the separation between two charges of oppo...
Definition: ChargeSeparationParameter.h:29