ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/group/trunk/OOPSE/libmdtools/InitializeFromFile.cpp
(Generate patch)

Comparing trunk/OOPSE/libmdtools/InitializeFromFile.cpp (file contents):
Revision 1108 by tim, Wed Apr 14 15:37:41 2004 UTC vs.
Revision 1129 by tim, Thu Apr 22 03:29:30 2004 UTC

# Line 92 | Line 92 | void InitializeFromFile :: readInit( SimInfo* the_simn
92    char *parseErr;
93  
94    vector<StuntDouble*> integrableObjects;
95  vector<StuntDouble*>::iterator iter;
95  
96    simnfo = the_simnfo;
97  
# Line 141 | Line 140 | void InitializeFromFile :: readInit( SimInfo* the_simn
140  
141      integrableObjects = (simnfo->molecules[i]).getIntegrableObjects();
142  
143 <    for(iter = integrableObjects.begin(); iter!= integrableObjects.end(); iter++)
143 >    for(j = 0; j < integrableObjects.size(); j++){
144  
145        eof_test = fgets(read_buffer, sizeof(read_buffer), c_in_file);
146        if(eof_test == NULL){
# Line 154 | Line 153 | void InitializeFromFile :: readInit( SimInfo* the_simn
153          simError();
154        }
155        
156 <      parseErr = parseDumpLine( read_buffer, *iter);
156 >      parseErr = parseDumpLine( read_buffer, integrableObjects[j]);
157        if( parseErr != NULL ){
158          strcpy( painCave.errMsg, parseErr );
159          painCave.isFatal = 1;
160          simError();
161        }
162 +    }
163    }
164  
165
165    // MPI Section of code..........
166   #else //IS_MPI
167  
# Line 176 | Line 175 | void InitializeFromFile :: readInit( SimInfo* the_simn
175    int *MolToProcMap = mpiSim->getMolToProcMap();
176    int localIndex;
177    int nCurObj;
178 +  int nItems;
179  
180 +  nTotObjs = simnfo->getTotIntegrableObjects();
181    haveError = 0;
182    if (worldRank == 0) {
183  
# Line 188 | Line 189 | void InitializeFromFile :: readInit( SimInfo* the_simn
189        simError();
190      }
191  
192 <    nTotObjs = atoi( read_buffer );
192 >    nItems = atoi( read_buffer );
193  
194      // Check to see that the number of integrable objects  in the intial configuration file is the
195      // same as declared in simBass.
196  
197 <    if( nTotObjs != simnfo->getTotIntegrableObjects()){
197 >    if( nTotObjs != nItems){
198        sprintf( painCave.errMsg,
199                 "Initialize from File error. %s n_atoms, %d, "
200                 "does not match the BASS file's n_atoms, %d.\n",
# Line 256 | Line 257 | void InitializeFromFile :: readInit( SimInfo* the_simn
257            
258            if(haveError) nodeZeroError();
259  
260 <          parseDumpLine(read_buffer, integrableObjects[i]);
260 >          parseDumpLine(read_buffer, integrableObjects[j]);
261            
262         }
263  
# Line 265 | Line 266 | void InitializeFromFile :: readInit( SimInfo* the_simn
266        else{
267        //molecule belongs to slave nodes
268  
269 <        MPI_Recv(&nCurObj, 1, MPI_INT, 0,
269 >        MPI_Recv(&nCurObj, 1, MPI_INT, which_node,
270                 TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
271        
272         for(j=0; j < integrableObjects.size(); j++){
# Line 295 | Line 296 | void InitializeFromFile :: readInit( SimInfo* the_simn
296    }
297    else{
298    //actions taken at slave nodes
299 +
300 +    MPI_Bcast(read_buffer, BUFFERSIZE, MPI_CHAR, 0, MPI_COMM_WORLD);
301 +
302 +    parseErr = parseCommentLine( read_buffer, simnfo);
303 +
304 +    if( parseErr != NULL ){
305 +      strcpy( painCave.errMsg, parseErr );
306 +      haveError = 1;
307 +      simError();
308 +    }
309 +  
310      for (i=0 ; i < mpiSim->getTotNmol(); i++) {
311        which_node = MolToProcMap[i];
312        
# Line 313 | Line 325 | void InitializeFromFile :: readInit( SimInfo* the_simn
325  
326          nCurObj = integrableObjects.size();
327          
328 <        MPI_Recv(&nCurObj, 1, MPI_INT, 0,
329 <                        TAKE_THIS_TAG_INT, MPI_COMM_WORLD, &istatus);
328 >        MPI_Send(&nCurObj, 1, MPI_INT, 0,
329 >                        TAKE_THIS_TAG_INT, MPI_COMM_WORLD);
330  
331          for(j = 0; j < integrableObjects.size(); j++){
332  
# Line 618 | Line 630 | char* InitializeFromFile::parseCommentLine(char* readL
630      
631      //push eta into SimInfo::properties which can be
632      //retrieved by integrator later
633 <    //entry_plug->setBoxM( theBoxMat3 );
633 >    
634      DoubleArrayData* etaValue = new DoubleArrayData();
635      etaValue->setID(ETAVALUE_ID);
636      etaValue->setData(eta, 9);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines