RepoBaidu (ERNIE)Baidu (ERNIE)published Mar 19, 2025seen 5d

PaddlePaddle/PaddleCFD

Python

Open original ↗

Captured source

source ↗
published Mar 19, 2025seen 5dcaptured 8hhttp 200method plain

PaddlePaddle/PaddleCFD

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

Language: Python

License: Apache-2.0

Stars: 64

Forks: 21

Open issues: 9

Created: 2025-03-19T07:27:10Z

Pushed: 2026-04-21T05:07:25Z

Default branch: develop

Fork: no

Archived: no

README:

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.

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](./doc/metax/README.md) 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 |

About MetaX

APIs

[ppcfd/data](./doc/data.md)

Star History

![Star History Chart](https://www.star-history.com/#PaddlePaddle/PaddleCFD&type=date&legend=top-left)

Community

Join PaddleCFD WeChat group to discuss with us!

License

PaddleCFD is provided under the [Apache-2.0 license](./LICENSE)

Notability

notability 5.0/10

New repo by Baidu with modest traction