# | 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 440 | Line 485 | void SimSetup::createSim( void ){ | |
485 | ||
486 | makeMolecules(); | |
487 | simnfo->identArray = new int[simnfo->n_atoms]; | |
488 | + | simnfo->molMembershipArray = new int[simnfo->n_atoms]; |
489 | for(i=0; i<simnfo->n_atoms; i++){ | |
490 | simnfo->identArray[i] = the_atoms[i]->getIdent(); | |
491 | } | |
492 | + | for(i=0; i< simnfo->n_mol; i++) { |
493 | + | the_molecules[i].atomicRollCall(simnfo->molMembershipArray); |
494 | + | } |
495 | ||
496 | if (the_globals->getUseRF() ) { | |
497 | simnfo->useReactionField = 1; | |
# | Line 683 | Line 732 | void SimSetup::createSim( void ){ | |
732 | ||
733 | if( !strcmp( force_field, "TraPPE_Ex" ) ){ | |
734 | new Symplectic(simnfo, the_ff, the_extendedsystem); | |
686 | – | std::cerr << "called new Symplecic\n"; |
687 | – | fprintf( stderr, "called new Symplectic. stderr\n" ); |
735 | } | |
736 | else if( !strcmp( force_field, "LJ" ) ){ | |
737 | new Verlet( *simnfo, the_ff, the_extendedsystem ); | |
691 | – | std::cerr << "called new Verlet\n"; |
692 | – | fprintf( stderr, "called new Verlet. stderr\n" ); |
738 | } | |
739 | else { | |
740 | std::cerr << "I'm a bug.\n"; |
– | Removed lines |
+ | Added lines |
< | Changed lines |
> | Changed lines |