前言
本人现在做的流固耦合案例里面包括流体和固体的数据,但是都是不均匀大小的网格数据(点云的数据),不是均匀的网格数据,由于前期确定了使用模型wno小波神经算子,但是该模型输入为均匀的网格,这时候就需要非均匀的数据转换为均匀的数据,然后放到模型里,由于可视化时候还需要原始点云类型的数据,所以还需要将模型输出的均匀网格数据转换为非均匀网格数据(这个由于没找到,所以准备用deeponet和pinns相关可以处理点云数据的模型)。
这里总结一下前期nuno将点云转为均匀网格的工作。
相关链接:
知乎文章介绍链接:
https://zhuanlan.zhihu.com/p/669608398
代码链接:
https://github.com/thu-ml/NUNO/tree/main
运行代码:
这里运行3d案例heatsink
python -m src.heatsink.ours_nufno
问题:
cmd中运行上述命令报错路径的问题
解决方法
不要在python里面运行,因为这里面会报路径错误,在pycharm里面运行项目,直接运行ouer_nufno.py文件就可以运行成功。
代码分析
这里面的数据原始是
(line182) xyz = np.load(PATH_XYZ) # shape: (19517, 3) input_point_cloud = np.load(PATH_U) # shape: (1000, 19517, 5)
也就是1000个时间步,每个时间步有19517个点,每个点包括3个点坐标xyz和5个属性u、p、t等
模型的输入:
batch-size=20,共有16个子域,每个域的三个维度的点数量分别为16,18,24,
out = y_normalizer.decode(out)#out =y = torch.Size([20, 18, 16, 24, 1, 16]) loss1 = myloss(out, y)
最后又给插将上面的分割的子域结果值回
torch.Size([20, 6840, 1, 16])
下面看看是否有没有插值回原始点云