@Noob 这个要看你超算的singularity设置了。这个超算不是我们搞得,所以不太清楚,至少目前一个node是没问题的。
不过我在运行的时候提示过inifiniteband 相关的library缺失。
我不确定你的情况,具体你得问超算admin怎么设置singularity的。理论上应该是没问题的
@Noob 这个要看你超算的singularity设置了。这个超算不是我们搞得,所以不太清楚,至少目前一个node是没问题的。
不过我在运行的时候提示过inifiniteband 相关的library缺失。
我不确定你的情况,具体你得问超算admin怎么设置singularity的。理论上应该是没问题的
Hi,
我这现在在做欧拉拉格朗日模拟,2-way。然后在模拟中途就爆掉了。。检查了一下flow,发现整个flow都乱掉了,因为parcel的聚集,毕竟两者是相互影响的。
但是神奇的是,同事把PIMPLE改为了PISO就过了。
理解不了为什么。
下面两个图是根据log文件画的,pimple 的拟合造成了温度场和压力场的变化?理解不了?求解惑
把你的默认of改一下 因为每开一个terminal 就要读~/.bashrc文件
你这个方法我不太了解。我在添加injection model的时候就是修改好程序以后在makeParcelInjectionModels.H添加模型。没用过你这个方法
ubuntu 24.04 OF13 编译 找不到scotch.h
解决办法:https://bugs.openfoam.org/view.php?id=4270
安装bison
因为你没有在makeParcelInjectionModels.H 添加你的模型
最近开始用正经超算跑程序了,记录一下Singularity配置和运行OF4。
下面是为什么不能使用docker的原因
Singularity or Docker
Docker images provide a means to gain root access to the system they are running on. For this reason Docker is not available on the PC2 clusters. Singularity is compatible with all Docker images and it can be used with GPUs and MPI applications. Here is a comparision between virtual machines, Docker and Singularity.
Singularity images are stored as a single file which makes them easily shareable. You can host your images on the Singularity Cloud Library for others to download. You could also make it available by putting it on a web server like any other file. Singularity can be used to run massively-parallel applications which leverage fast interconnects like InfiniBand and GPUs. These applications suffer minimal performance loss since Singularity was designed to run "close to the hardware".
根据说明,Singularity 可以无痛转换docker 镜像
因此,
OF4的原生docker地址
https://hub.docker.com/r/openfoam/openfoam4-paraview50
执行下面命令即可,然后就是等待
singularity pull docker://openfoam/openfoam4-paraview50
然后就可以得到openfoam4-paraview50_latest.sif
文件
执行和测试运行下面命令即可。
singularity run ./openfoam4-paraview50_latest.sif
但是如果使用自己编译的程序的话,会有寻找不到路径的情况,就要根据自己的情况处理。
可以在.bashrc文件中添加下面的内容
# User specific aliases and functions
export WM_PROJECT_USER_DIR="/xxxxx/xxx/path"
配合SLRUM的话,因为OF4版本太老,没有找到其他使用外部系统高版本的MPI的解决办法。所以只能使用自带的内部MPI运行。
#!/bin/bash
#SBATCH ... 根据自己情况配置
module 自己配置
singularity exec ~/openfoam4-paraview50_latest.sif ./run_OF4.sh
下面的脚本内容
#!/bin/bash
source /opt/openfoam4/etc/bashrc
bash
rm -rf processor*
decomposePar
mpirun -np 32 reactingParcelFoam -parallel
因为他就不再of13里~你安装错了版本
用docker~
@孟豪龙 还有一个可能的解决方案,你得修改喷射模型,你可以设置 p.Y() 的组分。在injectionmodel里,添加关于组分的判断语句,然后让他读取到什么字符,就可以喷射什么组分的颗粒
你好,我并没有做过,但是可以给你个思路,reactingLookupTableInjection。在reactingparcelfilmfoam里。
你可以看看不同版本的tutorial 说不准会有思路
你可以看看源码。
或者你在引入另一个parcel。
@李东岳 嗯。。你现在这个体量轻易的换也换不了了,整不好数据还丢了。
我是觉得板块的话你看看分方向弄呢。of里面也有各个方向的,稍稍分一分,什么精华帖置顶什么的,精华区whatever。
fluent区缺个大佬,有大佬就好了。这玩意你看其他论坛不也是,有的板块热的够呛。。人家也没说关啊。板块啥的有总比没有强,万一什么时候就火了呢。
你又不玩fluent,不要有包袱。
@李东岳
每个人有每个人的路子,你也不需要有太多压力。愿意玩就玩,不愿意玩就拉倒。就像那个Holzmann,没事还在CFD online上四处回答问题呢。自己也还是有公司什么的。
如果你还想玩的话,我个人建议,开放注册,调整权限,内容分类。你现在这不就像linux 和Red Hat 那边的关系么。都是开源的,免费用,需要服务了,为服务付款。就当打广告,引流,扩大知名度呗~
主要很多人都是忙活OF一时。很少有人能一直搞OF,新人不断来,但是老人并没有不断的留下。
CFD online不也是,好多帖子就那么扔在那没人管。
分享精神也差点意思
开放注册试试,只是严一点的开放呢
开放注册吧,总有人愿意说话的
可以使用profiling tool 去查程序的某个部分有问题。
简单的intel vtune, intel advisor。
这个需要你有一些基础的performance engineering的知识。
可以在网上找找关键词,MPI tracer, roofline model, performance engineering。
这还涉及到MPI的知识。可以找一下关于MPI的课,不过MPI在OF中基本被各种隐藏,一般情况下可能你也看不到什么。不过我记得有关于mesh的renumbering的操作,在大规模并行的时候,会有一些优化。 当然这个也要看你使用的是什么计算,网格怎么分配的~
@Thomas_Huster
你在这include了文件,但是在你的make文件里面并没有提供相关的目录和地址,所以程序自然找不到在哪。你需要调整你的make文件的路径
@youhaoyu 因为你是基于kinematic parcel做的,说不准你做的很多东西都可能在别的地方植入过。
有的时候你觉得你植入对了,但是很有可能你并没有,这边差一点,那边差一点。
而且有一些模型并没有在kinematiccloud中真的植入。有可能就是一个空的头文件。
最好你植入一点,查一点。我建议你捋顺整个of的library,在哪个地方call cloud,cloud在什么地方call 的什么方程,到底call了几次。慢慢查,整着整着就熟了。
我之前可能在某个帖子里面发过我当时对lagranian这部分的理解的流程图,你可以借鉴一下。
不要纠结于具体某个模型,先搞懂框架,然后思考你要植入的东西具体应该植入到哪边,然后通过看看相似的其他植入,具体问题具体分析吧。git有很多repo 有的论文作者会分享出来的。
@youhaoyu 你这个想法是对的,我们也是那么植入p的interpolation的。
cfdonline一般没人回 就是多查 有空可以看看chalmers 的openfoam的课,里面有很多学生的project。很有帮助
比如你的particle diameter 应该通过p.d()获得。你的rhoc 是打算使用网格中心值还是考虑是有parcel点的插值?都是有算法的。
整体来说,你这个算法不能这么直接从别的地方生搬硬套。要根据你用的cloud,parcel,根据怎么获取parcrl这个struct内的内容来处理。建议你一步一步来,一行一行写,编译,测试。不能一口吃个胖子