1 - Application of machine learning to model the pressure Poisson equation for fluid flow on generic geometries: https://link.springer.com/article/10.1007/s00521-024-09935-0
- This paper contains a detailed description of the ML Surrogate Model developed to solve the Pressure Poisson Equation.
2- Enhancing CFD solver with Machine Learning techniques: https://www.sciencedirect.com/science/article/pii/S004578252400389X
- This paper contains the DLpisoFoam CFD solver benchmark
3- Hybrid Cfd - a Data-Driven Approach to Speed-Up Incompressible Cfd Solvers: https://www.researchgate.net/publication/389522957_Hybrid_Cfd_-_a_Data-Driven_Approach_to_Speed-Up_Incompressible_Cfd_Solvers
- This paper presents an improved pressure SM and its integration in the DLpisoFoam CFD solver
This repository contains the solvers and test cases for the DLpisoFoam solver. This solver is based on the OpenFOAM v8 version and is developed to solve the incompressible Navier-Stokes equations using the PISO algorithm. The primary objective of this solver is to improve the pressure-velocity coupling using a Deep Learning surrogate model. The solver has three versions:
DLpisoFoam-deltas: this solver is currently implemented. It makes use of the deltau_to_delta surrogate models in https://github.com/pauloacs/Solving-Poisson-s-Equation-through-DL-for-CFD-apllications. This solver use the deltau_to_delta surrogate model in surrogate_models/deltau_to_delta/.
DLpisoFoam-alg1 and DLpisoFoam-alg2: the solvers developed in https://github.com/pauloacs/Solving-Poisson-s-Equation-through-DL-for-CFD-apllications. These solvers use the U_to_p surrogate model in surrogate_models/u_to_p/.
Here, you can find the DLpisoFoam solvers, as well as test cases that utilize them. A DockerFile and everything that is needed to build the docker image is also provided here to ease the installation of the solver.
There are two ways to use DLpisoFoam:
This is the easiest option as the setup of the environment is automated. To ensure reproducibility, a Docker container with the solver is provided. If you already have Docker installed, you can build your own docker image locally by running:
$ docker build dlpisofoam .or pull the container with the following command:
$ docker pull pauloacs/dlpisofoam:latestUsing
$ docker run -it -v $(pwd):/home/repo --rm <image_name> bashThis will create a Docker container and launch a shell.
To set up the environment locally, follow these steps:
- Create a Python conda virtual environment by running the following command:
$ conda env create -f env_311.yml- Install the surrogate model Python packages:
$ python -m pip install .- Make sure the required environment variables for the CFD solver are properly set by running:
$ ./prep_env311.shNote: You may need to create your own prep_env311.sh file with the correct path to your conda environment.
- Finally, install the CFD solvers. For example, to install DLpisoFoam_deltas, navigate to the
source/DLpisoFoam_deltasdirectory and run the following commands:
$ wclean
$ wmakeTo run your first tutorial, navigate to the directory of the solver you want to test. For example, if you want to run DLpisoFoam_deltas, follow these steps:
- Change to the
test_case_deltaU_deltaP/directory:
$ cd test_case_deltaU_deltaP/- Run the DLpisoFoam_deltas solver:
$ DLpisoFoam_deltas