--- trunk/mdtools/interface_implementation/SimSetup.cpp 2002/10/18 15:34:21 145 +++ trunk/mdtools/interface_implementation/SimSetup.cpp 2002/11/14 22:00:44 176 @@ -6,6 +6,7 @@ #include "parse_me.h" #include "LRI.hpp" #include "Integrator.hpp" +#include "simError.h" #ifdef IS_MPI #include "mpiBASS.h" @@ -15,6 +16,11 @@ SimSetup::SimSetup(){ SimSetup::SimSetup(){ stamps = new MakeStamps(); globals = new Globals(); + +#ifdef IS_MPI + strcpy( checkPointMsg, "SimSetup creation successful" ); + MPIcheckPoint(); +#endif // IS_MPI } SimSetup::~SimSetup(){ @@ -24,14 +30,23 @@ void SimSetup::parseFile( char* fileName ){ void SimSetup::parseFile( char* fileName ){ - inFileName = fileName; - set_interface_stamps( stamps, globals ); #ifdef IS_MPI - mpiEventInit(); + if( worldRank == 0 ){ +#endif // is_mpi + + inFileName = fileName; + set_interface_stamps( stamps, globals ); + +#ifdef IS_MPI + mpiEventInit(); #endif - yacc_BASS( fileName ); + + yacc_BASS( fileName ); + #ifdef IS_MPI - throwMPIEvent(NULL); + throwMPIEvent(NULL); + } + else receiveParse(); #endif } @@ -41,6 +56,7 @@ void SimSetup::receiveParse(void){ set_interface_stamps( stamps, globals ); mpiEventInit(); + MPIcheckPoint(); mpiEventLoop(); } @@ -52,6 +68,7 @@ void SimSetup::testMe(void){ delete dumpMe; } #endif + void SimSetup::createSim( void ){ MakeStamps *the_stamps; @@ -76,11 +93,18 @@ void SimSetup::createSim( void ){ else if( !strcmp( force_field, "DipoleTest" ) ) the_ff = new DipoleTestFF(); else if( !strcmp( force_field, "TraPPE_Ex" ) ) the_ff = new TraPPE_ExFF(); else{ - std::cerr<< "SimSetup Error. Unrecognized force field -> " - << force_field << "\n"; - exit(8); + sprintf( painCave.errMsg, + "SimSetup Error. Unrecognized force field -> %s\n", + force_field ); + painCave.isFatal = 1; + simError(); } +#ifdef IS_MPI + strcpy( checkPointMsg, "ForceField creation successful" ); + MPIcheckPoint(); +#endif // is_mpi + // get the components and calculate the tot_nMol and indvidual n_mol the_components = the_globals->getComponents(); components_nmol = new int[n_components];