# | Line 87 | Line 87 | void SimSetup::createSim( void ){ | |
---|---|---|
87 | if( !strcasecmp( ensemble, "NPT" ) ) { | |
88 | the_extendedsystem = new ExtendedSystem( simnfo ); | |
89 | the_extendedsystem->setTargetTemp(the_globals->getTargetTemp()); | |
90 | < | the_extendedsystem->setTargetPressure(the_globals->getTargetPressure()); |
91 | < | the_extendedsystem->setQmass(the_globals->getQmass()); |
92 | < | the_extendedsystem->setTauRelax(the_globals->getTauRelax()); |
90 | > | if (the_globals->haveTargetPressure()) |
91 | > | the_extendedsystem->setTargetPressure(the_globals->getTargetPressure()); |
92 | > | else { |
93 | > | sprintf( painCave.errMsg, |
94 | > | "SimSetup error: If you use the constant pressure\n" |
95 | > | " ensemble, you must set targetPressure.\n" |
96 | > | " This was found in the BASS file.\n"); |
97 | > | painCave.isFatal = 1; |
98 | > | simError(); |
99 | > | } |
100 | > | |
101 | > | if (the_globals->haveTauThermostat()) |
102 | > | the_extendedsystem->setTauThermostat(the_globals->getTauThermostat()); |
103 | > | else if (the_globals->haveQmass()) |
104 | > | the_extendedsystem->setQmass(the_globals->getQmass()); |
105 | > | else { |
106 | > | sprintf( painCave.errMsg, |
107 | > | "SimSetup error: If you use one of the constant temperature\n" |
108 | > | " ensembles, you must set either tauThermostat or qMass.\n" |
109 | > | " Neither of these was found in the BASS file.\n"); |
110 | > | painCave.isFatal = 1; |
111 | > | simError(); |
112 | > | } |
113 | > | |
114 | > | if (the_globals->haveTauBarostat()) |
115 | > | the_extendedsystem->setTauBarostat(the_globals->getTauBarostat()); |
116 | > | else { |
117 | > | sprintf( painCave.errMsg, |
118 | > | "SimSetup error: If you use the constant pressure\n" |
119 | > | " ensemble, you must set tauBarostat.\n" |
120 | > | " This was found in the BASS file.\n"); |
121 | > | painCave.isFatal = 1; |
122 | > | simError(); |
123 | > | } |
124 | > | |
125 | } else if ( !strcasecmp( ensemble, "NVT") ) { | |
126 | the_extendedsystem = new ExtendedSystem( simnfo ); | |
127 | the_extendedsystem->setTargetTemp(the_globals->getTargetTemp()); | |
128 | < | the_extendedsystem->setQmass(the_globals->getQmass()); |
128 | > | |
129 | > | if (the_globals->haveTauThermostat()) |
130 | > | the_extendedsystem->setTauThermostat(the_globals->getTauThermostat()); |
131 | > | else if (the_globals->haveQmass()) |
132 | > | the_extendedsystem->setQmass(the_globals->getQmass()); |
133 | > | else { |
134 | > | sprintf( painCave.errMsg, |
135 | > | "SimSetup error: If you use one of the constant temperature\n" |
136 | > | " ensembles, you must set either tauThermostat or qMass.\n" |
137 | > | " Neither of these was found in the BASS file.\n"); |
138 | > | painCave.isFatal = 1; |
139 | > | simError(); |
140 | > | } |
141 | > | |
142 | } else if ( !strcasecmp( ensemble, "NVE") ) { | |
143 | } else { | |
144 | sprintf( painCave.errMsg, | |
# | Line 283 | Line 328 | void SimSetup::createSim( void ){ | |
328 | ||
329 | for( j=0; j<components_nmol[i]; j++ ){ | |
330 | ||
331 | < | if( mol2proc[j] == worldRank ){ |
331 | > | if( mol2proc[allMol] == worldRank ){ |
332 | ||
333 | local_atoms += comp_stamps[i]->getNAtoms(); | |
334 | local_bonds += comp_stamps[i]->getNBonds(); | |
# | Line 340 | Line 385 | void SimSetup::createSim( void ){ | |
385 | if(mol2proc[i] == worldRank ){ | |
386 | the_molecules[molIndex].setStampID( molCompType[i] ); | |
387 | the_molecules[molIndex].setMyIndex( molIndex ); | |
388 | + | the_molecules[molIndex].setGlobalIndex( i ); |
389 | molIndex++; | |
390 | } | |
391 | } | |
# | Line 351 | Line 397 | void SimSetup::createSim( void ){ | |
397 | for(j=0; j<components_nmol[i]; j++ ){ | |
398 | the_molecules[molIndex].setStampID( i ); | |
399 | the_molecules[molIndex].setMyIndex( molIndex ); | |
400 | + | the_molecules[molIndex].setGlobalIndex( molIndex ); |
401 | molIndex++; | |
402 | } | |
403 | } | |
# | Line 440 | Line 487 | void SimSetup::createSim( void ){ | |
487 | ||
488 | makeMolecules(); | |
489 | simnfo->identArray = new int[simnfo->n_atoms]; | |
490 | + | simnfo->molMembershipArray = new int[simnfo->n_atoms]; |
491 | for(i=0; i<simnfo->n_atoms; i++){ | |
492 | simnfo->identArray[i] = the_atoms[i]->getIdent(); | |
493 | } | |
494 | + | for(i=0; i< simnfo->n_mol; i++) { |
495 | + | the_molecules[i].atomicRollCall(simnfo->molMembershipArray); |
496 | + | } |
497 | ||
498 | if (the_globals->getUseRF() ) { | |
499 | simnfo->useReactionField = 1; | |
# | Line 683 | Line 734 | void SimSetup::createSim( void ){ | |
734 | ||
735 | if( !strcmp( force_field, "TraPPE_Ex" ) ){ | |
736 | new Symplectic(simnfo, the_ff, the_extendedsystem); | |
686 | – | std::cerr << "called new Symplecic\n"; |
687 | – | fprintf( stderr, "called new Symplectic. stderr\n" ); |
737 | } | |
738 | else if( !strcmp( force_field, "LJ" ) ){ | |
739 | new Verlet( *simnfo, the_ff, the_extendedsystem ); | |
691 | – | std::cerr << "called new Verlet\n"; |
692 | – | fprintf( stderr, "called new Verlet. stderr\n" ); |
740 | } | |
741 | else { | |
742 | std::cerr << "I'm a bug.\n"; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |