You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Remove the isobaric (mode 0), Kuhl & Khasainov (mode 1), and p-T
equilibrium (mode 2) JWL mixture closures. Only the Rocflu
state-interpolated closure (mode 3, Garno/Stanley formulation after
RFLU_ModJWL.F90) is retained. This is the only mode needed by the
macroscale team for the hemispherical blast problem.
Key changes:
- m_jwl.fpp: rewritten to ~300 lines (from ~1330); formulas now match
RFLU_ModJWL.F90 reference exactly: p = An*C1 + Bn*C2 + omega*rho*e,
T from cv-based inversion, 7-term analytic c2. C1-smooth cubic
Hermite Y-blend over [0.95,1.0] replaces hard cutoff at Y=0.99.
- m_checker_common.fpp: jwl_mix_type must be 3; single-fluid JWL
cases (Y=1 always) are permitted without a second air fluid.
- m_variables_conversion.fpp: simplified to single s_jwl_mix_sound_speed
dispatch call.
- toolchain: jwl_mix_type choices restricted to [3]; description updated;
test case reduced to single Rocflu regression; golden files regenerated.
- examples: added jwl_mix_type=3 and fluid_pp%cv where required.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: README-JWL-EOS.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -19,14 +19,14 @@ The cold-curve pressure is evaluated through a shared helper so pressure recover
19
19
The `jwl_mix_type` selector is available only for five-equation JWL/ideal-gas mixtures with one JWL products fluid and one non-JWL ideal-gas fluid.
20
20
21
21
-`0`, `isobaric`: closed-form mechanical-equilibrium closure. This is the default validation path.
22
-
-`1`, `kuhl`: Kuhl/Khasainov temperature-form additive closure. It requires positive `cv` on both products and air.
23
-
-`2`, `ptequil`: pressure-temperature equilibrium closure. It solves a bounded scalar root for the products volume fraction and is substantially more expensive than mode `0`.
24
-
-`3`, `rocflu`: Garno/Rocflu-style single-fluid blend. Its sound speed is evaluated by the Rocflu-specific Gruneisen form rather than by phasic volume fractions.
22
+
-`1`, `kuhl`: the supplied Kuhl/Khasainov piece-wise caloric model and additive pressure `p_air + p_products`.
23
+
-`2`, `ptequil`: the supplied `model_exact.f90`pressure-temperature equilibrium model. MFC eliminates the four unknowns in the reference matrix to a bracketed products-volume-fraction solve while retaining the same pressure, temperature, volume, and energy equations. Air uses the Kuhl caloric table shifted by `jwl_air_e0`; products require positive `cv`.
24
+
-`3`, `rocflu`: the Rocflu single-fluid closure from `modflu/RFLU_ModJWL.F90`. It interpolates the JWL coefficients with specific internal energy and the Gruneisen coefficient and heat capacity with mixture density, with ideal-air and pure-products endpoint branches.
25
25
26
26
Finite pressure, temperature, energy, and sound-speed floors are applied only after explicit finite checks. NaNs are intentionally preserved so bad states are visible during debugging instead of being converted into plausible-looking floor values.
27
27
28
28
## Validation Scope
29
29
30
-
The exact-reference validation in this branch is scoped to five-equation JWL cases: a 1D pure-JWL shock tube and a compact 3D quasi-1D repeat of the same published Shyue-style Riemann reference. Closure selectability is covered by registered golden tests for `jwl_mix_type = 0, 1, 2, 3`.
30
+
Closure selectability is covered by registered golden tests for `jwl_mix_type = 0, 1, 2, 3`. The mode-3 regression includes a homogeneous 50/50 products-air slab so the Rocflu density and energy interpolation is exercised in addition to its endpoint branches.
31
31
32
-
The p-T equilibrium mode remains selectable and physically distinct. Its root-find cost is measured by `benchmarks/jwl_closure_modes`; it is not optimized away by the case-optimization gates.
32
+
Mode `3` follows Rocflu's pressure, temperature, and sound-speed formulas, but replaces its case-specific hard-coded air values and explosive energy divisor with the corresponding MFC material inputs. Its inverse energy selects the exact low-, blended-, or high-energy branch of that pressure law; this removes the legacy fallback's pressure/energy round-trip mismatch.
Copy file name to clipboardExpand all lines: docs/documentation/case.md
+2-2Lines changed: 2 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -443,7 +443,7 @@ Details of implementation of viscosity in MFC can be found in \cite Coralic15.
443
443
444
444
-`fluid_pp(i)%%G` is required for `hypoelasticity`.
445
445
446
-
-`fluid_pp(i)%%eos` selects the equation of state for the $i$-th fluid: [1] stiffened gas (default); [2] Jones-Wilkins-Lee (JWL) for detonation products, supported with `model_eqns = 2` and at most one JWL fluid. A JWL fluid requires `jwl_A`, `jwl_B`, `jwl_R1`, `jwl_R2`, `jwl_omega`, `jwl_rho0`, and `jwl_E0` (the standard JWL coefficients), and `jwl_air_e0`, `jwl_air_rho0`, `jwl_air_gamma` describing the co-existing ideal gas; `jwl_air_gamma` is the stored form \f$\gamma_{\mathrm{air}}-1\f$. The closure used to mix products with the surrounding gas is set globally by `jwl_mix_type`; modes 1 (Kuhl) and 2 (p-T equilibrium) additionally require a positive `cv` on both fluids.
446
+
-`fluid_pp(i)%%eos` selects the equation of state for the $i$-th fluid: [1] stiffened gas (default); [2] Jones-Wilkins-Lee (JWL) for detonation products, supported with `model_eqns = 2` and at most one JWL fluid. A JWL fluid requires `jwl_A`, `jwl_B`, `jwl_R1`, `jwl_R2`, `jwl_omega`, `jwl_rho0`, and `jwl_E0` (the standard JWL coefficients), and `jwl_air_e0`, `jwl_air_rho0`, `jwl_air_gamma` describing the co-existing ideal gas; `jwl_air_gamma` is the stored form \f$\gamma_{\mathrm{air}}-1\f$. The closure used to mix products with the surrounding gas is set globally by `jwl_mix_type`; mode 2 requires positive products `cv`, while mode 3 requires positive products and air `cv`.
447
447
448
448
> **Stored-form parameters:** The values `gamma`, `pi_inf`, and `Re(1)`/`Re(2)` are **not** the raw physical quantities. MFC expects transformed stored forms:
449
449
> -`gamma` = \f$1/(\gamma-1)\f$, not \f$\gamma\f$ itself
@@ -463,7 +463,7 @@ See @ref equations "Equations" for the mathematical models these parameters cont
463
463
|`bc_[x,y,z]%%vb[1,2,3]`‡ | Real | Velocity in the (x,1), (y, 2), (z,3) direction applied to `bc_[x,y,z]%%beg`|
464
464
|`bc_[x,y,z]%%ve[1,2,3]`‡ | Real | Velocity in the (x,1), (y, 2), (z,3) direction applied to `bc_[x,y,z]%%end`|
0 commit comments