How kth-flowai/marl-drag-reduction-in-wall-bounded-flows works
This repository is a multi-agent reinforcement-learning benchmark for reducing drag in turbulent channel flow. Users configure and launch training or deterministic evaluation; the Python environment turns solver fields into agent observations and rewards, sends blowing/suction actions to the SIMSON solver, and training produces policies that evaluation can test. The README also documents configurable state/control setups and opposition control. Evaluation can use learned or scripted policies and record results. The graph follows the sampled CLI, runner, environment, and solver interactions; some evaluation and postprocessing details are documented or only partially sampled.
Main entry points: evaluate.py Evaluation runner · run.py Training runner · simson_marl.py Multi-agent environment · __main__.py CLI dispatcher
Components 15
Command and configuration
- CLI dispatcher
src/simson_MARL/__main__.py - Run configuration
src/configuration.py
Learning and evaluation
- Training runner
src/run.py - Evaluation runner
src/evaluate.py - RL model
src/run.py - Vector wrappers
src/run.py
Environment and solver
- Multi-agent environment
src/simson_marl.py - Solver input writer
src/simsonutils3D.py - SIMSON executable
bin - Flow initial fields
data/baseline
Policies and results
- Opposition policy
data/policy_opposition.py - Saved models and runs
runs - Statistics postprocessing
notebooks/postprocessingutils.py
Other components
- Researcher
- Experiment settings
conf
Connections 22
- Researcher → CLI dispatcher: launches
- Experiment settings → Run configuration: defines settings
- CLI dispatcher → Training runner: dispatches run
- CLI dispatcher → Evaluation runner: dispatches evaluation
- CLI dispatcher → Run configuration: dispatches config
- Training runner → Run configuration: loads and overrides
- Evaluation runner → Run configuration: loads and overrides
- Training runner → Solver input writer: writes solver input
- Training runner → Multi-agent environment: creates environment
- Training runner → Vector wrappers: vectorizes environment
- Vector wrappers → Multi-agent environment: wraps environment
- Training runner → RL model: trains policy
- RL model → Saved models and runs: saves checkpoints
- Evaluation runner → Solver input writer: writes solver input
- Evaluation runner → Multi-agent environment: creates environment
- Evaluation runner → RL model: loads and evaluates
- Evaluation runner → Opposition policy: loads scripted policy
- Evaluation runner → Saved models and runs: records evaluation
- Multi-agent environment → SIMSON executable: spawns and exchanges MPI data
- Multi-agent environment → Flow initial fields: reads initial field
- Solver input writer → Experiment settings: reads plane settings
- Saved models and runs → Statistics postprocessing: provides run logs