QCMndo Class Reference

#include <QCMndo.hpp>

Inheritance diagram for QCMndo:

Inheritance graph
[legend]
List of all members.

Detailed Description

Class of the semi-empirical quantum model MNDO.

Class of the semi-empirical quantum model MNDO :
Modiflied Neglect of Diatomic Overlap.

Definition at line 39 of file QCMndo.hpp.

Public Member Functions

template<class TPManager>
QCFloat computeCoreEnergy (TPManager &manager, typename TPManager::TSystem::QCIterator &iter)
template<class TPIterator>
QCFloat computeElecEnergy (TPIterator &workingSystem, QCDensityGtr< QCSymMatrix > &QCRestrict densityP)
template<class TPIterator>
QCFloat computeElecEnergy (TPIterator &workingSystem, QCDensityGtr< QCSymMatrix > &__restrict__ densityP)
template<class TPManager>
void deriveCoreEnergy (TPManager &manager, typename TPManager::TSystem::QCIterator &workingSystem, QCFloat *QCRestrict dRepIntegralSSVector)
template<class TPManager>
void deriveCoreEnergy (TPManager &manager, typename TPManager::TSystem::QCIterator &workingSystem, QCFloat *__restrict__ dRepIntegralSSVector)
template<class TPManager>
void deriveElecEnergy (TPManager &manager, typename TPManager::TSystem::QCIterator &workingSystem, const QCPoint3D &shift, QCFloat *QCRestrict dRepIntegralSSVector)
template<class TPManager>
void deriveElecEnergy (TPManager &manager, typename TPManager::TSystem::QCIterator &workingSystem, const QCPoint3D &shift, QCFloat *__restrict__ dRepIntegralSSVector)
void dispatchDerivative (QCSystem &system, QCFloat deOnDxj, QCFloat deOnDyj, QCFloat deOnDzj, int i, int j)
 QCMndo (const int &nbAOsp, const int &nbAOspd)
virtual ~QCMndo (void)

Static Public Attributes

static const int NbMaxAtomTypes = 83
static const int NbMaxOrbTypes = 3

Protected Member Functions

bool isOHorNH (int atomicNbX, int atomicNbY)
QCFloat sometimesR (int atomicNbX, int atomicNbY, const QCFloat &rAB)


Constructor & Destructor Documentation

QCMndo::QCMndo const int &  nbAOsp,
const int &  nbAOspd
 

Definition at line 61 of file QCMndo.cpp.

QCMndo::~QCMndo void   )  [virtual]
 

Definition at line 71 of file QCMndo.cpp.


Member Function Documentation

template<class TPManager>
QCFloat QCMndo::computeCoreEnergy TPManager &  manager,
typename TPManager::TSystem::QCIterator &  iter
 

Calculation of the core-core repulsion

Definition at line 84 of file QCMndo.cpp.

References QC_ONE, QC_ZERO, QCExp, and QCRestrict.

template<class TPIterator>
QCFloat QCMndo::computeElecEnergy TPIterator &  workingSystem,
QCDensityGtr< QCSymMatrix > &QCRestrict  densityP
 

Calcul de l'energie electronique a partir de P, H et F

FIXME

Definition at line 179 of file QCMndo.cpp.

References QC_HALF, QC_TRACE_ENER, and QC_ZERO.

template<class TPIterator>
QCFloat QCMndo::computeElecEnergy TPIterator &  workingSystem,
QCDensityGtr< QCSymMatrix > &__restrict__  densityP
 

Calculation of the electronic energy

template<class TPManager>
void QCMndo::deriveCoreEnergy TPManager &  manager,
typename TPManager::TSystem::QCIterator &  workingSystem,
QCFloat *QCRestrict  dRepIntegralSSVector
 

Definition at line 544 of file QCMndo.cpp.

References COORDX, COORDY, COORDZ, dispatchDerivative(), QCGeneralData::getDeltaQ(), isOHorNH(), QC_ONE, QC_TWO, QC_ZERO, QCExp, and QCRestrict.

Here is the call graph for this function:

template<class TPManager>
void QCMndo::deriveCoreEnergy TPManager &  manager,
typename TPManager::TSystem::QCIterator &  workingSystem,
QCFloat *__restrict__  dRepIntegralSSVector
 

template<class TPManager>
void QCMndo::deriveElecEnergy TPManager &  manager,
typename TPManager::TSystem::QCIterator &  workingSystem,
const QCPoint3D shift,
QCFloat *QCRestrict  dRepIntegralSSVector
 

Definition at line 228 of file QCMndo.cpp.

References COORDX, COORDY, COORDZ, dispatchDerivative(), QCGeneralData::getDerivationType(), QC_FOUR, QC_HALF, QC_TWO, QC_ZERO, QCRestrict, QCModel::spdWorkingAB, QCModel::spWorkingAA, QCModel::spWorkingAB, and QCModel::spWorkingBB.

Here is the call graph for this function:

template<class TPManager>
void QCMndo::deriveElecEnergy TPManager &  manager,
typename TPManager::TSystem::QCIterator &  workingSystem,
const QCPoint3D shift,
QCFloat *__restrict__  dRepIntegralSSVector
 

void QCMndo::dispatchDerivative QCSystem system,
QCFloat  deOnDxj,
QCFloat  deOnDyj,
QCFloat  deOnDzj,
int  i,
int  j
 

Definition at line 708 of file QCMndo.cpp.

References QCAtoms::incrXDisp(), QCAtoms::incrYDisp(), QCAtoms::incrZDisp(), and QC_ZERO.

Referenced by deriveCoreEnergy(), and deriveElecEnergy().

Here is the call graph for this function:

bool QCMndo::isOHorNH int  atomicNbX,
int  atomicNbY
[inline, protected]
 

Return true if X-Y is a O-H or a N-H bound

Definition at line 118 of file QCMndo.hpp.

Referenced by deriveCoreEnergy(), and sometimesR().

QCFloat QCMndo::sometimesR int  atomicNbX,
int  atomicNbY,
const QCFloat rAB
[inline, protected]
 

Function used in the calculation of the core-core repulsion energy. An r appears in that equation for the MNDO, AM1 and PM3 approaches in the case of O-H or N-H bounds

Definition at line 128 of file QCMndo.hpp.

References isOHorNH(), and QC_ONE.

Here is the call graph for this function:


Member Data Documentation

const int QCMndo::NbMaxAtomTypes = 83 [static]
 

The maximum atomic number of recognized atoms. It's 83, that means that actually, we can write in the input file atoms which atomic number belongs to [1; 83].

Definition at line 161 of file QCMndo.hpp.

const int QCMndo::NbMaxOrbTypes = 3 [static]
 

The maximum number of type of described orbitals. It's 3 for s, p and d atomic orbitals. Actually, we only use s and p. d will be used in MNDO/d.

Definition at line 155 of file QCMndo.hpp.


The documentation for this class was generated from the following files:
Generated on Sat Jan 28 21:07:34 2006 for QC++ by  doxygen 1.4.4