diff --git a/c_tools/mock/generateMock.cpp b/c_tools/mock/generateMock.cpp index bbc0b86..0a49265 100644 --- a/c_tools/mock/generateMock.cpp +++ b/c_tools/mock/generateMock.cpp @@ -695,7 +695,11 @@ int main(int argc, char **argv) } else if (args_info.gadget_given) { - loader = gadgetLoader(args_info.gadget_arg, 1/args_info.gadgetUnit_arg, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID, preselector); + loader = gadgetLoader(args_info.gadget_arg, 1/args_info.gadgetUnit_arg, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID, 1, preselector); + } + else if (args_info.gadget2_given) + { + loader = gadgetLoader(args_info.gadget_arg, 1/args_info.gadgetUnit_arg, NEED_POSITION|NEED_VELOCITY|NEED_GADGET_ID, 2, preselector); } else if (args_info.flash_given) { diff --git a/c_tools/mock/generateMock.ggo b/c_tools/mock/generateMock.ggo index 5041272..f907f59 100644 --- a/c_tools/mock/generateMock.ggo +++ b/c_tools/mock/generateMock.ggo @@ -8,6 +8,7 @@ option "ramsesBase" - "Base directory for ramses" string optional option "ramsesId" - "Ramses snapshot id" int optional option "gadget" - "Base name of gadget snapshot (without parallel writing extension)" string optional +option "gadget2" - "Base name of gadget snapshot (version 2, without parallel writing extension)" string optional option "flash" - "Base name for FLASH snapshot" string optional option "multidark" - "Base name for multidark snapshot" string optional diff --git a/c_tools/mock/loaders/gadget_loader.cpp b/c_tools/mock/loaders/gadget_loader.cpp index cdf7541..c2ca185 100644 --- a/c_tools/mock/loaders/gadget_loader.cpp +++ b/c_tools/mock/loaders/gadget_loader.cpp @@ -36,12 +36,13 @@ private: bool onefile; int _num_files; double unitMpc; + int gadgetFormat; SimuData *gadget_header; string snapshot_name; SimulationPreprocessor *preproc; public: - GadgetLoader(const string& basename, SimuData *header, int flags, bool singleFile, int _num, double unit, SimulationPreprocessor *p) - : snapshot_name(basename), load_flags(flags), onefile(singleFile), _num_files(_num), unitMpc(1/unit), gadget_header(header), preproc(p) + GadgetLoader(const string& basename, SimuData *header, int flags, bool singleFile, int _num, double unit, int gadgetFormat, SimulationPreprocessor *p) + : snapshot_name(basename), load_flags(flags), onefile(singleFile), _num_files(_num), unitMpc(1/unit), gadget_header(header), gadgetFormat(gadgetFormat), preproc(p) { } @@ -67,9 +68,9 @@ public: return 0; if (onefile) - d = loadGadgetMulti(snapshot_name.c_str(), -1, load_flags); + d = loadGadgetMulti(snapshot_name.c_str(), -1, load_flags, gadgetFormat); else - d = loadGadgetMulti(snapshot_name.c_str(), id, load_flags); + d = loadGadgetMulti(snapshot_name.c_str(), id, load_flags, gadgetFormat); if (d->Id != 0) { @@ -99,7 +100,7 @@ public: }; -SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLength, int flags, SimulationPreprocessor *p) +SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLength, int flags, int gadgetFormat, SimulationPreprocessor *p) { bool singleFile = false; int num_files; @@ -109,7 +110,7 @@ SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLengt try { - d = loadGadgetMulti(snapshot.c_str(), -1, 0); + d = loadGadgetMulti(snapshot.c_str(), -1, 0, gadgetFormat); singleFile = true; num_files = 1; } @@ -117,7 +118,7 @@ SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLengt { try { - d = loadGadgetMulti(snapshot.c_str(), 0, 0); + d = loadGadgetMulti(snapshot.c_str(), 0, 0, gadgetFormat); num_files = 0; } catch(const NoSuchFileException& e) @@ -135,7 +136,7 @@ SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLengt { try { - while ((d = loadGadgetMulti(snapshot.c_str(), num_files, 0)) != 0) + while ((d = loadGadgetMulti(snapshot.c_str(), num_files, 0, gadgetFormat)) != 0) { num_files++; delete d; @@ -146,5 +147,5 @@ SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLengt } } - return new GadgetLoader(snapshot, header, flags, singleFile, num_files, Mpc_unitLength, p); + return new GadgetLoader(snapshot, header, flags, singleFile, num_files, Mpc_unitLength, gadgetFormat, p); } diff --git a/c_tools/mock/loaders/simulation_loader.hpp b/c_tools/mock/loaders/simulation_loader.hpp index 149ee10..635b964 100644 --- a/c_tools/mock/loaders/simulation_loader.hpp +++ b/c_tools/mock/loaders/simulation_loader.hpp @@ -144,7 +144,7 @@ void delete_adaptor(void *ptr) // Unit length is the size of one Mpc in the simulation units -SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLength, int flags, SimulationPreprocessor *p); +SimulationLoader *gadgetLoader(const std::string& snapshot, double Mpc_unitLength, int flags, int gadgetFormat, SimulationPreprocessor *p); SimulationLoader *flashLoader(const std::string& snapshot, int flags, SimulationPreprocessor *p); SimulationLoader *multidarkLoader(const std::string& snapshot, SimulationPreprocessor *p); SimulationLoader *ramsesLoader(const std::string& snapshot, int baseid, bool double_precision, int flags, SimulationPreprocessor *p);