This project provides a framework for calibrating and optimizing discrete element method (DEM) simulations using reinforcement learning (RL). It includes simulation core models, physics implementations, calibration environments, and experiment scripts.
# Clone the repository
git clone https://github.com/USERNAME/dem-optimization-rl.git
cd dem-optimization-rl
# Create a virtual environment
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
# Install dependencies
pip install -r requirements.txtConfigs are passed via command-line arguments:
--config→ RL training config file (src/rl_calibration/configs/rl_config.yaml)--bounds→ parameter bounds (src/rl_calibration/configs/parameter_bounds.yaml)
python scripts/run_experiments.py \
--config src/rl_calibration/configs/rl_config.yaml-
Dynamic Angle of Repose (AoR):
python scripts/run_dynamic_aor.py \ --config src/rl_calibration/configs/rl_config.yaml
-
Static Angle of Repose:
python scripts/run_static_aor.py \ --config src/rl_calibration/configs/rl_config.yaml
-
Ring Shear Test(WIP):
python scripts/run_ring_shear.py \ --config src/rl_calibration/configs/rl_config.yaml
-
Single Objective Calibration
python src/rl_calibration/train_single_objective.py \ --config src/rl_calibration/configs/rl_config.yaml \ --bounds src/rl_calibration/configs/parameter_bounds.yaml
-
Multi Objective Calibration
python src/rl_calibration/train_multi_objective.py \ --config src/rl_calibration/configs/rl_config.yaml \ --bounds src/rl_calibration/configs/parameter_bounds.yaml
-
Alternative entrypoint
python scripts/train_rl.py \ --config src/rl_calibration/configs/rl_config.yaml \ --bounds src/rl_calibration/configs/parameter_bounds.yaml
scripts/ # Experiment and utility scripts
src/dem_core/ # DEM simulation and physics models
src/rl_calibration # RL training environments and configs
- Adjust parameter bounds and training configs as needed for your system.
- For large-scale runs, GPU acceleration is recommended.