QCKimikaPartitioner< TPSystem > Class Template Reference

#include <QCKimikaPartitioner.hpp>

Inheritance diagram for QCKimikaPartitioner< TPSystem >:

Inheritance graph
[legend]
List of all members.

Detailed Description

template<class TPSystem>
class QCKimikaPartitioner< TPSystem >

class QCKimikaPartitioner

Definition at line 56 of file QCKimikaPartitioner.hpp.

Public Member Functions

virtual void init (const QCGeneralData &data, const QCFiles &files, const int *load, const int sizeLoad)
 Initialize.
virtual void partitioning (TPSystem &mdsystem)
 QCKimikaPartitioner (void)
void writeInventorFiles (const QCSystem &root)
virtual ~QCKimikaPartitioner (void)

Protected Member Functions

void allocStructures (void)
void extractDomains (TPSystem &mdsystem)
void finalize (void)
void initAtomsList (AtomsList &listdat, const QCSystem &root)
void initAtomsListTest (AtomsList &listdat, AtomsGraph &grafdata)
void initFragChain (const QCSystem &root)
void initPartChain (void)
void resetStructures (void)
void setAtomsInBuffers (const AtomsGraph &grandat)
void setAtomsInBuffersDixon (const AtomsGraph &grandat)
void setAtomsInBuffersStd (const AtomsGraph &grandat)
void setAtomsInKernel (void)

Protected Attributes

std::string _fileName
int * frag_firsttab
int * frag_nexttab
AtomsPartGlobal *__restrict__ globtab
int *__restrict__ lcortab
int *__restrict__ lnumtab
int *__restrict__ lovltab
int *__restrict__ parttab
int parttab_size
int * sd_firsttab
int * sd_nexttab

Private Member Functions

void printGlobalTab (const std::string &msg)
void printPartTab (const std::string &msg)


Constructor & Destructor Documentation

template<class TPSystem>
QCKimikaPartitioner< TPSystem >::QCKimikaPartitioner void   ) 
 

Definition at line 44 of file QCKimikaPartitioner.cpp.

template<class TPSystem>
QCKimikaPartitioner< TPSystem >::~QCKimikaPartitioner void   )  [virtual]
 

Definition at line 54 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::finalize().

Here is the call graph for this function:


Member Function Documentation

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::allocStructures void   )  [protected]
 

Definition at line 249 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lcortab, QCKimikaPartitioner< TPSystem >::lnumtab, QCKimikaPartitioner< TPSystem >::lovltab, QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::parttab_size, QCKimikaPartitioner< TPSystem >::sd_firsttab, and QCKimikaPartitioner< TPSystem >::sd_nexttab.

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

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::extractDomains TPSystem &  mdSystem  )  [protected]
 

Init domain number

init counters

Set aliases

Definition at line 596 of file QCKimikaPartitioner.cpp.

References QCPartitioner< TPSystem >::charge, QCPartitioner< TPSystem >::files, QCFiles::getAtomsFile(), QCCommon::getPidStr(), QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lcortab, QCKimikaPartitioner< TPSystem >::lnumtab, QCKimikaPartitioner< TPSystem >::lovltab, NB_ZONES, QCPartitioner< TPSystem >::nbPartitions, QCCommon::outdir, OUTPUT_SUFFIX(), PACKAGE, QCKimikaPartitioner< TPSystem >::parttab_size, QCPartitioner< TPSystem >::partTypeStr, PATH_SEPARATOR(), QC_CORE, QC_PART_NONE, QC_SHELL1, QC_SHELL2, QC_TRACE_PART, QCPartitioner< TPSystem >::radius1, QCPartitioner< TPSystem >::radius2, and VERSION.

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

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::finalize void   )  [protected]
 

Definition at line 857 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::frag_firsttab, QCKimikaPartitioner< TPSystem >::frag_nexttab, QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lcortab, QCKimikaPartitioner< TPSystem >::lnumtab, QCKimikaPartitioner< TPSystem >::lovltab, QCKimikaPartitioner< TPSystem >::parttab, QC_TRACE_PART, QCKimikaPartitioner< TPSystem >::sd_firsttab, and QCKimikaPartitioner< TPSystem >::sd_nexttab.

Referenced by QCKimikaPartitioner< TPSystem >::partitioning(), and QCKimikaPartitioner< TPSystem >::~QCKimikaPartitioner().

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::init const QCGeneralData data,
const QCFiles files,
const int *  load,
const int  sizeLoad
[virtual]
 

Initialize.

Reimplemented from QCPartitioner< TPSystem >.

Definition at line 67 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::_fileName, QCCommon::datadir, QCFiles::getAtomsFile(), PATH_SEPARATOR(), and QC_TRACE_PART.

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::initAtomsList AtomsList &  listdat,
const QCSystem root
[protected]
 

Definition at line 926 of file QCKimikaPartitioner.cpp.

References COORDX, COORDY, COORDZ, QCAtoms::getCoordsAt(), QCAtoms::getFragment(), QCAtoms::getNbAtoms(), QCAtoms::getNbFrags(), QCAtoms::getType(), and QC_TRACE_PART.

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

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::initAtomsListTest AtomsList &  listdat,
AtomsGraph &  grafdata
[protected]
 

Definition at line 908 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::_fileName, and QC_TRACE_PART.

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::initFragChain const QCSystem root  )  [protected]
 

Definition at line 1028 of file QCKimikaPartitioner.cpp.

References QC_TRACE_PART.

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::initPartChain void   )  [protected]
 

Definition at line 1042 of file QCKimikaPartitioner.cpp.

References QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::parttab, QCKimikaPartitioner< TPSystem >::parttab_size, QC_TRACE_PART, QCKimikaPartitioner< TPSystem >::sd_firsttab, and QCKimikaPartitioner< TPSystem >::sd_nexttab.

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

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::partitioning TPSystem &  mdSystem  )  [virtual]
 

Set random seed

Init graph and list

Chain

Init atoms load

PARTITION

Free atoms list

Init sd_firsttab & sd_nexttab

Init kernel zones

Build buffers

Save the partition of the molecule

l Build QCPP domains

Free atoms graph

Finalize

Reimplemented from QCPartitioner< TPSystem >.

Definition at line 83 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::allocStructures(), QCPartitioner< TPSystem >::charge, QCKimikaPartitioner< TPSystem >::extractDomains(), QCKimikaPartitioner< TPSystem >::finalize(), FQCMax(), QCAtoms::getNbAtoms(), QCKimikaPartitioner< TPSystem >::initAtomsList(), QCKimikaPartitioner< TPSystem >::initPartChain(), QCKimikaPartitioner< TPSystem >::parttab, QCKimikaPartitioner< TPSystem >::parttab_size, QCKimikaPartitioner< TPSystem >::printPartTab(), QC_TRACE_PART, QCRestrict, QCKimikaPartitioner< TPSystem >::resetStructures(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffers(), QCKimikaPartitioner< TPSystem >::setAtomsInKernel(), QCPartitioner< TPSystem >::updateInternalStructure(), and QCKimikaPartitioner< TPSystem >::writeInventorFiles().

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::printGlobalTab const std::string &  msg  )  [private]
 

Private methods:

Definition at line 1306 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::globtab, QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::parttab_size, QC_CORE, QC_SHELL1, and QC_SHELL2.

Referenced by QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd(), and QCKimikaPartitioner< TPSystem >::setAtomsInKernel().

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::printPartTab const std::string &  msg  )  [private]
 

Definition at line 1296 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::parttab, and QCKimikaPartitioner< TPSystem >::parttab_size.

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

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::resetStructures void   )  [protected]
 

Definition at line 266 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lcortab, QCKimikaPartitioner< TPSystem >::lnumtab, QCKimikaPartitioner< TPSystem >::lovltab, QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::parttab_size, and QC_PART_NONE.

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

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::setAtomsInBuffers const AtomsGraph &  grandat  )  [protected]
 

Definition at line 296 of file QCKimikaPartitioner.cpp.

References QC_DIXON_PART, QC_STANDARD_PART, QC_TRACE_PART, QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), and QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd().

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

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon const AtomsGraph &  grandat  )  [protected]
 

Fill tabs

Current domain: Nothing to do for Dixon

Remote domain:

Set local numbers

Build cut zone

All domains vertnum is in core or overlap

Definition at line 457 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lcortab, QCKimikaPartitioner< TPSystem >::lnumtab, QCKimikaPartitioner< TPSystem >::lovltab, QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::parttab, QCKimikaPartitioner< TPSystem >::parttab_size, QCKimikaPartitioner< TPSystem >::printGlobalTab(), QC_CORE, QC_PART_NONE, QC_SHELL1, QC_SHELL2, QC_TRACE_PART, QCRestrict, QCPartitioner< TPSystem >::radius1, and QCPartitioner< TPSystem >::radius2.

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

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd const AtomsGraph &  grandat  )  [protected]
 

Build overlap zone

Current domain

Remote domain

Set local numbers

Build cut zone

All domains vertnum is in core or overlap

Definition at line 320 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lcortab, QCKimikaPartitioner< TPSystem >::lnumtab, QCKimikaPartitioner< TPSystem >::lovltab, QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::parttab, QCKimikaPartitioner< TPSystem >::parttab_size, QCKimikaPartitioner< TPSystem >::printGlobalTab(), QC_CORE, QC_PART_NONE, QC_SHELL1, QC_SHELL2, QC_TRACE_PART, QCRestrict, QCPartitioner< TPSystem >::radius1, and QCPartitioner< TPSystem >::radius2.

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

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::setAtomsInKernel void   )  [protected]
 

Definition at line 217 of file QCKimikaPartitioner.cpp.

References QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lnumtab, QCPartitioner< TPSystem >::nbPartitions, QCKimikaPartitioner< TPSystem >::printGlobalTab(), QC_CORE, QC_TRACE_PART, QCKimikaPartitioner< TPSystem >::sd_firsttab, and QCKimikaPartitioner< TPSystem >::sd_nexttab.

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

Here is the call graph for this function:

template<class TPSystem>
void QCKimikaPartitioner< TPSystem >::writeInventorFiles const QCSystem root  ) 
 

Definition at line 1069 of file QCKimikaPartitioner.cpp.

References COORDX, COORDY, COORDZ, QCPartitioner< TPSystem >::files, QCFiles::getAtomsFile(), QCAtoms::getCoordsAt(), QCAtoms::getNbAtoms(), QCCommon::getPidStr(), QCKimikaPartitioner< TPSystem >::globtab, QCKimikaPartitioner< TPSystem >::lnumtab, QCPartitioner< TPSystem >::nbPartitions, QCCommon::outdir, PACKAGE, QCPartitioner< TPSystem >::partTypeStr, PATH_SEPARATOR(), QC_CORE, QC_DIXON_PART, QC_SHELL1, QC_SHELL2, QC_STANDARD_PART, QCPartitioner< TPSystem >::radius1, QCPartitioner< TPSystem >::radius2, and VERSION.

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

Here is the call graph for this function:


Member Data Documentation

template<class TPSystem>
std::string QCKimikaPartitioner< TPSystem >::_fileName [protected]
 

Definition at line 210 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::init(), and QCKimikaPartitioner< TPSystem >::initAtomsListTest().

template<class TPSystem>
int* QCKimikaPartitioner< TPSystem >::frag_firsttab [protected]
 

Definition at line 188 of file QCKimikaPartitioner.hpp.

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

template<class TPSystem>
int* QCKimikaPartitioner< TPSystem >::frag_nexttab [protected]
 

Fragments

Definition at line 187 of file QCKimikaPartitioner.hpp.

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

template<class TPSystem>
AtomsPartGlobal* __restrict__ QCKimikaPartitioner< TPSystem >::globtab [protected]
 

Definition at line 206 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::extractDomains(), QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::printGlobalTab(), QCKimikaPartitioner< TPSystem >::resetStructures(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd(), QCKimikaPartitioner< TPSystem >::setAtomsInKernel(), and QCKimikaPartitioner< TPSystem >::writeInventorFiles().

template<class TPSystem>
int* __restrict__ QCKimikaPartitioner< TPSystem >::lcortab [protected]
 

Definition at line 208 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::extractDomains(), QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::resetStructures(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), and QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd().

template<class TPSystem>
int* __restrict__ QCKimikaPartitioner< TPSystem >::lnumtab [protected]
 

Definition at line 207 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::extractDomains(), QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::resetStructures(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd(), QCKimikaPartitioner< TPSystem >::setAtomsInKernel(), and QCKimikaPartitioner< TPSystem >::writeInventorFiles().

template<class TPSystem>
int* __restrict__ QCKimikaPartitioner< TPSystem >::lovltab [protected]
 

Definition at line 209 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::extractDomains(), QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::resetStructures(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), and QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd().

template<class TPSystem>
int* __restrict__ QCKimikaPartitioner< TPSystem >::parttab [protected]
 

Array of size the number of atoms (parttab_size)

Definition at line 205 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::initPartChain(), QCKimikaPartitioner< TPSystem >::partitioning(), QCKimikaPartitioner< TPSystem >::printPartTab(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), and QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd().

template<class TPSystem>
int QCKimikaPartitioner< TPSystem >::parttab_size [protected]
 

The number of atoms

Definition at line 202 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::extractDomains(), QCKimikaPartitioner< TPSystem >::initPartChain(), QCKimikaPartitioner< TPSystem >::partitioning(), QCKimikaPartitioner< TPSystem >::printGlobalTab(), QCKimikaPartitioner< TPSystem >::printPartTab(), QCKimikaPartitioner< TPSystem >::resetStructures(), QCKimikaPartitioner< TPSystem >::setAtomsInBuffersDixon(), and QCKimikaPartitioner< TPSystem >::setAtomsInBuffersStd().

template<class TPSystem>
int* QCKimikaPartitioner< TPSystem >::sd_firsttab [protected]
 

Definition at line 193 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::initPartChain(), and QCKimikaPartitioner< TPSystem >::setAtomsInKernel().

template<class TPSystem>
int* QCKimikaPartitioner< TPSystem >::sd_nexttab [protected]
 

Domains

Definition at line 192 of file QCKimikaPartitioner.hpp.

Referenced by QCKimikaPartitioner< TPSystem >::allocStructures(), QCKimikaPartitioner< TPSystem >::finalize(), QCKimikaPartitioner< TPSystem >::initPartChain(), and QCKimikaPartitioner< TPSystem >::setAtomsInKernel().


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