QCDensityGtr< TPMatrix > Class Template Reference

#include <QCDensityGtr.hpp>

Inheritance diagram for QCDensityGtr< TPMatrix >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class TPMatrix>
class QCDensityGtr< TPMatrix >

Class to construct, to work, .. the density matrix.

class QCDensityGtr

Definition at line 35 of file QCDensityGtr.hpp.

Public Member Functions

template<class TPMatrix2>
void computeElems (QCMemory &QCRestrict memory, const int nbElecOfSystem, QCMatElemGtr< TPMatrix2 > &QCRestrict eigenVectC)
template<class TPMatrix2>
void computeElems (QCMemory &__restrict__ memory, const int nbElecOfSystem, QCMatElemGtr< TPMatrix2 > &__restrict__ eigenVectC)
template<class TPMatrix2>
void computeElemsDC (QCMemory &QCRestrict memory, const int nbFilledOM, const int nbOccupiedOM, const int nbAOCoreShell1, const QCFloat *QCRestrict orbitalOccupN, QCMatElemGtr< TPMatrix2 > &QCRestrict eigenVectCt)
template<class TPMatrix2>
void computeElemsDC (QCMemory &__restrict__ memory, const int nbFilledOM, const int nbOccupiedOM, const int nbAOCoreShell1, const QCFloat *__restrict__ orbitalOccupN, QCMatElemGtr< TPMatrix2 > &__restrict__ eigenVectCt)
template<class TPManager>
void initDiag (TPManager &manager, typename TPManager::TSystem::QCIterator &iter)
template<class TPParam>
void mergeDensity (const TPParam *QCRestrict parameters, QCSubDomain &QCRestrict workingDomain, QCSubDomain &QCRestrict remoteDomain, QCSymMatrix &QCRestrict remWeightedDensity, int remoteMapIdx, QCMatrix &QCRestrict wDensityAB, QCMatrix &QCRestrict interPAB, QCSymMatrix &QCRestrict wDensityAA)
template<class TPParam>
void mergeDensity (const TPParam *__restrict__ parameters, QCSubDomain &__restrict__ workingDomain, QCSubDomain &__restrict__ remoteDomain, QCSymMatrix &__restrict__ remWeightedDensity, int remoteMapIdx, QCMatrix &__restrict__ wDensityAB, QCMatrix &__restrict__ interPAB, QCSymMatrix &__restrict__ wDensityAA)
 QCDensityGtr (int dimMatrix)
 QCDensityGtr (void)
template<class TPMatrix2>
void swapMatrix (QCDensityGtr< TPMatrix2 > &densityP)
virtual ~QCDensityGtr (void)


Constructor & Destructor Documentation

template<class TPMatrix>
QCDensityGtr< TPMatrix >::QCDensityGtr void   ) 
 

Basic constructor

Definition at line 48 of file QCDensityGtr.cpp.

template<class TPMatrix>
QCDensityGtr< TPMatrix >::QCDensityGtr int  dimMatrix  ) 
 

Constructor that enables the memory allocation of the nested matrix.

Definition at line 59 of file QCDensityGtr.cpp.

template<class TPMatrix>
QCDensityGtr< TPMatrix >::~QCDensityGtr void   )  [virtual]
 

Definition at line 70 of file QCDensityGtr.cpp.


Member Function Documentation

template<class TPMatrix>
template<class TPMatrix2>
void QCDensityGtr< TPMatrix >::computeElems QCMemory &QCRestrict  memory,
const int  nbElecOfSystem,
QCMatElemGtr< TPMatrix2 > &QCRestrict  eigenVectC
 

Methode de calcul des elements de la matrice densite

Issu de la bibliotheque scs blas. t P <- QCTwo * CC + QCZero unusedMatrix

Definition at line 128 of file QCDensityGtr.cpp.

References CblasLower, CblasNoTrans, CblasRowMajor, CblasTrans, CblasUpper, QCMatElemGtr< TPMatrix >::getMatrix(), QCMatElemGtr< TPMatrix >::matrix, QC_TWO, QC_ZERO, QCCBlas, and QCRestrict.

Here is the call graph for this function:

template<class TPMatrix>
template<class TPMatrix2>
void QCDensityGtr< TPMatrix >::computeElems QCMemory &__restrict__  memory,
const int  nbElecOfSystem,
QCMatElemGtr< TPMatrix2 > &__restrict__  eigenVectC
 

Referenced by QCSCFAlgo::fixPoint(), and QCSCFAlgo::optimalDamping().

template<class TPMatrix>
template<class TPMatrix2>
void QCDensityGtr< TPMatrix >::computeElemsDC QCMemory &QCRestrict  memory,
const int  nbFilledOM,
const int  nbOccupiedOM,
const int  nbAOCoreShell1,
const QCFloat *QCRestrict  orbitalOccupN,
QCMatElemGtr< TPMatrix2 > &QCRestrict  eigenVectCt
 

On multiplie la ieme ligne (l'OM i qui normalement est la ieme colonne, mais ici la matrice est transposee) par la racine carree du nombre d'occupation / 2 Soit : c_i_x <- racine(n/2) c_i_x Ainsi, lors du dsyrk ou on execute 2 c_i_mu c_i_nu, on revelera le facteur nombre d'occupation par simplification

Issu de la bibliotheque scs blas. t P <- QCTwo * CC + QCZero unusedMatrix

Definition at line 320 of file QCDensityGtr.cpp.

References CblasLower, CblasNoTrans, CblasRowMajor, CblasTrans, CblasUpper, QCMatElemGtr< TPMatrix >::getMatrix(), QCDensityGtr< TPMatrix >::initDiag(), QCMatElemGtr< TPMatrix >::matrix, QCDensityGtr< TPMatrix >::mergeDensity(), QC_TWO, QC_ZERO, QCCBlas, QCMANAGER_ITER_METH_EXPL_INST, QCPARAMETER_METH_EXPL_INST_PARAM, QCRestrict, and SEVEN_PARAMS.

Here is the call graph for this function:

template<class TPMatrix>
template<class TPMatrix2>
void QCDensityGtr< TPMatrix >::computeElemsDC QCMemory &__restrict__  memory,
const int  nbFilledOM,
const int  nbOccupiedOM,
const int  nbAOCoreShell1,
const QCFloat *__restrict__  orbitalOccupN,
QCMatElemGtr< TPMatrix2 > &__restrict__  eigenVectCt
 

template<class TPMatrix>
template<class TPManager>
void QCDensityGtr< TPMatrix >::initDiag TPManager &  manager,
typename TPManager::TSystem::QCIterator &  iter
 

Method to initialize the elements of the density matrix by filling the diagonal with averaged Mulliken charges.

Definition at line 76 of file QCDensityGtr.cpp.

References QCMatElemGtr< TPMatrix >::matrix, QC_TRACE_INIT, and QCRestrict.

Referenced by QCModelMatrices::buildMatrices(), and QCDensityGtr< TPMatrix >::computeElemsDC().

template<class TPMatrix>
template<class TPParam>
void QCDensityGtr< TPMatrix >::mergeDensity const TPParam *QCRestrict  parameters,
QCSubDomain &QCRestrict  workingDomain,
QCSubDomain &QCRestrict  remoteDomain,
QCSymMatrix &QCRestrict  remWeightedDensity,
int  remoteMapIdx,
QCMatrix &QCRestrict  wDensityAB,
QCMatrix &QCRestrict  interPAB,
QCSymMatrix &QCRestrict  wDensityAA
 

Definition at line 175 of file QCDensityGtr.cpp.

References QCMatElemGtr< TPMatrix >::matrix, QC_TRACE, QCRestrict, and table.

template<class TPMatrix>
template<class TPParam>
void QCDensityGtr< TPMatrix >::mergeDensity const TPParam *__restrict__  parameters,
QCSubDomain &__restrict__  workingDomain,
QCSubDomain &__restrict__  remoteDomain,
QCSymMatrix &__restrict__  remWeightedDensity,
int  remoteMapIdx,
QCMatrix &__restrict__  wDensityAB,
QCMatrix &__restrict__  interPAB,
QCSymMatrix &__restrict__  wDensityAA
 

Referenced by QCMDSystem< TPSolver >::completeDensityMatrices(), and QCDensityGtr< TPMatrix >::computeElemsDC().

template<class TPMatrix>
template<class TPMatrix2>
void QCDensityGtr< TPMatrix >::swapMatrix QCDensityGtr< TPMatrix2 > &  densityP  )  [inline]
 

Method to swap the nested matrices of the QCDensityGtr. I specialize this method at that level of the hierarchy of QCMatElemGtr to restrict the access to this method. Thus, only a density matrix can be swpaed with a density matrix

Definition at line 160 of file QCDensityGtr.hpp.

References QCMatElemGtr< TPMatrix >::getMatrix(), and QCMatElemGtr< TPMatrix >::matrix.

Here is the call graph for this function:


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