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.pyfile archived toinpainting/external/20-05-2024) - Convolutional neural operator (CNO): camlab-ethz (
CNO2d.pyfile 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.ymlfor a full list of dependencies.
git clone https://github.com/...
cd EngineBench
conda env create -f environment.ymlDownload 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.yamlFor a GAN model:
python train_gan.py --config configs/test_config.yamlEvaluate either model using:
python test.py --config configs/test_config.yaml