diff --git a/examples/PerturbedPlane/makeIC.py b/examples/PerturbedBox_2D/makeIC.py similarity index 100% rename from examples/PerturbedPlane/makeIC.py rename to examples/PerturbedBox_2D/makeIC.py diff --git a/examples/PerturbedPlane/perturbedPlane.yml b/examples/PerturbedBox_2D/perturbedPlane.yml similarity index 100% rename from examples/PerturbedPlane/perturbedPlane.yml rename to examples/PerturbedBox_2D/perturbedPlane.yml diff --git a/examples/PerturbedBox/makeIC.py b/examples/PerturbedBox_3D/makeIC.py similarity index 100% rename from examples/PerturbedBox/makeIC.py rename to examples/PerturbedBox_3D/makeIC.py diff --git a/examples/PerturbedBox/perturbedBox.yml b/examples/PerturbedBox_3D/perturbedBox.yml similarity index 100% rename from examples/PerturbedBox/perturbedBox.yml rename to examples/PerturbedBox_3D/perturbedBox.yml diff --git a/examples/PerturbedBox/run.sh b/examples/PerturbedBox_3D/run.sh similarity index 100% rename from examples/PerturbedBox/run.sh rename to examples/PerturbedBox_3D/run.sh diff --git a/examples/SedovBlast/makeIC.py b/examples/SedovBlast_3D/makeIC.py similarity index 100% rename from examples/SedovBlast/makeIC.py rename to examples/SedovBlast_3D/makeIC.py diff --git a/examples/SedovBlast/makeIC_fcc.py b/examples/SedovBlast_3D/makeIC_fcc.py similarity index 100% rename from examples/SedovBlast/makeIC_fcc.py rename to examples/SedovBlast_3D/makeIC_fcc.py diff --git a/examples/SedovBlast/profile.py b/examples/SedovBlast_3D/profile.py similarity index 100% rename from examples/SedovBlast/profile.py rename to examples/SedovBlast_3D/profile.py diff --git a/examples/SedovBlast/rdf.py b/examples/SedovBlast_3D/rdf.py similarity index 100% rename from examples/SedovBlast/rdf.py rename to examples/SedovBlast_3D/rdf.py diff --git a/examples/SedovBlast/run.sh b/examples/SedovBlast_3D/run.sh similarity index 100% rename from examples/SedovBlast/run.sh rename to examples/SedovBlast_3D/run.sh diff --git a/examples/SedovBlast/sedov.py b/examples/SedovBlast_3D/sedov.py similarity index 100% rename from examples/SedovBlast/sedov.py rename to examples/SedovBlast_3D/sedov.py diff --git a/examples/SedovBlast/sedov.yml b/examples/SedovBlast_3D/sedov.yml similarity index 100% rename from examples/SedovBlast/sedov.yml rename to examples/SedovBlast_3D/sedov.yml diff --git a/examples/SedovBlast/solution.py b/examples/SedovBlast_3D/solution.py similarity index 100% rename from examples/SedovBlast/solution.py rename to examples/SedovBlast_3D/solution.py diff --git a/examples/SodShock/glass_001.hdf5 b/examples/SodShock_3D/glass_001.hdf5 similarity index 100% rename from examples/SodShock/glass_001.hdf5 rename to examples/SodShock_3D/glass_001.hdf5 diff --git a/examples/SodShock/glass_002.hdf5 b/examples/SodShock_3D/glass_002.hdf5 similarity index 100% rename from examples/SodShock/glass_002.hdf5 rename to examples/SodShock_3D/glass_002.hdf5 diff --git a/examples/SodShock/makeIC.py b/examples/SodShock_3D/makeIC.py similarity index 100% rename from examples/SodShock/makeIC.py rename to examples/SodShock_3D/makeIC.py diff --git a/examples/SodShock/rhox.py b/examples/SodShock_3D/rhox.py similarity index 100% rename from examples/SodShock/rhox.py rename to examples/SodShock_3D/rhox.py diff --git a/examples/SodShock/run.sh b/examples/SodShock_3D/run.sh similarity index 100% rename from examples/SodShock/run.sh rename to examples/SodShock_3D/run.sh diff --git a/examples/SodShock/sodShock.yml b/examples/SodShock_3D/sodShock.yml similarity index 100% rename from examples/SodShock/sodShock.yml rename to examples/SodShock_3D/sodShock.yml diff --git a/examples/SodShock/solution.py b/examples/SodShock_3D/solution.py similarity index 100% rename from examples/SodShock/solution.py rename to examples/SodShock_3D/solution.py diff --git a/examples/UniformBox_2D/makeIC.py b/examples/UniformBox_2D/makeIC.py new file mode 100644 index 0000000000000000000000000000000000000000..41b7d695a2376b990703706977ef111be8f3a355 --- /dev/null +++ b/examples/UniformBox_2D/makeIC.py @@ -0,0 +1,114 @@ +############################################################################### + # This file is part of SWIFT. + # Copyright (c) 2016 Matthieu Schaller (matthieu.schaller@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 <http://www.gnu.org/licenses/>. + # + ############################################################################## + +import h5py +import sys +import random +from numpy import * + +# Generates a swift IC file containing a perturbed cartesian distribution of particles +# at a constant density and pressure in a cubic box + +# Parameters +periodic= 1 # 1 For periodic box +boxSize = 1. +L = int(sys.argv[1]) # Number of particles along one axis +rho = 1. # Density +P = 1. # Pressure +gamma = 5./3. # Gas adiabatic index +fileName = "uniformPlane.hdf5" + + +#--------------------------------------------------- +numPart = L**2 +mass = boxSize**2 * rho / numPart +internalEnergy = P / ((gamma - 1.)*rho) + +#Generate particles +coords = zeros((numPart, 3)) +v = zeros((numPart, 3)) +m = zeros((numPart, 1)) +h = zeros((numPart, 1)) +u = zeros((numPart, 1)) +ids = zeros((numPart, 1), dtype='L') + +for i in range(L): + for j in range(L): + index = i*L + j + x = i * boxSize / L + boxSize / (2*L) + boxSize/(2.*L) + y = j * boxSize / L + boxSize / (2*L) + boxSize/(2.*L) + z = 0 + coords[index,0] = x + coords[index,1] = y + coords[index,2] = z + v[index,0] = 0. + v[index,1] = 0. + v[index,2] = 0. + m[index] = mass + h[index] = 1.23485 * boxSize / L + u[index] = internalEnergy + ids[index] = index + + + +#-------------------------------------------------- + +#File +file = h5py.File(fileName, 'w') + +# Header +grp = file.create_group("/Header") +grp.attrs["BoxSize"] = boxSize +grp.attrs["NumPart_Total"] = [numPart, 0, 0, 0, 0, 0] +grp.attrs["NumPart_Total_HighWord"] = [0, 0, 0, 0, 0, 0] +grp.attrs["NumPart_ThisFile"] = [numPart, 0, 0, 0, 0, 0] +grp.attrs["Time"] = 0.0 +grp.attrs["NumFilesPerSnapshot"] = 1 +grp.attrs["MassTable"] = [0.0, 0.0, 0.0, 0.0, 0.0, 0.0] +grp.attrs["Flag_Entropy_ICs"] = [0, 0, 0, 0, 0, 0] +grp.attrs["NumPart_Total"] = numPart + +#Runtime parameters +grp = file.create_group("/RuntimePars") +grp.attrs["PeriodicBoundariesOn"] = periodic + +#Units +grp = file.create_group("/Units") +grp.attrs["Unit length in cgs (U_L)"] = 1. +grp.attrs["Unit mass in cgs (U_M)"] = 1. +grp.attrs["Unit time in cgs (U_t)"] = 1. +grp.attrs["Unit current in cgs (U_I)"] = 1. +grp.attrs["Unit temperature in cgs (U_T)"] = 1. + +#Particle group +grp = file.create_group("/PartType0") +ds = grp.create_dataset('Coordinates', (numPart, 3), 'd') +ds[()] = coords +ds = grp.create_dataset('Velocities', (numPart, 3), 'f') +ds[()] = v +ds = grp.create_dataset('Masses', (numPart,1), 'f') +ds[()] = m +ds = grp.create_dataset('SmoothingLength', (numPart,1), 'f') +ds[()] = h +ds = grp.create_dataset('InternalEnergy', (numPart,1), 'f') +ds[()] = u +ds = grp.create_dataset('ParticleIDs', (numPart, 1), 'L') +ds[()] = ids + 1 + +file.close() diff --git a/examples/UniformBox_2D/run.sh b/examples/UniformBox_2D/run.sh new file mode 100755 index 0000000000000000000000000000000000000000..fbabedb1cd564e0831228591ce32d9a73fe08d9a --- /dev/null +++ b/examples/UniformBox_2D/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# Generate the initial conditions if they are not present. +if [ ! -e uniformPlane.hdf5 ] +then + echo "Generating initial conditions for the uniform box example..." + python makeIC.py 100 +fi + +../swift -s -t 16 uniformPlane.yml diff --git a/examples/UniformBox_2D/uniformPlane.yml b/examples/UniformBox_2D/uniformPlane.yml new file mode 100644 index 0000000000000000000000000000000000000000..a3e2d275e50fb20f66ea6494c1202319e462dbed --- /dev/null +++ b/examples/UniformBox_2D/uniformPlane.yml @@ -0,0 +1,35 @@ +# Define the system of units to use internally. +InternalUnitSystem: + UnitMass_in_cgs: 1 # Grams + UnitLength_in_cgs: 1 # Centimeters + UnitVelocity_in_cgs: 1 # Centimeters per second + UnitCurrent_in_cgs: 1 # Amperes + UnitTemp_in_cgs: 1 # Kelvin + +# Parameters governing the time integration +TimeIntegration: + time_begin: 0. # The starting time of the simulation (in internal units). + time_end: 10. # The end time of the simulation (in internal units). + dt_min: 1e-6 # The minimal time-step size of the simulation (in internal units). + dt_max: 1e-2 # The maximal time-step size of the simulation (in internal units). + +# Parameters governing the snapshots +Snapshots: + basename: uniformPlane # Common part of the name of output files + time_first: 0. # Time of the first output (in internal units) + delta_time: 1e-1 # Time difference between consecutive outputs (in internal units) + +# Parameters governing the conserved quantities statistics +Statistics: + delta_time: 1e-3 # Time between statistics output + +# Parameters for the hydrodynamics scheme +SPH: + resolution_eta: 1.2348 # Target smoothing length in units of the mean inter-particle separation (1.2348 == 48Ngbs with the cubic spline kernel). + delta_neighbours: 0.1 # The tolerance for the targetted number of neighbours. + max_smoothing_length: 0.1 # Maximal smoothing length allowed (in internal units). + CFL_condition: 0.1 # Courant-Friedrich-Levy condition for time integration. + +# Parameters related to the initial conditions +InitialConditions: + file_name: ./uniformPlane.hdf5 # The file to read diff --git a/examples/UniformBox/makeIC.py b/examples/UniformBox_3D/makeIC.py similarity index 100% rename from examples/UniformBox/makeIC.py rename to examples/UniformBox_3D/makeIC.py diff --git a/examples/UniformBox/makeICbig.py b/examples/UniformBox_3D/makeICbig.py similarity index 100% rename from examples/UniformBox/makeICbig.py rename to examples/UniformBox_3D/makeICbig.py diff --git a/examples/UniformBox/run.sh b/examples/UniformBox_3D/run.sh similarity index 100% rename from examples/UniformBox/run.sh rename to examples/UniformBox_3D/run.sh diff --git a/examples/UniformBox/uniformBox.yml b/examples/UniformBox_3D/uniformBox.yml similarity index 100% rename from examples/UniformBox/uniformBox.yml rename to examples/UniformBox_3D/uniformBox.yml