Metadata-Version: 2.4
Name: ppcfd
Version: 0.2.0
Summary: PaddleCFD is a deep learning toolkit for surrogate modeling, equation discovery, shape optimization and flow-control strategy discovery in the field of fluid mechanics.
Home-page: https://github.com/PaddlePaddle/PaddleCFD
Author: AI4S@PaddlePaddle
Author-email: "AI4S@PaddlePaddle" <paddlescience@baidu.com>
License: Apache-2.0
Project-URL: Homepage, https://github.com/PaddlePaddle/PaddleCFD
Project-URL: Issues, https://github.com/PaddlePaddle/PaddleCFD/issues
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: OS Independent
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: colorlog
Requires-Dist: configmypy
Requires-Dist: einops
Requires-Dist: fastapi~=0.115.12
Requires-Dist: gmsh
Requires-Dist: h5py~=3.11.0
Requires-Dist: hydra-core
Requires-Dist: imageio
Requires-Dist: matplotlib
Requires-Dist: meshio==5.3.4
Requires-Dist: numpy<2.0.0,>=1.20.0
Requires-Dist: opt-einsum
Requires-Dist: pandas~=2.2.1
Requires-Dist: pydantic>=2.5.0
Requires-Dist: pyevtk
Requires-Dist: pymeshlab
Requires-Dist: pynvml
Requires-Dist: pyvista
Requires-Dist: pyyaml
Requires-Dist: requests
Requires-Dist: ruamel.yaml
Requires-Dist: scienceplots
Requires-Dist: scikit-learn<1.5.0
Requires-Dist: scikit-optimize
Requires-Dist: scipy~=1.14.1
Requires-Dist: seaborn
Requires-Dist: numpy-stl
Requires-Dist: sympy
Requires-Dist: tabulate
Requires-Dist: tqdm
Requires-Dist: typing-extensions
Requires-Dist: uvicorn~=0.34.2
Requires-Dist: wget
Requires-Dist: xarray
Requires-Dist: xskillscore
Requires-Dist: zarr
Dynamic: author
Dynamic: home-page
Dynamic: requires-python

# 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.

<img src="./doc/paddlecfd_architecture.jpg" alt="This is an image" title="PaddleCFD architecture">


## Code structure

- `doc`: documentation
- `examples`: example scripts
- `ppcfd/data`: data-process source code
- `ppcfd/model`: model source code
- `ppcfd/utils`: utils code

## How to run

### Installation

##### Conda environment installation

```bash
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

# Unzip compiled customed operator (fused_segment_csr) to conda env directory
wget https://paddle-org.bj.bcebos.com/paddlecfd/envs/fused_segment_csr.tar.gz
tar -xzvf fused_segment_csr.tar.gz -C /root/miniconda3/envs/ppcfd/

# Add environment variable
export LD_LIBRARY_PATH=/root/miniconda3/envs/ppcfd/lib/python3.10/site-packages/paddle/libs:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/root/miniconda3/envs/ppcfd/lib/python3.10/site-packages/paddle/base:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH=/root/miniconda3/envs/ppcfd/lib:$LD_LIBRARY_PATH
```

##### PaddleCFD package installation
```bash
# Install PaddleCFD from sourcecode
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
```bash
# Run examples
cd PaddleCFD/examples/xxx/xxx
run the example according to the example README.md
```

## APIs

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

## License

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