QCCommon.hpp File Reference

#include <map>
#include <iostream>
#include <sstream>
#include <string>
#include <assert.h>
#include <stdio.h>
#include <math.h>
#include "QCMacro.hpp"

Include dependency graph for QCCommon.hpp:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  std

Classes

struct  QCAtomIn
class  QCCommon
struct  QCFloatFloat

Defines

#define BEGIN_C_DECLARATION
#define EIGHT_PARAMS(a, b, c, d, e, f, g, h)   a, b, c, d, e, f, g, h
#define ELEVEN_PARAMS(a, b, c, d, e, f, g, h, i, j, k)   a, b, c, d, e, f, g, h, i, j, k
#define END_C_DECLARATION
#define FIVE_PARAMS(a, b, c, d, e)   a, b, c, d, e
#define FOUR_PARAMS(a, b, c, d)   a, b, c, d
#define FOURTEEN_PARAMS(a, b, c, d, e, f, g, h, i, j, k, l, m, n)   a, b, c, d, e, f, g, h, i, j, k, l, m, n
#define NINE_PARAMS(a, b, c, d, e, f, g, h, i)   a, b, c, d, e, f, g, h, i
#define ONE_PARAM(a)   a
#define PRECISION   20
#define QCAbs   FQCAbs
#define QCExp   FQCExp
#define QCITERATOR_METH_EXPL_INST(aMeth)
#define QCITERATOR_METH_EXPL_INST_PARAM(aMeth, param)
#define QCMANAGER_EXPL_INST(aClass)
#define QCMANAGER_EXPL_INST_DIST_MD(aClass)
#define QCMANAGER_EXPL_INST_GLOBAL(aClass)
#define QCMANAGER_EXPL_INST_MD(aClass)
#define QCMANAGER_ITER_METH_EXPL_INST(aMeth)
#define QCMANAGER_ITER_METH_EXPL_INST_DIST_MD(aMeth)
#define QCMANAGER_ITER_METH_EXPL_INST_DIST_MD_PARAM(aMeth, param)
#define QCMANAGER_ITER_METH_EXPL_INST_GLOBAL(aMeth)
#define QCMANAGER_ITER_METH_EXPL_INST_GLOBAL_PARAM(aMeth, param)
#define QCMANAGER_ITER_METH_EXPL_INST_MD(aMeth)
#define QCMANAGER_ITER_METH_EXPL_INST_MD_PARAM(aMeth, param)
#define QCMANAGER_ITER_METH_EXPL_INST_PARAM(aMeth, param)
#define QCMANAGER_METH_EXPL_INST(aMeth)
#define QCMANAGER_METH_EXPL_INST_DIST_MD(aMeth)
#define QCMANAGER_METH_EXPL_INST_DIST_MD_PARAM(aMeth, param)
#define QCMANAGER_METH_EXPL_INST_GLOBAL(aMeth)
#define QCMANAGER_METH_EXPL_INST_GLOBAL_PARAM(aMeth, param)
#define QCMANAGER_METH_EXPL_INST_MD(aMeth)
#define QCMANAGER_METH_EXPL_INST_MD_PARAM(aMeth, param)
#define QCMANAGER_METH_EXPL_INST_PARAM(aMeth, param)
#define QCMax   FQCMax
#define QCMin   FQCMin
#define QCMODEL_EXPL_INST(aClass)
#define QCMODEL_SYSTEM_EXPL_INST(aClass)
#define QCPARAMETER_METH_EXPL_INST(aMeth)
#define QCPARAMETER_METH_EXPL_INST_PARAM(aMeth, param)
#define QCPow   FQCPow
#define QCSign   FQCSign
#define SEVEN_PARAMS(a, b, c, d, e, f, g)   a, b, c, d, e, f, g
#define SIX_PARAMS(a, b, c, d, e, f)   a, b, c, d, e, f
#define TEN_PARAMS(a, b, c, d, e, f, g, h, i, j)   a, b, c, d, e, f, g, h, i, j
#define THREE_PARAMS(a, b, c)   a, b, c
#define TWELVE_PARAMS(a, b, c, d, e, f, g, h, i, j, k, l)   a, b, c, d, e, f, g, h, i, j, k, l
#define TWO_PARAMS(a, b)   a, b
#define TWO_QCPARAMETERS_METH_EXPL_INST_PARAM(aMeth, param)

Typedefs

typedef double QCFloat
typedef signed char QCSChar
typedef signed short int QCSSInt
typedef unsigned char QCUChar
typedef unsigned int QCUInt
typedef unsigned short int QCUSInt
typedef signed char schar
typedef signed short int ssint
typedef QCAm1T< QCAm1ParamTQCAm1
typedef QCManager< TQCAm1,
TQCGSystem
TQCAm1GSystManager
typedef QCManager< TQCAm1,
TQCMDSystem
TQCAm1MDSystManager
typedef QCGlobalSystem< QCSCFAlgoTQCGSystem
typedef QCMDSystem< QCDCAlgoTQCMDSystem
typedef QCMndoT< QCMndoParamTQCMndo
typedef QCManager< TQCMndo,
TQCGSystem
TQCMndoGSystManager
typedef QCManager< TQCMndo,
TQCMDSystem
TQCMndoMDSystManager
typedef QCPm3T< QCPm3ParamTQCPm3
typedef QCManager< TQCPm3,
TQCGSystem
TQCPm3GSystManager
typedef QCManager< TQCPm3,
TQCMDSystem
TQCPm3MDSystManager
typedef unsigned char uchar
typedef unsigned short int usint

Enumerations

enum  QCComputation { QC_ENERGY = 0, QC_ENERGY_DERIV, QC_TOOLS }
enum  QCDerivationType { QC_NUMERICAL_DERIVATION = 0, QC_ANALYTICAL_DERIVATION }
enum  QCDerivShiftBhvr { QC_CONSTANT = 0, QC_COMPUTED }
enum  QCDiagoAlgorithm { QC_CLASSIC_DIAGO = 0, QC_DC_DIAGO }
enum  QCGeometryAlgorithm { QC_LBFGS = 0, QC_BFGS }
enum  QCInitDensityMatrix { QC_DENSITY_DIAG = 0, QC_DENSITY_FROM_FILE }
enum  QCIntgAcquisitionMethod { QC_DIRECT_COMPUTATION = 0, QC_INDIRECT_STORAGE }
enum  QCMainAlgorithm {
  QC_SCF = 0, QC_LEVEL_SHIFTING, QC_OPTIMAL_DAMPING, QC_DC_SCF,
  QC_DC_LEVEL_SHIFTING, QC_DC_OPTIMAL_DAMPING
}
enum  QCModelType { QC_MNDO_MODEL = 0, QC_AM1_MODEL, QC_PM3_MODEL }
enum  QCParameterType { QC_MNDO_PARAM = 0, QC_AM1_PARAM, QC_PM3_PARAM }
enum  QCPartitionerType { QC_LINEAR = 0, QC_KIMIKA }
enum  QCPartitionType { QC_STANDARD_PART = 0, QC_DIXON_PART }
enum  QCSubDomainZone { QC_CORE = 0, QC_SHELL1, QC_SHELL2 }

Functions

static const string DOUBLE_DOT (":")
int FQCAbs (int value)
QCFloat FQCAbs (QCFloat value)
int FQCBitCount (QCUInt theBitString)
QCFloat FQCExp (const QCFloat &val)
template<class TPNumerical>
TPNumerical FQCMax (TPNumerical valueA, TPNumerical valueB)
template<class TPNumerical>
TPNumerical FQCMin (TPNumerical valueA, TPNumerical valueB)
template<int N>
QCFloat FQCPow (const QCFloat &val)
template<int N>
int FQCPow (const int &val)
template<>
QCFloat FQCPow< 1 > (const QCFloat &val)
template<>
int FQCPow< 1 > (const int &val)
template<class TPClass>
TPClass * FQCReNew (TPClass *oldAddress, const int &newSize, const int &oldSize)
QCFloat FQCSign (const QCFloat &val)
char * FQCToUpper (char *theCStr)
static const string INPUT_SUFFIX (".qci")
static const string OUTPUT_SUFFIX (".qco")
static const string PATH_SEPARATOR ("/")
void stringToUpper (std::string s)
template<class Enum>
void updateEnum (pair< string, Enum > &member, const map< string, Enum > &strmap)

Variables

const int NB_ZONES = 3
static const QCFloat QC1024 = 1024e0
static const QCFloat QC_Em5 = 1e-5
static const QCFloat QC_Em6 = 1e-6
static const QCFloat QC_EPS_ZERO = 1e-12
static const QCFloat QC_FOUR = 4e0
static const QCFloat QC_HALF = QC_ONE/QC_TWO
static const QCFloat QC_ONE = 1e0
static const QCFloat QC_THREE = 3e0
static const QCFloat QC_TWO = 2e0
static const QCFloat QC_ZERO = 0e0
static const int QCCStrLen_128 = 128
static const int QCCStrLen_16 = 16
static const int QCCStrLen_256 = 256
static const int QCCStrLen_32 = 32
static const int QCCStrLen_64 = 64
static const QCFloat QCMTwentyFive = -25e0
static const int QCPP_FAILURE = 0
static const int QCPP_SUCCES = 0


Define Documentation

#define BEGIN_C_DECLARATION
 

for C declarations

Definition at line 1078 of file QCCommon.hpp.

#define EIGHT_PARAMS a,
b,
c,
d,
e,
f,
g,
 )     a, b, c, d, e, f, g, h
 

Definition at line 510 of file QCCommon.hpp.

#define ELEVEN_PARAMS a,
b,
c,
d,
e,
f,
g,
h,
i,
j,
 )     a, b, c, d, e, f, g, h, i, j, k
 

Definition at line 516 of file QCCommon.hpp.

#define END_C_DECLARATION
 

Definition at line 1079 of file QCCommon.hpp.

#define FIVE_PARAMS a,
b,
c,
d,
 )     a, b, c, d, e
 

Definition at line 504 of file QCCommon.hpp.

#define FOUR_PARAMS a,
b,
c,
 )     a, b, c, d
 

Definition at line 502 of file QCCommon.hpp.

#define FOURTEEN_PARAMS a,
b,
c,
d,
e,
f,
g,
h,
i,
j,
k,
l,
m,
 )     a, b, c, d, e, f, g, h, i, j, k, l, m, n
 

Definition at line 520 of file QCCommon.hpp.

#define NINE_PARAMS a,
b,
c,
d,
e,
f,
g,
h,
 )     a, b, c, d, e, f, g, h, i
 

Definition at line 512 of file QCCommon.hpp.

#define ONE_PARAM  )     a
 

Macros that removes the brackets surrounding the parameters.

Definition at line 496 of file QCCommon.hpp.

#define PRECISION   20
 

Definition at line 39 of file QCCommon.hpp.

#define QCAbs   FQCAbs
 

Some pre-processor directives to associate the old names of the extern functions with the new names which respect the naming conventions.

Definition at line 310 of file QCCommon.hpp.

Referenced by QCMatrix::deltaElemMax(), QCMatrix::elemMax(), QCSCFAlgo::fixPoint(), QCDCAlgo::fixPoint(), QCSCFAlgo::optimalDamping(), QCDCAlgo::optimalDamping(), QCMatrix::sampleDistanceInFile(), and QCMatrix::sampleInFile().

#define QCExp   FQCExp
 

Definition at line 314 of file QCCommon.hpp.

Referenced by QCMndo::computeCoreEnergy(), and QCMndo::deriveCoreEnergy().

#define QCITERATOR_METH_EXPL_INST aMeth   ) 
 

Value:

template aMeth<TQCGSystem::QCIterator> (TQCGSystem::QCIterator&); \
template aMeth<TQCMDSystem::QCIterator>(TQCMDSystem::QCIterator&);

Definition at line 870 of file QCCommon.hpp.

#define QCITERATOR_METH_EXPL_INST_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCGSystem::QCIterator> (TQCGSystem::QCIterator&,  param); \
template aMeth<TQCMDSystem::QCIterator>(TQCMDSystem::QCIterator&, param);

Definition at line 876 of file QCCommon.hpp.

#define QCMANAGER_EXPL_INST aClass   ) 
 

Value:

Definition at line 645 of file QCCommon.hpp.

#define QCMANAGER_EXPL_INST_DIST_MD aClass   ) 
 

Value:

template class aClass<TQCMndoDistMDSystManager>; \
template class aClass<TQCAm1DistMDSystManager>;  \
template class aClass<TQCPm3DistMDSystManager>;

Definition at line 629 of file QCCommon.hpp.

#define QCMANAGER_EXPL_INST_GLOBAL aClass   ) 
 

Value:

template class aClass<TQCMndoGSystManager>;  \
template class aClass<TQCAm1GSystManager>;   \
template class aClass<TQCPm3GSystManager>;

Definition at line 615 of file QCCommon.hpp.

#define QCMANAGER_EXPL_INST_MD aClass   ) 
 

Value:

template class aClass<TQCMndoMDSystManager>; \
template class aClass<TQCAm1MDSystManager>;  \
template class aClass<TQCPm3MDSystManager>;

Definition at line 622 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST aMeth   ) 
 

Value:

Definition at line 783 of file QCCommon.hpp.

Referenced by QCDensityGtr< TPMatrix >::computeElemsDC().

#define QCMANAGER_ITER_METH_EXPL_INST_DIST_MD aMeth   ) 
 

Value:

template aMeth<TQCMndoDistMDSystManager>(TQCMndoDistMDSystManager&, \
    TQCMndoDistMDSystManager::TSystem::QCIterator&);                \
template aMeth<TQCAm1DistMDSystManager> (TQCAm1DistMDSystManager&,  \
    TQCAm1DistMDSystManager::TSystem::QCIterator&);                 \
template aMeth<TQCPm3DistMDSystManager> (TQCPm3DistMDSystManager&,  \
    TQCPm3DistMDSystManager::TSystem::QCIterator&);

Definition at line 763 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST_DIST_MD_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoDistMDSystManager>(TQCMndoDistMDSystManager&, \
    TQCMndoDistMDSystManager::TSystem::QCIterator&, param);         \
template aMeth<TQCAm1DistMDSystManager> (TQCAm1DistMDSystManager&,  \
    TQCAm1DistMDSystManager::TSystem::QCIterator&, param);          \
template aMeth<TQCPm3DistMDSystManager> (TQCPm3DistMDSystManager&,  \
    TQCPm3DistMDSystManager::TSystem::QCIterator&, param);

Definition at line 815 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST_GLOBAL aMeth   ) 
 

Value:

template aMeth<TQCMndoGSystManager> (TQCMndoGSystManager&, \
    TQCMndoGSystManager::TSystem::QCIterator&);            \
template aMeth<TQCAm1GSystManager>  (TQCAm1GSystManager&,  \
    TQCAm1GSystManager::TSystem::QCIterator&);             \
template aMeth<TQCPm3GSystManager>  (TQCPm3GSystManager&,  \
    TQCPm3GSystManager::TSystem::QCIterator&);

Definition at line 741 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST_GLOBAL_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoGSystManager> (TQCMndoGSystManager&, \
    TQCMndoGSystManager::TSystem::QCIterator&, param);     \
template aMeth<TQCAm1GSystManager>  (TQCAm1GSystManager&,  \
    TQCAm1GSystManager::TSystem::QCIterator&, param);      \
template aMeth<TQCPm3GSystManager>  (TQCPm3GSystManager&,  \
    TQCPm3GSystManager::TSystem::QCIterator&, param);

Definition at line 793 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST_MD aMeth   ) 
 

Value:

template aMeth<TQCMndoMDSystManager>(TQCMndoMDSystManager&, \
    TQCMndoMDSystManager::TSystem::QCIterator&);            \
template aMeth<TQCAm1MDSystManager> (TQCAm1MDSystManager&,  \
    TQCAm1MDSystManager::TSystem::QCIterator&);             \
template aMeth<TQCPm3MDSystManager> (TQCPm3MDSystManager&,  \
    TQCPm3MDSystManager::TSystem::QCIterator&);

Definition at line 752 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST_MD_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoMDSystManager>(TQCMndoMDSystManager&, \
    TQCMndoMDSystManager::TSystem::QCIterator&, param);     \
template aMeth<TQCAm1MDSystManager> (TQCAm1MDSystManager&,  \
    TQCAm1MDSystManager::TSystem::QCIterator&, param);      \
template aMeth<TQCPm3MDSystManager> (TQCPm3MDSystManager&,  \
    TQCPm3MDSystManager::TSystem::QCIterator&, param);

Definition at line 804 of file QCCommon.hpp.

#define QCMANAGER_ITER_METH_EXPL_INST_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoGSystManager> (TQCMndoGSystManager&,          \
    TQCMndoGSystManager::TSystem::QCIterator&, param);              \
template aMeth<TQCAm1GSystManager>  (TQCAm1GSystManager&,           \
    TQCAm1GSystManager::TSystem::QCIterator&, param);               \
template aMeth<TQCPm3GSystManager>  (TQCPm3GSystManager&,           \
    TQCPm3GSystManager::TSystem::QCIterator&, param);               \
template aMeth<TQCMndoMDSystManager>(TQCMndoMDSystManager&,         \
    TQCMndoMDSystManager::TSystem::QCIterator&, param);             \
template aMeth<TQCAm1MDSystManager> (TQCAm1MDSystManager&,          \
    TQCAm1MDSystManager::TSystem::QCIterator&, param);              \
template aMeth<TQCPm3MDSystManager> (TQCPm3MDSystManager&,          \
    TQCPm3MDSystManager::TSystem::QCIterator&, param);

Definition at line 850 of file QCCommon.hpp.

#define QCMANAGER_METH_EXPL_INST aMeth   ) 
 

Value:

Definition at line 683 of file QCCommon.hpp.

#define QCMANAGER_METH_EXPL_INST_DIST_MD aMeth   ) 
 

Value:

template aMeth<TQCMndoDistMDSystManager>(TQCMndoDistMDSystManager&); \
template aMeth<TQCAm1DistMDSystManager> (TQCAm1DistMDSystManager&);  \
template aMeth<TQCPm3DistMDSystManager> (TQCPm3DistMDSystManager&);

Definition at line 667 of file QCCommon.hpp.

Referenced by QCDCAlgo::optimalDamping().

#define QCMANAGER_METH_EXPL_INST_DIST_MD_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoDistMDSystManager>(TQCMndoDistMDSystManager&, param); \
template aMeth<TQCAm1DistMDSystManager> (TQCAm1DistMDSystManager&,  param); \
template aMeth<TQCPm3DistMDSystManager> (TQCPm3DistMDSystManager&,  param);

Definition at line 706 of file QCCommon.hpp.

#define QCMANAGER_METH_EXPL_INST_GLOBAL aMeth   ) 
 

Value:

template aMeth<TQCMndoGSystManager> (TQCMndoGSystManager&); \
template aMeth<TQCAm1GSystManager>  (TQCAm1GSystManager&);  \
template aMeth<TQCPm3GSystManager>  (TQCPm3GSystManager&);

Definition at line 653 of file QCCommon.hpp.

#define QCMANAGER_METH_EXPL_INST_GLOBAL_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoGSystManager> (TQCMndoGSystManager&, param); \
template aMeth<TQCAm1GSystManager>  (TQCAm1GSystManager&,  param); \
template aMeth<TQCPm3GSystManager>  (TQCPm3GSystManager&,  param);

Definition at line 692 of file QCCommon.hpp.

#define QCMANAGER_METH_EXPL_INST_MD aMeth   ) 
 

Value:

template aMeth<TQCMndoMDSystManager>(TQCMndoMDSystManager&); \
template aMeth<TQCAm1MDSystManager> (TQCAm1MDSystManager&);  \
template aMeth<TQCPm3MDSystManager> (TQCPm3MDSystManager&);

Definition at line 660 of file QCCommon.hpp.

Referenced by QCDCAlgo::optimalDamping().

#define QCMANAGER_METH_EXPL_INST_MD_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoMDSystManager>(TQCMndoMDSystManager&, param); \
template aMeth<TQCAm1MDSystManager> (TQCAm1MDSystManager&,  param); \
template aMeth<TQCPm3MDSystManager> (TQCPm3MDSystManager&,  param);

Definition at line 699 of file QCCommon.hpp.

#define QCMANAGER_METH_EXPL_INST_PARAM aMeth,
param   ) 
 

Value:

template aMeth<TQCMndoGSystManager>     (TQCMndoGSystManager&,      param); \
template aMeth<TQCAm1GSystManager>      (TQCAm1GSystManager&,       param); \
template aMeth<TQCPm3GSystManager>      (TQCPm3GSystManager&,       param); \
template aMeth<TQCMndoMDSystManager>    (TQCMndoMDSystManager&,     param); \
template aMeth<TQCAm1MDSystManager>     (TQCAm1MDSystManager&,      param); \
template aMeth<TQCPm3MDSystManager>     (TQCPm3MDSystManager&,      param);

Definition at line 728 of file QCCommon.hpp.

#define QCMax   FQCMax
 

Definition at line 312 of file QCCommon.hpp.

Referenced by QCReader::readAtomsFile().

#define QCMin   FQCMin
 

Definition at line 311 of file QCCommon.hpp.

#define QCMODEL_EXPL_INST aClass   ) 
 

Value:

template class aClass<TQCMndo>; \
template class aClass<TQCAm1>;  \
template class aClass<TQCPm3>;

Definition at line 580 of file QCCommon.hpp.

#define QCMODEL_SYSTEM_EXPL_INST aClass   ) 
 

Value:

template class aClass<TQCMndo, TQCGSystem>;      \
template class aClass<TQCAm1,  TQCGSystem>;      \
template class aClass<TQCPm3,  TQCGSystem>;      \
template class aClass<TQCMndo, TQCMDSystem>;     \
template class aClass<TQCAm1,  TQCMDSystem>;     \
template class aClass<TQCPm3,  TQCMDSystem>;

Definition at line 602 of file QCCommon.hpp.

#define QCPARAMETER_METH_EXPL_INST aMeth   ) 
 

Value:

template aMeth<QCMndoParam>(const QCMndoParam* QCRestrict); \
template aMeth<QCAm1Param> (const QCAm1Param*  QCRestrict); \
template aMeth<QCPm3Param> (const QCPm3Param*  QCRestrict)

Definition at line 882 of file QCCommon.hpp.

#define QCPARAMETER_METH_EXPL_INST_PARAM aMeth,
param   ) 
 

Value:

template aMeth<QCMndoParam>(const QCMndoParam* QCRestrict, param); \
template aMeth<QCAm1Param> (const QCAm1Param*  QCRestrict, param); \
template aMeth<QCPm3Param> (const QCPm3Param*  QCRestrict, param)

Definition at line 889 of file QCCommon.hpp.

Referenced by QCDensityGtr< TPMatrix >::computeElemsDC().

#define QCPow   FQCPow
 

Definition at line 313 of file QCCommon.hpp.

#define QCSign   FQCSign
 

Definition at line 315 of file QCCommon.hpp.

#define SEVEN_PARAMS a,
b,
c,
d,
e,
f,
 )     a, b, c, d, e, f, g
 

Definition at line 508 of file QCCommon.hpp.

Referenced by QCDensityGtr< TPMatrix >::computeElemsDC().

#define SIX_PARAMS a,
b,
c,
d,
e,
 )     a, b, c, d, e, f
 

Definition at line 506 of file QCCommon.hpp.

#define TEN_PARAMS a,
b,
c,
d,
e,
f,
g,
h,
i,
 )     a, b, c, d, e, f, g, h, i, j
 

Definition at line 514 of file QCCommon.hpp.

#define THREE_PARAMS a,
b,
 )     a, b, c
 

Definition at line 500 of file QCCommon.hpp.

#define TWELVE_PARAMS a,
b,
c,
d,
e,
f,
g,
h,
i,
j,
k,
 )     a, b, c, d, e, f, g, h, i, j, k, l
 

Definition at line 518 of file QCCommon.hpp.

#define TWO_PARAMS a,
 )     a, b
 

Definition at line 498 of file QCCommon.hpp.

#define TWO_QCPARAMETERS_METH_EXPL_INST_PARAM aMeth,
param   ) 
 

Value:

template aMeth<QCMndoParam>(const QCMndoParam* QCRestrict,         \
                            const QCMndoParam* QCRestrict, param); \
template aMeth<QCAm1Param> (const QCAm1Param*  QCRestrict,         \
                            const QCAm1Param*  QCRestrict, param); \
template aMeth<QCPm3Param> (const QCPm3Param*  QCRestrict,         \
                            const QCPm3Param*  QCRestrict, param);

Definition at line 896 of file QCCommon.hpp.


Typedef Documentation

typedef double QCFloat
 

Definition at line 95 of file QCCommon.hpp.

typedef signed char QCSChar
 

Definition at line 66 of file QCCommon.hpp.

typedef signed short int QCSSInt
 

Definition at line 75 of file QCCommon.hpp.

typedef unsigned char QCUChar
 

Definition at line 57 of file QCCommon.hpp.

typedef unsigned int QCUInt
 

The type of the unsigned int in QC++.

Definition at line 90 of file QCCommon.hpp.

typedef unsigned short int QCUSInt
 

Definition at line 84 of file QCCommon.hpp.

typedef signed char schar
 

A type to save memory space. Can store integer between -127 and 128. Be careful, it causes bugs difficult to fix on overflow.

Definition at line 65 of file QCCommon.hpp.

typedef signed short int ssint
 

A type to save memory space. Can store integer between -32767 and 32768. Be careful, it causes bugs difficult to fix on overflow.

Definition at line 74 of file QCCommon.hpp.

typedef QCAm1T<QCAm1Param> TQCAm1
 

Definition at line 551 of file QCCommon.hpp.

typedef QCManager<TQCAm1, TQCGSystem> TQCAm1GSystManager
 

Definition at line 563 of file QCCommon.hpp.

typedef QCManager<TQCAm1, TQCMDSystem> TQCAm1MDSystManager
 

Definition at line 567 of file QCCommon.hpp.

typedef QCGlobalSystem<QCSCFAlgo> TQCGSystem
 

Definition at line 554 of file QCCommon.hpp.

typedef QCMDSystem<QCDCAlgo> TQCMDSystem
 

Definition at line 555 of file QCCommon.hpp.

typedef QCMndoT<QCMndoParam> TQCMndo
 

Global typedefs

Definition at line 542 of file QCCommon.hpp.

typedef QCManager<TQCMndo, TQCGSystem> TQCMndoGSystManager
 

Definition at line 562 of file QCCommon.hpp.

typedef QCManager<TQCMndo, TQCMDSystem> TQCMndoMDSystManager
 

Definition at line 566 of file QCCommon.hpp.

typedef QCPm3T<QCPm3Param> TQCPm3
 

Definition at line 552 of file QCCommon.hpp.

typedef QCManager<TQCPm3, TQCGSystem> TQCPm3GSystManager
 

Definition at line 564 of file QCCommon.hpp.

typedef QCManager<TQCPm3, TQCMDSystem> TQCPm3MDSystManager
 

Definition at line 568 of file QCCommon.hpp.

typedef unsigned char uchar
 

A type to save memory space. Can store integer between 0 and 255. Be careful, it causes bugs difficult to fix on overflow.

Definition at line 56 of file QCCommon.hpp.

typedef unsigned short int usint
 

A type to save memory space. Can store integer between 0 and 65535. Be careful, it causes bugs difficult to fix on overflow.

Definition at line 83 of file QCCommon.hpp.


Enumeration Type Documentation

enum QCComputation
 

Enumerator:
QC_ENERGY 
QC_ENERGY_DERIV 
QC_TOOLS 

Definition at line 235 of file QCCommon.hpp.

enum QCDerivationType
 

Enumerator:
QC_NUMERICAL_DERIVATION 
QC_ANALYTICAL_DERIVATION 

Definition at line 193 of file QCCommon.hpp.

enum QCDerivShiftBhvr
 

Enumerator:
QC_CONSTANT 
QC_COMPUTED 

Definition at line 173 of file QCCommon.hpp.

enum QCDiagoAlgorithm
 

Enumerator:
QC_CLASSIC_DIAGO 
QC_DC_DIAGO 

Definition at line 203 of file QCCommon.hpp.

enum QCGeometryAlgorithm
 

Enumerator:
QC_LBFGS 
QC_BFGS 

Definition at line 163 of file QCCommon.hpp.

enum QCInitDensityMatrix
 

Different type of density matrix initialization.

Enumerator:
QC_DENSITY_DIAG 
QC_DENSITY_FROM_FILE  Init the matrix from a file.

Definition at line 156 of file QCCommon.hpp.

enum QCIntgAcquisitionMethod
 

Enumerator:
QC_DIRECT_COMPUTATION 
QC_INDIRECT_STORAGE 

Definition at line 183 of file QCCommon.hpp.

enum QCMainAlgorithm
 

The name of the SCF Algorithms in QC++

Enumerator:
QC_SCF 
QC_LEVEL_SHIFTING  Classical Self constitant field method (fixpoint method).
QC_OPTIMAL_DAMPING  Level Shifting method.
QC_DC_SCF  Optimal damping method.
QC_DC_LEVEL_SHIFTING  SCF algorithm for the divide and conquer algorithm.
QC_DC_OPTIMAL_DAMPING  Optimal damping for the Divide and conquer metho.

Definition at line 144 of file QCCommon.hpp.

enum QCModelType
 

Enumerator:
QC_MNDO_MODEL 
QC_AM1_MODEL 
QC_PM3_MODEL 

Definition at line 213 of file QCCommon.hpp.

enum QCParameterType
 

Enumerator:
QC_MNDO_PARAM 
QC_AM1_PARAM 
QC_PM3_PARAM 

Definition at line 224 of file QCCommon.hpp.

enum QCPartitionerType
 

QCPartitionerType

Enumerator:
QC_LINEAR 
QC_KIMIKA  The name of the a general partitioner fbased on the SCOTCH library.

Definition at line 271 of file QCCommon.hpp.

enum QCPartitionType
 

QCPartitionType describes the different kinds of partionning implemented in QC++

Enumerator:
QC_STANDARD_PART 
QC_DIXON_PART  The partitionning introduced by Dixn and Mertz, based on AminoAcid of a molecule.

Definition at line 260 of file QCCommon.hpp.

enum QCSubDomainZone
 

QCSubDomainZone describes for an atoms in a subdomain the type of its zone (Core, Buffer1, Buufer2)

Enumerator:
QC_CORE 
QC_SHELL1  The core of the subdomain whereth calculation are exact.
QC_SHELL2  For all partitions (Dixon+Standart), this is the Cut region.

Definition at line 250 of file QCCommon.hpp.


Function Documentation

static const string DOUBLE_DOT ":"   )  [static]
 

Referenced by QCReader::readLiteralAndVal().

int FQCAbs int  value  )  [inline]
 

Definition at line 327 of file QCCommon.hpp.

QCFloat FQCAbs QCFloat  value  )  [inline]
 

The absolute value.

Definition at line 322 of file QCCommon.hpp.

Referenced by QCPartSubDomain::addAtomsInBuffers(), QCMDSystem< TPSolver >::adjustFermiEnergyDichotomy(), QCLinearPartitioner< TPSystem >::equilibrateAOs(), and QCLinearPartitioner< TPSystem >::sortEigenVects().

int FQCBitCount QCUInt  theBitString  )  [inline]
 

Counts the number of bit 1 of an unsigned int.

Definition at line 470 of file QCCommon.hpp.

QCFloat FQCExp const QCFloat val  )  [inline]
 

The exponential function with a cut off at QCMTwentyFive(-25e0).

Definition at line 390 of file QCCommon.hpp.

References QC_ZERO, and QCMTwentyFive.

template<class TPNumerical>
TPNumerical FQCMax TPNumerical  valueA,
TPNumerical  valueB
[inline]
 

The maximum of 2 numbers.

Definition at line 349 of file QCCommon.hpp.

Referenced by QCPartSubDomain::addAtomsInBuffers(), QCLinearPartitioner< TPSystem >::equilibrateAOs(), and QCKimikaPartitioner< TPSystem >::partitioning().

template<class TPNumerical>
TPNumerical FQCMin TPNumerical  valueA,
TPNumerical  valueB
[inline]
 

The minimum of 2 numbers.

Definition at line 338 of file QCCommon.hpp.

template<int N>
QCFloat FQCPow const QCFloat val  )  [inline]
 

Power function for floating point value in a template version.

Definition at line 376 of file QCCommon.hpp.

References FQCPow().

Here is the call graph for this function:

template<int N>
int FQCPow const int &  val  )  [inline]
 

Power function for integer value in a template version.

Definition at line 360 of file QCCommon.hpp.

Referenced by FQCPow().

template<>
QCFloat FQCPow< 1 > const QCFloat val  )  [inline]
 

template<>
int FQCPow< 1 > const int &  val  )  [inline]
 

template<class TPClass>
TPClass* FQCReNew TPClass *  oldAddress,
const int &  newSize,
const int &  oldSize
[inline]
 

Increases the size of an array and copy all its elements to the new address.

Definition at line 420 of file QCCommon.hpp.

QCFloat FQCSign const QCFloat val  )  [inline]
 

Return -1e0 or 1e0 depnding on the sign of val.

Definition at line 404 of file QCCommon.hpp.

References QC_ONE, and QC_ZERO.

char* FQCToUpper char *  theCStr  )  [inline]
 

Converts a character string to upper case.

Definition at line 439 of file QCCommon.hpp.

static const string INPUT_SUFFIX ".qci"   )  [static]
 

Referenced by main(), QCManager< TPModel, TPSystem >::readAtoms(), and QCManager< TPModel, TPSystem >::readParameters().

static const string OUTPUT_SUFFIX ".qco"   )  [static]
 

Referenced by QCModelMatrices::buildMatrices(), QCKimikaPartitioner< TPSystem >::extractDomains(), QCSCFAlgo::fixPoint(), QCDCAlgo::fixPoint(), QCSCFAlgo::optimalDamping(), QCDCAlgo::optimalDamping(), QCSymMatrix::printFullInFile(), QCSymMatrix::printInFile(), QCMatrix::printInFile(), QCMatrix::sampleDistanceInFile(), and QCMatrix::sampleInFile().

static const string PATH_SEPARATOR "/"   )  [static]
 

Referenced by QCKimikaPartitioner< TPSystem >::extractDomains(), QCSCFAlgo::fixPoint(), QCDCAlgo::fixPoint(), QCMemory::getUsedMemoryMax(), QCKimikaPartitioner< TPSystem >::init(), QCReader::openFile(), QCIntgWriter::openFile(), QCIntgReader::openFile(), QCSCFAlgo::optimalDamping(), QCDCAlgo::optimalDamping(), QCSymMatrix::printInFile(), QCMatrix::printInFile(), and QCKimikaPartitioner< TPSystem >::writeInventorFiles().

void stringToUpper std::string  s  )  [inline]
 

Converts a character string to upper case.

Definition at line 456 of file QCCommon.hpp.

Referenced by QCReader::readNewPartitionFile(), and QCReader::readOldPartitionFile().

template<class Enum>
void updateEnum pair< string, Enum > &  member,
const map< string, Enum > &  strmap
[inline]
 

FIXME : bad value of member

Definition at line 485 of file QCCommon.hpp.

Referenced by QCGeneralData::reportStrValues(), QCGeneralData::setComputationType(), and QCGeneralData::setPartitionType().


Variable Documentation

const int NB_ZONES = 3
 

The number of different region in a subdomain

Definition at line 246 of file QCCommon.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::extractDomains().

const QCFloat QC1024 = 1024e0 [static]
 

Definition at line 103 of file QCCommon.hpp.

Referenced by QCMemory::getUsedMemoryMax().

const QCFloat QC_Em5 = 1e-5 [static]
 

Definition at line 113 of file QCCommon.hpp.

const QCFloat QC_Em6 = 1e-6 [static]
 

Definition at line 112 of file QCCommon.hpp.

const QCFloat QC_EPS_ZERO = 1e-12 [static]
 

Definition at line 114 of file QCCommon.hpp.

const QCFloat QC_FOUR = 4e0 [static]
 

Definition at line 108 of file QCCommon.hpp.

Referenced by QCMndo::deriveElecEnergy().

const QCFloat QC_HALF = QC_ONE/QC_TWO [static]
 

Definition at line 109 of file QCCommon.hpp.

Referenced by QCMDSystem< TPSolver >::adjustFermiEnergyDichotomy(), QCMDSystem< TPSolver >::calculateLambdaOptDamp(), QCFockGtr< TPMatrix >::completeElems(), QCMndo::computeElecEnergy(), QCHamiltonGtr< TPMatrix >::computeElems(), QCMndo::deriveElecEnergy(), QCMndoParam::fillHPtr(), QCFockGtr< TPMatrix >::levelShifting(), QCSubDomain::modifyMatricesAndEnergy(), QCSCFAlgo::optimalDamping(), QCMndoParam::setRo0(), QCMndoParam::setRo1(), QCMndoParam::setRo2(), and QCSubDomain::traceProductCoreShell1().

const QCFloat QC_ONE = 1e0 [static]
 

Definition at line 105 of file QCCommon.hpp.

Referenced by QCMDSystem< TPSolver >::calculateLambdaOptDamp(), QCMndo::computeCoreEnergy(), QCOverlapGtr< TPMatrix >::computeElems(), QCMndo::deriveCoreEnergy(), QCSubDomain::fillWeight(), FQCSign(), QCSubDomain::modifyMatricesAndEnergy(), QCSCFAlgo::optimalDamping(), QCDCAlgo::optimalDamping(), and QCMndo::sometimesR().

const QCFloat QC_THREE = 3e0 [static]
 

Definition at line 107 of file QCCommon.hpp.

Referenced by QCFockGtr< TPMatrix >::completeElems().

const QCFloat QC_TWO = 2e0 [static]
 

Definition at line 106 of file QCCommon.hpp.

Referenced by QCMDSystem< TPSolver >::addLevels(), QCMDSystem< TPSolver >::adjustFermiEnergy(), QCMDSystem< TPSolver >::adjustFermiEnergyDichotomy(), QCMDSystem< TPSolver >::calculateLambdaOptDamp(), QCFockGtr< TPMatrix >::completeElems(), QCDensityGtr< TPMatrix >::computeElems(), QCDensityGtr< TPMatrix >::computeElemsDC(), QCGlobalSystem< TPSolver >::computeEnergyDerivatives(), QCMndo::deriveCoreEnergy(), QCMndo::deriveElecEnergy(), QCSCFAlgo::fixPoint(), QCSCFAlgo::optimalDamping(), QCDCAlgo::optimalDamping(), QCMDSystem< TPSolver >::removeLevels(), and QCSymMatrix::traceProduct().

const QCFloat QC_ZERO = 0e0 [static]
 

Definition at line 104 of file QCCommon.hpp.

Referenced by QCMDSystem< TPSolver >::addLevels(), QCMDSystem< TPSolver >::adjustFermiEnergy(), QCMDSystem< TPSolver >::adjustFermiEnergyDichotomy(), QCMDSystem< TPSolver >::adjustFermiEnergyNew(), QCMDSystem< TPSolver >::applyOptimalDamping(), QCMDSystem< TPSolver >::calculateLambdaOptDamp(), QCMatrix::calculateNumericalDerivatives(), QCFockGtr< TPMatrix >::completeElems(), QCMDSystem< TPSolver >::completeFockMatricesAndElecEnergy(), QCSubDomain::computeBFactor(), QCMndo::computeCoreEnergy(), QCRepInterElec::computeDerivatives(), QCMndo::computeElecEnergy(), QCDensityGtr< TPMatrix >::computeElems(), QCDensityGtr< TPMatrix >::computeElemsDC(), QCGlobalSystem< TPSolver >::computeEnergyDerivatives(), QCMatrix::deltaElemMax(), QCMndo::deriveCoreEnergy(), QCMndo::deriveElecEnergy(), QCMndo::dispatchDerivative(), QCMatrix::elemMax(), QCSubDomain::fillWeight(), QCDCAlgo::fixPoint(), FQCExp(), FQCSign(), QCSCFAlgo::optimalDamping(), QCDCAlgo::optimalDamping(), QCLinearPartitioner< TPSystem >::QCLinearPartitioner(), QCMDSystem< TPSolver >::removeLevels(), QCChrono::reset(), QCChrono::reset_r(), QCAtoms::resetDisps(), QCLinearPartitioner< TPSystem >::setToZero(), QCChrono::start(), QCChrono::start_r(), QCMDSystem< TPSolver >::testConvergence(), QCMatrix::trace(), QCSymMatrix::traceProduct(), and QCSubDomain::traceProductCoreShell1().

const int QCCStrLen_128 = 128 [static]
 

Definition at line 125 of file QCCommon.hpp.

const int QCCStrLen_16 = 16 [static]
 

Definition at line 122 of file QCCommon.hpp.

const int QCCStrLen_256 = 256 [static]
 

Definition at line 126 of file QCCommon.hpp.

const int QCCStrLen_32 = 32 [static]
 

Definition at line 123 of file QCCommon.hpp.

Referenced by QCMemory::getUsedMemoryMax().

const int QCCStrLen_64 = 64 [static]
 

Definition at line 124 of file QCCommon.hpp.

const QCFloat QCMTwentyFive = -25e0 [static]
 

Definition at line 102 of file QCCommon.hpp.

Referenced by FQCExp().

const int QCPP_FAILURE = 0 [static]
 

Definition at line 129 of file QCCommon.hpp.

const int QCPP_SUCCES = 0 [static]
 

Definition at line 128 of file QCCommon.hpp.

Referenced by main().


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