How mflowcode/mfc works
MFC is an exascale multiphysics flow solver with a Python toolchain for configuring, validating, building, running, and visualizing simulations. The main user workflow starts with a case file, validates its parameters, generates target inputs, builds and launches solver targets, then reads and visualizes results. The graph also preserves parameter metadata/code generation and interactive visualization as substantial capabilities. Solver physics are documented in the README, but solver implementation files are not present in the supplied tree; relationships for that layer are therefore documented rather than source-traced.
Main entry points: run.py Simulation runner · viz.py Visualization entry · definitions.py Parameter definitions · input.py Target input generation
Components 26
User entry
- Command dispatch
toolchain/mfc/cli/commands.py
Cases and parameters
- Case model
toolchain/mfc/case.py - Case validation
toolchain/mfc/case_validator.py - Parameter definitions
toolchain/mfc/params/definitions.py - Parameter schema
toolchain/mfc/params/schema.py - Parameter registry
toolchain/mfc/params/registry.py - Case AST analysis
toolchain/mfc/params/ast_analyzer.py - Parameter descriptions
toolchain/mfc/params/descriptions.py - EOS families
toolchain/mfc/params/eos_families.py - Fortran generation
toolchain/mfc/params/generators/fortran_gen.py - Namelist parsing
toolchain/mfc/params/namelist_parser.py
Build and execution
- Target input generation
toolchain/mfc/run/input.py - Solver build
toolchain/mfc/build.py - Flow solver
CMakeLists.txt - Simulation runner
toolchain/mfc/run/run.py - Batch queues
toolchain/mfc/run/queues.py - Run archive
toolchain/mfc/run/archive.py - Toolchain configuration
toolchain/mfc/state.py
Results and visualization
- Visualization entry
toolchain/mfc/viz/viz.py - Result readers
toolchain/mfc/viz/reader.py - Silo reader
toolchain/mfc/viz/silo_reader.py - Result renderer
toolchain/mfc/viz/renderer.py - Interactive viewer
toolchain/mfc/viz/interactive.py - Step cache
toolchain/mfc/viz/_step_cache.py - Terminal viewer
toolchain/mfc/viz/tui.py
Other components
- MFC user
Connections 32
- MFC user → Command dispatch: invokes
- Command dispatch → Simulation runner: dispatches
toolchain/main.py - Command dispatch → Solver build: dispatches
toolchain/main.py - MFC user → Case model: provides
- Case model → Case validation: validates
- Parameter definitions → Parameter schema: defines with
toolchain/mfc/params/definitions.py - Parameter definitions → Parameter registry: registers
toolchain/mfc/params/definitions.py - Parameter definitions → Parameter descriptions: uses descriptions
toolchain/mfc/params/definitions.py - Parameter definitions → EOS families: uses families
toolchain/mfc/params/definitions.py - Case AST analysis → Parameter definitions: analyzes
- Fortran generation → Parameter definitions: generates from
toolchain/mfc/params/generators/fortran_gen.py - Fortran generation → Parameter registry: reads registry
toolchain/mfc/params/generators/fortran_gen.py - Fortran generation → EOS families: dispatches EOS
toolchain/mfc/params/generators/fortran_gen.py - Namelist parsing → Fortran generation: checks generated parameters
toolchain/mfc/params/namelist_parser.py - Simulation runner → Target input generation: loads case
toolchain/mfc/run/run.py - Target input generation → Case validation: validates parameters
toolchain/mfc/run/input.py - Target input generation → Case model: constructs
toolchain/mfc/run/input.py - Target input generation → Solver build: generates target inputs
toolchain/mfc/run/input.py - Simulation runner → Solver build: builds targets
toolchain/mfc/run/run.py - Simulation runner → Batch queues: uses queues
toolchain/mfc/run/run.py - Simulation runner → Run archive: archives run
toolchain/mfc/run/run.py - Solver build → Flow solver: builds
- Simulation runner → Flow solver: launches targets
- Simulation runner → Toolchain configuration: reads configuration
toolchain/mfc/run/run.py - MFC user → Visualization entry: opens results
- Visualization entry → Result readers: reads results
toolchain/mfc/viz/viz.py - Visualization entry → Silo reader: reads Silo
toolchain/mfc/viz/viz.py - Visualization entry → Result renderer: renders
toolchain/mfc/viz/viz.py - Visualization entry → Interactive viewer: opens viewer
toolchain/mfc/viz/viz.py - Visualization entry → Terminal viewer: opens terminal UI
toolchain/mfc/viz/viz.py - Interactive viewer → Step cache: caches steps
toolchain/mfc/viz/interactive.py - Terminal viewer → Step cache: caches steps
toolchain/mfc/viz/tui.py