#include #include #include "AmrFileReader.hh" #include "FlexArrayTmpl.H" void AmrFileReader::printGridInfo(AmrGrid &g){ printf("Grid level=%u step=%u maxtime=%u\n",g.level,g.timestep,g.maxtime); printf("\trank=%u dims[",g.rank); for(int i=0;idebug) printf("buildInfoTable: getGrid index=%u\n",index); if(this->debug) printGridInfo(g); int i=grids.getSize(); g.data=0; // zero out the data grids.append(g); if(g.level>maxlevel) maxlevel=g.level; printf("Gridnum[%u] timestep=%u\n",i,g.timestep); if(!i){ printf("i=%u INITIALIZE TIME*********************\n",i); mintime = g.timestep; maxtime = g.timestep; maxtimeres = g.timerefinement; maxlevel= g.level; } if(g.timestepmaxtime) maxtime=g.timestep; if(g.timerefinement>maxtimeres) maxtimeres=g.timerefinement; } } void AmrFileReader::loadGrids(){ if(!gridloading) return; for(int i=0;idebug) printf("buildInfoTable: getGrid index=%u activegridindex %u\n",i,activeGrids[i]); if(this->debug) printGridInfo(grids[activeGrids[i]]); gridreader.getGridData(grids[activeGrids[i]],activeGrids[i]); } } void AmrFileReader::reclaimGrids(){ if(!gridloading) return; for(int i=0;imaxtime){ printf("timestep %u is out of range %u:%u\n", timestep,mintime,maxtime); return; } activeGrids.purge(); current_time=timestep; if(this->debug) printf("setTime(%u): mintime=%u maxtime=%u\n",current_time,mintime,maxtime); for(int i=0;idebug) printf("\tgrids[%u].timestep=%u maxtime=%u\n",i,grids[i].timestep, grids[i].maxtime); if(current_time>=grids[i].timestep && current_timedebug) printf("\t\tAppendGrid number %u\n",i); } } if(this->debug) puts("load grids"); loadGrids(); if(this->debug) puts("reclaim grids"); reclaimGrids(); } void AmrFileReader::showAllLevels(){ for(int i=0;i &g){ g.setSize(activeGrids.getSize()); for(int i=0;i