Upgraded gadget load to support variable masses. Adjusted simple3DFilter for that too.

This commit is contained in:
Guilhem Lavaux 2014-07-07 17:35:56 +02:00
parent 7df2cdbe7c
commit 8809d6c255
5 changed files with 26 additions and 10 deletions

View file

@ -50,9 +50,11 @@ int main(int argc, char **argv)
uint32_t res;
char *fname;
int id;
double MPC;
MiniArgDesc desc[] = {
{ "SNAPSHOT", &fname, MINIARG_STRING },
{ "MPC", &MPC, MINIARG_DOUBLE },
{ 0, 0, MINIARG_NULL }
};
@ -63,7 +65,7 @@ int main(int argc, char **argv)
SimuData *p = loadGadgetMulti(fname, 0, 0);
double L0 = p->BoxSize/1000;
double L0 = p->BoxSize/MPC;
array_type parts(boost::extents[p->TotalNumPart][7]);
uint64_t q = 0;
@ -72,13 +74,12 @@ int main(int argc, char **argv)
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;
parts[q][1] = p->Pos[1][i]/1000;
parts[q][2] = p->Pos[2][i]/1000;
for (int j = 0; j < 3; j++)
{
parts[q][j] = p->Pos[j][i]/MPC;
while (parts[q][j] < 0) parts[q][j] += L0;
while (parts[q][j] >= L0) parts[q][j] -= L0;
parts[q][j] -= L0/2;
}
parts[q][3] = p->Vel[0][i];
parts[q][4] = p->Vel[1][i];

View file

@ -114,7 +114,7 @@ int main(int argc, char **argv)
rLimit2 = rLimit*rLimit;
hdf5_read_array(in_f, "particles", v1_data);
assert(v1_data.shape()[1] == 6);
assert(v1_data.shape()[1] == 7);
N1_points = v1_data.shape()[0];
@ -132,6 +132,7 @@ int main(int argc, char **argv)
allCells_1[i].coord[j] = v1_data[i][j];
for (int k = 0; k < 3; k++)
allCells_1[i].val.pValue.v[k] = v1_data[i][3+k];
allCells_1[i].val.pValue.mass = v1_data[i][6];
allCells_1[i].active = true;
allCells_1[i].val.weight = 0.0;