| 66 |
|
|
| 67 |
|
MakeStamps *the_stamps; |
| 68 |
|
Globals* the_globals; |
| 69 |
+ |
ExtendedSystem* the_extendedsystem; |
| 70 |
|
int i, j; |
| 71 |
|
|
| 72 |
|
// get the stamps and globals; |
| 81 |
|
// get the ones we know are there, yet still may need some work. |
| 82 |
|
n_components = the_globals->getNComponents(); |
| 83 |
|
strcpy( force_field, the_globals->getForceField() ); |
| 84 |
+ |
|
| 85 |
+ |
// get the ensemble and set up an extended system if we need it: |
| 86 |
|
strcpy( ensemble, the_globals->getEnsemble() ); |
| 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()); |
| 93 |
+ |
} else if ( !strcasecmp( ensemble, "NVT") ) { |
| 94 |
+ |
the_extendedsystem = new ExtendedSystem( simnfo ); |
| 95 |
+ |
the_extendedsystem->setTargetTemp(the_globals->getTargetTemp()); |
| 96 |
+ |
the_extendedsystem->setQmass(the_globals->getQmass()); |
| 97 |
+ |
} else if ( !strcasecmp( ensemble, "NVE") ) { |
| 98 |
+ |
} else { |
| 99 |
+ |
sprintf( painCave.errMsg, |
| 100 |
+ |
"SimSetup Warning. Unrecognized Ensemble -> %s, " |
| 101 |
+ |
"reverting to NVE for this simulation.\n", |
| 102 |
+ |
ensemble ); |
| 103 |
+ |
painCave.isFatal = 0; |
| 104 |
+ |
simError(); |
| 105 |
+ |
strcpy( ensemble, "NVE" ); |
| 106 |
+ |
} |
| 107 |
|
strcpy( simnfo->ensemble, ensemble ); |
| 108 |
|
|
| 109 |
|
strcpy( simnfo->mixingRule, the_globals->getMixingRule() ); |
| 110 |
|
simnfo->usePBC = the_globals->getPBC(); |
| 111 |
|
|
| 112 |
< |
|
| 113 |
< |
|
| 114 |
< |
if( !strcmp( force_field, "TraPPE_Ex" ) ) the_ff = new TraPPE_ExFF(); |
| 115 |
< |
else if( !strcmp( force_field, "LJ" ) ) the_ff = new LJ_FF(); |
| 112 |
> |
int usesDipoles = 0; |
| 113 |
> |
if( !strcmp( force_field, "TraPPE_Ex" ) ){ |
| 114 |
> |
the_ff = new TraPPE_ExFF(); |
| 115 |
> |
usesDipoles = 1; |
| 116 |
> |
} |
| 117 |
> |
else if( !strcasecmp( force_field, "LJ" ) ) the_ff = new LJ_FF(); |
| 118 |
|
else{ |
| 119 |
|
sprintf( painCave.errMsg, |
| 120 |
|
"SimSetup Error. Unrecognized force field -> %s\n", |
| 361 |
|
|
| 362 |
|
if( simnfo->n_SRI ){ |
| 363 |
|
|
| 339 |
– |
std::cerr << "n_SRI = " << simnfo->n_SRI << "\n"; |
| 340 |
– |
|
| 364 |
|
Exclude::createArray(simnfo->n_SRI); |
| 365 |
|
the_excludes = new Exclude*[simnfo->n_SRI]; |
| 366 |
|
for( int ex=0; ex<simnfo->n_SRI; ex++) the_excludes[ex] = new Exclude(ex); |
| 485 |
|
} |
| 486 |
|
simnfo->dielectric = the_globals->getDielectric(); |
| 487 |
|
} else { |
| 488 |
< |
if (simnfo->n_dipoles) { |
| 488 |
> |
if (usesDipoles) { |
| 489 |
|
|
| 490 |
|
if( !the_globals->haveECR() ){ |
| 491 |
|
sprintf( painCave.errMsg, |
| 492 |
< |
"SimSetup Warning: using default value of 1/2 the smallest" |
| 492 |
> |
"SimSetup Warning: using default value of 1/2 the smallest " |
| 493 |
|
"box length for the electrostaticCutoffRadius.\n" |
| 494 |
|
"I hope you have a very fast processor!\n"); |
| 495 |
|
painCave.isFatal = 0; |
| 505 |
|
|
| 506 |
|
if( !the_globals->haveEST() ){ |
| 507 |
|
sprintf( painCave.errMsg, |
| 508 |
< |
"SimSetup Warning: using default value of 5% of the" |
| 508 |
> |
"SimSetup Warning: using default value of 5%% of the " |
| 509 |
|
"electrostaticCutoffRadius for the " |
| 510 |
|
"electrostaticSkinThickness\n" |
| 511 |
|
); |
| 680 |
|
|
| 681 |
|
// new AllLong( simnfo ); |
| 682 |
|
|
| 660 |
– |
if( !strcmp( force_field, "TraPPE_Ex" ) ) new Symplectic( simnfo, the_ff ); |
| 661 |
– |
if( !strcmp( force_field, "LJ" ) ) new Verlet( *simnfo, the_ff ); |
| 683 |
|
|
| 684 |
+ |
if( !strcmp( force_field, "TraPPE_Ex" ) ){ |
| 685 |
+ |
new Symplectic(simnfo, the_ff, the_extendedsystem); |
| 686 |
+ |
std::cerr << "called new Symplecic\n"; |
| 687 |
+ |
fprintf( stderr, "called new Symplectic. stderr\n" ); |
| 688 |
+ |
} |
| 689 |
+ |
else if( !strcmp( force_field, "LJ" ) ){ |
| 690 |
+ |
new Verlet( *simnfo, the_ff, the_extendedsystem ); |
| 691 |
+ |
std::cerr << "called new Verlet\n"; |
| 692 |
+ |
fprintf( stderr, "called new Verlet. stderr\n" ); |
| 693 |
+ |
} |
| 694 |
+ |
else { |
| 695 |
+ |
std::cerr << "I'm a bug.\n"; |
| 696 |
+ |
fprintf( stderr, "Ima bug. stderr %s\n", force_field); |
| 697 |
+ |
} |
| 698 |
|
#ifdef IS_MPI |
| 699 |
|
mpiSim->mpiRefresh(); |
| 700 |
|
#endif |