欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

decomposeParDict----并行运算文件

程序员文章站 2022-10-07 20:58:40
对于一些大型算例,我们往往需要根据cpu性能采用多个节点并行运算,以减少计算时间。OpenFOAM中,几何场和附属场被拆分为单独的块,每个块用单独的 cpu 来进行计算。并行计算主要涉及到网格和场的分解、并行运行程序以及分解场的后处理。...

对于一些大型算例,我们往往需要根据cpu性能采用多个节点并行运算,以减少计算时间。OpenFOAM中,几何场和附属场被拆分为单独的块,每个块用单独的 cpu 来进行计算。并行计算主要涉及到网格和场的分解、并行运行程序以及分解场的后处理。

网格和场的分解

decomposePar :用来分解网格和场。通过读取decomposeParDict(位于算例的 system 文件夹下)字典文件的参数,分解几何和场文件。

decomposeParDict字典文件代码如下;

/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  4.0                                   |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "system";
    object      decomposeParDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
//并行节点数
numberOfSubdomains 4;

method          simple;
//简单的几何分解。计算域依据方向被切分,例如 x、z 方向两块,y 方向一块
simpleCoeffs
{
    n               (2 1 2);
    delta           0.001; //偏斜因子
}
//顺序几何分解法。和简单分解法差不多,但用户可以指定首先切分哪个方向,例如按x,y,z方向进行切割
hierarchicalCoeffs
{
    n               (1 1 1);
    delta           0.001;
    order           xyz;
}
//手动分解法,用户可以直接把某一片网格区域指定给处理器,可通过setFileds进行定义
manualCoeffs
{
	//给各个处理器分配任务的字典文件名称
    dataFile        "";
}
//数据是否写入不同的硬盘
distributed     no;
//算例目录路径
roots           ( );


// ************************************************************************* //

设置好上述文件后,执行:

decomposePar

并行运行程序

mpirun -np 4 solverName -parallel //4:并行线程数,由 numberOfSubdomains 决定

并行后处理

将算例中每个处理器下的时间步文件,重组后整合到这个算例下的相应时间步文件夹下:

reconstructBar

参考:
https://www.jianguoyun.com/p/Db9X08cQ9s3ZBhjMtpwC

本文地址:https://blog.csdn.net/hanbingchegu/article/details/107493894