OpenFOAM并行输出格式的问题
-
我在学校集群上算东西,有些算例是直接在主文件夹里面输出每个时间点的数据,有的是在processor*/文件夹里面输出的。大家知道这个设置的点是在哪儿么?
-
补充一下,前者是processor文件夹里面没有各个时间点的数据,而process文件夹里面没有时间点的数据,如下图
-
没有没有,这个是运行的时候就开始出现各个时间点的数据的,每个保存的时间点他都自动保存在主目录了。我就觉得很奇怪,但是又觉得这是个很好的方式。有一次似乎看过输出格式有写这样子,但是后面找不到了,所以想来问问
-
你用的是哪个版本啊,我的4.1好像没有这个东西。tutorials里面并没有IO
-
@东岳 但是我这个运行的目录里面没有这些代码啊。。。就是OpenFOAM 4.1 的tutorials,不然我上传一下大家分析下?还是因为这是我的cluster的设置?不过不科学啊
Goldschmidt.zip -
@hurricane007 啊,好吧,我用的版本是开发版v1712, 我直接给你贴出来好了
#!/bin/sh cd ${0%/*} || exit 1 # Run from this directory . $WM_PROJECT_DIR/bin/tools/RunFunctions # Tutorial run functions runApplication blockMesh application=$(getApplication) #- Test writing collated format runApplication decomposePar -fileHandler collated runParallel $application -fileHandler collated runApplication reconstructPar -latestTime -fileHandler collated #- Delete collated files rm -rf processors #- Test writing uncollated format runApplication -s uncollated decomposePar -fileHandler uncollated runParallel -s uncollated $application -fileHandler uncollated #- Restart from uncollated runParallel -s collated $application -fileHandler collated runApplication -s collated reconstructPar -latestTime -fileHandler collated #- Convert the parallel format to uncollated runParallel foamFormatConvert -fileHandler uncollated #------------------------------------------------------------------------------
-
@Zephyr
这个做法应该是运行完再reconstructPar,然后删除processers里面的文件,用的是collated格式,应该是这篇文章里面提到的OpenFOAM Parallel I/O.
但是,我找了下我那个case,发现并没有这个设置,所以发上来看看大家有没有见过。 -
@hurricane007 你仔细看一下那些算例的Allrun怎么写的,如果用mpirun -np <nprocs> <executable> 后面必须带 -parallel参数,否则就变成算n个一模一样的串行了
-
@Zephyr @Zephyr
你这个倒是提醒了我,我去提交个单核的算一算。查一下cluster的documentation,cluster用的是slurm, 看例子是上面设置好以后最后srun就可以了,似乎不用自己加parallel,提交的脚本大概是这样#!/bin/bash # # Submission script for Lemaitre3 #SBATCH --job-name=testDPMFoam #SBATCH --output=DPMLog #SBATCH --time=24:00:00 # hh:mm:ss # #SBATCH --ntasks=1 # 多核就直接把这儿变成要的核数,提前做好blockMesh 和 decomposePar # SBATCH --nodes=1 #SBATCH --mem-per-cpu=2000 # megabytes # srun DPMFoam
-
@Zephyr
你这个倒是提醒了我,我去提交个单核的算一算。查了一下cluster的documentation,cluster用的是slurm, 看例子是上面设置好以后最后srun就可以了,似乎不用自己加parallel,提交的脚本大概是这样#!/bin/bash # # Submission script for Lemaitre3 #SBATCH --job-name=testDPMFoam #SBATCH --output=DPMLog #SBATCH --time=24:00:00 # hh:mm:ss # #SBATCH --ntasks=1 # 多核就直接把这儿变成要的核数,提前做好blockMesh 和 decomposePar # SBATCH --nodes=1 #SBATCH --mem-per-cpu=2000 # megabytes # srun DPMFoam