blastFoam is a solver for multi-component compressible flow with application to high-explosive detonation, explosive safety and airblast. blastFoam is developed by Synthetik Applied Technologies.

This offering is not approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM$R◯$ and OpenCFD$R◯$ trade marks.

blastFoam is a solver for multi-component compressible flow with application to high-explosive detonation, explosive safety and airblast. The blastFoam solver uses OpenFOAM technology, and is in no way approved or endorsed by OpenCFD Limited, producer and distributor of the OpenFOAM software via www.openfoam.com, and owner of the OPENFOAM$R◯$ and OpenCFD$R◯$ trade marks (see Disclaimer above).

Several validation and tutorial cases are included in the repository, and are documented in the blastFoam User Guide.

- Install OpenFOAM from source or via binary/package installation from here (blastFoam works with OF version 7).
- Clone the blastFoam repository

```
git clone https://github.com/synthetik-technologies/blastfoam.git
```

- Run the ./Allwmake script to compile and install blastFoam

```
cd blastfoam
./Allwmake
```

- Test your installation by running the tutorial and validation cases

If you find any bugs, please let us know in the issues section of the repository. If you want to get in touch: info@synthetik-technologies.com

blastFoam is also available on the Texas Advanced Computing Center https://www.tacc.utexas.edu (TACC)

If you use this code for your work or research, please use this citation:

```
blastFoam: An OpenFOAM Solver for Compressible Multi-Fluid Flow with Application to High-Explosive Detonation. Synthetik Applied Technologies, LLC., 2019.
```

BiBTex:

```
@software{blastfoam,
title = {{blastFoam}: A Solver for Compressible Multi-Fluid Flow with Application to High-Explosive Detonation},
url = {https://github.com/synthetik-technologies/blastfoam},
publisher = {Synthetik Applied Technologies, {LLC}.},
date = {2019-10-22}
}
```

To cite the blastFoam User Guide.:

```
J. Heylmun, P. Vonk, and T. Brewer, “blastFoam User Guide.” Synthetik Applied Technologies, LLC., 30-Oct-2019.
```

BiBTex:

```
@misc{heylmun_blastfoamguide_2019,
title = {{blastFoam version 2.0} {User} {Guide} },
url = {https://github.com/synthetik-technologies/blastfoam},
language = {English},
publisher = {Synthetik Applied Technologies, LLC.},
author = {Heylmun, Jeffrey and Vonk, Peter and Brewer, Timothy},
month = oct,
year = {2019}
}
```

- T. Brewer, J. Heylmun, and P. Vonk, “Employment of the Open-source Airblast Solver blastFoam to Support the Super Heavy Improvised Explosive Loading Demonstration (SHIELD) Test Program,” presented at the ISIEMS, USA, 2019.
- D. Stephens, P. Vonk, and T. Brewer, “Validation of Open-source Airblast Solver (blastFoam) in an Urban Environment,” presented at the MABS 25, Hague, Netherlands, 2018.
- P. Vonk, “A New OpenFOAM Solver for Compressible Multi-Fluid Flow with Application to High-Explosive Detonation,” presented at the OpenFOAM Users Conference, Cologne, Germany, 2016.
- P. Vonk, T. Brewer, “A New OpenFOAM Solver for Compressible Multi-Fluid Flow with Application to High-Explosive Detonation and Extended Validation,” presented at the OpenFOAM Users Conference, USA, 2016.

blastFoam currently supports the following features:

- An arbitrary number of phases/EOS's
- JLW equation of state with constant, linear, and "Miller" afterburn models
- Multiple example and tutorial cases
- Automatic mesh refinement (AMR)
- Single and multi-point detonation
- High-order (1st, 2nd, 3rd and 4th order in time; 2nd and 3rd order spatial)
- HLLC, AUSM+, Kurganov, Tadmor flux schemes
- Parallel (MPI)
- Compatible with all of OpenFOAM's standard mesh generation, pre- and post-processing utilities

blastFoam includes the following equations of state:

- Jones Wilkens Lee (JWL) (with afterburn)
- Ideal Gas
- Stiffened Gas
- Cochran-Chan
- Tait
- Van der Waals

blastFoam has been validated against known solutions to standard gas dynamics problems, and against data from physical tests. Validation cases are included with example/tutorial cases as part of the solver source code.

Reference:

```
Joachim, Charles E., Gordon W. McMahon, Christo V. Lunderman, and Sharon B. Garner. 1999. “Airblast Effects Research: Small-Scale Experiments and Calculations.” DTIC Document.
```

Validation against experimental and simulated (CTH) data as reported in Joachim et. al.; see the paper for an explanation of scaling.

Reference:

```
M. E. Beyer, “Blast Loads Behind Vertical Walls,” Naval Civil Engineering Laboratory, Port Hueneme, CA, USA, AD-A181 274, 1986.
```

Reference:

```
Zheng, H. W., C. Shu, Y. T. Chew, and N. Qin. “A Solution Adaptive Simulation of Compressible Multi-Fluid Flows with General Equation of State.” International Journal for Numerical Methods in Fluids 67, no. 5 (2011): 616–637.
```

Verification and validation results as compared to those published by Zheng et. al.; HLLC flux shown.

The evolution of a two phase, compressible, and inviscid mixture can be defined by a set of coupled evolution equations for mass, momentum, and energy.

$∂_{t}U+∇⋅F=S$ $U=⎝⎜⎜⎜⎜⎜⎛ α_{1}α_{1}ρ_{1}α_{2}ρ2ρuρE ⎠⎟⎟⎟⎟⎟⎞ F=⎝⎜⎜⎜⎜⎜⎛ α_{1}uα_{1}ρ_{1}uα_{2}ρ_{2}uρu⊗u+pI(ρE+p)u ⎠⎟⎟⎟⎟⎟⎞ S=⎝⎜⎜⎜⎜⎜⎛ α_{1}∇⋅u0000 ⎠⎟⎟⎟⎟⎟⎞ $where $ρ$ is the mixture density, $u$ the mixture velocity, $E$ the total energy, $p$ the pressure, and $rho_{i}$ and $α_{i}$ are the density and volume fraction of each phase.

$α_{2}=1−α_{1}$ $ρ=i∑ α_{i}ρ_{i}$ $ρE=ρe+21 ρ∣u∣_{2}$ $ρe=i∑ α_{i}ρ_{i}e_{i}$The pressure will be defined using a specified equation of state where the mixture internal energy, densities, and volume fraction are used to calculate the total pressure. The equations of state will be used in the Mie-Gruneisen form.

$p_{i}(ρ_{i},e_{i},ρ)=(Γ(ρ_{i})−1)ρ_{i}e_{i}−Π(ρ_{i})$The mixture pressure is defined using the Mie-Gruneisen from using

$p=∑_{i}α_{i}ξ_{i}ρe −∑_{i}α_{i}ξ_{i}∑_{i}α_{i}ξ_{i}Π_{i} $where

$ξ_{i}(ρ_{i})=Γ_{i}−11 $and $Π_{i}$ is dependent on the equation of state.

The speed of sound within a give phase is give by

$c_{i}=∑_{i}ξ_{i}∑_{i}y_{i}ξ_{i}c_{i} $with

$y_{i}=ρα_{i}ρ_{i} $ $c_{i}=ξ_{i}h_{i}−δ_{i} $ $h_{i}=(Γ_{i}−1)ρ_{i}Γ_{i}p+Π_{i} $and $δ_{i}$ is again dependent on the equation of state.

For a gas described by the generalized van der Waals equation of state, the pressure is defined as

$p_{i}=1−b_{i}ρ_{i}γ_{i}−1 (ρ_{i}e_{i}+a_{i}ρ_{i})−(a_{i}ρ_{i}+c_{i})$where $a_{i}$, $b_{i}$, $c_{i}$, and $γ_{i}$ are material parameters. Writing the above equation in M.G. form, we obtain

$Γ_{i}=1−b_{i}ρ_{i}γ_{i}−1 +1$ $Π_{i}=[1−1−b_{i}ρ_{i}γ_{i}−1 ]a_{i}ρ_{i}+[1−b_{i}ρ_{i}γ_{i}−1 +1]c_{i}$and

$δ_{i}=−b_{i}γ_{i}−1p_{i}+a_{i}ρ_{i} +(γ−11−b_{i}ρ_{i} −1)2a_{i}ρ_{i}$For a material obeying the Tait EOS, the pressure is defined as

$p_{i}=(γ_{i}−1)ρ_{i}e_{i}−γ_{i}(b_{i}−a_{i})$where $a_{i}$, $b_{i}$, and $γ_{i}$ are material properties. In M.G. form, we have

$Γ_{i}=γ_{i}$ $Π_{i}=γ_{i}(b_{i}−a_{i})$and

$δ_{i}=0$For a material obeying the stiffened EOS, the pressure is defined as

$p_{i}=(γ_{i}−1)ρ_{i}e_{i}−γ_{i}a_{i}$where $a_{i}$ and $γ_{i}$ are material properties, and

$Γ_{i}=γ_{i}$ $Π_{i}=γ_{i}a_{i}$ $δ_{i}=0$The more complicated JWL EOS is often used to define energetic materials, and has a reference pressure given by

$p_{ref,i}=A_{i}e_{−ρRρ}+B_{i}e_{−ρRρ}$$A_{i}$, $B_{i}$, $R_{1,i}$, $R_{2,i}$, $ρ_{0,i}$, and $Γ_{0,i}$ are the material properties. The functions of the EOS are given by

$Γ_{i}=Γ_{0,i}+1$ $Π_{i}=Γ_{0,i}ρ_{i}(R_{1,i}ρ_{0,i}A_{i} e_{−ρRρ}+R_{2,i}ρ_{0,i}B_{i} e_{−ρRρ}+e_{0,i})−p_{ref,i}$and

$δ_{i}=A_{i}e_{−ρRρ}[Γ_{0,i}(R_{1,i}ρ_{0,i}1 +ρ_{i}1 )−ρ_{i}R_{1,i}ρ_{0,i} ]Γ_{0,i}1 +B_{i}e_{−ρRρ}[Γ_{0,i}(R_{2,i}ρ_{0,i}1 +ρ_{i}1 )−ρ_{i}R_{2,i}ρ_{0,i} ]Γ_{0,i}1 +e_{0,i}$$e_{0}$ is anther material parameter which denotes a reference energy state.

The Cochran Chan EOS can be used to describe solid material, and has a reference pressure given by

$p_{ref,i}=A_{i}(ρ_{i}ρ_{0,i} )_{1−E_{1,i}}−B_{i}(ρ_{i}ρ_{0,i} )_{1−E_{2,i}}$$A_{i}$, $B_{i}$, $E_{1,i}$, $E_{2,i}$, $ρ_{0,i}$, and $Γ_{0,i}$ are the material properties. The functions of the EOS are given by

$Γ_{i}=Γ_{0,i}+1$ $Π_{i}=Γ_{0,i}ρ_{i}(−(E_{1,i}−1)ρ_{0,i}A_{i} (ρ_{i}ρ_{0,i} )_{1−E_{1,i}}+(E_{2,i}−1)ρ_{0,i}B_{i} (ρ_{i}ρ_{0,i} )_{1−E_{2,i}}+e_{0,i})−p_{ref,i}$ $δ_{i}=E_{1,i}A_{i} [E_{1,i}(ρ_{i}ρ_{0,i} )_{−E_{1,i}}ρ_{i}E_{1,i}−Γ_{0,i}−1 +ρ_{0,i}Γ_{0,i} ]Γ_{0,i}1 +E_{2,i}B_{i} [E_{2,i}(ρ_{i}ρ_{0,i} )_{−E_{2,i}}ρ_{i}E_{2,i}−Γ_{0,i}−1 +ρ_{0,i}Γ_{0,i} ]Γ_{0,i}1 +e_{0,i}$where again, $e_{0}$ is a material parameter which denotes a reference energy state.