Skip to content

PaddleCFD is a deep learning toolkit for surrogate modeling, equation discovery, shape optimization and flow-control strategy discovery in the field of fluid mechanics.

License

Notifications You must be signed in to change notification settings

PaddlePaddle/PaddleCFD

Repository files navigation

PaddleCFD

About PaddleCFD

PaddleCFD is a deep learning toolkit for surrogate modeling, equation discovery, shape optimization and flow-control strategy discovery in the field of fluid mechanics. Currently, it mainly supports surrogate modeling, including models based on Fourier Neural Operator (FNO), Transformer, Diffusion Model (DM), Kolmogorov-Arnold Networks (KAN) and DeepONet.

This is an image

Code structure

  • doc: documentation
  • examples: example scripts
  • ppcfd/data: data-process source code
  • ppcfd/model: model source code
  • ppcfd/utils: utils code
  • source: source code of paddlepaddle custom operators

How to run on NVIDIA GPU

Installation

Image pulling & container running
# Pull docker image
docker pull ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0-gpu-cuda11.8-cudnn8.9-trt8.6

# Run docker container
nvidia-docker run --name ppcfd-container -v /home/:/home --network=host -it  --shm-size 64g ccr-2vdh3abv-pub.cnc.bj.baidubce.com/paddlepaddle/paddle:3.0.0-gpu-cuda11.8-cudnn8.9-trt8.6 /bin/bash
Conda environment installation
# Clone PaddleCFD
git clone https://github.com/PaddlePaddle/PaddleCFD.git
cd PaddleCFD

# Create conda environment
conda create --name ppcfd python=3.10
conda activate ppcfd

python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
python -m pip install paddlepaddle-gpu==3.0.0 -i https://www.paddlepaddle.org.cn/packages/stable/cu118/

# Download and install paddle-backended Open3D
wget https://paddle-org.bj.bcebos.com/paddlecfd/envs/open3d-0.18.0+da239b25-cp310-cp310-manylinux_2_31_x86_64.whl
python -m pip install open3d-0.18.0+da239b25-cp310-cp310-manylinux_2_31_x86_64.whl -i https://pypi.tuna.tsinghua.edu.cn/simple

# Compile customed operator to conda environment
wget -nc https://paddle-org.bj.bcebos.com/paddlescience/cmake-3.23.0-linux-x86_64.tar.gz
tar -zxvf cmake-3.23.0-linux-x86_64.tar.gz
rm -f cmake-3.23.0-linux-x86_64.tar.gz
PATH=$PWD/cmake-3.23.0-linux-x86_64/bin:$PATH
cd source/ppfno_op
python -m pip install --no-build-isolation -v .
PaddleCFD package installation (Choose one of the following)
# Install PaddleCFD from sourcecode at PaddleCFD root directory
python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

# Install PaddleCFD from pypi
python -m pip install ppcfd -i https://pypi.tuna.tsinghua.edu.cn/simple

Quick start

# Run examples
cd PaddleCFD/examples/xxx/xxx
run the example according to the example README.md

How to run on MetaX

Quick start

Following the guidelines of MetaX to run PaddleCFD on MetaX machine.

Parallel efficiency on MetaX

Parallel efficiency ($\eta$) calculation,

$\eta=\frac{t_1/t_n}{n} \times 100$ %

where $t_1$ is the running time on one card, $t_n$ is the running time on $n$ cards, and $n$ is the number of cards working parallelly.

Model One card/s One 8-card node/s Four 8-card nodes/s $\eta$ on one 8-card node/% $\eta$ on four 8-card nodes/%
PPFNO 599.51 75.57 19.01 99.16 98.56

APIs

ppcfd/data

Community

Join PaddleCFD WeChat group to discuss with us!

This is an image

License

PaddleCFD is provided under the Apache-2.0 license

About

PaddleCFD is a deep learning toolkit for surrogate modeling, equation discovery, shape optimization and flow-control strategy discovery in the field of fluid mechanics.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 9