Skip to content

PaddleScience is SDK and library for developing AI-driven scientific computing applications based on PaddlePaddle.

License

Notifications You must be signed in to change notification settings

PaddlePaddle/PaddleScience

Repository files navigation

PaddleScience

Developed with PaddlePaddle

Version Conda Python Version Doc Code Style Hydra License Update

📘 使用文档 | 🛠️ 安装使用 | 📘 快速开始 | 👀 案例列表 | 🆕 最近更新 | 🤔 问题反馈

🔥 飞桨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

🕘最近更新

✨特性

  • 支持简单几何和复杂 STL 几何的采样与布尔运算。
  • 支持包括 Dirichlet、Neumann、Robin 以及自定义边界条件。
  • 支持物理机理驱动、数据驱动、数理融合三种问题求解方式。涵盖流体、结构、气象等领域 20+ 案例。
  • 支持结果可视化输出与日志结构化保存。
  • 完善的 type hints,用户使用和代码贡献全流程文档,经典案例 AI studio 快速体验,降低使用门槛,提高开发效率。
  • 支持基于 sympy 符号计算库的方程表示与联立方程组计算。
  • 更多特性正在开发中...

🚀安装使用

安装 PaddlePaddle

请在 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。

安装 PaddleScience

  1. 基础功能安装

    从以下四种安装方式中,任选一种均可安装。

    • 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,较为繁琐。

  2. 验证安装

    python -c "import ppsci; ppsci.utils.run_check()"
  3. 开始使用

    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共创计划

❤️致谢

🤝合作单位

cooperation

📜开源协议

Apache License 2.0