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

@ -262,10 +262,18 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id,
}
if (loadflags & NEED_MASS) {
bool do_load = false;
for (int k = 0; k < 6; k++)
{
do_load = do_load || ((h.mass[k] == 0)&&(h.npart[k]>0));
}
try
{
long l = 0;
f->beginCheckpoint();
if (do_load)
f->beginCheckpoint();
data->Mass = new float[NumPart];
for (int k = 0; k < 6; k++)
{
@ -281,7 +289,8 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id,
}
}
}
f->endCheckpoint();
if (do_load)
f->endCheckpoint();
}
catch (const InvalidUnformattedAccess& e)
{
@ -290,6 +299,11 @@ SimuData *CosmoTool::loadGadgetMulti(const char *fname, int id,
delete data;
return 0;
}
catch (const EndOfFileException& e)
{
for (int k = 0; k < 6; k++)
cerr << "mass[" << k << "] = " << h.mass[k] << endl;
}
} else {
f->skip(2*4);
for (int k = 0; k < 6; k++)