diff --git a/sample/gadgetToArray.cpp b/sample/gadgetToArray.cpp index 386fa01..0bd0d0b 100644 --- a/sample/gadgetToArray.cpp +++ b/sample/gadgetToArray.cpp @@ -64,12 +64,12 @@ int main(int argc, char **argv) SimuData *p = loadGadgetMulti(fname, 0, 0); double L0 = p->BoxSize/1000; - array_type parts(boost::extents[p->TotalNumPart][6]); + array_type parts(boost::extents[p->TotalNumPart][7]); uint64_t q = 0; try { for (int cpuid=0;;cpuid++) { - p = loadGadgetMulti(fname, cpuid, NEED_POSITION|NEED_VELOCITY); + p = loadGadgetMulti(fname, cpuid, NEED_POSITION|NEED_VELOCITY|NEED_MASS); for (uint32_t i = 0; i < p->NumPart; i++) { parts[q][0] = p->Pos[0][i]/1000; @@ -83,6 +83,7 @@ int main(int argc, char **argv) parts[q][3] = p->Vel[0][i]; parts[q][4] = p->Vel[1][i]; parts[q][5] = p->Vel[2][i]; + parts[q][6] = p->Mass[i]; q++; } diff --git a/sample/simple3DFilter.cpp b/sample/simple3DFilter.cpp index 345834c..bc3bd1d 100644 --- a/sample/simple3DFilter.cpp +++ b/sample/simple3DFilter.cpp @@ -17,6 +17,7 @@ using namespace CosmoTool; struct VCoord{ float v[3]; + float mass; }; using boost::format; @@ -27,12 +28,12 @@ typedef boost::multi_array array4_type; ComputePrecision getVelocity(const VCoord& v, int i) { - return v.v[i]; + return v.mass * v.v[i]; } -ComputePrecision getUnity(const VCoord& v) +ComputePrecision getMass(const VCoord& v) { - return 1.0; + return v.mass; } typedef SPHSmooth MySmooth; @@ -198,7 +199,7 @@ int main(int argc, char **argv) array3_type interpolated(boost::extents[Nres][Nres][Nres]); computeInterpolatedField(&tree1, boxsize, Nres, cx, cy, cz, - bins, interpolated, getUnity, rLimit2); + bins, interpolated, getMass, rLimit2); hdf5_write_array(out_f, "density", interpolated); //out_f.flush(); for (int i = 0; i < 3; i++) {