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

Comparing trunk/OOPSE/libmdtools/SimInfo.cpp (file contents):
Revision 1097 by gezelter, Mon Apr 12 20:32:20 2004 UTC vs.
Revision 1125 by gezelter, Mon Apr 19 22:13:01 2004 UTC

# Line 322 | Line 322 | int SimInfo::getNDF(){
322   int SimInfo::getNDF(){
323    int ndf_local;
324  
325 +  ndf_local = 0;
326 +  
327    for(int i = 0; i < integrableObjects.size(); i++){
328      ndf_local += 3;
329 <    if (integrableObjects[i]->isDirectional())
330 <      ndf_local += 3;
329 >    if (integrableObjects[i]->isDirectional()) {
330 >      if (integrableObjects[i]->isLinear())
331 >        ndf_local += 2;
332 >      else
333 >        ndf_local += 3;
334 >    }
335    }
336  
337    // n_constraints is local, so subtract them on each processor:
# Line 342 | Line 348 | int SimInfo::getNDF(){
348    // entire system:
349  
350    ndf = ndf - 3 - nZconstraints;
351 +
352 +  std::cerr << "ndf = " << ndf;
353  
354    return ndf;
355   }
# Line 350 | Line 358 | int SimInfo::getNDFraw() {
358    int ndfRaw_local;
359  
360    // Raw degrees of freedom that we have to set
361 +  ndfRaw_local = 0;
362  
363    for(int i = 0; i < integrableObjects.size(); i++){
364      ndfRaw_local += 3;
365 <    if (integrableObjects[i]->isDirectional())
366 <      ndfRaw_local += 3;
365 >    if (integrableObjects[i]->isDirectional()) {
366 >       if (integrableObjects[i]->isLinear())
367 >        ndfRaw_local += 2;
368 >      else
369 >        ndfRaw_local += 3;
370 >    }
371    }
372      
373   #ifdef IS_MPI
# Line 381 | Line 394 | int SimInfo::getNDFtranslational() {
394    ndfTrans = ndfTrans - 3 - nZconstraints;
395  
396    return ndfTrans;
397 + }
398 +
399 + int SimInfo::getTotIntegrableObjects() {
400 +  int nObjs_local;
401 +  int nObjs;
402 +
403 +  nObjs_local =  integrableObjects.size();
404 +
405 +
406 + #ifdef IS_MPI
407 +  MPI_Allreduce(&nObjs_local,&nObjs,1,MPI_INT,MPI_SUM, MPI_COMM_WORLD);
408 + #else
409 +  nObjs = nObjs_local;
410 + #endif
411 +
412 +
413 +  return nObjs;
414   }
415  
416   void SimInfo::refreshSim(){
# Line 561 | Line 591 | GenericData* SimInfo::getProperty(const string& propNa
591      return NULL;  
592   }
593  
564 vector<GenericData*> SimInfo::getProperties(){
565
566  vector<GenericData*> result;
567  map<string, GenericData*>::iterator i;
568  
569  for(i = properties.begin(); i != properties.end(); i++)
570    result.push_back((*i).second);
571    
572  return result;
573 }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines