70 |
|
|
71 |
|
SimInfo::SimInfo(ForceField* ff, Globals* simParams) : |
72 |
|
forceField_(ff), simParams_(simParams), |
73 |
< |
ndf_(0), fdf_local(0), ndfRaw_(0), ndfTrans_(0), nZconstraint_(0), |
73 |
> |
nAtoms_(0), nBonds_(0), nBends_(0), nTorsions_(0), nInversions_(0), |
74 |
> |
nRigidBodies_(0), nIntegrableObjects_(0), nCutoffGroups_(0), |
75 |
> |
nConstraints_(0), nFluctuatingCharges_(0), |
76 |
|
nGlobalMols_(0), nGlobalAtoms_(0), nGlobalCutoffGroups_(0), |
77 |
|
nGlobalIntegrableObjects_(0), nGlobalRigidBodies_(0), |
78 |
|
nGlobalFluctuatingCharges_(0), nGlobalBonds_(0), nGlobalBends_(0), |
79 |
|
nGlobalTorsions_(0), nGlobalInversions_(0), nGlobalConstraints_(0), |
80 |
< |
nAtoms_(0), nBonds_(0), nBends_(0), nTorsions_(0), nInversions_(0), |
81 |
< |
nRigidBodies_(0), nIntegrableObjects_(0), nCutoffGroups_(0), |
82 |
< |
nConstraints_(0), nFluctuatingCharges_(0), sman_(NULL), |
83 |
< |
topologyDone_(false), calcBoxDipole_(false), useAtomicVirial_(true), |
82 |
< |
hasNGlobalConstraints_(false) { |
80 |
> |
hasNGlobalConstraints_(false), |
81 |
> |
ndf_(0), fdf_local(0), ndfRaw_(0), ndfTrans_(0), nZconstraint_(0), |
82 |
> |
sman_(NULL), topologyDone_(false), calcBoxDipole_(false), |
83 |
> |
calcBoxQuadrupole_(false), useAtomicVirial_(true) { |
84 |
|
|
85 |
|
MoleculeStamp* molStamp; |
86 |
|
int nMolWithSameStamp; |
752 |
|
|
753 |
|
int nproc; |
754 |
|
MPI_Comm_size( MPI_COMM_WORLD, &nproc); |
754 |
– |
// int nproc = MPI::COMM_WORLD.Get_size(); |
755 |
|
|
756 |
|
// we need arrays to hold the counts and displacement vectors for |
757 |
|
// all processors |
761 |
|
// fill the counts array |
762 |
|
MPI_Allgather(&count_local, 1, MPI_INT, &counts[0], |
763 |
|
1, MPI_INT, MPI_COMM_WORLD); |
764 |
– |
// MPI::COMM_WORLD.Allgather(&count_local, 1, MPI::INT, &counts[0], |
765 |
– |
// 1, MPI::INT); |
764 |
|
|
765 |
|
// use the processor counts to compute the displacement array |
766 |
|
disps[0] = 0; |
777 |
|
MPI_Allgatherv(&foundTypes[0], count_local, MPI_INT, |
778 |
|
&ftGlobal[0], &counts[0], &disps[0], |
779 |
|
MPI_INT, MPI_COMM_WORLD); |
782 |
– |
// MPI::COMM_WORLD.Allgatherv(&foundTypes[0], count_local, MPI::INT, |
783 |
– |
// &ftGlobal[0], &counts[0], &disps[0], |
784 |
– |
// MPI::INT); |
780 |
|
|
781 |
|
vector<int>::iterator j; |
782 |
|
|
823 |
|
if ( simParams_->getAccumulateBoxDipole() ) { |
824 |
|
calcBoxDipole_ = true; |
825 |
|
} |
826 |
+ |
// we only call setAccumulateBoxQuadrupole if the accumulateBoxQuadrupole |
827 |
+ |
// parameter is true |
828 |
+ |
calcBoxQuadrupole_ = false; |
829 |
+ |
if ( simParams_->haveAccumulateBoxQuadrupole() ) |
830 |
+ |
if ( simParams_->getAccumulateBoxQuadrupole() ) { |
831 |
+ |
calcBoxQuadrupole_ = true; |
832 |
+ |
} |
833 |
|
|
834 |
|
set<AtomType*>::iterator i; |
835 |
|
set<AtomType*> atomTypes; |