From f8422742373d8a081fac01a9bdc4ac48908769e8 Mon Sep 17 00:00:00 2001 From: Matthieu Schaller <matthieu.schaller@durham.ac.uk> Date: Mon, 8 Sep 2014 16:42:30 +0000 Subject: [PATCH] Added a script to generate Gadget-2 HDF5 initial conditions from the BH particle dump. --- examples/make_gadget_ic.py | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 examples/make_gadget_ic.py diff --git a/examples/make_gadget_ic.py b/examples/make_gadget_ic.py new file mode 100644 index 0000000..0046a5d --- /dev/null +++ b/examples/make_gadget_ic.py @@ -0,0 +1,48 @@ +import h5py +import numpy as np +import sys + +inputName = "particle_dump.dat" +outputName = "particle_dump.hdf5" + +boxSize = 1. + +if len(sys.argv) > 1: + inputName = sys.argv[1] + outputName = sys.argv[2] + +print "Reading", inputName +data = np.loadtxt(inputName) + +IDs = data[:,0] +mass = data[:,1] +pos = data[:,2:5] + +numPart = np.size(IDs) + +print "Found", numPart, "particles" + +# Create file +print "Writing", outputName +f = h5py.File("particle_dump.hdf5", "w") + + +# Write particles +grp = f.create_group("PartType1") +grp.create_dataset("Coordinates", (numPart, 3), data=pos) +grp.create_dataset("Velocities", (numPart, 3), data=np.zeros(np.shape(pos))) +grp.create_dataset("Masses", (numPart, 1), data=mass) +grp.create_dataset("ParticleIDs", (numPart, 1), data=IDs, dtype='i') + + + +#Write header +grp = f.create_group("Header") +grp.attrs.create("BoxSize", boxSize, dtype='d') +grp.attrs.create("Flag_Entropy_ICs", np.array([0,0,0,0,0,0]), dtype='i') +grp.attrs.create("MassTable", np.array([0.,0.,0.,0.,0.,0.]), dtype='d') +grp.attrs.create("NumFilesPerSnapshot", 1., dtype='i') +grp.attrs.create("NumPart_ThisFile", np.array([0,numPart,0,0,0,0]), dtype='i') +grp.attrs.create("NumPart_Total", np.array([0,numPart,0,0,0,0]), dtype='i') +grp.attrs.create("NumPart_HighWord", np.array([0,0,0,0,0,0]), dtype='i') +grp.attrs.create("Time", 0., dtype='d') -- GitLab