cfd_jax机器学习&自动微积分&硬件加速器在流体动力学中潜在应用&推理模型

cfd

论文

Machine learning–accelerated computationalfluid dynamics

模型结构

该模型包括一个卷积神经网络,该网络控制在标准数值求解器的对流计算中的学习近似。ψ和u分别指的是被输送和输送速度分量。对于空间维度,有d*d个对流通量模块的副本,对应于每个空间方向中每个速度分量的通量。

算法原理

CNN网络具有平移不变性。这意味着网络对输入数据的平移不敏感,即使图像中的对象位置发生了变化,网络也能识别出对象。在流体动力学的上下文中,网络能够识别出流动中相同的模式,无论它们在空间中如何移动。此外,卷积神经网络在空间上是局部化的,网络的操作集中在输入数据的局部区域。在流体动力学的背景下,网络专注于网格点周围的局部流速场,而不是整个流速场。这种局部化允许网络捕捉局部流动特征,如涡旋、边界层等,这对于准确模拟流体行为至关重要。

环境配置

Docker(方法一)

docker pull image.sourcefind.cn:5000/dcu/admin/base/jax:0.4.23-ubuntu20.04-dtk24.04-py310

docker run --shm-size 10g --network=host --name=jax_cfd --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash

pip install -e ".[complete]"

pip install dask jupyter

Dockerfile(方法二)

docker build -t <IMAGE_NAME>:<TAG> .

docker run --shm-size 10g --network=host --name=jax_cfd --privileged --device=/dev/kfd --device=/dev/dri --group-add video --cap-add=SYS_PTRACE --security-opt seccomp=unconfined -v 项目地址(绝对路径):/home/ -v /opt/hyhal:/opt/hyhal:ro -it <your IMAGE ID> bash

pip install -e ".[complete]"

pip install dask jupyter

Anaconda(方法三)

DTK驱动:dtk24.04
python:python3.10
jax: 0.4.23

Tips:以上dtk驱动、python、jax等DCU相关工具版本需要严格一一对应

2、其他非特殊库

pip install dask jupyter

数据集

使用SCNet 高速下载通道下载,

1、安装gsutil

curl -O https://dl.google.com/dl/cloudsdk/channels/rapid/downloads/google-cloud-sdk-367.0.0-linux-x86_64.tar.gz
tar zxvf google-cloud-sdk-367.0.0-linux-x86_64.tar.gz
cd /安装目录/google-cloud-sdk
bash install.sh

# 添加环境变量
vim ~/.bashrc
export PATH=$PATH:/安装目录/google-cloud-sdk/bin
source ~/.bashrc

2、下载数据

cd jax-cfd && mkdir content

gsutil -m cp gs://gresearch/jax-cfd/public_eval_datasets/kolmogorov_re_1000/eval_*.nc ./content

gsutil -m cp -r gs://gresearch/jax-cfd/public_eval_datasets/kolmogorov_re_1000_fig1 ./content

gsutil -m cp gs://gresearch/jax-cfd/public_eval_datasets/kolmogorov_re_1000/learned*.nc ./content

gsutil -m cp gs://gresearch/jax-cfd/public_eval_datasets/kolmogorov_re_1000/long_eval*.nc ./content

推理

1、下载模型

gsutil -m cp gs://gresearch/jax-cfd/public_models/*.pkl ./content

注意:可以使用SCNet高速下载通道下载。

2、执行

注意:跳过代码中需要下载数据的部分以及环境安装部分,根据实际情况修改相关文件路径。

# 执行该目录下的ipynb中的代码
cd notebooks

# 采用交错网格的二维有限体积法模拟
demo.ipynb

# 使用伪谱法解算器的二维模拟
spectral_forced_turbulence.ipynb

# 二维通道流模拟
channel_flow_demo.ipynb

# 在共位网格上使用有限体积法(FVM)的二维模拟
collocated_demo.ipynb

# PNAS论文
# 数据分析及评估
ml_accelerated_cfd_data_analysis.ipynb

# 预训练模型
ml_model_inference_demo.ipynb

注意:可以使用jupyter notebook --no-browser --ip=0.0.0.0 --allow-root启动运行环境。

result

精度

应用场景

算法类别

流体动力学

热点应用行业

化工,气象,能源

源码仓库及问题反馈

参考资料

  • 7
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术瘾君子1573

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值