QCTrace.cpp

Go to the documentation of this file.
00001 //
00002 // C++ Implementation: QCTrace
00003 //
00004 // Description: 
00005 //
00006 //
00007 // Author: Olivier Coulaud <Olivier.Coulaud@inria.fr>, (C) 2005
00008 //
00009 // Copyright: See COPYING file that comes with this distribution
00010 //
00011 //
00012 #include <time.h>
00013 //
00014 #include "QCMacro.hpp"
00015 #include "QCTrace.hpp"
00016 #include "QCSymMatrix.hpp"
00017 
00018 QCTrace::QCTrace() : _traceOn(true),_matrices(NULL)
00019 {}
00020 
00021 QCTrace::~QCTrace()
00022 {
00023   _outTrace.close();
00024 }
00025 
00026 void QCTrace::init(std::string & name, const int myDomain, const int myProc){
00027   _outTrace.open(name.c_str());
00028   tm *t ;
00029   asctime(t);
00030   char s[256] ; size_t size ;
00031   size = strftime(s,size,"%+",t);
00032   _outTrace << "Trace for subdomain " << myProc << " located on proc " <<myDomain << std::endl
00033             << "File created : " <<s <<std::endl
00034             << "#########################################################################"
00035             << std::endl;
00036   _outTrace.setf(std::ios_base::scientific) ;
00037   _outTrace.precision(20) ;
00038 }
00039 
00040 void QCTrace::writeDensityMatrix(QCModelMatrices& matrices ){
00041   if(_traceOn){
00042     QC_TRACE("BEGIN  QCTrace::writeDensityMatrix");
00043     matrices.getDensityP().getMatrix().print("Density Matrix",_outTrace) ;
00044     QC_TRACE("END    QCTrace::writeDensityMatrix");
00045   }
00046 }
00047 void QCTrace::writeReducedDensityMatrix(QCModelMatrices& matrices ){
00048   if(_traceOn){
00049     QC_TRACE("BEGIN  QCTrace::writeDReduceensityMatrix");
00050     matrices.getWeightedDensityP()->getMatrix().print("Reduced Density Matrix",_outTrace) ;
00051     QC_TRACE("END    QCTrace::writeReduceDensityMatrix");
00052   }
00053 }
00054 void QCTrace::writeDensityMatrix(){
00055   if(_traceOn){
00056     QC_TRACE("BEGIN  QCTrace::writeDensityMatrix");
00057     _matrices->getDensityP().getMatrix().print("Density Matrix",_outTrace) ;
00058     QC_TRACE("END    QCTrace::writeDensityMatrix");
00059   }
00060 }
00061 void QCTrace::writeReducedDensityMatrix(){
00062   if(_traceOn){
00063     QC_TRACE("BEGIN  QCTrace::writeDReduceensityMatrix");
00064     _matrices->getWeightedDensityP()->getMatrix().print("Reduced Density Matrix",_outTrace) ;
00065     QC_TRACE("END    QCTrace::writeReduceDensityMatrix");
00066   }
00067 }
00068 
00069 void QCTrace::writeEigenValue(QCModelMatrices& matrices){
00070   if(_traceOn){
00071     QC_TRACE("BEGIN  QCTrace::writeEigenValue");
00072     int dim =  matrices.getFockF().getMatrix().getDim();
00073     QCFloat  *QCRestrict eigenVal = matrices.getEigenVal() ;
00074     _outTrace << std::endl<< std::endl<< "Eigen Values of Fock matrix" <<std::endl;
00075     for(int i = 0 ; i < dim ; ++i){
00076       _outTrace << "  "<< i << "  " << eigenVal[i] <<std::endl;
00077     }
00078     _outTrace << std::endl;
00079     QC_TRACE("END    QCTrace::writeEigenValue");
00080   }
00081 }
00082 void QCTrace::writeEigenValue(){
00083   if(_traceOn){
00084     QC_TRACE("BEGIN  QCTrace::writeEigenValue");
00085     int dim =  _matrices->getFockF().getMatrix().getDim();
00086     QCFloat  *QCRestrict eigenVal = _matrices->getEigenVal() ;
00087     _outTrace << std::endl<< std::endl<< "Eigen Values of Fock matrix" <<std::endl;
00088     for(int i = 0 ; i < dim ; ++i){
00089       _outTrace << "  "<< i << "  " << eigenVal[i] <<std::endl;
00090     }
00091     _outTrace << std::endl;
00092     QC_TRACE("END    QCTrace::writeEigenValue");
00093   }
00094 }
00095 void QCTrace::writeEigenValuesAndEigenVectors(){
00096   if(_traceOn){
00097     QC_TRACE("BEGIN  QCTrace::writeEigenValuesAndEigenVectors");
00098     int dim =  _matrices->getFockF().getMatrix().getDim();
00099     QCFloat  *QCRestrict eigenVal = _matrices->getEigenVal() ;
00100     _outTrace << std::endl<< std::endl<< "Eigen Values of Fock matrix " <<std::endl; 
00101     for(int i = 0 ; i < dim ; ++i){ 
00102       _outTrace << "   "<< i << " Eigen Value  " << eigenVal[i]   << std::endl; 
00103     }
00104     _matrices->getEigenVectCt().getMatrix().print("Eigen Vectors of Fock matrix",_outTrace) ;
00105     
00106     _outTrace << std::endl;
00107     QC_TRACE("END    QCTrace::writeEigenValuesAndEigenVectors");
00108   }
00109 }
00110 
00111 void QCTrace::writeFockMatrix(  QCModelMatrices& matrices ){
00112   if(_traceOn){
00113     QC_TRACE("BEGIN  QCTrace::writeFockMatrix");
00114     matrices.getFockF().getMatrix().print("FockMatrix",_outTrace) ;
00115     QC_TRACE("END    QCTrace::writeFockMatrix");
00116   }
00117 }
00118 void QCTrace::writeFockMatrix(){
00119   if(_traceOn){
00120     QC_TRACE("BEGIN  QCTrace::writeFockMatrix");
00121     _matrices->getFockF().getMatrix().print("FockMatrix",_outTrace) ;
00122     QC_TRACE("END    QCTrace::writeFockMatrix");
00123   }
00124 }
00125 
00126 void QCTrace::writeHamiltonMatrix(QCModelMatrices& matrices  ){
00127   if(_traceOn){
00128     QC_TRACE("BEGIN  QCTrace::writeHamiltonMatrix");
00129     matrices.getHamiltonH().getMatrix().print("Hamilton Matrix",_outTrace) ;
00130     QC_TRACE("END    QCTrace::writeHamiltonMatrix");
00131   }
00132 }
00133 void QCTrace::writeHamiltonMatrix( ){
00134   if(_traceOn){
00135     QC_TRACE("BEGIN  QCTrace::writeHamiltonMatrix");
00136     _matrices->getHamiltonH().getMatrix().print("Hamilton Matrix",_outTrace) ;
00137     QC_TRACE("END    QCTrace::writeHamiltonMatrix");
00138   }
00139 }
00140 
00141 QCTrace  *qctrace; 
00142 

Generated on Sat Jan 28 21:07:30 2006 for QC++ by  doxygen 1.4.4