diff --git a/examples/make_gadget_ic.py b/examples/make_gadget_ic.py new file mode 100644 index 0000000000000000000000000000000000000000..0046a5dc27845e8dfeb00d5af03f005550776b4e --- /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')