1
0
Fork 0
mirror of https://github.com/cosmo-sims/monofonIC.git synced 2024-09-19 17:03:45 +02:00

add monofonic metadata to Gadget-HDF5 output

This commit is contained in:
Lukas Winkler 2023-04-24 14:55:14 +02:00
parent 69f8b1243c
commit 039b68bea0
Signed by: lukas
GPG key ID: 54DE4D798D244853

View file

@ -117,6 +117,46 @@ public:
unlink(this_fname_.c_str());
HDFCreateFile(this_fname_);
// Write MUSIC configuration header
int order = cf_.get_value<int>("setup", "LPTorder");
std::string load = cf_.get_value<std::string>("setup", "ParticleLoad");
std::string tf = cf_.get_value<std::string>("cosmology", "transfer");
std::string cosmo_set = cf_.get_value<std::string>("cosmology", "ParameterSet");
std::string rng = cf_.get_value<std::string>("random", "generator");
int do_fixing = cf_.get_value<bool>("setup", "DoFixing");
int do_invert = cf_.get_value<bool>("setup", "DoInversion");
int do_baryons = cf_.get_value<bool>("setup", "DoBaryons");
int do_baryonsVrel = cf_.get_value<bool>("setup", "DoBaryonVrel");
int L = cf_.get_value<int>("setup", "GridRes");
HDFCreateGroup(fname_, "ICs_parameters");
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Code", std::string("MUSIC2 - monofonIC"));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Git Revision", std::string(GIT_REV));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Git Tag", std::string(GIT_TAG));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Git Branch", std::string(GIT_BRANCH));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Precision", std::string(CMAKE_PRECISION_STR));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Convolutions", std::string(CMAKE_CONVOLVER_STR));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "PLT", std::string(CMAKE_PLT_STR));
HDFWriteGroupAttribute(fname_, "ICs_parameters", "LPT Order", order);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Particle Load", load);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Transfer Function", tf);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Cosmology Parameter Set", cosmo_set);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Random Generator", rng);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Mode Fixing", do_fixing);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Mode inversion", do_invert);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Baryons", do_baryons);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Baryons Relative Velocity", do_baryonsVrel);
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Grid Resolution", L);
if (tf == "CLASS") {
double ztarget = cf_.get_value<double>("cosmology", "ztarget");
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Target Redshift", ztarget);
}
if (rng == "PANPHASIA") {
std::string desc = cf_.get_value<std::string>("random", "descriptor");
HDFWriteGroupAttribute(fname_, "ICs_parameters", "Descriptor", desc);
}
}
// use destructor to write header post factum