Notes
Notes
1 FleCSI
FleCSI is a compile-time configurable framework designed to support multi-physics application development. As
such, FleCSI provides a very general set of infrastructure design patterns that can be specialized and extended to
suit the needs of a broad variety of solver and data requirements. FleCSI currently supports multi-dimensional
mesh topology, geometry, and adjacency information, as well as n-dimensional hashed-tree data structures, graph
partitioning interfaces, and dependency closures.
FleCSI introduces a functional programming model with control, execution, and data abstractions that are con-
sistent both with MPI and with state-of-the-art, task-based runtimes such as Legion, HPX and Charm++. The
abstraction layer insulates developers from the underlying runtime, while allowing support for multiple runtime
systems including conventional models like asynchronous MPI.
The intent is to provide developers with a concrete set of user-friendly programming tools that can be used now,
while allowing flexibility in choosing runtime implementations and optimization that can be applied to future
architectures and runtimes.
FleCSI’s control and execution models provide formal nomenclature for describing poorly understood concepts such
as kernels and tasks. FleCSI’s data model provides a low-buy-in approach that makes it an attractive option for
many application projects, as developers are not locked into particular layouts or data structure representations.
FleCSI currently provides a parallel but not distributed implementation of binary, quad- and octree topologies.
Domain decomposition is implemented using space-filling curves, such as Morton ordering curve.
At current stage, FleCSI framework requires implementation of a driver and a specialization driver. The role of
the specialization driver is to provide the data model and its parallel distribution. Currently, FleCSI does not has
this feature fully implemented, so we provide it. The next step will be to incorporate it directly from FleCSPH
to FleCSI as we reach a good level of performance. The driver represents the general execution of the resolution
without worrying of the data locality and communications. As FleCSI is a code in development, its structure may
change in the future and we keep track of these changes in FleCSPH1 .
i
• Other space-filling curves: hexagonal space filling curves, ...?
This first implementation is based on the Morton ordering which is used during several steps:
• The distribution part, to be able to split the particles between the processes providing a good locality in the
data.
• The tree construction and search.
3 General algorithm
The main distributed algorithm is presented in algorithm 1
In the current version the 7 is based on a distributed quick sort algorithm. Each process sends a sample of its keys
to the master (or submaster for larger cases). We have set this to 256 Kb of key data per process, but it can be
increased for larger simulations. After receiving sample keys, the master determines the general ordering for all
the processes and shares the pivots. Then each process sorts its local keys and, in a global communication step,
the particles are distributed to the process on which they belong. The advantage is that it is a quick distribution
algorithm, but it can lead to bad load balancing.
• The ordering may not be perfect in terms of the number of particles per processes. But by changing the
amount of data exchanged to the master can lead to better affectation (?)
• The load balancing also depends on the number of neighbors of each particles. If a particle is located in a
poor area with large space between the particles this can lead to bad load balancing too.
After the sorting step the local tree can be created on each process. To be able to look for the ghosts and shared
particles we need to share some information with the neighbors on the tree. At line (10), the algorithm searches
for the neighboring branches, which are affecting the local particles. We compute the global bounding box of each
processes and based on this information each process can then compute the affecting branches to share from its
local tree. This new information is then added to the local tree by considering NON LOCAL particles. This data
structure does just contain the position and mass of the distant particle.
The branch sharing allows to compute the ghosts for this step. Each process performs a local search in the tree and
computes the required ghosts particles (the NON LOCAL bodies). Those data for shared and ghosts are stored
ii
and are use to share the complete particle information when 12 is invoked. As the ghosts data remain the same
within an iteration, the 12 can be used several times to update local information on remote particles.
4 I/O
Large-scale simulations require an efficient, parallel and distributed I/O. We base this first implementation on HDF5
file structure with H5Part and H5Hut. The I/O was developed at LANL and provides a simple interface to read
and write data in H5Part format. The first requirement is to allow the user to work directly with the Paraview
visualization tool and splash.
where W is a smoothing kernel, h is the smoothing length (hydro interaction range) at a position ~r, and Vb is a
volume element, usually Vb = mb /ρb .
In comparison with Eulerian methods, SPH has several advantages. It can easily adapt to complex geometries,
naturally handle low density regions, and does not require low-density floor to handle vacuum. It conserves mass by
construction, and can be easily made to conserve linear momentum, angular momentum, and energy up to roundoff.
Another advantage of using SPH is its exact advection of fluid properties. Furthermore, the same tree which is used
to find particle neighbors, can be employed for computing Newtonian gravitational forces.
Shortcomings of SPH are its convergence which is restricted to low-order, and high sensitivity to the initial particles
distribution. Also, SPH struggles with resolving turbulence-dominated flows and requires special care when handling
high gradients, such as shocks and stellar surface.
The starting point at a continuum limit is Euler ideal fluid equations in the Lagrangian formulation, expressing
conservation equations of mass and linear momentum:
dρ
= −ρ∇ · ~v , (2)
dt
du P dρ
= , (3)
dt ρ2 dt
d~v ∇P
=− + ~g , (4)
dt ρ
(5)
where d/dt = ∂t + ~v · ∇ and ~g is a gravitational acceleration. The latter may be due to interparticle gravitational
interaction, an external gravitational field, or both.
iii
5.1 Basic formulation : Vanilla Ice SPH
In its simplest form, SPH discretization uses the volume element Vb = mb /ρb , a constant smoothing length h, and
artificial viscosity term Πab :
X
ρa = mb Wab , (6)
b
dua X Pa 1
= mb + Πab ~vab · ∇a Wab , (7)
dt ρ2a 2
b
d~va X Pa Pb
=− mb + + Π ab ∇a Wab + ~
ga , (8)
dt ρ2a ρ2b
b
where Wab = W (|~ra − ~rb |, h). The viscous stress tensor Πab may be defined in different ways; currently we have
adopted the following form:
−αc̄ab µab +βµ2ab
(
ρ̄ab for ~rab · ~vab < 0,
Πab = (9)
0 otherwise,
where the following quantities are defined:
h̄ab~rab · ~vab
µab = , (10)
|~rab |2 + h̄2ab
~rab = ~ra − ~rb , ~vab = ~va − ~vb , (11)
average speed of sound: c̄ab = (ca + cb )/2, (12)
average density: ρ̄ab = (ρa + ρb )/2, (13)
average smoothing length: h̄ab = (ha + hb )/2, (14)
(15)
In the basic formulation with a constant smoothing length, h̄ab ≡ h. The values of , α, and β control the strength
and application of artificial viscosity. Their default values: = 0.01, α = 1.0, and β = 2.0.
The quantity c̄ab is a speed of sound, averaged between particles a and b: c̄ab = (ca + cb )/2. It is computed as usual:
s
∂P
ca = , (16)
∂ρ S,a
where the partial derivative is taken under constraint of a constant entropy S, with thermodynamic conditions at
particle a. E.g., the following (Newton-Laplace) equation,
s
ΓPa
ca = (17)
ρa
holds both for polytropic and ideal fluid equations of state (see Section 7).
If ~g = 0, then the basic formulation, when integrated with a symplectic integrator, conserves energy, momentum
and angular momentum exactly (e.g. Rosswog 2009, Section 2.4).
Alternatively, FleCSPH features an implementation of the so-called thermokinetic formulation, in which the total
particle energy is evolved: ea = ua + 12 va2 . Corresponding discretized version of the energy equation reads,
dea X Pa~vb Pb~va ~va + ~vb ~
=− mb + + Π ab · ∇a Wab . (18)
dt ρ2a ρ2b 2
b
iv
length but here we adapt (See Sec.2.6 in Rosswog 2009 for more details)
1/3
ma
ha = η (19)
ρa
where η should be chosen in the range between 1.2 and 1.5.
Note that the SPH equations in previous section were derived under assumption that the smoothing lengths are
constant. So, we need different set of equations. The SPH equations can be directly derive from variational principle
with fluid Lagrangian. Unlike vanilla SPH formulation, we take the changes of h into account. This introduces
additional term called grad-h term. This additional term increases the accuracy of SPH and the conservation
properties int the presence of varying h. We refer reader to see Sec.3.3 in Rosswog 2009 for whole detail derivations.
Below is summary of the SPH equations with grad-h term
X
ρa = mb Wab (rab , ha ) (20)
a
where
∂ha X ∂Wab (ha )
Ωa ≡ 1 − mb (24)
∂ρa ∂ha
b
6 Kernels
There are many choices for selecting a smoothing kernel. In the code, the kernel choice is specified by a sph kernel
parameter, and the smoothing length is defined to be equal to the kernel support radius. Note that some works
define smoothing length differently, such that the kernel support radius becomes a multiple of smoothing length.
For example, for a cubic spline kernel it is twice the h. We do not make such distinction; all kernels below must
satisfy the following normalization condition:
ZZZ
W (~r, h)dD ~r = 1, (25)
SD (h)
where the integration is performed over the D-dimensional volume of a sphere SD (h) of radius h.
All the currently implemented kernels possess spherical symmetry, which makes it easy to impose exact conservation
of linear momentum. For such kernels, the gradients can be computed as follows:
∇a Wab ≡ ∇a W (|~ra − ~rb |, ha ) (26)
dW
= ~εab , (27)
dr
where ~εab ≡ ~rab /|~rab | is a unit vector in the direction from particle b to particle a. It is therefore sufficient to
implement dW/dr for each kernel.
In the formulae below, we define q ≡ |~r|/h.
v
6.1 sph kernel = "cubic spline"
The simplest (but not the best one) is a Monaghan’s cubic spline kernel:
1 − 6q 2 + 6q 3 if 0 ≤ q ≤ 1/2,
σD
W (~r, h) = D 2(1 − q)3 if 1/2 ≤ q ≤ 1, (28)
h
0 otherwise,
where σD is:
1 7 3
σD = , , in 1D, 2D and 3D resp. (35)
120 478π 359π
Radial derivative of the cubic spline kernel is:
[−5(3 − q)4 + 30(2 − q)4 − 75(1 − q)4 ] if 0 ≤ q ≤ 1,
[−5(3 − q)4 + 30(2 − q)4 ]
dW σD if 1 ≤ q ≤ 2,
= D+1 4
(36)
dr h
−5(3 − q) if 2 ≤ q ≤ 3,
0 if q > 3
vi
6.4 sph kernel = "Wendland C2"
The Wendland C2-continuous kernel (C2) for 2D and 3D is
( 4
σD 1 − 2q (2q + 1) if 0 ≤ q ≤ 2,
W (~r, h) = D (37)
h 0 if q > 2
where σD is:
7 21
σD = , in 2D and 3D resp. (38)
4π 16π
For 1D: (
q 3
σD 1− 2 (1.5q + 1) if 0 ≤ q ≤ 2,
W (~r, h) = (39)
h 0 if q > 2
where σD is:
5
σD = in 1D (40)
8
vii
Dimensions b0 b1 b2 b3
1D −1.5404568 × 10−2 3.6632876 × 10−1 −4.6519576 × 10−4 −7.3658324 × 10−2
2D 5.2245027 × 10−2 1.3090245 × 10−1 1.9358485 × 10−2 −6.1642906 × 10−3
3D 2.7012593 × 10−2 2.0510827 × 10−2 3.7451957 × 10−3 4.7013839 × 10−2
where the values of coefficients b0 , b1 , b2 , and b3 as a function of the dimensions are given by
7 Equations of State
To understand the inner property of stars, one needs to find the equation which describes the relation between the
pressure of matter and its density, temperature and other compositions such that
First, we consider analytic equations of state that are relevant for binary neutron stars.
viii
Then, piecewise polytrope EOS is (
K0 ργ0 ifρ ≤ ρ0
P (ρ) = γ
K0 ρ0 0 γ1
(57)
γ
ρ0 1
ρ ifρ > ρ0
where ρ0 = 5 × 1014 g/cm3 . We can combine the piecewise polytropic EOS with ideal gas to attain an EOS valid at
both low and high densities. For more realistic studies, we need to consider different types of analytic EOSs such
as Maxwell-Boltzmann and Helmholtz EOSs. Also, we will put the functionality that can control tabulated EOS.
8 Initial Data
Initial particle configurations are constructed using various methods, including regular cubic lattices, random par-
ticle distributions, or sequences of spherical shells. For a star, the density as a function of radius ρ(~r) can be found
by solving Lane-Emden equation, where we use polytropic index n = 1 (see Section 9). We pick particles with
variable mass, such that the mass of a particle is computed as:
ρ(~
ri ) 3N
mi = with nr = (62)
nr 4πR3
The smoothing length is set to a constant and uniform for all particles:
r
1 3NN
h= (63)
2 4πn
Here we choose NN , the average number of neighbors, to be 100.
d2 θ 2 dθ
+ + θn = 0 (64)
dξ 2 ξ dξ
With ξ and θ two dimensionless variables. There is only exact solutions for a polytropic index n = 0.5, 1 and 2. In
our work we use a polytropic index of 1 which can correspond to a NS simulation.
For n = 1 the solution of equation 64 is:
ix
sin(ξ)
θ(ξ) = (65)
ξ
We note ξ1 = π, the first value of ξ as θ(ξ) = 0. θ(ξ) is also defined as:
ρ(ξ) n1 ρ(ξ)
θ(ξ) = = (66)
ρc ρc
With ρc the internal density of the star and ρ the density at a determined radius. ξ is defined as:
s r
4πG (n−1)/n 2πG
ξ = Ar = ρc ×r = × r (for n = 1)
K(n + 1) K
R2 2πG
K= (68)
ξ12
N S1 N S2 N S3 N S4
Radius (cm) R=G=M =1 1500000 1400000 960000
K 0.636619 95598.00 83576.48 39156.94
M A3
ρc =
4π(sin(AR) − ARcos(AR))
Then we normalize the results to fit R = M = G = 1: K 0 = K/(R2 G), m0i = mi /M , h0i = hi /R, x~i 0 = x~i /R
d~
vi F~ Grav F~ Hydro v~i
= i + i + F~iRoche − (69)
dt mi mi trelax
With trelax ≤ tosc ∼ (Gρ)−1/2 and where F~iRoche is:
x
9.2 Darwin problem
This is the way we use to generate the final simulation. The equation of motion for the relaxation is now:
d~
vi F~ Grav F~ Hydro v~i
= i + i + F~iRot − (70)
dt mi mi trelax
For the time integrator, we are using the leapfrog algorithm, specifically its ”kick-drift-kick” variation (see Algo-
rithm 2). This algorithm belongs to the family of symplectic integrators and, in the absence of gravity, conserves
energy exactly.
Leapfrog time integrators are efficient for Hamiltonian systems, specifically for particle simulations. The name
comes from the fact that particle velocities are updated at half-steps while the positions at integer steps, so that
the two leap over each other. A pair of updates from timestep n to n + 1 has the following form:
xi
Note that in this simple form the accelerations a(rn ) are computed synchronously with positions and assumed
independent from the velocities v n . This formulation is time-symmetric and reversible up to roundoff.
An equivalent ”kick-drift-kick” formulation was shown to be stable for variable time steps:
If we substitute corresponding time derivatives from (7-8), this expression vanishes (as shown in e.g. Rosswog 2009,
their Section 2.4):
~van + ~vbn
X P a n Pb n
E n+1/2 − E n−1/2 = − ma mb ~
v + ~
v + Π ab
n
· ∇a Wab = 0. (84)
ρ2a b ρ2b a 2
a,b
For this expression to vanish, the viscosity tensors Πa b in (77) and (78) above (or in (80) and (80)) should be
identical. Even though they might depend on the values of internal energy at previous half-step, un−1/2 , it does not
affect tensor symmetry and energy conservation at half-steps. Similarly, the pressure in (84) depends on the density
at the current integer step and internal energy at previous half-step, but it does not violate energy conservation
as long as the same value of the pressure is used to compute accelerations and time derivatives of internal energy.
n n
At the same time, when computing derivaties of internal energy using expression (7), the dot products ~vab · ∇a Wab
n
must be computed with velocities ~va at integer timesteps, as in (83).
where ca is a sound speed, α and β are viscosity parameters, and µab is a viscosity function, as defined in equation
(10).
xii
11 Computing Gravitational Forces
Gravitational force acting on a particle F~aGrav due to attraction by other particles is described by the Newton’s
formula, with G being the Newton’s gravitational constant:
X ma mb
F~aGrav = G ~rab . (87)
(|~ra − ~rb |)3
b
To avoid O(N 2 ) computational complexity, we use the Fast Multipole Method (FMM), as described below.
With p the particle inside this cell and cell the cells that are accepted with the MAC. Here we directly consider the
gravitational acceleration, we don’t take in account the mass of the center of mass c. And G = 1 in our context.
The acceleration at a point from this center of mass is based on taylor series:
∂ f~c 1 ∂ f~c
f~(~r) = f~c (r~c ) + || || · (~r − r~c ) + (~r − r~c )| · || || · (~r − r~c ) (89)
∂ r~c 2 ∂ r~c ∂ r~c
~
The Jacobi matrix || ∂∂~
fc
r || is then:
3(xc −xp )(xc −xp ) 3(yc −yp )(xc −xp ) 3(zc −zp )(xc −xp )
1− |rc −rp |2 − |rc −rp |2 − |r~c −r~p |2
X mp − 3(xc −xp )(yc2−yp )
3(y −y )(y −y ) 3(z −z )(y −y )
− |r~c −r~p | 1 − c |r~c p−r~p |c2 p − c |r~cp−r~p |c2 p (90)
p
|r~c − r~p |3 3(xc −x p )(zc −zp ) 3(y −yp )(zc −zp ) 3(z −z )(z −z )
− |r~c −r~p |2 − c |r~c − r~p |2 1 − c |r~c p−r~p |c2 p
With δij the identity matrix with δij = 1 if i = j where i, j runs spatial index from 1 to 3. For example, r1 = x,
r2 = y, and r3 = z as usual sense. (We do not consider covariant form of this because we are not considering
spacetime).
~
The Hessian matrix || ∂ r~∂cf∂cr~c || is then:
5(xc −xp )3 5(xc −xp )2 (yc −yp ) 5(xc −xp )2 (zc −zp )
|r~c −r~p |2 − 3(xc − xp ) |r~c −r~p |2 − 3(yc − yp ) |r~c −r~p |2 − 3(zc − zp )
∂ 2 fcx X 3mp 5(x −x 2
p ) (yc −yp ) 5(xc −xp )(yc −yp )2 5(xc −xp )(yc −yp )(zc −zp )
|| || = − c
| − r~p |2 − 3(yc − yp ) |r~c −r~p |2 − 3(xc − xp ) |r~c −r~p |2
∂rci ∂rcj p
|r~c − r~p | 5 r
~ c
5(xc −xp )2 (zc −zp ) 5(xc −xp )(yc −yp )(zc −zp ) 5(xc −xp )(zc −zp )2
|r~c −r~p |2 − 3(zc − zp ) |r~c −r~p |2 |r~c −r~p |2 − 3(x c − x p )
(92)
2
c −xp ) (yc −yp ) 5(xc −xp )(yc −yp )2 5(xc −xp )(yc −yp )(zc −zp )
5(x
|r~c −r~p |2 − 3(yc − yp ) |r~c −r~p |2 − 3(xc − xp ) |r~c −r~p |2
∂ 2 fcy X 3mp 5(xc −xp )(yc −zp )2 5(yc −yp )3 5(yc −yp )2 (zc −zp )
|| || = −
|r~c −r~p |2 − 3(xc − xp ) |r~c −r~p |2 − 3(yc − yp ) |r~c −r~p |2 − 3(zc − zp )
∂rci ∂rcj p
|r~c − r~p |5
5(xc −xp )(yc −yp )(zc −zp ) 5(yc −yp )2 (zc −zp ) 5(yc −yp )(zc −zp )2
|r~c −r~p |2 |r~c −r~p |2 − 3(zc − zp ) |r~c −r~p |2 − 3(yc − yp )
(93)
xiii
2
c −xp ) (zc −zp ) 5(xc −xp )(yc −yp )(zc −zp ) 5(xc −xp )(zc −zp )2
5(x
|r~c −r~p |2 − 3(zc − zp ) |r~c −r~p |2 |r~c −r~p |2 − 3(xc − xp )
∂fcz X 3mp 5(xc −xp )(yc −zp )(zc −zp ) 5(yc −yp )2 (zc −zp ) 5(yc −yp )(zc −zp )2
|| j
|| = −
|r~c −r~p |2 |r~c −r~p |2 − 3(zr − zp ) |r~c −r~p |2 − 3(yc − yp )
∂rci ∂rc |r~c − r~p |5
p 5(xc −xp )(zc −zp )2 5(yc −yp )(zc −zp )2 5(zc −zp )3
|r~c −r~p |2 − 3(xc − xp ) |r~c −r~p |2 − 3(yc − yp ) |r~c −r~p | 2 − 3(zc − zp )
(94)
" #
∂ 2 fci X 3mp 5(rci − rpi )(rcj − rpj )(rck − rpk ) 3
δij (rck − rpk ) + δjk (rci − rpi ) + δik (rcj − rpj )
|| || = − − (95)
∂rcj ∂rck p
|r~c − r~p |5 |r~c − r~p |2 w
where w = δij + δjk + δjk + ijk and ijk is 3D Levi-Civita symbol. We add Levi-Civita symbol to avoid zero in
denominator Here again, latin indices i, j, and k indicates spatial components
12 Resolution order
The resolution is done in this order:
13 Applications
13.1 Sod Shock Tube
The Sod shock tube is the test consists of a one-dimensional Riemann problem with the following initial parameters
(
(1.0, 0.0, 1.0) if0 < x ≤ 0.5
(ρ, v, p)t=0 = (96)
(0.125, 0.0, 0.1) if0.5 < x < 1.0
This link shows some references and values for Sod shock tube problem that also includes boundary and jump
conditions([Link]
Also, we would like to re-generate the shock test result from Rosswog’s paper. In that paper, he shows the result of
a 2D relativistic shock tube test where the left state is given by [P, vx , vy , N ]L = [40/3, 0, 0, 10] and the right state
by [P, vx , vy , N ]R = [10−6 , 0, 0, 1] with Γ = 5/3
In our code, we use below parameters to get results
xiv
Algorithm 3 Gravitation computation
1: procedure tree traversal grav(branch sink)
2: if [Link] < Mcellmax then . Another choice criterion can be use
3: f~c ← ~0
∂ f~c ~
4: ∂~r ←0
~ ∂ f~c
5: TREE TRAVERSAL C2C(sink,[Link],f~c , ∂ fc ) ∂~
r . Compute f~c and ∂~ r using MAC
f~c
6: SINK TRAVERSAL C2P(sink, f~c , ∂∂~r ) . Expand to the particles below
7: else
8: for All children c of sink do
9: TREE TRAVERSAL GRAV(c)
10: end for
11: end if
12: end procedure
13:
14: function MAC(branch sink,branch source,double macangle)
15: dmax ← [Link] × 2
16: dist ← distance([Link], [Link])
17: return dmax /dist < macangle
18: end function
19:
20: procedure tree traversal c2c(branch sink, branch source, acceleration f~c )
21: if MAC(sink, source, macangle) then
22: f~c ← f~c + (− [Link]×([Link]−[Link])
|[Link]−[Link]|3 )
∂ f~c
23: ∂~ r← ...
24: else
25: if [Link] leaf () then
26: for All particles p of source do
27: f~c ← f~c + (− [Link]×([Link]−[Link])
|[Link]−[Link]|3 )
∂ f~c
28: ∂~ ← ...
r
29: end for
30: else
31: for All children c of source do
32: TREE TRAVERSAL C2C(sink, c, f~c )
33: end for
34: end if
35: end if
36: end procedure
37:
38: procedure TREE TRAVERSAL C2P(branch current, acceleration f~c )
39: if [Link] leaf () then
40: for All particle p of current do
δ f~c
41: [Link] ← f~c + δ[Link] .([Link] − [Link]) + ...
42: end for
43: else
44: for All children c of current do
~
45: TREE TRAVERSAL C2P(c, f~c , ∂∂ fr~cc )
46: end for
47: end if
48: end procedure
xv
13.2 Sedov Blast Wave
A blast wave is the pressure and flow resulting from the deposition of a large amount of energy in a small very
localized volume. This is another great test problem for computational fluid dynamics field.
There are different version of blast wave test but we consider the analytic solution for a point explosion is given by
Sedov, making the assumption that the atmospheric pressure relative to the pressure insider the explosion negligible.
The position of the shock as a function of time t, relative to the initiation of the explosion, is given by
1
et2
δ+2
R(t) = (97)
ρ0
with δ = 2 and δ = 3 for cylindrical and spherical geometry respectively. The initial density ρ0 whereas e is a
dimensionless energy. Right behind the shock we ahve the following properties
Γ+1 2 2
ρ2 = ρ0 P 2 = ρ 0 w 2 v2 = w (98)
Γ−1 Γ+1 Γ+1
where the shock velocity is
dR 2 R(t)
w(t) = = (99)
dt δ+2 t
In numerical simulations, energy deposition in a single point is difficult to achieve. A solution to the problem is to
make use of the bursting balloon analogue. Rather than depositing the total energy in a single point, the energy is
released into a balloon of finite volume V
(P − P0 )V
e= (100)
Γ−1
The energy release in a balloon of radius r0 raises the pressure to the value
3(Γ − 1)e
P = (101)
(δ + 1)πr0δ
Here, we test 2D blast wave test. In this simulation, we use ideal gas EOS with Γ = 5/3 and we are assuming that
the undistributed area is at rest with a pressure P0 = 1.0−5 . The density is constant ρ0 , also in the pressurized
region.
xvi