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