###############################################################################
# This file is part of SWIFT.
# Copyright (c) 2016 John A. Regan (john.a.regan@durham.ac.uk)
# Tom Theuns (tom.theuns@durham.ac.uk)
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Lesser General Public License as published
# by the Free Software Foundation, either version 3 of the License, or
# (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU Lesser General Public License
# along with this program. If not, see .
#
##############################################################################
import h5py
import numpy
import sys
import math
# Generates N particles in a box of [-2scale_height:2scale_height, 0:BoxSize, 0:BoxSize]
#
# The potential is long the x-axis.
#
# see Creasey, Theuns & Bower, 2013, for the equations:
# disc parameters are: surface density sigma
# scale height b
# density: rho(x) = (sigma/2b) sech^2(x/b)
# isothermal velocity dispersion = 0.5
r[random, 0] *= -1
r[:, 0] += 0.5 * boxSize
r[:, 1] = numpy.random.rand(numPart) * boxSize
r[:, 2] = numpy.random.rand(numPart) * boxSize
# generate particle velocities
v = numpy.zeros((numPart, 3))
v = numpy.zeros(1)
ds = grp1.create_dataset("Velocities", (numPart, 3), "f")
ds[()] = v
m = numpy.ones((numPart,), dtype=numpy.float32) * mass
ds = grp1.create_dataset("Masses", (numPart,), "f")
ds[()] = m
m = numpy.zeros(1)
ids = 1 + numpy.linspace(0, numPart, numPart, endpoint=False)
ds = grp1.create_dataset("ParticleIDs", (numPart,), "L")
ds[()] = ids
ds = grp1.create_dataset("Coordinates", (numPart, 3), "d")
ds[()] = r
file.close()