QCModelMatrices Class Reference

#include <QCModelMatrices.hpp>

Inheritance diagram for QCModelMatrices:

Inheritance graph
[legend]
List of all members.

Detailed Description

class QCModelMatrices

Definition at line 39 of file QCModelMatrices.hpp.

Public Member Functions

template<class TPManager>
void allocateMatrices (TPManager &manager, int nbAtomicOrbitals)
template<class TPManager>
void buildMatrices (TPManager &manager, typename TPManager::TSystem::QCIterator &workingSystem)
int *& getDegener (void)
QCDensityGtr< QCSymMatrix > & getDensityP (void)
QCDensityGtr< QCSymMatrix > & getDensityPnm1 (void)
QCDensityGtr< QCSymMatrix > * getDensityPTild (void)
QCOverlapGtr< QCSymMatrix > * getDOverlapSOnDr (void)
QCRepInterElecgetDRepInterElecIntegrals (void)
QCFloat getEigenVal (int idx) const
QCFloat *& getEigenVal (void)
QCMatElemGtr< QCMatrix > & getEigenVectCt (void)
QCFockGtr< QCSymMatrix > & getFockF (void)
QCFockGtr< QCSymMatrix > * getFockFTild (void)
QCHamiltonGtr< QCSymMatrix > & getHamiltonH (void)
QCOverlapGtr< QCSymMatrix > * getOverlapS (void)
QCRepInterElecgetRepInterElecIntegrals (void)
QCDensityGtr< QCSymMatrix > * getWeightedDensityP (void)
template<class TPManager>
void prepareIterations (TPManager &manager)

Protected Member Functions

QCModelMatricesasBase (void)
 QCModelMatrices (void)
virtual ~QCModelMatrices (void)

Protected Attributes

int * degener
QCDensityGtr< QCSymMatrixdensityP
QCDensityGtr< QCSymMatrixdensityPnm1
QCDensityGtr< QCSymMatrix > * densityPTild
QCOverlapGtr< QCSymMatrix > * dOverlapSOnDr
QCRepInterElecdRepInterElecIntgOnDCoord
QCFloateigenVal
QCMatElemGtr< QCMatrixeigenVectCt
QCFockGtr< QCSymMatrixfockF
QCFockGtr< QCSymMatrix > * fockFTild
QCHamiltonGtr< QCSymMatrixhamiltonH
QCOverlapGtr< QCSymMatrix > * overlapS
QCRepInterElecrepInterElecIntegrals
QCDensityGtr< QCSymMatrix > * squareDensityP
QCDensityGtr< QCSymMatrix > * threeIdMDensityP
QCDensityGtr< QCSymMatrix > * weightedDensityP


Constructor & Destructor Documentation

QCModelMatrices::QCModelMatrices void   )  [protected]
 

La matrice est une 16 par 16, ceci est du au fait que pour A et B, on essaie toutes les combinaisons entre les orbitales de A et de B (ss, spx, spy etc...) pour chaque electon.

Definition at line 40 of file QCModelMatrices.cpp.

References overlapS.

QCModelMatrices::~QCModelMatrices void   )  [protected, virtual]
 

Definition at line 71 of file QCModelMatrices.cpp.

References degener, densityPTild, dOverlapSOnDr, dRepInterElecIntgOnDCoord, eigenVal, fockFTild, overlapS, repInterElecIntegrals, squareDensityP, threeIdMDensityP, and weightedDensityP.


Member Function Documentation

template<class TPManager>
void QCModelMatrices::allocateMatrices TPManager &  manager,
int  nbAOofSystem
 

Allocation des matrices denses du systeme

Definition at line 118 of file QCModelMatrices.cpp.

References QCMatElemGtr< TPMatrix >::allocateMatrix(), degener, densityP, densityPnm1, densityPTild, dOverlapSOnDr, dRepInterElecIntgOnDCoord, eigenVal, eigenVectCt, fockF, fockFTild, QCGeneralData::getComputationType(), QCGeneralData::getDerivationType(), QCGeneralData::getMainAlgorithm(), hamiltonH, IdempotFromEnv, overlapS, QC_DC_OPTIMAL_DAMPING, QC_ENERGY_DERIV, QC_NUMERICAL_DERIVATION, QC_OPTIMAL_DAMPING, repInterElecIntegrals, QCMatElemGtr< TPMatrix >::sizeMatrix(), squareDensityP, threeIdMDensityP, and weightedDensityP.

Referenced by QCGlobalSystem< TPSolver >::init().

Here is the call graph for this function:

QCModelMatrices& QCModelMatrices::asBase void   )  [inline, protected]
 

Definition at line 102 of file QCModelMatrices.hpp.

Referenced by QCSubDomain::getMatrices(), and QCGlobalSystem< TPSolver >::getMatrices().

template<class TPManager>
void QCModelMatrices::buildMatrices TPManager &  manager,
typename TPManager::TSystem::QCIterator &  workingSystem
 

This method builds the Overlap matrix (S), the Hamiltonaian (H) and copy H in the Fock Matrix. Also, initialize the density matrix by a diagonal matrix il QC_DENSITY_DIAG is used.

Definition at line 191 of file QCModelMatrices.cpp.

References QCRepInterElec::allocIntgWriter(), QCFockGtr< TPMatrix >::completeElems(), QCHamiltonGtr< TPMatrix >::computeElems(), QCOverlapGtr< TPMatrix >::computeElems(), QCFockGtr< TPMatrix >::copyMatrix(), densityP, fockF, QCGeneralData::getInitDensityMatrix(), QCGeneralData::getIntgAcquisitionMethod(), QCRepInterElec::getIntgWriter(), QCMatElemGtr< TPMatrix >::getMatrix(), QCMatrix::giveBackTmpMem(), hamiltonH, QCMatElemGtr< TPMatrix >::init(), QCDensityGtr< TPMatrix >::initDiag(), QCCommon::IntegralsTmpFile, QCIntgWriter::openFile(), OUTPUT_SUFFIX(), overlapS, QC_DENSITY_DIAG, QC_INDIRECT_STORAGE, QCRestrict, repInterElecIntegrals, QCRepInterElec::setIntgTmpFile(), and QCSymMatrix::takeTmpMem().

Referenced by QCGlobalSystem< TPSolver >::buildMatrices().

Here is the call graph for this function:

int*& QCModelMatrices::getDegener void   )  [inline]
 

Definition at line 57 of file QCModelMatrices.hpp.

References degener.

QCDensityGtr<QCSymMatrix>& QCModelMatrices::getDensityP void   )  [inline]
 

Definition at line 51 of file QCModelMatrices.hpp.

References densityP.

Referenced by QCMDSystem< TPSolver >::completeDensityMatrices(), QCSubDomain::fillDensityArray(), QCSubDomain::initWeightedDensity(), QCMDSystem< TPSolver >::readDistDensityFromFileAscii(), QCMDSystem< TPSolver >::readSharedDensityFromFileAscii(), QCTrace::writeDensityMatrix(), QCMDSystem< TPSolver >::writeDensityOnFileAscii(), and QCMDSystem< TPSolver >::writeLocalDensityOnFilesAscii().

QCDensityGtr<QCSymMatrix>& QCModelMatrices::getDensityPnm1 void   )  [inline]
 

Definition at line 59 of file QCModelMatrices.hpp.

References densityPnm1.

QCDensityGtr<QCSymMatrix>* QCModelMatrices::getDensityPTild void   )  [inline]
 

Definition at line 60 of file QCModelMatrices.hpp.

References densityPTild.

QCOverlapGtr<QCSymMatrix>* QCModelMatrices::getDOverlapSOnDr void   )  [inline]
 

Definition at line 62 of file QCModelMatrices.hpp.

References dOverlapSOnDr.

QCRepInterElec* QCModelMatrices::getDRepInterElecIntegrals void   )  [inline]
 

Definition at line 63 of file QCModelMatrices.hpp.

References dRepInterElecIntgOnDCoord.

QCFloat QCModelMatrices::getEigenVal int  idx  )  const [inline]
 

Definition at line 56 of file QCModelMatrices.hpp.

References eigenVal.

QCFloat*& QCModelMatrices::getEigenVal void   )  [inline]
 

Definition at line 55 of file QCModelMatrices.hpp.

References eigenVal.

Referenced by QCMDSystem< TPSolver >::addLevels(), QCMDSystem< TPSolver >::adjustFermiEnergy(), QCMDSystem< TPSolver >::adjustFermiEnergyDichotomy(), QCMDSystem< TPSolver >::computeDichotomyBounds(), QCMDSystem< TPSolver >::computeSumOfEigenValOccupied(), QCMDSystem< TPSolver >::removeLevels(), QCTrace::writeEigenValue(), and QCTrace::writeEigenValuesAndEigenVectors().

QCMatElemGtr<QCMatrix>& QCModelMatrices::getEigenVectCt void   )  [inline]
 

Definition at line 54 of file QCModelMatrices.hpp.

References eigenVectCt.

Referenced by QCSubDomain::computeBFactor(), and QCTrace::writeEigenValuesAndEigenVectors().

QCFockGtr<QCSymMatrix>& QCModelMatrices::getFockF void   )  [inline]
 

Definition at line 53 of file QCModelMatrices.hpp.

References fockF.

Referenced by QCMDSystem< TPSolver >::completeFockMatricesAndElecEnergy(), QCTrace::writeEigenValue(), QCTrace::writeEigenValuesAndEigenVectors(), and QCTrace::writeFockMatrix().

QCFockGtr<QCSymMatrix>* QCModelMatrices::getFockFTild void   )  [inline]
 

Definition at line 61 of file QCModelMatrices.hpp.

References fockFTild.

QCHamiltonGtr<QCSymMatrix>& QCModelMatrices::getHamiltonH void   )  [inline]
 

Definition at line 50 of file QCModelMatrices.hpp.

References hamiltonH.

Referenced by QCMDSystem< TPSolver >::completeHamiltonMatrices(), and QCTrace::writeHamiltonMatrix().

QCOverlapGtr<QCSymMatrix>* QCModelMatrices::getOverlapS void   )  [inline]
 

Accessors

Definition at line 49 of file QCModelMatrices.hpp.

References overlapS.

QCRepInterElec& QCModelMatrices::getRepInterElecIntegrals void   )  [inline]
 

Definition at line 58 of file QCModelMatrices.hpp.

References repInterElecIntegrals.

Referenced by QCMDSystem< TPSolver >::completeFockMatricesAndElecEnergy().

QCDensityGtr<QCSymMatrix>* QCModelMatrices::getWeightedDensityP void   )  [inline]
 

Definition at line 52 of file QCModelMatrices.hpp.

References weightedDensityP.

Referenced by QCMDSystem< TPSolver >::completeDensityMatrices(), QCMDSystem< TPSolver >::getTotalSumTrace(), QCSubDomain::initWeightedDensity(), and QCTrace::writeReducedDensityMatrix().

template<class TPManager>
void QCModelMatrices::prepareIterations TPManager &  manager  ) 
 

Reimplemented in QCGlobalSystem< TPSolver >.

Definition at line 262 of file QCModelMatrices.cpp.

References QCRepInterElec::allocIntgReader(), QCIntgWriter::closeFile(), QCGeneralData::getIntgAcquisitionMethod(), QCRepInterElec::getIntgReader(), QCRepInterElec::getIntgTmpFile(), QCRepInterElec::getIntgWriter(), QCIntgReader::openFile(), QC_INDIRECT_STORAGE, repInterElecIntegrals, and QCMemory::updateBlockTmpMem().

Referenced by QCGlobalSystem< TPSolver >::prepareIterations().

Here is the call graph for this function:


Member Data Documentation

int* QCModelMatrices::degener [protected]
 

The degeneracies(number of times repeated) array for eigenvalues;

Definition at line 167 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), getDegener(), and ~QCModelMatrices().

QCDensityGtr<QCSymMatrix> QCModelMatrices::densityP [protected]
 

The density matrix at the current iteration.

Definition at line 128 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), buildMatrices(), getDensityP(), QCSubDomain::initWeightedDensity(), QCSubDomain::modifyMatricesAndEnergy(), QCGlobalSystem< TPSolver >::readDensityFromFile(), QCGlobalSystem< TPSolver >::readDensityFromFileAscii(), QCGlobalSystem< TPSolver >::readDensityFromFileBinary(), QCGlobalSystem< TPSolver >::writeDensityOnFileAscii(), and QCGlobalSystem< TPSolver >::writeDensityOnFileBinary().

QCDensityGtr<QCSymMatrix> QCModelMatrices::densityPnm1 [protected]
 

The density matrix at the previous iteration.

Definition at line 133 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), and getDensityPnm1().

QCDensityGtr<QCSymMatrix>* QCModelMatrices::densityPTild [protected]
 

The density matrix tilde that is used in the Optimal Damping algorithm.

Definition at line 151 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), getDensityPTild(), QCSubDomain::modifyMatricesAndEnergy(), and ~QCModelMatrices().

QCOverlapGtr<QCSymMatrix>* QCModelMatrices::dOverlapSOnDr [protected]
 

The derivative of the overlap matrix with respect to r.

Definition at line 206 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), QCGlobalSystem< TPSolver >::computeEnergyDerivatives(), getDOverlapSOnDr(), and ~QCModelMatrices().

QCRepInterElec* QCModelMatrices::dRepInterElecIntgOnDCoord [protected]
 

The derivative of the previous matrix with respect to dr. It's a pointer since sometimes we can recover the memory space. Always the same trick.

Definition at line 201 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), getDRepInterElecIntegrals(), and ~QCModelMatrices().

QCFloat* QCModelMatrices::eigenVal [protected]
 

The eigenvalues of the Fock matrix array.

Definition at line 162 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), getEigenVal(), and ~QCModelMatrices().

QCMatElemGtr<QCMatrix> QCModelMatrices::eigenVectCt [protected]
 

The transpose eigenvectors matrix resulting from the diagonalization of the Fock matrix.

Definition at line 157 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), and getEigenVectCt().

QCFockGtr<QCSymMatrix> QCModelMatrices::fockF [protected]
 

The Fock matrix or the result of the Fock operator on the atomic orbital basis.

Definition at line 139 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), buildMatrices(), getFockF(), and QCSubDomain::modifyMatricesAndEnergy().

QCFockGtr<QCSymMatrix>* QCModelMatrices::fockFTild [protected]
 

The Fock matrix tilde that is used in the Optimal Damping algorithm.

Definition at line 145 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), getFockFTild(), QCSubDomain::modifyMatricesAndEnergy(), and ~QCModelMatrices().

QCHamiltonGtr<QCSymMatrix> QCModelMatrices::hamiltonH [protected]
 

The Hamilton matrix.

Definition at line 123 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), buildMatrices(), getHamiltonH(), and QCSubDomain::modifyMatricesAndEnergy().

QCOverlapGtr<QCSymMatrix>* QCModelMatrices::overlapS [protected]
 

The overlap matrix. I take a pointer too for the same reasons. At the time of the iterative calculation, overlapS may be deleted to recover memory space.

Definition at line 118 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), buildMatrices(), QCGlobalSystem< TPSolver >::computeEnergyDerivatives(), getOverlapS(), QCModelMatrices(), and ~QCModelMatrices().

QCRepInterElec* QCModelMatrices::repInterElecIntegrals [protected]
 

The matrix of the inter-electronic repulsion integrals between 2 atoms. It's a result of the call to the fortran subroutine repul. This matrix will be forever dense and asymetric. So that, no template necessary.

ARB: I use a pointer to avoid templating with the model

Definition at line 194 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), buildMatrices(), getRepInterElecIntegrals(), prepareIterations(), and ~QCModelMatrices().

QCDensityGtr<QCSymMatrix>* QCModelMatrices::squareDensityP [protected]
 

A square density matrix used in the purification calculation.

Definition at line 179 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), and ~QCModelMatrices().

QCDensityGtr<QCSymMatrix>* QCModelMatrices::threeIdMDensityP [protected]
 

A matrix that holds (3Id - P). It is used in the purification calculation.

Definition at line 184 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), and ~QCModelMatrices().

QCDensityGtr<QCSymMatrix>* QCModelMatrices::weightedDensityP [protected]
 

The weighted density matrix. Elements in the overlap zone are multiplied by the partitionning coefficient. Elements in the cut zone are imported from other sub-domains or set to zero.

Definition at line 174 of file QCModelMatrices.hpp.

Referenced by allocateMatrices(), getWeightedDensityP(), QCSubDomain::initWeightedDensity(), and ~QCModelMatrices().


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