Kindfield
 All Classes Namespaces Files Functions Variables Enumerations Enumerator Properties Friends Pages
Public Member Functions | Protected Attributes | List of all members
GaussianElectronInteractionIntegral Class Reference

#include <gaussianelectroninteractionintegral.h>

Collaboration diagram for GaussianElectronInteractionIntegral:
Collaboration graph
[legend]

Public Member Functions

 GaussianElectronInteractionIntegral (int singleAngularMomentumMax)
 
 ~GaussianElectronInteractionIntegral ()
 
void reset (int singleAngularMomentumMax)
 
void set (const Vector3 &corePositionA, const Vector3 &corePositionB, const Vector3 &corePositionC, const Vector3 &corePositionD, const GaussianPrimitiveOrbital &primitiveA, const GaussianPrimitiveOrbital &primitiveB, const GaussianPrimitiveOrbital &primitiveC, const GaussianPrimitiveOrbital &primitiveD)
 
void setAB (const Vector3 &corePositionA, const Vector3 &corePositionB, const GaussianPrimitiveOrbital &primitiveA, const GaussianPrimitiveOrbital &primitiveB)
 
void setCD (const Vector3 &corePositionC, const Vector3 &corePositionD, const GaussianPrimitiveOrbital &primitiveC, const GaussianPrimitiveOrbital &primitiveD)
 
double electronInteractionIntegral (int iA, int jA, int kA, int iB, int jB, int kB, int iC, int jC, int kC, int iD, int jD, int kD)
 
double electronInteractionIntegral (const GaussianPrimitiveOrbital &primitiveA, const GaussianPrimitiveOrbital &primitiveB, const GaussianPrimitiveOrbital &primitiveC, const GaussianPrimitiveOrbital &primitiveD)
 

Protected Attributes

HermiteIntegral m_hermiteIntegral
 
HermiteExpansionCoefficient m_hermiteExpansionCoefficientAB
 
HermiteExpansionCoefficient m_hermiteExpansionCoefficientCD
 
int m_angularMomentumMax
 
Vector3 m_centerOfMassP
 
Vector3 m_centerOfMassQ
 
double m_exponentP
 
double m_exponentQ
 
const GaussianPrimitiveOrbitalm_primitiveA
 
const GaussianPrimitiveOrbitalm_primitiveB
 
const GaussianPrimitiveOrbitalm_primitiveC
 
const GaussianPrimitiveOrbitalm_primitiveD
 

Detailed Description

Definition at line 14 of file gaussianelectroninteractionintegral.h.

Constructor & Destructor Documentation

GaussianElectronInteractionIntegral::GaussianElectronInteractionIntegral ( int  singleAngularMomentumMax)

Definition at line 8 of file gaussianelectroninteractionintegral.cpp.

8  :
9  m_hermiteIntegral(4 * singleAngularMomentumMax),
10  m_hermiteExpansionCoefficientAB(singleAngularMomentumMax+1),
11  m_hermiteExpansionCoefficientCD(singleAngularMomentumMax+1)
12 {
13  reset(singleAngularMomentumMax);
14 }
GaussianElectronInteractionIntegral::~GaussianElectronInteractionIntegral ( )

Definition at line 71 of file gaussianelectroninteractionintegral.cpp.

72 {
73 }

Member Function Documentation

double GaussianElectronInteractionIntegral::electronInteractionIntegral ( int  iA,
int  jA,
int  kA,
int  iB,
int  jB,
int  kB,
int  iC,
int  jC,
int  kC,
int  iD,
int  jD,
int  kD 
)

Definition at line 85 of file gaussianelectroninteractionintegral.cpp.

88  {
89  double result = 0;
90  double p = m_exponentP;
91  double q = m_exponentQ;
92 
96  int tMax = iA + iB;
97  int uMax = jA + jB;
98  int vMax = kA + kB;
99  int tauMax = iC + iD;
100  int nuMax = jC + jD;
101  int phiMax = kC + kD;
102  for (int t = 0; t < tMax + 1; ++t) {
103  for (int u = 0; u < uMax + 1; ++u) {
104  for (int v = 0; v < vMax + 1; ++v) {
105  for (int tau = 0; tau < tauMax + 1; ++tau) {
106  for (int nu = 0; nu < nuMax + 1; ++nu) {
107  for (int phi = 0; phi < phiMax + 1; ++phi) {
108  double product = 1;
109  product *= Eab(iA, jA, kA, iB, jB, kB, t, u, v);
110  product *= Ecd(iC, jC, kC, iD, jD, kD, tau, nu, phi);
111 // product *= pow(-1, tau + nu + phi);
112  product *= (1 - 2*((tau + nu + phi) % 2));
113  product *= R(0, t + tau, u + nu, v + phi);
114  result += product;
115  }
116  }
117  }
118  }
119  }
120  }
121 
122  result *= 2 * pow(M_PI, 5.0/2.0) / (p*q*sqrt(p + q));
123 
124  return result;
125 }
double GaussianElectronInteractionIntegral::electronInteractionIntegral ( const GaussianPrimitiveOrbital primitiveA,
const GaussianPrimitiveOrbital primitiveB,
const GaussianPrimitiveOrbital primitiveC,
const GaussianPrimitiveOrbital primitiveD 
)

Definition at line 75 of file gaussianelectroninteractionintegral.cpp.

78  {
79  return electronInteractionIntegral(primitiveA.xExponent(), primitiveA.yExponent(), primitiveA.zExponent(),
80  primitiveB.xExponent(), primitiveB.yExponent(), primitiveB.zExponent(),
81  primitiveC.xExponent(), primitiveC.yExponent(), primitiveC.zExponent(),
82  primitiveD.xExponent(), primitiveD.yExponent(), primitiveD.zExponent());
83 }
void GaussianElectronInteractionIntegral::reset ( int  singleAngularMomentumMax)

Definition at line 16 of file gaussianelectroninteractionintegral.cpp.

17 {
18  m_hermiteIntegral.reset(4*singleAngularMomentumMax+1);
19  m_hermiteExpansionCoefficientAB.reset(singleAngularMomentumMax+1);
20  m_hermiteExpansionCoefficientCD.reset(singleAngularMomentumMax+1);
21 }
void GaussianElectronInteractionIntegral::set ( const Vector3 corePositionA,
const Vector3 corePositionB,
const Vector3 corePositionC,
const Vector3 corePositionD,
const GaussianPrimitiveOrbital primitiveA,
const GaussianPrimitiveOrbital primitiveB,
const GaussianPrimitiveOrbital primitiveC,
const GaussianPrimitiveOrbital primitiveD 
)

Definition at line 23 of file gaussianelectroninteractionintegral.cpp.

24 {
25  setAB(corePositionA, corePositionB, primitiveA, primitiveB);
26  setCD(corePositionC, corePositionD, primitiveC, primitiveD);
27 }
void GaussianElectronInteractionIntegral::setAB ( const Vector3 corePositionA,
const Vector3 corePositionB,
const GaussianPrimitiveOrbital primitiveA,
const GaussianPrimitiveOrbital primitiveB 
)

Definition at line 29 of file gaussianelectroninteractionintegral.cpp.

31 {
32  m_primitiveA = &primitiveA;
33  m_primitiveB = &primitiveB;
34  double a = primitiveA.exponent();
35  double b = primitiveB.exponent();
36  double p = a + b;
37  m_exponentP = p;
38  Vector3 P = (a * corePositionA + b * corePositionB) / (a + b);
39  m_centerOfMassP = P;
40  m_hermiteExpansionCoefficientAB.set(a, b, corePositionA, corePositionB,
41  primitiveA.xExponent(), primitiveB.xExponent(),
42  primitiveA.yExponent(), primitiveB.yExponent(),
43  primitiveA.zExponent(), primitiveB.zExponent());
44 }
void GaussianElectronInteractionIntegral::setCD ( const Vector3 corePositionC,
const Vector3 corePositionD,
const GaussianPrimitiveOrbital primitiveC,
const GaussianPrimitiveOrbital primitiveD 
)

Definition at line 46 of file gaussianelectroninteractionintegral.cpp.

48 {
49  m_primitiveC = &primitiveC;
50  m_primitiveD = &primitiveD;
51  double c = primitiveC.exponent();
52  double d = primitiveD.exponent();
53  double p = m_exponentP;
54  double q = c + d;
55  m_exponentQ = q;
57  Vector3 Q = (c * corePositionC + d * corePositionD) / (c + d);
58  m_centerOfMassQ = Q;
59  Vector3 PQ = P - Q;
60  double alpha = p*q/(p+q);
64  m_hermiteIntegral.set(alpha, PQ, tPlusTau, uPlusNu, vPlusPhi);
65  m_hermiteExpansionCoefficientCD.set(c, d, corePositionC, corePositionD,
66  primitiveC.xExponent(), primitiveD.xExponent(),
67  primitiveC.yExponent(), primitiveD.yExponent(),
68  primitiveC.zExponent(), primitiveD.zExponent());
69 }

Member Data Documentation

int GaussianElectronInteractionIntegral::m_angularMomentumMax
protected

Definition at line 40 of file gaussianelectroninteractionintegral.h.

Vector3 GaussianElectronInteractionIntegral::m_centerOfMassP
protected

Definition at line 41 of file gaussianelectroninteractionintegral.h.

Vector3 GaussianElectronInteractionIntegral::m_centerOfMassQ
protected

Definition at line 42 of file gaussianelectroninteractionintegral.h.

double GaussianElectronInteractionIntegral::m_exponentP
protected

Definition at line 43 of file gaussianelectroninteractionintegral.h.

double GaussianElectronInteractionIntegral::m_exponentQ
protected

Definition at line 44 of file gaussianelectroninteractionintegral.h.

HermiteExpansionCoefficient GaussianElectronInteractionIntegral::m_hermiteExpansionCoefficientAB
protected

Definition at line 38 of file gaussianelectroninteractionintegral.h.

HermiteExpansionCoefficient GaussianElectronInteractionIntegral::m_hermiteExpansionCoefficientCD
protected

Definition at line 39 of file gaussianelectroninteractionintegral.h.

HermiteIntegral GaussianElectronInteractionIntegral::m_hermiteIntegral
protected

Definition at line 37 of file gaussianelectroninteractionintegral.h.

const GaussianPrimitiveOrbital* GaussianElectronInteractionIntegral::m_primitiveA
protected

Definition at line 46 of file gaussianelectroninteractionintegral.h.

const GaussianPrimitiveOrbital* GaussianElectronInteractionIntegral::m_primitiveB
protected

Definition at line 47 of file gaussianelectroninteractionintegral.h.

const GaussianPrimitiveOrbital* GaussianElectronInteractionIntegral::m_primitiveC
protected

Definition at line 48 of file gaussianelectroninteractionintegral.h.

const GaussianPrimitiveOrbital* GaussianElectronInteractionIntegral::m_primitiveD
protected

Definition at line 49 of file gaussianelectroninteractionintegral.h.


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