|
MFC
Exascale flow solver
|
Auto-generated from PHYSICS_DOCS in case_validator.py and AST-extracted validation rules. Do not edit by hand.
This document catalogs the physics constraints enforced by MFC's case parameter validator. Constraints are organized by physical category with mathematical justifications.
For parameter syntax and allowed values, see Case Files and the Case Parameters reference. For feature compatibility and working examples, see Case Creator Guide.
\[\Gamma > 0, \quad \Pi_\infty \geq 0, \quad c_v \geq 0\]
The equation-of-state parameters must satisfy basic positivity requirements for thermodynamic stability.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
fluid_pp(i)%gamma must be positivefluid_pp(i)%pi_inf must be non-negativefluid_pp(i)%cv must be positivefluid_pp(i)%gammafluid_pp(i)%pi_infReferences: Wilfong et al. [54]
\[\Gamma = \frac{1}{\gamma - 1}\]
MFC uses the transformed stiffened gas parameter. A common mistake is entering the physical gamma (e.g., 1.4 for air) instead of the transformed value 1/(gamma-1) = 2.5.
Stage: common, pre_process, simulation, post_process | Severity: warning
Enforced checks:
fluid_pp(i)%gamma implies physical gamma (unusually high). MFC uses the transformed parameter Gamma = 1/(gamma-1)fluid_pp(i)%gamma implies physical gamma (very close to 1). Did you enter the physical gamma instead of 1/(gamma-1)?References: Wilfong et al. [54], Allaire et al. [1]
\[p > 0, \quad \alpha_i \rho_i \geq 0, \quad 0 \leq \alpha_i \leq 1\]
All initial patch pressures must be strictly positive. Partial densities must be non-negative. Volume fractions must be in [0,1].
Stage: pre_process | Severity: error
Enforced checks:
patch_icpp(i)%pres must be positivepatch_icpp(i)%alpha(j) must be non-negativepatch_icpp(i)%alpha(j) must be <= 1patch_icpp(i)%alpha_rho(j) must be non-negativepatch_icpp(i)%length_x must be positivepatch_icpp(i)%length_y must be positivepatch_icpp(i)%length_z must be positivepatch_icpp(i)%radius must be positivepatch_icpp(i)%r0 must be positive\[\sum_{i=1}^{N_f} \alpha_i = 1\]
For multi-component models, volume fractions must satisfy the mixture constraint.
Stage: pre_process | Severity: warning
Enforced checks:
Exceptions (constraint does not apply):
\[\alpha_j = 0 \Rightarrow \alpha_j \rho_j = 0, \quad \alpha_j > 0 \Rightarrow \alpha_j \rho_j > 0\]
Warns about physically inconsistent combinations: density assigned to an absent phase, or a present phase with zero density.
Stage: pre_process | Severity: warning
Enforced checks:
\[x_{\mathrm{end}} > x_{\mathrm{beg}}, \quad y_{\mathrm{end}} > y_{\mathrm{beg}}, \quad z_{\mathrm{end}} > z_{\mathrm{beg}}\]
Each active spatial dimension must have positive extent.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
x_domain%end (x_end) must be greater than x_domain%beg (x_beg)y_domain%end (y_end) must be greater than y_domain%beg (y_beg)z_domain%end (z_end) must be greater than z_domain%beg (z_beg)\[m > 0, \quad n \geq 0, \quad p \geq 0\]
The x-direction must have cells. Cannot have z without y. Cylindrical coordinates require odd p.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
For patches with centroid + length geometry, the bounding box must not be entirely outside the computational domain. Skipped when grid stretching is active.
Stage: pre_process | Severity: error
Enforced checks:
\[n = 0 \Rightarrow v_2 = 0, \quad p = 0 \Rightarrow v_3 = 0\]
Setting velocity components in dimensions that do not exist is almost certainly a mistake.
Stage: pre_process | Severity: error
Enforced checks:
patch_icpp(i)%vel(2) is nonzero but n = 0 (1D simulation)patch_icpp(i)%vel(3) is nonzero but p = 0 (1D/2D simulation)Exceptions (constraint does not apply):
Model 1: gamma-law single-fluid. Model 2: five-equation (Allaire). Model 3: six-equation (Saurel). Model 4: four-equation (single-component with bubbles).
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
References: Wilfong et al. [54], Allaire et al. [1], Saurel et al. [41]
Periodicity must match on both ends. Valid BC values range from -1 to -17. Cylindrical coordinates have specific BC requirements at the axis.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
bc_dir%beg and bc_dir%end must be both periodic (= -1) or both non-periodicbc_y%beg must be -2 (BC_REFLECTIVE) for 2D cylindrical coordinates (p = 0)bc_y%beg must be -14 (BC_AXIS) for 3D cylindrical coordinates (p > 0)bc_y%end must be between -1 and -17bc_y%end must not be -14 (BC_AXIS)bc_z%beg must be -1 (periodic) or -2 (reflective) for 3D cylindrical coordinatesbc_z%end must be -1 (periodic) or -2 (reflective) for 3D cylindrical coordinatesRequires nb >= 1, positive reference quantities. Polydisperse requires odd nb > 1 and poly_sigma > 0. QBMM requires nnode = 4.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
bub_pp%R0ref (reference bubble radius) must be positivebub_pp%p0ref (reference pressure) must be positivebub_pp%rho0ref (reference density) must be positivebub_pp%T0ref (reference temperature) must be positivebub_pp%mu_l (liquid viscosity) must be non-negativebub_pp%mu_g (gas viscosity) must be non-negativebub_pp%mu_v (vapor viscosity) must be non-negativebub_pp%ss (surface tension) must be non-negativeReferences: Bryngelson et al. [8]
Requires HLLC Riemann solver and arithmetic average. Five-equation model does not support Gilmore bubble_model.
Stage: simulation | Severity: error
Enforced checks:
2D/3D only. Requires polytropic = F and thermal = 3. Not compatible with model_eqns = 3.
Stage: simulation | Severity: error
Enforced checks:
Requires model_eqns = 2, num_fluids = 1, HLL or HLLD Riemann solver. No relativity with HLLD.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
Requires model_eqns 2 or 3, num_fluids = 2.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
Requires model_eqns = 2, HLL Riemann solver.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
Model 2: relax_model 5 or 6. Model 3: relax_model 1, 4, 5, or 6.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
Requires model_eqns = 2, num_fluids 2 or 3, HLLC solver. Incompatible with bubbles.
Stage: simulation | Severity: error
Enforced checks:
Requires model_eqns = 2. Incompatible with characteristic BCs, bubbles, MHD, and elastic models.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
weno_order must be 1, 3, 5, or 7. Grid must have enough cells. Only one of mapped_weno, wenoz, teno can be active.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
muscl_order must be 1 or 2. Second order requires muscl_lim in {1,2,3,4,5}.
Stage: common, pre_process, simulation, post_process | Severity: error
Enforced checks:
time_stepper in {1,2,3}. Fixed dt must be positive. CFL-based modes require cfl_target in (0,1].
Stage: simulation, post_process | Severity: error
Enforced checks:
\[\mathrm{Re}_1 > 0, \quad \mathrm{Re}_2 > 0\]
Reynolds numbers must be positive. Not supported with model_eqns = 1.
Stage: simulation | Severity: error
Enforced checks:
fluid_pp(i)%Re(j) must be positivefluid_pp(i)%Re(j)fluid_pp(i)%Re(j)fluid_pp(i)%Re(1) is not specifiedDimension-specific support types. Pulse type in {1,2,3,4}. Non-planar sources require foc_length and aperture.
Stage: simulation | Severity: error
Enforced checks:
acoustic(j)%support must be specified for acoustic_sourceacoustic(j)%support = 1 is allowed for 1D simulationsacoustic(j)%loc(1) must be specified for support = 1acoustic(j)%support = 2, 6, or 10 is allowed for 2D axisymmetricacoustic(j)%support = 2, 5, 6, 9, or 10 is allowed for 2Dacoustic(j)%loc(1:2) must be specified for the given supportacoustic(j)%support = 3, 7, or 11 is allowed for 3Dacoustic(j)%loc(1:2) must be specified for support = 3acoustic(j)%loc(1:3) must be specified for the given supportacoustic(j)%mag must be specifiedacoustic(j)%pulse must be specifiedacoustic(j)%pulse = 1, 2, 3, or 4 is allowedacoustic(j)%frequency or wavelength must be specified for the given pulseacoustic(j)%frequency must be positiveacoustic(j)%wavelength must be positiveacoustic(j)%gauss_sigma_time or gauss_sigma_dist must be specified for pulse = 2acoustic(j)%delay must be specified for pulse = 2 (Gaussian)acoustic(j)%gauss_sigma_time must be positiveacoustic(j)%gauss_sigma_dist must be positiveacoustic(j)%bb_num_freq must be specified for pulse = 4acoustic(j)%bb_bandwidth must be specified for pulse = 4acoustic(j)%bb_lowest_freq must be specified for pulse = 4acoustic(j)%npulse must be specifiedacoustic(j)%npulse must be an integer for support >= 5 (non-planar)acoustic(j)%dipole is not supported for npulse >= 5acoustic(j)%dir must be specified for support < 5 (planar)acoustic(j)%dir must be non-zero for support = 1acoustic(j)%support >= 5 is not allowed for pulse = 3 (square wave)acoustic(j)%length must be specified for the given supportacoustic(j)%length must be positive for the given supportacoustic(j)%height must be specified for support = 3acoustic(j)%height must be positive for support = 3acoustic(j)%foc_length must be specified for support >= 5 (non-planar)acoustic(j)%foc_length must be positive for support >= 5acoustic(j)%aperture must be specified for support >= 5 (non-planar)acoustic(j)%aperture must be positive for support >= 5acoustic(j)%num_elements must be specified for the given support (transducer array)acoustic(j)%num_elements must be positive for the given supportacoustic(j)%element_on must be non-negative for the given supportacoustic(j)%element_on must be <= num_elements for the given supportacoustic(j)%element_spacing_angle must be specified for the given support (2D transducer)acoustic(j)%element_spacing_angle must be non-negative for the given supportacoustic(j)%element_polygon_ratio must be specified for support = 11 (3D transducer)acoustic(j)%element_polygon_ratio must be positive for support = 11omega_wrt requires at least 2D (n > 0). 3D components require p > 0. Requires fd_order.
Stage: post_process | Severity: error
Enforced checks:
Requires 3D with all periodic boundaries. Global dimensions must be even. Incompatible with cylindrical coordinates.
Stage: post_process | Severity: error
Enforced checks: