Skip to content

Commit 06f4418

Browse files
dgvacareveloDiego VacaDiego VacawilfonbaDiego Vaca
authored
Lagrangian subgrid bubble model (#749)
Co-authored-by: Diego Vaca <[email protected]> Co-authored-by: Diego Vaca <[email protected]> Co-authored-by: wilfonba <[email protected]> Co-authored-by: Ben Wilfong <[email protected]> Co-authored-by: Diego Vaca <[email protected]> Co-authored-by: Spencer Bryngelson <[email protected]> Co-authored-by: Spencer Bryngelson <[email protected]>
1 parent b4d2b58 commit 06f4418

File tree

262 files changed

+7396
-19848
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

262 files changed

+7396
-19848
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ examples/*/workloads/
5656
examples/*/run-*/
5757
examples/*/logs/
5858
examples/**/*.f90
59+
!examples/3D_lag_bubbles_shbubcollapse/input/lag_bubbles.dat
60+
!examples/3D_lag_bubbles_bubblescreen/input/lag_bubbles.dat
5961
workloads/
6062

6163
benchmarks/*batch/*/

benchmarks/viscous_weno5_sgb_acoustic/case.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
# - viscosity enabled
66
# - weno_Re_flux : T
77
# - weno_order : 5
8-
# - bubbles : T
8+
# - bubbles_euler : T
99
# - bubble_model : 3
1010
# - acoustic_source : T
1111

@@ -216,7 +216,7 @@
216216
# ==========================================================
217217

218218
# Bubbles ==================================================
219-
'bubbles' : 'T',
219+
'bubbles_euler' : 'T',
220220
'bubble_model' : 3,
221221
'polytropic' : 'T',
222222
'polydisperse' : 'F',

docs/documentation/case.md

Lines changed: 87 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -630,56 +630,73 @@ Details of the transducer acoustic source model can be found in [Maeda and Colon
630630

631631
- `%%bb_lowest_freq` specifies the lower frequency bound of the broadband acoustic wave. The upper frequency bound will be calculated as `%%bb_lowest_freq + %%bb_num_freq * %%bb_bandwidth`. The wave is no longer broadband below the lower bound and above the upper bound.
632632

633-
### 9. Ensemble-Averaged Bubble Model
633+
### 9. Sub-grid Bubble Models
634+
635+
| Parameter | Type | Description |
636+
| ---: | :----: | :--- |
637+
| `bubbles_euler` | Logical | Ensemble-averaged bubble modeling |
638+
| `bubbles_lagrange`| Logical | Volume-averaged bubble modeling |
639+
| `bubble_model` | Integer | [1] Gilmore; [2] Keller--Miksis |
640+
| `mu_l0` * | Real | Liquid viscosity (only specify in liquid phase) |
641+
| `ss` * | Real | Surface tension (only specify in liquid phase) |
642+
| `pv` * | Real | Vapor pressure (only specify in liquid phase) |
643+
| `gamma_v`| Real | Specific heat ratio |
644+
| `M_v`| Real | Molecular weight |
645+
| `mu_v`| Real | Viscosity |
646+
| `k_v`| Real | Thermal conductivity |
647+
| `cp_v`| Real | Specific heat capacity |
648+
649+
These options work only for gas-liquid two-component flows.
650+
Component indexes are required to be 1 for liquid and 2 for gas.
651+
652+
- \* These parameters should be prepended with patch index $1$ that is filled with liquid: `fluid_pp(1)%`.
653+
- † These parameters should be prepended with patch indexes filled with liquid and gas: `fluid_pp(1)%` and `fluid_pp(2)%`.
654+
655+
This table lists the sub-grid bubble model parameters, which can be utilized in both the ensemble-averaged and volume-averaged bubble models.
656+
657+
- `bubbles_euler` activates the ensemble-averaged bubble model.
658+
659+
- `bubbles_lagrange` activates the volume-averaged bubble model.
660+
661+
- `bubble_model` specified a model for spherical bubble dynamics by an integer of 1 and 2.
662+
`bubble_model = 1`, `2`, and `3` correspond to the Gilmore, Keller-Miksis, and Rayleigh-Plesset models.
663+
664+
- `mu_l0`, `ss`, and `pv`, `gamma_v`, `M_v`, `mu_v`, `k_v`, and `cp_v` specify simulation parameters for the non-polytropic gas compression model.
665+
`mu_l0`, `ss`, and `pv` correspond to the liquid viscosity, surface tension, and vapor pressure, respectively.
666+
`gamma_v`, `M_v`, `mu_v`, `k_v`, and `cp_v` specify the specific heat ratio, molecular weight, viscosity, thermal conductivity and specific heat capacity of a chosen component (`cp_v` only for ``bubbles_lagrange = 'T'``).
667+
Implementation of the parameters into the model follow [Ando (2010)](references.md#Ando10).
668+
669+
#### 9.1 Ensemble-Averaged Bubble Model
634670

635671
| Parameter | Type | Description |
636672
| ---: | :----: | :--- |
637-
| `bubbles` | Logical | Ensemble-averaged bubble modeling |
638-
| `bubble_model` | Integer | [1] Gilmore; [2] Keller--Miksis |
639-
| `polytropic` | Logical | Polytropic gas compression |
640-
| `thermal` | Integer | Thermal model: [1] Adiabatic; [2] Isothermal; [3] Transfer |
673+
| `bubbles_euler`| Logical | Ensemble-averaged bubble modeling |
674+
| `polytropic` | Logical | Polytropic gas compression |
675+
| `thermal` | Integer | Thermal model: [1] Adiabatic; [2] Isothermal; [3] Transfer |
641676
| `R0ref` | Real | Reference bubble radius |
642-
| `polydisperse` | Logical | Polydispersity in equilibrium bubble radius R0|
677+
| `polydisperse` | Logical | Polydispersity in equilibrium bubble radius R0 |
643678
| `nb` | Integer | Number of bins: [1] Monodisperse; [$>1$] Polydisperse |
644679
| `poly_sigma` | Real | Standard deviation for probability density function of polydisperse bubble populations |
645680
| `R0_type` | Integer | Quadrature rule for probability density function of polydisperse bubble populations |
646681
| `Ca` | Real | Cavitation number |
647682
| `Web` | Real | Weber number |
648683
| `Re_inv` | Real | Inverse Reynolds number |
649-
| `mu_l0` * | Real | Liquid viscosity (only specify in liquid phase) |
650-
| `ss` * | Real | Surface tension (only specify in liquid phase) |
651-
| `pv` * | Real | Vapor pressure (only specify in liquid phase) |
652-
| `gamma_v`| Real | Specific heat ratio |
653-
| `M_v`| Real | Molecular weight |
654-
| `mu_v`| Real | Viscosity |
655-
| `k_v`| Real | Thermal conductivity |
656-
| `qbmm` | Logical | Quadrature by method of moments|
657-
| `dist_type` | Integer | Joint probability density function for bubble radius and velocity (only for ``qbmm = 'T'``)|
658-
| `sigR` | Real | Standard deviation for the probability density function of bubble radius (only for ``qbmm = 'T'``) |
659-
| `sigV` | Real | Standard deviation for the probability density function of bubble velocity (only for ``qbmm = 'T'``) |
684+
| `qbmm` | Logical | Quadrature by method of moments |
685+
| `dist_type` | Integer | Joint probability density function for bubble radius and velocity (only for ``qbmm = 'T'``) |
686+
| `sigR` | Real | Standard deviation for the probability density function of bubble radius (only for ``qbmm = 'T'``) (EE)|
687+
| `sigV` | Real | Standard deviation for the probability density function of bubble velocity (only for ``qbmm = 'T'``) (EE)|
660688
| `rhoRV` | Real | Correlation coefficient for the joint probability density function of bubble radius and velocity (only for ``qbmm = 'T'``) |
661689

662-
These options work only for gas-liquid two-component flows.
663-
Component indexes are required to be 1 for liquid and 2 for gas.
664-
665-
- \* These parameters should be prepended with patch index $1$ that is filled with liquid: `fluid_pp(1)%`.
666-
- † These parameters should be prepended with patch indexes filled with liquid and gas: `fluid_pp(1)%` and `fluid_pp(2)%`.
667-
668690
This table lists the ensemble-averaged bubble model parameters.
669691

670-
- `bubbles` activates the ensemble-averaged bubble model.
671-
672-
- `bubble_model` specified a model for spherical bubble dynamics by an integer of 1 and 2.
673-
`bubble_model = 1`, `2`, and `3` correspond to the Gilmore, Keller-Miksis, and Rayleigh-Plesset models.
674-
675692
- `polytropic` activates polytropic gas compression in the bubble.
676693
When ``polytropic = 'F'``, the gas compression is modeled as non-polytropic due to heat and mass transfer across the bubble wall with constant heat and mass transfer coefficients based on ([Preston et al., 2007](references.md#Preston07)).
677694

678-
- `polydisperse` activates polydispersity in the bubble model through a probability density function (PDF) of the equilibrium bubble radius.
679-
680695
- `thermal` specifies a model for heat transfer across the bubble interface by an integer from 1 through 3.
681696
`thermal = 1`, `2`, and `3` correspond to no heat transfer (adiabatic gas compression), isothermal heat transfer, and heat transfer with a constant heat transfer coefficient based on [Preston et al., 2007](references.md#Preston07), respectively.
682697

698+
- `polydisperse` activates polydispersity in the bubble model through a probability density function (PDF) of the equilibrium bubble radius.
699+
683700
- `R0ref` specifies the reference bubble radius.
684701

685702
- `nb` specifies the number of discrete bins that define the probability density function (PDF) of the equilibrium bubble radius.
@@ -691,11 +708,6 @@ When ``polytropic = 'F'``, the gas compression is modeled as non-polytropic due
691708

692709
- `Ca`, `Web`, and `Re_inv` respectively specify the Cavitation number, Weber number, and the inverse Reynolds number that characterize the offset of the gas pressure from the vapor pressure, surface tension, and liquid viscosity when the polytropic gas compression model is used.
693710

694-
- `mu_l0`, `ss`, and `pv`, `gamma_v`, `M_v`, `mu_v`, and `k_v` specify simulation parameters for the non-polytropic gas compression model.
695-
`mu_l0`, `ss`, and `pv` correspond to the liquid viscosity, surface tension, and vapor pressure, respectively.
696-
`gamma_v`, `M_v`, `mu_v`, and `k_v` specify the specific heat ratio, molecular weight, viscosity, and thermal conductivity of a chosen component.
697-
Implementation of the parameters into the model follow [Ando (2010)](references.md#Ando10).
698-
699711
- `qbmm` activates quadrature by method of moments, which assumes a PDF for bubble radius and velocity.
700712

701713
- `dist_type` specifies the initial joint PDF of initial bubble radius and bubble velocity required in qbmm. `dist_type = 1` and `2` correspond to binormal and lognormal-normal distributions respectively.
@@ -706,6 +718,46 @@ Implementation of the parameters into the model follow [Ando (2010)](references.
706718

707719
- `rhoRV` specifies the correlation coefficient of the joint PDF of bubble radius and bubble velocity required in the QBMM feature.
708720

721+
#### 9.2 Volume-Averaged Bubble Model
722+
723+
| Parameter | Type | Description |
724+
| ---: | :---: | :--- |
725+
| `bubbles_lagrange` | Logical | Lagrangian subgrid bubble model switch |
726+
| `nBubs_glb` | Integer | Global number of bubbles |
727+
| `solver_approach` | Integer | 1: One-way coupling, 2: two-way coupling |
728+
| `cluster_type` | Integer | Method to find p_inf |
729+
| `pressure_corrector` | Logical | Cell pressure correction term |
730+
| `smooth_type` | Integer | Smoothing function. 1: Gaussian, 2:Delta 3x3 |
731+
| `heatTransfer_model` | Logical | Activates the interface heat transfer model |
732+
| `massTransfer_model` | Logical | Activates the interface mass transfer model |
733+
| `write_bubbles` | Logical | Write files to track the bubble evolution each time step |
734+
| `write_bubbles_stats` | Logical | Write the maximum and minimum radius of each bubble |
735+
| `epsilonb` | Real | Standard deviation scaling for the gaussian function |
736+
| `charwidth` | Real | Domain virtual depth (z direction, for 2D simulations) |
737+
| `valmaxvoid` | Real | Maximum void fraction permitted |
738+
| `c0` | Real | Reference speed |
739+
| `rho0` | Real | Reference density |
740+
| `T0` | Real | Reference temperature |
741+
| `x0` | Real | Reference length |
742+
| `Thost` | Real | Temperature of the surrounding liquid (host) |
743+
| `diffcoefvap` | Real | Vapor diffusivity in the gas |
744+
| `rkck_adap_dt` | Logical | Activates the adaptive rkck time stepping algorithm |
745+
| `rkck_tolerance` | Real | Admissible error truncation tolerance in the rkck stepper |
746+
747+
- `nBubs_glb` Total number of bubbles. Their initial conditions need to be specified in the ./input/lag_bubbles.dat file. See the example cases for additional information.
748+
749+
- `solver_approach` Specifies the Euler-Lagrange coupling method: [1] enables a one-way coupling approach, where the bubbles do not influence the Eulerian field. [2] activates the two-way coupling approach based on [Maeda and Colonius (2018)](references.md#Maeda18), where the effect of the bubbles is added in the Eulerian field as source terms.
750+
751+
- `cluster_type` Specifies method to find p_inf (pressure that drives the bubble dynamics): [1] activates the bilinear interpolation of the pressure field, while [2] enables the bubble dynamic closure based on [Maeda and Colonius (2018)](references.md#Maeda18), the full model is obtained when `pressure_corrector` is true.
752+
753+
- `smooth_type` Specifies the smoothening method of projecting the lagrangian bubbles in the Eulerian field: [1] activates the gaussian kernel function described in [Maeda and Colonius (2018)](references.md#Maeda18), while [2] activates the delta kernel function where the effect of the bubble is only seen in the specific bubble location cell.
754+
755+
- `heatTransfer_model` Activates the heat transfer model at the bubble's interface based on ([Preston et al., 2007](references.md#Preston07)).
756+
757+
- `massTransfer_model` Activates the mass transfer model at the bubble's interface based on ([Preston et al., 2007](references.md#Preston07)).
758+
759+
- `rkck_adap_dt` Activates the adaptive 4th/5th order Runge—Kutta–Cash–Karp (RKCK) time-stepping algorithm (requires `time_stepper ==4`). A maximum error between the 4th and 5th order Runge-Kutta-Cash-Karp solutions for the same time step size is calculated. If the error is smaller than a tolerance (`rkck_tolerance`), then the algorithm employs the 5th order solution, while if not, both eulerian/lagrangian variables are re-calculated with a smaller time step size.
760+
709761
### 10. Velocity Field Setup
710762

711763
| Parameter | Type | Description |

docs/documentation/references.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030

3131
- <a id="Maeda17">Maeda, K. and Colonius, T. (2017). A source term approach for generation of one-way acoustic waves in the euler and navier–stokes equations. Wave Motion, 75:36–49.</a>
3232

33+
- <a id="Maeda18">Maeda, K. and Colonius, T. (2018). Eulerian–lagrangian method for simulation of cloud cavitation. Journal of computational physics, 371:994–1017.</a>
34+
3335
- <a id="Meng16">Meng, J. C. C. (2016). Numerical simulations of droplet aerobreakup. PhD thesis, California Institute of Technology.</a>
3436

3537
- <a id="Pirozzoli13">Pirozzoli, S., and Colonius, T. (2013). Generalized characteristic relaxation boundary conditions for unsteady compressible flow simulations. Journal of Computational Physics, 248:109-126.</a>

examples/0D_bubblecollapse_adap/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@
119119
# ==========================================================
120120

121121
# Bubbles ==================================================
122-
'bubbles' : 'T',
122+
'bubbles_euler' : 'T',
123123
'bubble_model' : 2,
124124

125125
# Nondimensional numbers

examples/1D_bubblescreen/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -176,7 +176,7 @@
176176
# ==========================================================
177177

178178
# Bubbles ==================================================
179-
'bubbles' : 'T',
179+
'bubbles_euler' : 'T',
180180
'bubble_model' : 3,
181181
'polytropic' : 'T',
182182
'polydisperse' : 'F',

examples/1D_exp_bubscreen/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,7 @@
210210
# ==========================================================
211211

212212
# Bubbles ==================================================
213-
'bubbles' : 'T',
213+
'bubbles_euler' : 'T',
214214
# in user guide... 1 = gilbert 2 = keller-miksis
215215
# but gilbert won't work for the equations that you are using... (i think)
216216
'bubble_model' : 2,

examples/1D_poly_bubscreen/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@
184184
'rhoref' : rho0,
185185
# ==========================================================================
186186
# Bubbles ==================================================================
187-
'bubbles' : 'T',
187+
'bubbles_euler' : 'T',
188188
'bubble_model' : 2,
189189
'polytropic' : 'T',
190190
# 'polydisperse' : 'T',

examples/1D_qbmm/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -183,7 +183,7 @@
183183
# ==========================================================
184184

185185
# Bubbles ==================================================
186-
'bubbles' : 'T',
186+
'bubbles_euler' : 'T',
187187
'bubble_model' : 2,
188188
'polytropic' : 'F',
189189
'polydisperse' : 'T',

examples/2D_bubbly_steady_shock/case.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@
204204
# ==========================================================
205205

206206
# Bubbles ==================================================
207-
'bubbles' : 'T',
207+
'bubbles_euler' : 'T',
208208
'bubble_model' : 2,
209209
'polytropic' : 'T',
210210
'polydisperse' : 'F',

0 commit comments

Comments
 (0)