decomposeParDict----并行运算文件

对于一些大型算例,我们往往需要根据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           ( );


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

设置好上述文件后,需要初始化流场:

setFields

对设置好的流场进行分块处理:

decomposePar

并行运行程序

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

并行后处理

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

reconstructPar

参考:

  1. https://www.cnblogs.com/yaos/p/6992756.html
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值