MFC
High-fidelity multiphase flow simulation
Loading...
Searching...
No Matches
Case Creator Guide

Quick reference for building MFC cases: working examples, compatibility rules, and configuration requirements.

Auto-generated from case_validator.py and examples/.

🧩 Case Design Playbook

Learn by example: The cases below are curated from MFC's examples/ directory and are validated, working configurations. Use them as blueprints for building your own simulations.

🟒 Beginner Examples

2D Shock-Bubble Interaction 🟒 Beginner · 2D_shockbubble

Two-fluid shock-interface benchmark. Classic validation case for compressible multiphase flows.

Tags: 2D Β· Multiphase Β· Shock

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 2
  • Dimensionality: 2D

Numerical Methods:

  • Reconstruction: WENO-5
  • Riemann solver: HLLC (riemann_solver = 2)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers

🟑 Intermediate Examples

1D Bubble Screen 🟑 Intermediate · 1D_bubblescreen

Euler-Euler ensemble-averaged bubble dynamics through shock wave.

Tags: 1D Β· Bubbles Β· Euler-Euler

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 1
  • Dimensionality: 1D
  • Active features: Euler-Euler bubbles, Acoustic sources

Numerical Methods:

  • Reconstruction: WENO-5
  • Riemann solver: HLLC (riemann_solver = 2)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers
  • Bubble Models

2D Lagrangian Bubble Screen 🟑 Intermediate · 2D_lagrange_bubblescreen

Individual bubble tracking with Euler-Lagrange method.

Tags: 2D Β· Bubbles Β· Euler-Lagrange

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 2
  • Dimensionality: 2D
  • Active features: Euler-Lagrange bubbles, Viscous, Acoustic sources

Numerical Methods:

  • Reconstruction: WENO-5
  • Riemann solver: HLLC (riemann_solver = 2)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers
  • Bubble Models
  • Viscosity

2D Orszag-Tang MHD Vortex 🟑 Intermediate · 2D_orszag_tang

Magnetohydrodynamics test problem with complex vortex structures.

Tags: 2D Β· MHD

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 1
  • Dimensionality: 2D
  • Active features: MHD

Numerical Methods:

  • Reconstruction: WENO-1
  • Riemann solver: HLL (riemann_solver = 1)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers
  • MHD

2D IBM Airfoil 🟑 Intermediate · 2D_ibm_airfoil

Immersed boundary method around a NACA airfoil geometry.

Tags: 2D Β· IBM Β· Geometry

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 2
  • Dimensionality: 2D
  • Active features: Immersed boundaries

Numerical Methods:

  • Reconstruction: WENO-5
  • Riemann solver: HLLC (riemann_solver = 2)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers
  • Immersed Boundaries

2D Viscous Shock Tube 🟑 Intermediate · 2D_viscous_shock_tube

Shock tube with viscous effects and heat transfer.

Tags: 2D Β· Viscous Β· Shock

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 2
  • Dimensionality: 2D
  • Active features: Viscous

Numerical Methods:

  • Reconstruction: WENO-3
  • Riemann solver: HLL (riemann_solver = 1)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers
  • Viscosity

πŸ”΄ Advanced Examples

2D Phase Change Bubble πŸ”΄ Advanced Β· 2D_phasechange_bubble

Phase change and cavitation modeling with 6-equation model.

Tags: 2D Β· Phase-change Β· Cavitation

Physics Configuration:

  • Model: 6-Equation (Phase Change) (model_eqns = 3)
  • Number of fluids: 3
  • Dimensionality: 2D
  • Coordinates: Cylindrical/Axisymmetric
  • Active features: Phase change

Numerical Methods:

  • Reconstruction: WENO-3
  • Riemann solver: HLLC (riemann_solver = 2)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 3)
  • Riemann Solvers

3D Taylor-Green Vortex πŸ”΄ Advanced Β· 3D_TaylorGreenVortex

Classic 3D turbulence benchmark with viscous dissipation.

Tags: 3D Β· Viscous Β· Turbulence

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 1
  • Dimensionality: 3D
  • Active features: Viscous

Numerical Methods:

  • Reconstruction: WENO-5
  • Riemann solver: HLLC (riemann_solver = 2)
  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)
  • Riemann Solvers
  • Viscosity

2D IGR Triple Point πŸ”΄ Advanced Β· 2D_IGR_triple_point

Triple point problem using Iterative Generalized Riemann solver.

Tags: 2D Β· IGR Β· Multiphase

Physics Configuration:

  • Model: 5-Equation (Multiphase) (model_eqns = 2)
  • Number of fluids: 2
  • Dimensionality: 2D
  • Active features: IGR solver

Numerical Methods:

  • Time stepping: RK3 (SSP)

Related Documentation:

  • Model Equations (model_eqns = 2)

πŸš€ Common Configuration Patterns

Start with these proven combinations:

πŸ’§ Multiphase Flow (Bubbles)

'model_eqns': 2, # 5-equation model
'num_fluids': 2, # Two-phase
'bubbles_euler': 'T', # Ensemble-averaged bubbles
'riemann_solver': 2, # HLLC
'avg_state': 2, # Arithmetic average
⚑ Magnetohydrodynamics (MHD)

'model_eqns': 2, # 5-equation model
'num_fluids': 1, # Single component
'mhd': 'T', # Enable MHD
'riemann_solver': 1, # HLL (or 4 for HLLD)
🌑️ Phase Change

'model_eqns': 3, # 6-equation model
'num_fluids': 2, # Two-phase
'relax': 'T', # Phase change
'riemann_solver': 2, # HLLC
πŸ’Ž Elastic Materials

'model_eqns': 2, # 5-equation model
'hypoelasticity': 'T', # Elastic solids
'riemann_solver': 1, # HLL

πŸ“Š Feature Compatibility

What works together:

Physics Models

Feature Requirements Notes
Magnetohydrodynamics (MHD) β€” βœ“ General use
Surface Tension Model Specific model βœ“ General use
Hypoelasticity β€” βœ“ General use
Hyperelasticity β€” βœ“ General use
Phase Change (Relaxation) β€” βœ“ General use
Viscosity β€” βœ“ General use
Acoustic Sources β€” βœ“ General use

Bubble Models

Feature Requirements Notes
Euler–Euler Bubble Model β€” βœ“ General use
Euler–Lagrange Bubble Model β€” βœ“ General use
Quadrature-Based Moment Method (QBMM) β€” βœ“ General use
Polydisperse Bubble Dynamics β€” βœ“ General use
adv_n β€” βœ“ General use

Numerics

Feature Requirements Notes
Riemann Solver Specific model βœ“ General use
WENO Order β€” βœ“ General use
MUSCL Order β€” βœ“ General use

Geometry

Feature Requirements Notes
Immersed Boundaries β€” βœ“ General use
Cylindrical Coordinates β€” βœ“ General use

πŸ”’ Model Equations

Choose your governing equations:

Model 1: Ο€-Ξ³ (Compressible Euler)

  • Use for: Single-fluid compressible flow
  • Value: model_eqns = 1
  • Note: Cannot use num_fluids, bubbles, or certain WENO variants
Model 2: 5-Equation (Most versatile)

  • Use for: Multiphase, bubbles, elastic materials, MHD
  • Value: model_eqns = 2
  • Requirements: Set num_fluids
  • Compatible with: Most physics models
Model 3: 6-Equation (Phase change)

  • Use for: Phase change, cavitation
  • Value: model_eqns = 3
  • Requirements: riemann_solver = 2 (HLLC), avg_state = 2, wave_speeds = 1
  • Note: Not compatible with bubbles or 3D cylindrical
Model 4: 4-Equation (Single component)

  • Use for: Single-component flows with bubbles
  • Value: model_eqns = 4
  • Requirements: num_fluids = 1, set rhoref and pref

βš™οΈ Riemann Solvers

Solver riemann_solver Best For Requirements
HLL 1 MHD, elastic materials β€”
HLLC 2 Bubbles, phase change, multiphase avg_state=2 for bubbles
Exact 3 High accuracy (expensive) β€”
HLLD 4 MHD (advanced) MHD only, no relativity
Lax-Friedrichs 5 Robust fallback Not with cylindrical+viscous

πŸ’§ Bubble Models

Euler-Euler (bubbles_euler)

Requirements:

  • model_eqns = 2 or 4
  • riemann_solver = 2 (HLLC)
  • avg_state = 2
  • Set nb (number of bins) β‰₯ 1

Extensions:

  • polydisperse = T: Multiple bubble sizes (requires odd nb > 1)
  • qbmm = T: Quadrature method (requires nnode = 4)
  • adv_n = T: Number density advection (requires num_fluids = 1)
Euler-Lagrange (bubbles_lagrange)

Requirements:

  • n > 0 (2D or 3D only)
  • file_per_process = F
  • Not compatible with model_eqns = 3

Note: Tracks individual bubbles

πŸ“– Quick Parameter Reference

Key parameters and their constraints:

MHD (mhd)

Requirements:

  • relativity requires mhd to be enabled
  • Powell's method requires mhd to be enabled

Incompatibilities:

  • Bx0 must not be set if MHD is not enabled
  • Bx0 must not be set in 2D/3D MHD simulations

Surface Tension (surface_tension)

Requirements:

  • sigma must be set if surface_tension is enabled
  • The surface tension model requires model_eqns = 2 or model_eqns = 3
  • The surface tension model requires num_fluids = 2

Valid values:

  • sigma must be greater than or equal to zero

Number of Fluids (num_fluids)

Requirements:

  • 5-equation model (model_eqns = 2) requires num_fluids to be set
  • 6-equation model (model_eqns = 3) requires num_fluids to be set
  • 4-equation model (model_eqns = 4) requires num_fluids to be set

Incompatibilities:

  • num_fluids is not supported for model_eqns = 1
  • num_fluids = 1 does not support mpp_lim

Valid values:

  • num_fluids must be positive
  • perturb_flow_fluid must be between 0 and num_fluids

Cylindrical Coordinates (cyl_coord)

Incompatibilities:

  • 6-equation model (model_eqns = 3) does not support cylindrical coordinates (cyl_coord = T and p != 0)
  • Bubble models untested in cylindrical coordinates
  • Acoustic source is not supported in 3D cylindrical simulations

Valid values:

  • p must be odd for cylindrical coordinates

Immersed Boundaries (ib)

Requirements:

  • Immersed Boundaries do not work in 1D (requires n > 0)

Incompatibilities:

  • output_partial_domain is incompatible with certain output flags

Valid values:

  • num_ibs must be between 1 and num_patches_max (10)


πŸ’‘ Tip: If you encounter a validation error, check the relevant section above or review case_validator.py for complete validation logic.