aboutsummaryrefslogtreecommitdiff
path: root/src/AMRwriter.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/AMRwriter.cc')
-rw-r--r--src/AMRwriter.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/src/AMRwriter.cc b/src/AMRwriter.cc
index d46b57a..3f76648 100644
--- a/src/AMRwriter.cc
+++ b/src/AMRwriter.cc
@@ -20,6 +20,7 @@ void AMRwriter::writeAMRattributes(){
// compute persistence
persistence = levels[levels.getSize()-currentlevel-1].trefine;
+ if(persistence<=0) { fprintf(stderr,"Refinement *must* be >1... this isn't right!!!\n"); persistence=1;}
level_timestep = currentstep/persistence;
// compute from min-ext...
// y-know... there is more point density near 0 in the float
@@ -36,7 +37,7 @@ void AMRwriter::writeAMRattributes(){
for(int i=0;i<drank;i++) {
currentdelta[i] = ddelta[i]/(levels[currentlevel]).srefine[i];
ext[i] = currentorigin[i] +
- (double)((ddims[i]+1) * currentdelta[i]);
+ (double)((ddims[i]) * currentdelta[i]);
}
file.writeAttribute("level",IObase::Int32,1,&currentlevel);
@@ -100,8 +101,9 @@ void AMRwriter::setRefinement(int timerefinement,
int spatialrefinement,
int gridplacementrefinement){
int tref=1,sref=1,gref=gridplacementrefinement;
- int maxdepth=levels.getSize()+1;
+ int maxdepth=levels.getSize();
// if gref==-1, then we need to multiply by maxdepth
+ /* printf("maxdepth***********=%u\n",maxdepth); */
for(int level=0;level<maxdepth;level++){
setLevelRefinement(level,tref,sref,gref);
tref*=timerefinement;
@@ -117,13 +119,13 @@ void AMRwriter::setRefinement(int timerefinement,
void AMRwriter::setRefinement(int timerefinement,
int *spatialrefinement,
int *gridplacementrefinement){
- int maxdepth = 1+levels.getSize();
+ int maxdepth = levels.getSize();
int tref = 1;
int *sref = new int[drank];
int *gref = new int[drank];
for(int i=0;i<drank;i++)
{ sref[i]=gref[i]=1;
- if(gridplacementrefinement) gref[i]+=gridplacementrefinement[i];
+ if(gridplacementrefinement) gref[i]*=gridplacementrefinement[i];
}
for(int level=0;level<maxdepth;level++){
setLevelRefinement(level,tref,sref,gref);
@@ -264,7 +266,7 @@ void AMRsetType(AMRFile afile,int numbertype){
w->setType(IObase::Int2DataType(numbertype));
}
-void AMRsetToplevelParameters(AMRFile afile,int rank, double *origin,
+void AMRsetTopLevelParameters(AMRFile afile,int rank, double *origin,
double *delta, double timestep,int maxdepth){
AMRwriter *w = (AMRwriter*)afile;
w->setTopLevelParameters(rank,origin,delta,timestep,maxdepth);
@@ -302,12 +304,12 @@ void AMRsetScalarLevelRefinement(AMRFile afile,int level,
w->setLevelRefinement(level,timerefinement,spatialrefinement,gridplacementrefinement);
}
-void AMRlevel(AMRFile afile,int level){
+void AMRsetLevel(AMRFile afile,int level){
AMRwriter *w = (AMRwriter*)afile;
w->setLevel(level);
}
-void AMRtime(AMRFile afile,int time){
+void AMRsetTime(AMRFile afile,int time){
AMRwriter *w = (AMRwriter*)afile;
w->setTime(time);
}