Skip to content

Commit 112f2df

Browse files
author
polycfd
authored
Streamlined implementation of emissions, new example, updated documentation
Merge pull request #7 from fabiandenner/main
2 parents faac15c + 830048f commit 112f2df

File tree

14 files changed

+480
-75
lines changed

14 files changed

+480
-75
lines changed

.github/workflows/test_run.yml

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,13 @@ jobs:
2121
- name: Build lib
2222
run: cmake --build ${{github.workspace}}/lib --config ${{env.BUILD_TYPE}}
2323

24+
- name: Configure bubble binary bubble interaction
25+
run: cmake -S ${{github.workspace}}/examples/binaryinteraction/build -B ${{github.workspace}}/examples/binaryinteraction/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
26+
- name: Build bubble binary bubble interaction
27+
run: cmake --build ${{github.workspace}}/examples/binaryinteraction/build --config ${{env.BUILD_TYPE}}
28+
- name: Run bubble binary bubble interaction
29+
run: ${{github.workspace}}/examples/binaryinteraction/build/binaryinteraction_apecss -options ${{github.workspace}}/examples/binaryinteraction/run.apecss -freq 15.7e3 -amp -120e3 -tend 7.5e-4
30+
2431
- name: Configure bubble with gas-temperature model
2532
run: cmake -S ${{github.workspace}}/examples/gastemperature/build -B ${{github.workspace}}/examples/gastemperature/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
2633
- name: Build bubble with gas-temperature model
@@ -71,6 +78,13 @@ jobs:
7178
- name: Build lib
7279
run: cmake --build ${{github.workspace}}/lib --config ${{env.BUILD_TYPE}}
7380

81+
- name: Configure bubble binary bubble interaction
82+
run: cmake -S ${{github.workspace}}/examples/binaryinteraction/build -B ${{github.workspace}}/examples/binaryinteraction/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
83+
- name: Build bubble binary bubble interaction
84+
run: cmake --build ${{github.workspace}}/examples/binaryinteraction/build --config ${{env.BUILD_TYPE}}
85+
- name: Run bubble binary bubble interaction
86+
run: ${{github.workspace}}/examples/binaryinteraction/build/binaryinteraction_apecss -options ${{github.workspace}}/examples/binaryinteraction/run.apecss -freq 15.7e3 -amp -120e3 -tend 7.5e-4
87+
7488
- name: Configure bubble with gas-temperature model
7589
run: cmake -S ${{github.workspace}}/examples/gastemperature/build -B ${{github.workspace}}/examples/gastemperature/build -DCMAKE_BUILD_TYPE=${{env.BUILD_TYPE}}
7690
- name: Build bubble with gas-temperature model

README.md

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,19 @@
1-
# APECSS
2-
[![Build test](https://github.com/polycfd/apecss/actions/workflows/test_build.yml/badge.svg)](https://github.com/polycfd/apecss/actions/workflows/test_build.yml)
3-
[![Run test](https://github.com/polycfd/apecss/actions/workflows/test_run.yml/badge.svg)](https://github.com/polycfd/apecss/actions/workflows/test_run.yml)
1+
# APECSS
2+
3+
<p align="left">
4+
<a href="https://github.com/polycfd/apecss/actions/workflows/test_build.yml">
5+
<img src="https://github.com/polycfd/apecss/actions/workflows/test_build.yml/badge.svg" alt="Issues">
6+
</a>
7+
<a href="https://github.com/polycfd/apecss/actions/workflows/test_run.yml">
8+
<img src="https://github.com/polycfd/apecss/actions/workflows/test_run.yml/badge.svg" alt="License">
9+
</a>
10+
<a href="https://doi.org/10.1063/5.0131930">
11+
<img src="https://img.shields.io/badge/Paper-10.1063/5.0131930-blue" alt="Paper">
12+
</a>
13+
<a href="https://doi.org/10.5281/zenodo.7249297">
14+
<img src="https://img.shields.io/badge/All%20releases-10.5281/zenodo.7249297-blue" alt="Latest version">
15+
</a>
16+
</p>
417

518
APECSS is a software toolbox to compute pressure-driven bubble dynamics and the resulting acoustic emissions. It is written in C and has been developed with simplicity, versatility and performance in mind. The acronym APECSS stands for "Acoustic Pulse Emitted by Cavitation in Spherical Symmetry".
619

@@ -46,5 +59,16 @@ There are several ways in which you can use the APECSS library. You can either i
4659
- A ````build```` folder containing the ````CMakeLists.txt```` file and a shell script ````compile.sh```` with which this example can be compiled using the command ````./compile.sh````.
4760
- One or several ````*.apecss```` files in which the options for a specific case are defined.
4861

62+
## How to cite us
63+
If you use APECSS for your scientific work, please consider citing the [paper](https://doi.org/10.1063/5.0131930) introducing the theoretical foundation of APECSS
64+
65+
F. Denner and S. Schenke, Modeling acoustic emissions and shock formation of cavitation bubbles. Physics of Fluids 35 (2023).
66+
67+
as well as the version of APECSS you've used for your work, e.g.
68+
69+
F. Denner and S. Schenke, APECSS (v1.2), (2022). https://doi.org/10.5281/zenodo.7465050
70+
71+
All releases can be found on the [Zenodo page](https://doi.org/10.5281/zenodo.7249297).
72+
4973
## Acknowledgements
5074
The development of APECSS has directly benefitted from research funding provided by the Deutsche Forschungsgemeinschaft (DFG, German Research Foundation), grant number 441063377.
2.16 KB
Binary file not shown.

documentation/chapters/emissions.tex

Lines changed: 31 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -8,19 +8,19 @@ \chapter{Acoustic emissions}
88
\begin{tabular}{p{0.1\textwidth} p{0.32\textwidth} p{0.5\textwidth}}
99
\textbf{Section} &\textbf{Command} & \textbf{Description}
1010
\vspace{1mm} \\ \hline
11-
{\tt BUBBLE} & {\tt Emissions IC <float>} & Computes the acoustic emissions under the common incompressible assumption.\\
12-
& {\tt Emissions FTIC <float>} & Computes the acoustic emissions under the assumption of an incompressible fluid but propagating the emissions with the speed of sound.\\
13-
& {\tt Emissions QA <float>} & Computes the acoustic emissions using the quasi-acoustic model of \citet{Gilmore1952}.\\
14-
& {\tt Emissions EV <float>} & Computes the acoustic emissions based on the Kirkwood-Bethe hypothesis, with the explicit expression for velocity.\\
15-
& {\tt Emissions SIV <float>} & Computes the acoustic emissions using the model of \citet{Gilmore1952} based on the Kirkwood-Bethe hypothesis, with the spatially-integrated velocity.\\
16-
& {\tt Emissions TIV <float>} & Computes the acoustic emissions using the model of \citet{Hickling1963} based on the Kirkwood-Bethe hypothesis, with the temporally-integrated velocity.\\
11+
{\tt BUBBLE} & {\tt Emissions IC <float>} & Computes the acoustic emissions using the standard incompressible model, Section \ref{sec:emissionsic}.\\
12+
& {\tt Emissions FSIC <float>} & Computes the acoustic emissions using the finite-speed incompressible model, Section \ref{sec:emissionsfsic}.\\
13+
& {\tt Emissions QA <float>} & Computes the acoustic emissions using the quasi-acoustic model, Section \ref{sec:emissionsqa}.\\
14+
& {\tt Emissions EV <float>} & Computes the acoustic emissions based on the Kirkwood-Bethe hypothesis, Section \ref{sec:emissionskb}, with the explicit expression for velocity, see Eq.~\eqref{eq:u_rt}.\\
15+
& {\tt Emissions SIV <float>} & Computes the acoustic emissions using the model of \citet{Gilmore1952} based on the Kirkwood-Bethe hypothesis, Section \ref{sec:emissionskb}, with the spatially-integrated velocity, see Eq.~\eqref{eq:dudr_rt}.\\
16+
& {\tt Emissions TIV <float>} & Computes the acoustic emissions using the model of \citet{Hickling1963} based on the Kirkwood-Bethe hypothesis, Section \ref{sec:emissionskb}, with the temporally-integrated velocity, see Eq.~\eqref{eq:dudt_rt}.\\
1717
& {\tt EmissionIntegration Euler} & Integrates the radial position and, if applicable, the velocity using an Euler scheme.\\
1818
& {\tt EmissionIntegration RK4} & Integrates the radial position and, if applicable, the velocity using a conventional fourth-order Runge-Kutta scheme. This is the default.\\
1919
& {\tt KBIterTolerance <float>} & Tolerance $\eta$ for the evaluation of the pressure using a model based on the Kirkwood-Bethe hypothesis in conjunction with the NASG EoS.\\
2020
\hline
2121
\end{tabular} \vspace{0.2em}
2222

23-
The floating-point value associated with the emissions defines the cut-off distance beyond which the emissions are not computed. For the incompressible assumption this value has no meaning, but a value is required as a dummy to facilitate the correct reading of the options.
23+
The floating-point value given as the final argument of the {\tt Emissions} command defines the cut-off distance beyond which the emissions are not computed. For the standard incompressible assumption this value has no meaning, but a value is required as a dummy to facilitate the correct reading of the options.
2424

2525
\section{Lagrangian wave tracking}
2626

@@ -39,7 +39,8 @@ \section{Lagrangian wave tracking}
3939
\end{center}
4040
\end{figure}
4141

42-
\section{Incompressible assumption}
42+
\section{Standard incompressible model}
43+
\label{sec:emissionsic}
4344

4445
Assuming an incompressible liquid ($c_{\ell,\mathrm{ref}} \rightarrow \infty$) with density $\rho_{\ell,\mathrm{ref}}$, the velocity $u(r,t)$ and pressure $p(r,t)$ at a given radial position $r(t)$ are defined as \citep{Neppiras1980}
4546
\begin{equation}
@@ -51,13 +52,6 @@ \section{Incompressible assumption}
5152
\end{equation}
5253
respectively. The assumption of an incompressible fluid is consistent with the Rayleigh-Plesset models in Eqs.~\eqref{eq:standardRP} and \eqref{eq:modRP}. Note that, because $\mathcal{C} \rightarrow \infty$, these simple incompressible acoustic emissions do not use the Lagrangian wave tracking and no emission nodes are defined and processed, since pressure and velocity are defined instantaneously for all $r$.
5354

54-
Alternatively, APECSS also supports the assumption that the liquid is incompressible but the information associated with the acoustic emissions still propagates with finite speed $\mathcal{C} = c_{\ell,\mathrm{ref}}$ using the Lagrangian wave tracking approach.
55-
The radial location is then given as
56-
\begin{equation}
57-
r(t) \approx R(\tau) + c_{\ell,\mathrm{ref}} \sum_{i=1}^N \Delta t_{i-1}. \label{eq:r_t_fti}
58-
\end{equation}
59-
This approach, referred to in APECSS as {\tt FTI} or \text{finite-time incompressible}, accurately recovers the time delay between emitting information at the bubble wall and this information arriving in a certain location.
60-
6155
\section{Quasi-acoustic model}
6256
\label{sec:emissionsqa}
6357

@@ -70,12 +64,23 @@ \section{Quasi-acoustic model}
7064
where $f(\tau)$ and $g(\tau)$ are invariants defined based on the result of the employed RP model as
7165
\begin{align}
7266
f(\tau) &= R(\tau)^2 \dot{R}(\tau) - \frac{R(\tau) g(\tau)}{c_{\ell,\mathrm{ref}}}\\
73-
g(\tau) &= R(\tau) \left[\frac{p_\mathrm{L}(\tau)-p_\infty(t)}{\rho_{\ell,\mathrm{ref}}} + \frac{\dot{R}(\tau)^2}{2} \right],
67+
g(\tau) &= R(\tau) \left[\frac{p_\mathrm{L}(\tau)-p_\infty(\tau)}{\rho_{\ell,\mathrm{ref}}} + \frac{\dot{R}(\tau)^2}{2} \right], \label{eq:g_qa}
7468
\end{align}
7569
and $\tau$ is the time at which the acoustic information is emitted at the bubble wall. For $t=\tau$ with $r(t)=R(\tau)$, Eq.~(\ref{eq:u_rt_qa}) reduces to $u(R,\tau)=\dot{R}(\tau)$ and Eq.~(\ref{eq:p_rt_qa}) reduces to $p(R,\tau)=p_\mathrm{L}(\tau)$, thus satisfying the boundary conditions at the bubble wall.
7670

7771
The quasi-acoustic model is consistent in its modelling assumptions with the Keller-Miksis model, Eq.~\eqref{eq:keller}. The applicability of the quasi-acoustic model is limited to small Mach numbers, $(\dot{R}/c_0)^2 \ll 1$, as it incorporates a finite propagation speed of the acoustic emissions and the nonlinear pressure contributions resulting from the flow, but since all parts of the wave propagate with speed $c_0$, the quasi-acoustic model can neither describe the nonlinear distortion of acoustic waves nor the formation of shock fronts.
7872

73+
\section{Finite-speed incompressible model}
74+
\label{sec:emissionsfsic}
75+
76+
APECSS also supports the assumption that the liquid is incompressible but the information associated with the acoustic emissions still propagates with finite speed $\mathcal{C} = c_{\ell,\mathrm{ref}}$ using the Lagrangian wave tracking approach, with the radial location given by Eq.~\eqref{eq:r_t_qa}.
77+
By assuming the specific acoustic impedance of an incompressible liquid, $\rho_{\ell,\mathrm{ref}} c_{\ell,\mathrm{ref}} \rightarrow \infty$, the velocity reduces to
78+
\begin{align}
79+
u(r,t) = \frac{R(\tau)^2 \dot{R}(\tau)}{r(t)^2}, \label{eq:u_rt_fsic}
80+
\end{align}
81+
while $p(r,t)$ and $g(\tau)$ are given by Eq.~\eqref{eq:p_rt_qa} and Eq.~\eqref{eq:g_qa}, respectively.
82+
This approach, referred to in APECSS as {\tt FSIC} or \text{finite-speed incompressible model}, recovers the time delay between emitting information at the bubble wall and this information arriving in a certain location, but treats the flow field as incompressible.
83+
7984
\section{Emissions based on the Kirkwood-Bethe hypothesis}
8085
\label{sec:emissionskb}
8186

@@ -89,9 +94,14 @@ \section{Emissions based on the Kirkwood-Bethe hypothesis}
8994

9095
Following a similar derivation as for the quasi-acoustic model discussed in Section \ref{sec:emissionsqa}, but assuming a fully-compressible liquid described by a suitable equation of state, the {\it explicit velocity (EV)} is given as
9196
\begin{equation}
92-
u(r,t) = \frac{f(\tau)}{r(t)^2} + \frac{g(\tau)}{r(t) \, [c(r,t) + u(r,t)]} . \label{eq:u_rt}
97+
u(r,t) = \frac{f(\tau)}{r(t)^2} + \frac{g(\tau)}{r(t) \, [c(r,t) + u(r,t)]} , \label{eq:u_rt}
98+
\end{equation}
99+
with
100+
\begin{equation}
101+
f(\tau) = R(\tau)^2 \dot{R}(\tau) - \frac{R(\tau) \, g(\tau)}{c_\mathrm{L}(\tau) + \dot{R}(\tau)} . \label{eq:f_R}
93102
\end{equation}
94103
For $t=\tau$ with $r(t)=R(\tau)$, this expression reduces to $u(R,\tau)=\dot{R}(\tau)$, thus satisfying the boundary conditions at the bubble wall.
104+
95105
\citet{Gilmore1952} proposed instead to solve for the spatial derivative of the velocity along the outgoing characteristic, in APECSS referred to as {\it spatially-integrated velocity (SIV)}, defined as
96106
\begin{equation}
97107
\frac{\mathrm{d}u(r,t)}{\mathrm{d}r} = - \frac{2 u(r,t)}{r(t)} \left[1+\frac{u(r,t)^2}{c(r,t)^2-u(r,t)^2} \right] + \frac{g(\tau)}{r(t)^2 [c(r,t)-u(r,t)]} \label{eq:dudr_rt}.
@@ -102,13 +112,12 @@ \section{Emissions based on the Kirkwood-Bethe hypothesis}
102112
\end{equation}
103113
If either Eq.~\eqref{eq:dudr_rt} or Eq.~\eqref{eq:dudt_rt} is chosen to determine the velocity, this differential equation for the velocity is integrated together with the equation for ${\mathrm{d}r(t)/\mathrm{d}t}$, Eq.~\eqref{eq:drdt}, using the initial condition $u(R,\tau) = \dot{R}(\tau)$. Note that with $\mathrm{d}r(t)/\mathrm{t}$ defined by Eq.~\eqref{eq:drdt} and $g(\tau)$ given by Eq.~\eqref{eq:g_R}, Eqs.~\eqref{eq:dudr_rt} and \eqref{eq:dudt_rt} are interchangeable by the relation ${\mathrm{d}u/\mathrm{d}t} = ({\mathrm{d}u/\mathrm{d}r}) \, ({\mathrm{d}r/\mathrm{d}t})$.
104114

105-
Regardless of the choice of velocity model, $f(\tau)$ and $g(\tau)$ are defined as
115+
Regardless of the choice of velocity model, the invariant $g(\tau)$ is defined as
106116
\begin{align}
107-
f(\tau) &= R(\tau)^2 \dot{R}(\tau) - \frac{R(\tau) \, g(\tau)}{c_\mathrm{L}(\tau) + \dot{R}(\tau)} \label{eq:f_R} \\
108-
g(\tau) &= R(\tau) \left[h_\mathrm{L}(\tau) - h_\infty(\tau) + \frac{\dot{R}(\tau)^2}{2} \right]
109-
\label{eq:g_R} ,
117+
g(\tau) = R(\tau) \left[h_\mathrm{L}(\tau) - h_\infty(\tau) + \frac{\dot{R}(\tau)^2}{2} \right]
118+
\label{eq:g_R} .
110119
\end{align}
111-
For a given radial position $r(t)$ and flow velocity $u(r,t)$, irrespective of which model is used to compute the velocity, the enthalpy is then readily evaluated as
120+
For a given radial position $r(t)$ and flow velocity $u(r,t)$, irrespective of which model is used to compute the velocity, the enthalpy is readily evaluated as
112121
\begin{equation}
113122
h(r,t) = h_\infty(t) + \frac{g(\tau)}{r(t)} - \frac{u(r,t)^2}{2}, \label{eq:h_rt}
114123
\end{equation}

0 commit comments

Comments
 (0)