Electron system based on Gaussian type orbitals.
More...
#include <gaussiansystem.h>
|
| GaussianSystem () |
|
virtual double | coupledIntegral (int p, int q, int r, int s) |
|
virtual double | uncoupledIntegral (int p, int q) |
|
virtual double | overlapIntegral (int p, int q) |
|
virtual uint | nBasisFunctions () |
|
virtual uint | nParticles () |
|
virtual double | additionalEnergyTerms () |
|
double | corePotential (const Vector3 &position) |
|
double | electronDensity (const mat &C, const Vector3 &position) const |
|
rowvec | orbitalDensities (const mat &C, const Vector3 &position) const |
|
void | addCore (const GaussianCore &core) |
|
double | electronPotential (const mat &C, const Vector3 position) |
|
double | electronPotential (uint p, uint q, const Vector3 &position) |
|
double | electrostaticPotential (const Vector3 &position) |
|
double | electrostaticPotential (const mat &C, const Vector3 &position) |
|
| ElectronSystem () |
|
virtual uint | nParticlesUp () |
|
virtual uint | nParticlesDown () |
|
void | setNParticlesDown (uint nParticlesDown) |
|
Electron system based on Gaussian type orbitals.
Definition at line 14 of file gaussiansystem.h.
GaussianSystem::GaussianSystem |
( |
) | |
|
Definition at line 21 of file gaussiansystem.cpp.
24 m_angularMomentumMax(0),
28 m_electronInteractionIntegral(0)
Definition at line 222 of file gaussiansystem.cpp.
227 m_cores.push_back(core);
228 int angularMomentumMax = 0;
231 angularMomentumMax = max(angularMomentumMax, primitive.xExponent());
232 angularMomentumMax = max(angularMomentumMax, primitive.yExponent());
233 angularMomentumMax = max(angularMomentumMax, primitive.zExponent());
double GaussianSystem::additionalEnergyTerms |
( |
) | |
|
|
virtual |
Implements ElectronSystem.
Definition at line 100 of file gaussiansystem.cpp.
103 for(uint i = 0; i < m_cores.size(); i++) {
105 for(uint j = i + 1; j < m_cores.size(); j++) {
double GaussianSystem::corePotential |
( |
const Vector3 & |
position) | |
|
Definition at line 121 of file gaussiansystem.cpp.
123 double potential = 0;
125 Vector3 diff = position - core.position();
126 double distance = sqrt(
dot(diff, diff));
127 potential += core.charge() / distance;
double GaussianSystem::coupledIntegral |
( |
int |
p, |
|
|
int |
q, |
|
|
int |
r, |
|
|
int |
s |
|
) |
| |
|
virtual |
double GaussianSystem::electronDensity |
( |
const mat & |
C, |
|
|
const Vector3 & |
position |
|
) |
| const |
double GaussianSystem::electronPotential |
( |
const mat & |
C, |
|
|
const Vector3 |
position |
|
) |
| |
Definition at line 132 of file gaussiansystem.cpp.
135 for(uint p = 0; p < (m_basisFunctions.size()); p++) {
137 for(uint orbital = 0; orbital < C.n_cols; orbital++) {
138 result += C(p, orbital) * C(p,orbital) * potential;
140 for(uint q = p+1; q < (m_basisFunctions.size()); q++) {
142 for(uint orbital = 0; orbital < C.n_cols; orbital++) {
143 result += 2.0 * C(p, orbital) * C(q, orbital) * potential;
double GaussianSystem::electronPotential |
( |
uint |
p, |
|
|
uint |
q, |
|
|
const Vector3 & |
position |
|
) |
| |
double GaussianSystem::electrostaticPotential |
( |
const Vector3 & |
position) | |
|
double GaussianSystem::electrostaticPotential |
( |
const mat & |
C, |
|
|
const Vector3 & |
position |
|
) |
| |
uint GaussianSystem::nBasisFunctions |
( |
) | |
|
|
virtual |
uint GaussianSystem::nParticles |
( |
) | |
|
|
virtual |
rowvec GaussianSystem::orbitalDensities |
( |
const mat & |
C, |
|
|
const Vector3 & |
position |
|
) |
| const |
Definition at line 182 of file gaussiansystem.cpp.
184 rowvec result = zeros(C.n_cols);
185 for(uint p = 0; p < (m_basisFunctions.size()); p++) {
187 double evaluationp = bfp.
evaluated(position);
188 for(uint orbital = 0; orbital < C.n_cols; orbital++) {
189 result(orbital) += C(p,orbital) * C(p,orbital) * evaluationp * evaluationp;
191 for(uint q = p+1; q < (m_basisFunctions.size()); q++) {
193 double evaluationq = bfq.
evaluated(position);
194 for(uint orbital = 0; orbital < C.n_cols; orbital++) {
195 result(orbital) += 2.0 * C(p,orbital) * C(q,orbital) * evaluationp * evaluationq;
double GaussianSystem::overlapIntegral |
( |
int |
p, |
|
|
int |
q |
|
) |
| |
|
virtual |
void GaussianSystem::setAngularMomentumMax |
( |
int |
angularMomentumMax) | |
|
|
protected |
double GaussianSystem::uncoupledIntegral |
( |
int |
p, |
|
|
int |
q |
|
) |
| |
|
virtual |
The documentation for this class was generated from the following files:
- /home/svenni/Dropbox/projects/programming/hartree-fock/hartree-fock/src/electronsystems/gaussian/gaussiansystem.h
- /home/svenni/Dropbox/projects/programming/hartree-fock/hartree-fock/src/electronsystems/gaussian/gaussiansystem.cpp