This is the code relating to the EngineBench database, a collection of datasets collated by the Oxford TPSRG specially for machine learning research in thermal propulsion systems. EngineBench is comprised of Particle Image Velocimetry (PIV) data from different experiments previously run on the transparent combustion chamber (TCC-III) optical engine by General Motors and the University of Michigan.
Publications arising from the use of EngineBench should cite:
-
The following publication:
@misc{baker2024enginebench, title={EngineBench: Flow Reconstruction in the Transparent Combustion Chamber III Optical Engine}, author={Samuel J. Baker and Michael A. Hobley and Isabel Scherl and Xiaohang Fang and Felix C. P. Leach and Martin H. Davy}, year={2024}, eprint={2406.03325}, archivePrefix={arXiv}, primaryClass={physics.flu-dyn} }
-
The EngineBench DOI:
@misc{samuel_baker_michael_hobley_isabel_scherl_xiaohang_fang_felix_leach_martin_davy_2024, title={EngineBench}, url={https://www.kaggle.com/ds/5000332}, DOI={10.34740/KAGGLE/DS/5000332}, publisher={Kaggle}, author={Samuel Baker and Michael Hobley and Isabel Scherl and Xiaohang Fang and Felix Leach and Martin Davy}, year={2024} }
-
Include the following acknowledgment to the original data source:
"The TCC engine work has been funded by General Motors through the General Motors University of Michigan Automotive Cooperative Research Laboratory, Engine Systems Division."
This work uses neural network implementations from other sources:
- UNet and UNETR: Project MONAI
- Context encoder GAN: BoyuanJiang (
model.py
file archived toinpainting/external/
20-05-2024) - Convolutional neural operator (CNO): camlab-ethz (
CNO2d.py
file archived toinpainting/external/
16-08-2024)
The quickest way to start using EngineBench is via our tutorials using Kaggle notebooks:
- Browse the data
- Test different gap types for inpainting
- Train an inpainting model
- Python 3.8+
- See
environment.yml
for a full list of dependencies.
git clone https://github.com/...
cd EngineBench
conda env create -f environment.yml
Download the dataset from one of the Kaggle repositories:
Choose the training configurations by editing or creating a new .yaml
file in the inpainting/configs/
directory.
To train a model, use one of the following scripts based on the model type defined in your config file: For a UNet, UNETR or CNO model:
python train.py --config configs/test_config.yaml
For a GAN model:
python train_gan.py --config configs/test_config.yaml
Evaluate either model using:
python test.py --config configs/test_config.yaml