1. Installation

1.1. Prerequisites

The installation of DeepFlame is simple and requires OpenFOAM-7, LibCantera, and PyTorch.

Note

If Ubuntu is used as the subsystem, please use Ubuntu:20.04 instead of the latest version. OpenFOAM-7 accompanied by ParaView 5.6.0 is not available for Ubuntu-latest.

First install OpenFOAM-7 if it is not already installed.

sudo sh -c "wget -O - https://dl.openfoam.org/gpg.key | apt-key add -"
sudo add-apt-repository http://dl.openfoam.org/ubuntu
sudo apt-get update
sudo apt-get -y install openfoam7

OpenFOAM-7 and ParaView-5.6.0 will be installed in the /opt directory.

Note

There is a commonly seen issue when installing OpenFOAM via apt-get install with an error message: could not find a distribution template for Ubuntu/focal. To resolve this issue, you can refer to issue#54.

LibCantera and PyTorch can be easily installed via conda. If you have compatible platform, run the following command to install DeepFlame.

conda create -n deepflame python=3.8
conda activate deepflame
conda install -c cantera libcantera-devel
conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia
conda install pybind11
conda install -c conda-forge easydict

Note

Please go to PyTorch’s official website to check your system compatability and choose the installation command line that is suitable for your platform.

Note

Check your Miniconda3/envs/deepflame directory and make sure the install was successful (lib/ include/ etc. exist).

1.2. Configure

1. Source your OpenFOAM-7 bashrc to configure the $FOAM environment.

Note

This depends on your own path for OpenFOAM-7 bashrc.

If you have installed using apt-get install, then:

source /opt/openfoam7/etc/bashrc

If you compiled from source following the official guide, then:

source $HOME/OpenFOAM/OpenFOAM-7/etc/bashrc

Note

Check your environment using echo $FOAM_ETC and you should get the directory path for your OpenFOAM-7 bashrc you just used in the above step.

2. Clone the DeepFlame repository:

git clone https://github.com/deepmodeling/deepflame-dev.git

3. Configure the DeepFlame environment:

cd deepflame-dev
. configure.sh --use_pytorch
source ./bashrc

Note

Check your environment using echo $DF_ROOT and you should get the path for the deepflame-dev directory.

1.3. Build and Install

Finally you can build and install DeepFlame:

. install.sh

Note

You may come accross an error regarding shared library libmkl_rt.so.2 when libcantera is installed through cantera channel. If so, go to your conda environment and check the existance of libmkl_rt.so.2 and libmkl_rt.so.1, and then link libmkl_rt.so.2 to libmkl_rt.so.1.

cd ~/miniconda3/envs/deepflame/lib
ln -s libmkl_rt.so.1 libmkl_rt.so.2

If you have compiled DeepFlame successfully, you should see the print message in your terminal:

../_images/compile_success.png

1.4. Other Options

DeepFlame also provides users with LibTorch and CVODE (no DNN version) options.

1. If you choose to use LibTorch (C++ API for Torch), first create the conda env and install LibCantera:

conda create -n df-libtorch
conda activate df-libtorch
conda install -c cantera libcantera-devel

Then you can pass your own libtorch path to DeepFlame.

cd deepflame-dev
. configure.sh --libtorch_dir /path/to/libtorch/
source ./bashrc
. install.sh

Note

Some compiling issues may happen due to system compatability. Instead of using conda installed Cantera C++ lib and the downloaded Torch C++ lib, try to compile your own Cantera and Torch C++ libraries.

2. If you just need DeepFlame’s CVODE solver without DNN model, just install LibCantera via conda.

conda create -n df-notorch
conda activate df-notorch
conda install -c cantera libcantera-devel

If the conda env df-notorch is activated, install DeepFlame by running:

cd deepflame-dev
. configure.sh
source ./bashrc
. install.sh

If df-notorch not activated (or you have a self-complied libcantera), specify the path to your libcantera:

. configure.sh --libcantera_dir /your/path/to/libcantera/
source ./bashrc
. install.sh