QCDCAlgo Class Reference

#include <QCDCAlgo.hpp>

Inheritance diagram for QCDCAlgo:

Inheritance graph
[legend]
List of all members.

Detailed Description

The class of the Divide And Conquer algorithm.

class : QCDCAlgo

The Divide and Conquer approach solve the problem by dividing the global system in sub-domains. Some parts of a classic seems like SCF algorithm are performed on the sub-domains. At different stage of an iteration of the SCF algorithm, local matrices of different sub-domains are merged and redistributed to take into account the environment extern to the local sub-domain. The merge procedure is carried out for the overlap zones of a sud-domains. Besides, it imports data from extern matrices in its cut zone.

Definition at line 41 of file QCDCAlgo.hpp.

Public Member Functions

template<class TPManager>
void fixPoint (TPManager &manager)
template<class TPManager>
void optimalDamping (TPManager &manager)
 QCDCAlgo (void)
template<class TPManager>
void solve (TPManager &manager)
virtual ~QCDCAlgo (void)


Constructor & Destructor Documentation

QCDCAlgo::QCDCAlgo void   ) 
 

Constructor

Definition at line 54 of file QCDCAlgo.cpp.

QCDCAlgo::~QCDCAlgo void   )  [virtual]
 

Destructor

Definition at line 59 of file QCDCAlgo.cpp.


Member Function Documentation

template<class TPManager>
void QCDCAlgo::fixPoint TPManager &  manager  ) 
 

Solve the non linear eigenvalues problem by a fixpoint algorithm (Roothan algorithm)

Definition at line 83 of file QCDCAlgo.cpp.

References QCSCFBaseAlgo::convReached, QCCommon::getPidStr(), QCChrono::getvalsec(), QCSCFBaseAlgo::levelShiftingParam, QCSCFBaseAlgo::mainAlgo, QCSCFBaseAlgo::nbIter, QCSCFBaseAlgo::nbMaxIter, QCCommon::outdir, OUTPUT_SUFFIX(), PATH_SEPARATOR(), QCChrono::pause(), QC_DC_LEVEL_SHIFTING, QC_TRACE, QC_TRACE_SCF, QC_ZERO, QCAbs, QCRestrict, QCChrono::start(), and QCSCFBaseAlgo::threshold.

Referenced by optimalDamping(), and solve().

Here is the call graph for this function:

template<class TPManager>
void QCDCAlgo::optimalDamping TPManager &  manager  ) 
 

Compute la Homo et Lumo du sous domaine courant

Definition at line 502 of file QCDCAlgo.cpp.

References QCSCFBaseAlgo::convReached, fixPoint(), QCCommon::getPidStr(), QCChrono::getvalsec(), QCSCFBaseAlgo::nbIter, QCSCFBaseAlgo::nbMaxIter, QCCommon::outdir, OUTPUT_SUFFIX(), PATH_SEPARATOR(), QCChrono::pause(), QC_ONE, QC_TRACE, QC_TRACE_SCF, QC_TWO, QC_ZERO, QCAbs, QCMANAGER_METH_EXPL_INST_DIST_MD, QCMANAGER_METH_EXPL_INST_MD, QCRestrict, qctrace, solve(), QCChrono::start(), QCSCFBaseAlgo::threshold, QCTrace::traceOff(), QCTrace::traceOn(), QCTrace::writeDensityMatrix(), QCTrace::writeEigenValuesAndEigenVectors(), QCTrace::writeFockMatrix(), QCTrace::writeHamiltonMatrix(), QCTrace::writeMsg(), QCTrace::writeReducedDensityMatrix(), and QCTrace::writeVal().

Referenced by solve().

Here is the call graph for this function:

template<class TPManager>
void QCDCAlgo::solve TPManager &  manager  ) 
 

Solve the non linear eigenvalues problem

Definition at line 65 of file QCDCAlgo.cpp.

References fixPoint(), QCSCFBaseAlgo::mainAlgo, optimalDamping(), QC_DC_LEVEL_SHIFTING, QC_DC_OPTIMAL_DAMPING, and QC_DC_SCF.

Referenced by optimalDamping().

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