File ChargeSeparationParameter.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
ChargeSeparationParameter
- #include <ChargeSeparationParameter.h>
Charge separation D of semi-empirical models. It describes the separation between two charges of opposite sign in a multipole.
The calculation of the charge separation is described in Thiel, Voityuk, Theor Chim Acta, 1992, 81, 391. The charge separation are stored ad a static c-array of size 5. The charge separations are ordered as in the nddo::multipole::multipolePair_t enum, i.e. sp1, pd1, pp2, sd2, dd2. ss0, pp0, dd0 are not present as there is no charge separation for them (they are monopoles).
Public Functions
-
ChargeSeparationParameter
() constructor, resets the charge separation array to zero.
-
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 orbitals
- Parameters
ns
: main quantum number of the s orbitalnp
: main quantum number of the p orbitalzs
: orbital exponent of the s orbitalzp
: orbital exponent of the p orbital
-
void
computeFromExponents
(unsigned int ns, unsigned int np, unsigned int nd, double zs, double zp, double zd) calculate the charge separation from the main quantum numbers and the orbital exponents of s, p and d orbitals
- Parameters
ns
: main quantum number of the s orbitalnp
: main quantum number of the p orbitalnd
: main quantum number of the d orbitalzs
: orbital exponent of the s orbitalzp
: orbital exponent of the p orbitalzd
: orbital exponent of the d orbital
-
void
set
(multipolePair_t type, double value) sets the value of a charge separation for a given multipole type
- Parameters
type
: one of the first 5 elements of the nddo::multipole:multipolePair_t enum, corresponding to the dipole and the quadrupole charge configurations. The assignment is not checked.value
: the value of the charge separation parameter
-
double
get
(multipolePair_t type) const gets the value corresponding to one of the multipolescharge configuration.
No check is performed to ensure that no monopolar charge configuration is requested.
Private Functions
-
long long
factorial
(long long n) const¶ Calculates the factorial recursively.
-
double
A
(unsigned int n1, unsigned int n2, double z1, double z2, int L) const¶ Calculates the A factor. It is necessary to calculate the charge separations.
Private Members
-
double
D_
[5]¶
-
-
class
-
namespace
-
namespace
-
namespace