~esys-p-dev/esys-particle/trunk

« back to all changes in this revision

Viewing changes to Parallel/SubLattice.hpp

  • Committer: steffen
  • Date: 2009-03-09 14:40:14 UTC
  • Revision ID: svn-v4:1ddc92f8-1f06-0410-a909-b11019f1b28a:lsm/branches/Dublin2005-11-22:1097
The next step towards checkpoint restart
        - Triangle Meshes work (mesh only, not bonded IG)
        - some fixes w.r.t. making sure the old/new spatial domain fits 

Show diffs side-by-side

added added

removed removed

Lines of Context:
2534
2534
  //
2535
2535
  // Save Non-bonded interaction check-point data
2536
2536
  //
2537
 
  oStream << m_dpis.size() << delim;
2538
 
  for(std::map<string,AParallelInteractionStorage*>::iterator iter=m_dpis.begin();
2539
 
      iter!=m_dpis.end();
2540
 
      iter++){
2541
 
    iter->second->saveCheckPointData(oStream);
2542
 
    oStream << delim;
 
2537
  int count_save=0;
 
2538
  for(std::map<string,AParallelInteractionStorage*>::iterator iter=m_dpis.begin();
 
2539
      iter!=m_dpis.end();
 
2540
      iter++){
 
2541
    if(iter->second->willSave()) count_save++; 
 
2542
  }
 
2543
  oStream << count_save << delim;
 
2544
  for(std::map<string,AParallelInteractionStorage*>::iterator iter=m_dpis.begin();
 
2545
      iter!=m_dpis.end();
 
2546
      iter++){
 
2547
    if(iter->second->willSave()) {
 
2548
      iter->second->saveCheckPointData(oStream);
 
2549
      oStream << delim;
 
2550
    }
2543
2551
  }
2544
2552
 
2545
2553
  // Save walls (name, pos, normal) 
2552
2560
  }
2553
2561
 
2554
2562
  // dump trimeshdata (if exists)
2555
 
  oStream << "TMIG " << m_mesh.size() << delim;
 
2563
  oStream << "TriMesh " << m_mesh.size() << delim;
2556
2564
  for(typename map<string,TriMesh*>::iterator tm_iter=m_mesh.begin();
2557
2565
      tm_iter!=m_mesh.end();
2558
2566
      tm_iter++){
2623
2631
    new_wall->loadCheckPoint(iStream);
2624
2632
    m_walls[wname]=new_wall;
2625
2633
  }
2626
 
  // load meshes
2627
 
  
 
2634
  // --- load meshes -- 
 
2635
  iStream >> token;
 
2636
  if(token!="TriMesh") { // found wrong token -> barf 
 
2637
    std::cerr << "expected TriMesh , got " << token << std::endl;
 
2638
  }
 
2639
  // nr. of meshes 
 
2640
  int nmesh;
 
2641
  iStream >> nmesh;
 
2642
  // read wall names & data
 
2643
  string mname;
 
2644
  for(int i=0;i<nmesh;i++){
 
2645
    TriMesh* new_tm=new TriMesh(); 
 
2646
    iStream >> mname;
 
2647
    new_tm->loadCheckPoint(iStream);
 
2648
    m_mesh.insert(make_pair(mname,new_tm)); 
 
2649
  }
2628
2650
}
2629
2651
 
2630
2652
// -- mesh data exchange functions --