[cig-commits] commit: Fixed an egregious bug in Resid_Coarsen
Mercurial
hg at geodynamics.org
Tue May 3 17:51:04 PDT 2011
changeset: 241:5be19b3ab704
tag: tip
user: Walter Landry <wlandry at caltech.edu>
date: Tue May 03 17:49:43 2011 -0700
files: src/Resid_Coarsen.C
description:
Fixed an egregious bug in Resid_Coarsen
diff -r aa9888974ae9 -r 5be19b3ab704 src/Resid_Coarsen.C
--- a/src/Resid_Coarsen.C Tue May 03 16:18:24 2011 -0700
+++ b/src/Resid_Coarsen.C Tue May 03 17:49:43 2011 -0700
@@ -17,7 +17,6 @@ void SAMRAI::geom::Resid_Coarsen::coarse
{
const tbox::Dimension& dimension(getDim());
TBOX_DIM_ASSERT_CHECK_DIM_ARGS4(dimension, coarse, fine, coarse_box, ratio);
- const int dim(dimension.getValue());
tbox::Pointer<pdat::CellData<double> >
r_fine_ptr = fine.getPatchData(src_component);
@@ -26,10 +25,7 @@ void SAMRAI::geom::Resid_Coarsen::coarse
r_ptr = coarse.getPatchData(dst_component);
pdat::CellData<double> &r(*r_ptr);
tbox::Pointer<pdat::CellData<double> >
- cell_viscosity_ptr = coarse.getPatchData(dst_component);
- pdat::CellData<double> &cell_viscosity(*cell_viscosity_ptr);
- tbox::Pointer<pdat::CellData<double> >
- cell_viscosity_fine_ptr = fine.getPatchData(dst_component);
+ cell_viscosity_fine_ptr = fine.getPatchData(cell_viscosity_id);
pdat::CellData<double> &cell_viscosity_fine(*cell_viscosity_fine_ptr);
TBOX_ASSERT(!r_ptr.isNull());
@@ -44,12 +40,14 @@ void SAMRAI::geom::Resid_Coarsen::coarse
{
pdat::CellIndex coarse(*ci);
pdat::CellIndex fine(coarse*2);
- double temp(0);
+ double temp(0), viscosity_sum(0);
+
for(pdat::CellIterator ii(cell_box); ii; ii++)
{
pdat::CellIndex i(*ii);
temp+=r_fine(fine+i)*cell_viscosity_fine(fine+i);
+ viscosity_sum+=cell_viscosity_fine(fine+i);
}
- r(coarse)=temp/(4*(dim-1)*cell_viscosity(coarse));
+ r(coarse)=temp/viscosity_sum;
}
}
More information about the CIG-COMMITS
mailing list