Developed with PaddlePaddle
📘 使用文档 | 🛠️ 安装使用 | 📘 快速开始 | 👀 案例列表 | 🆕 最近更新 | 🤔 问题反馈
🔥 飞桨AI for Science前沿讲座系列课程 & 代码入门与实操课程进行中 ,清华、北大、中科院等高校机构知名学者分享前沿研究成果,火热报名中。
🔥 开放原子第二届开源大赛:飞桨科学计算工具组件开发大赛,总奖金25万人民币,火热报名中
🔥 PaddlePaddle Hackathon 7th 开源贡献个人挑战赛
🔥 CIKM 2024: AI辅助的先进空气动力学-优化汽车设计以实现最佳性能,已进入评奖阶段。
🔥 IJCAI 2024: 任意三维几何外形车辆的风阻快速预测竞赛,track A, B, C 代码: paddle实现 | pytorch实现(点击排行榜可查看各个赛道前10名的代码)
PaddleScience 是一个基于深度学习框架 PaddlePaddle 开发的科学计算套件,利用深度神经网络的学习能力和 PaddlePaddle 框架的自动(高阶)微分机制,解决物理、化学、气象等领域的问题。支持物理机理驱动、数据驱动、数理融合三种求解方式,并提供了基础 API 和详尽文档供用户使用与二次开发。
数学(AI for Math)
问题类型 | 案例名称 | 优化算法 | 模型类型 | 训练方式 | 数据集 | 参考资料 |
---|---|---|---|---|---|---|
亥姆霍兹方程 | SPINN(Helmholtz3D) | 机理驱动 | SPINN | 无监督学习 | - | Paper |
相场方程 | Allen-Cahn | 机理驱动 | MLP | 无监督学习 | Data | Paper |
微分方程 | 拉普拉斯方程 | 机理驱动 | MLP | 无监督学习 | - | - |
微分方程 | 伯格斯方程 | 机理驱动 | MLP | 无监督学习 | Data | Paper |
微分方程 | 非线性偏微分方程 | 机理驱动 | PIRBN | 无监督学习 | - | Paper |
微分方程 | 洛伦兹方程 | 数据驱动 | Transformer-Physx | 监督学习 | Data | Paper |
微分方程 | 若斯叻方程 | 数据驱动 | Transformer-Physx | 监督学习 | Data | Paper |
算子学习 | DeepONet | 数据驱动 | MLP | 监督学习 | Data | Paper |
微分方程 | 梯度增强的物理知识融合 PDE 求解 | 机理驱动 | gPINN | 无监督学习 | - | Paper |
积分方程 | 沃尔泰拉积分方程 | 机理驱动 | MLP | 无监督学习 | - | Project |
微分方程 | 分数阶微分方程 | 机理驱动 | MLP | 无监督学习 | - | - |
光孤子 | Optical soliton | 机理驱动 | MLP | 无监督学习 | - | Paper |
光纤怪波 | Optical rogue wave | 机理驱动 | MLP | 无监督学习 | - | Paper |
域分解 | XPINN | 机理驱动 | MLP | 无监督学习 | - | Paper |
布鲁塞尔扩散系统 | 3D-Brusselator | 数据驱动 | LNO | 监督学习 | - | Paper |
符号回归 | Transformer4SR | 数据驱动 | Transformer | 监督学习 | - | Paper |
技术科学(AI for Technology)
问题类型 | 案例名称 | 优化算法 | 模型类型 | 训练方式 | 数据集 | 参考资料 |
---|---|---|---|---|---|---|
一维线性对流问题 | 1D 线性对流 | 数据驱动 | ViT | 监督学习 | Data | Paper |
非定常不可压流体 | 2D 方腔浮力驱动流 | 数据驱动 | ViT | 监督学习 | Data | Paper |
定常不可压流体 | Re3200 2D 定常方腔流 | 机理驱动 | MLP | 无监督学习 | - | |
定常不可压流体 | 2D 达西流 | 机理驱动 | MLP | 无监督学习 | - | |
定常不可压流体 | 2D 管道流 | 机理驱动 | MLP | 无监督学习 | - | Paper |
定常不可压流体 | 3D 颅内动脉瘤 | 机理驱动 | MLP | 无监督学习 | Data | Project |
定常不可压流体 | 任意 2D 几何体绕流 | 数据驱动 | DeepCFD | 监督学习 | - | Paper |
非定常不可压流体 | 2D 非定常方腔流 | 机理驱动 | MLP | 无监督学习 | - | - |
非定常不可压流体 | Re100 2D 圆柱绕流 | 机理驱动 | MLP | 半监督学习 | Data | Paper |
非定常不可压流体 | Re100~750 2D 圆柱绕流 | 数据驱动 | Transformer-Physx | 监督学习 | Data | Paper |
可压缩流体 | 2D 空气激波 | 机理驱动 | PINN-WE | 无监督学习 | - | Paper |
飞行器设计 | MeshGraphNets | 数据驱动 | GNN | 监督学习 | Data | Paper |
飞行器设计 | 火箭发动机真空羽流 | 数据驱动 | CNN | 监督学习 | Data | - |
飞行器设计 | Deep-Flow-Prediction | 数据驱动 | TurbNetG | 监督学习 | Data | Paper |
通用流场模拟 | 气动外形设计 | 数据驱动 | AMGNet | 监督学习 | Data | Paper |
流固耦合 | 涡激振动 | 机理驱动 | MLP | 半监督学习 | Data | Paper |
多相流 | 气液两相流 | 机理驱动 | BubbleNet | 半监督学习 | Data | Paper |
多相流 | twophasePINN | 机理驱动 | MLP | 无监督学习 | - | Paper |
流场高分辨率重构 | 2D 湍流流场重构 | 数据驱动 | tempoGAN | 监督学习 | Train Data Eval Data |
Paper |
流场高分辨率重构 | 2D 湍流流场重构 | 数据驱动 | cycleGAN | 监督学习 | Train Data Eval Data |
Paper |
流场高分辨率重构 | 基于Voronoi嵌入辅助深度学习的稀疏传感器全局场重建 | 数据驱动 | CNN | 监督学习 | Data1 Data2 Data3 |
Paper |
求解器耦合 | CFD-GCN | 数据驱动 | GCN | 监督学习 | Data Mesh |
Paper |
受力分析 | 1D 欧拉梁变形 | 机理驱动 | MLP | 无监督学习 | - | - |
受力分析 | 2D 平板变形 | 机理驱动 | MLP | 无监督学习 | - | Paper |
受力分析 | 3D 连接件变形 | 机理驱动 | MLP | 无监督学习 | Data | Tutorial |
受力分析 | 结构震动模拟 | 机理驱动 | PhyLSTM | 监督学习 | Data | Paper |
受力分析 | 2D 弹塑性结构 | 机理驱动 | EPNN | 无监督学习 | Train Data Eval Data |
Paper |
受力分析和逆问题 | 3D 汽车控制臂变形 | 机理驱动 | MLP | 无监督学习 | - | - |
受力分析和逆问题 | 3D 心脏仿真 | 数理融合 | PINN | 监督学习 | - | - |
拓扑优化 | 2D 拓扑优化 | 数据驱动 | TopOptNN | 监督学习 | Data | Paper |
热仿真 | 1D 换热器热仿真 | 机理驱动 | PI-DeepONet | 无监督学习 | - | - |
热仿真 | 2D 热仿真 | 机理驱动 | PINN | 无监督学习 | - | Paper |
热仿真 | 2D 芯片热仿真 | 机理驱动 | PI-DeepONet | 无监督学习 | - | Paper |
材料科学(AI for Material)
问题类型 | 案例名称 | 优化算法 | 模型类型 | 训练方式 | 数据集 | 参考资料 |
---|---|---|---|---|---|---|
材料设计 | 散射板设计(反问题) | 数理融合 | 数据驱动 | 监督学习 | Train Data Eval Data |
Paper |
地球科学(AI for Earth Science)
问题类型 | 案例名称 | 优化算法 | 模型类型 | 训练方式 | 数据集 | 参考资料 |
---|---|---|---|---|---|---|
天气预报 | Extformer-MoE 气象预报 | 数据驱动 | FourCastNet | 监督学习 | enso | - |
天气预报 | FourCastNet 气象预报 | 数据驱动 | FourCastNet | 监督学习 | ERA5 | Paper |
天气预报 | NowCastNet 气象预报 | 数据驱动 | NowCastNet | 监督学习 | MRMS | Paper |
天气预报 | GraphCast 气象预报 | 数据驱动 | GraphCastNet | 监督学习 | - | Paper |
大气污染物 | UNet 污染物扩散 | 数据驱动 | UNet | 监督学习 | Data | - |
天气预报 | DGMR 气象预报 | 数据驱动 | DGMR | 监督学习 | UK dataset | Paper |
地震波形反演 | VelocityGAN 地震波形反演 | 数据驱动 | VelocityGAN | 监督学习 | OpenFWI | Paper |
- 基于 PaddleScience 的 ADR 方程求解方法 Physics-informed neural networks for advection–diffusion–Langmuir adsorption processes 被 Physics of Fluids 2024 接受。
- 添加 IJCAI 2024: 任意三维几何外形车辆的风阻快速预测竞赛,track A, B, C 的 paddle/pytorch 代码链接。
- 添加 SPINN(基于 Helmholtz3D 方程求解) helmholtz3d。
- 添加 CVit(基于 Advection 方程和 N-S 方程求解) CVit(Navier-Stokes)、CVit(Advection)。
- 添加 PirateNet(基于 Allen-cahn 方程和 N-S 方程求解) Allen-Cahn、LDC2D(Re3200)。
- 基于 PaddleScience 的快速热仿真方法 A fast general thermal simulation model based on MultiBranch Physics-Informed deep operator neural network 被 Physics of Fluids 2024 接受。
- 添加多目标优化算法 Relobralo 。
- 添加气泡流求解案例(Bubble)、机翼优化案例(DeepCFD)、热传导仿真案例(HeatPINN)、非线性短临预报模型(Nowcasting(仅推理))、拓扑优化案例(TopOpt)、矩形平板线弹性方程求解案例(Biharmonic2D)。
- 添加二维血管案例(LabelFree-DNN-Surrogate)、空气激波案例(ShockWave)、去噪网络模型(DUCNN)、风电预测模型(Deep Spatial Temporal)、域分解模型(XPINNs)、积分方程求解案例(Volterra Equation)、分数阶方程求解案例(Fractional Poisson 2D)。
- 针对串联方程和复杂方程场景,
Equation
模块支持基于 sympy 的符号计算,并支持和 python 函数混合使用(#507、#505)。 Geometry
模块和InteriorConstraint
、InitialConstraint
支持计算 SDF 微分功能(#539)。- 添加 MultiTaskLearning(
ppsci.loss.mtl
) 多任务学习模块,针对多任务优化(如 PINN 方法)进一步提升性能,使用方式:多任务学习指南(#493、#492)。
- 支持简单几何和复杂 STL 几何的采样与布尔运算。
- 支持包括 Dirichlet、Neumann、Robin 以及自定义边界条件。
- 支持物理机理驱动、数据驱动、数理融合三种问题求解方式。涵盖流体、结构、气象等领域 20+ 案例。
- 支持结果可视化输出与日志结构化保存。
- 完善的 type hints,用户使用和代码贡献全流程文档,经典案例 AI studio 快速体验,降低使用门槛,提高开发效率。
- 支持基于 sympy 符号计算库的方程表示与联立方程组计算。
- 更多特性正在开发中...
请在 PaddlePaddle 官网按照您的运行环境,安装 3.0-beta 或 develop 版的 PaddlePaddle。
安装完毕之后,运行以下命令,验证 Paddle 是否安装成功。
python -c "import paddle; paddle.utils.run_check()"
如果出现 PaddlePaddle is installed successfully! Let's start deep learning with PaddlePaddle now.
信息,说明您已成功安装,可以继续安装 PaddleScience。
-
基础功能安装
从以下四种安装方式中,任选一种均可安装。
-
git 源码安装[推荐]
执行以下命令,从 github 上 clone PaddleScience 源代码,并以 editable 的方式安装 PaddleScience。
git clone -b develop https://github.com/PaddlePaddle/PaddleScience.git # 若 github clone 速度比较慢,可以使用 gitee clone # git clone -b develop https://gitee.com/paddlepaddle/PaddleScience.git cd PaddleScience # install paddlesci with editable mode python -m pip install -e . -i https://pypi.tuna.tsinghua.edu.cn/simple
-
pip 安装
执行以下命令以 pip 的方式安装 release / nightly build 版本的 PaddleScience。
# release python -m pip install -U paddlesci -i https://pypi.tuna.tsinghua.edu.cn/simple # nightly build # python -m pip install https://paddle-qa.bj.bcebos.com/PaddleScience/whl/latest/dist/paddlesci-0.0.0-py3-none-any.whl -i https://pypi.tuna.tsinghua.edu.cn/simple
-
conda 安装
执行以下命令以 conda 的方式安装 release / nightly build 版本的 PaddleScience。
# nightly build conda install paddlescience::paddlesci -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle -c conda-forge # release # conda install paddlescience::paddlescience=1.3.0 -c https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/Paddle -c conda-forge
-
设置 PYTHONPATH 并手动安装 requirements
如果在您的环境中,上述两种方式都无法正常安装,则可以选择本方式,在终端内将环境变量
PYTHONPATH
临时设置为PaddleScience
的绝对路径,如下所示。cd PaddleScience export PYTHONPATH=$PYTHONPATH:$PWD # for linux set PYTHONPATH=%cd% # for windows python -m pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple # manually install requirements
注:上述方式的优点是步骤简单无需安装,缺点是当环境变量生效的终端被关闭后,需要重新执行上述命令设置
PYTHONPATH
才能再次使用 PaddleScience,较为繁琐。
-
-
验证安装
python -c "import ppsci; ppsci.utils.run_check()"
-
开始使用
import ppsci # write your code here...
如需基于复杂几何文件(*.stl
, *.mesh
, *.obj
)文件进行训练、测试等流程,请参考完整安装流程:安装与使用
请参考 快速开始
除 PaddleScience 外,Paddle 框架同时支持了科学计算领域相关的研发套件和基础工具:
工具 | 简介 | 支持情况 |
---|---|---|
Modulus-sym | AI仿真套件 | 全量支持 |
DeepXDE | 方程求解套件 | 全量支持 |
DeepMD-kit | 分子动力学套件 | 部分支持 |
TensorLy | 张量计算库 | 全量支持 |
NVIDIA/warp | 高性能仿真/图形库 | 全量支持 |
DLPACK(v0.8) | 跨框架张量内存共享协议 | 全量支持 |
如使用过程中遇到问题或想提出开发建议,欢迎在 Discussion 提出建议,或者在 Issue 页面新建 issue,会有专业的研发人员进行解答。
PaddleScience 项目欢迎并依赖开发人员和开源社区中的用户,会不定期推出开源活动。
在开源活动中如需使用 PaddleScience 进行开发,可参考 PaddleScience 开发与贡献指南 以提升开发效率和质量。
-
🔥第七期黑客松
面向全球开发者的深度学习领域编程活动,鼓励开发者了解与参与飞桨深度学习开源项目。活动进行中:PaddlePaddle Hackathon 7th 开源贡献个人挑战赛
-
🎁快乐开源
旨在鼓励更多的开发者参与到飞桨科学计算社区的开源建设中,帮助社区修复 bug 或贡献 feature,加入开源、共建飞桨。了解编程基本知识的入门用户即可参与,活动进行中: PaddleScience 快乐开源活动表单
PaddleScience 作为一个开源项目,欢迎来各行各业的伙伴携手共建基于飞桨的 AI for Science 领域顶尖开源项目, 打造活跃的前瞻性的 AI for Science 开源社区,建立产学研闭环,推动科研创新与产业赋能。点击了解 飞桨AI for Science共创计划。
- PaddleScience 的部分模块和案例设计受 NVIDIA-Modulus、DeepXDE、PaddleNLP、PaddleClas 等优秀开源套件的启发。
- PaddleScience 的部分案例和代码由以下优秀社区开发者贡献,(完整的贡献者请参考: Contributors): Asthestarsfalll, co63oc, MayYouBeProsperous, AndPuQing, lknt, mrcangye, yangguohao, ooooo-create, megemini, DUCH714, zlynna, jjyaoao, jiamingkong, Liyulingyue, DrRyanHuang, zbt78, Gxinhu, XYM, xusuyong, DrownFish19, NKNaN, ruoyunbai, sanbuphy, ccsuzzh, enkilee, GreatV ...