OpenFOAM5教程——多孔介质源项 explicitPorositySource

OpenFOAM5教程——多孔介质源项 explicitPorositySource

一个简单的porosity–source应用的教程,希望能够帮助到大家。

1. 网格区域设定

在添加 explicitPorositySource之前一般需要在system/topoSetDict中设定网格区域:

// porosity
    {
        name    poros;          // 命名为poros
        type    cellSet;
        action  new;
        source  cylinderToCell; // 圆柱区域
        sourceInfo
        {
          p1       (0 0.3 0);   // 圆柱体上表面的中心点
          p2       (0 0.7 0);   // 圆柱体下表面的中心点
          radius   0.5;         // 圆柱半径
        }
    }

   {
        name    porosz;         // 区域命名
        type    cellZoneSet;    
        action  new;
        source  setToCellZone;  // 将圆柱区域转换为网格区域
        sourceInfo
        {
            set poros;          // 给定source信息
        }
    }

在网格划分之后执行runApplication topoSet指令,即可生成此网格区域porosz。

2. 源项explicitPorositySource

在constant/fvOptions中添加 源项explicitPorositySource:

poros
{
    type            explicitPorositySource;   // 类型

    explicitPorositySourceCoeffs              
    {
        selectionMode   cellZone;             
        cellZone        porosz;               // 已经产生的网格区域

        type            DarcyForchheimer;     // 达西定律

        // D 100;  // Very little blockage
        // D 200;  // Some blockage but steady flow
         D 500;  // Slight waviness in the far wake  
        // D 1000; // Fully shedding behavior

        d   ($D $D $D);                       // 各向同性
        f   (0 0 0);

        coordinateSystem                      // 旋转坐标系的设定
        {
            type    cartesian;                // 笛卡尔坐标系
            origin  (0 0 0);
            coordinateRotation            
            {
                type    axesRotation;         // 此算例设定无旋转,e1, e2, e3分别为x, y, z轴
                e1  (1 0 0);
                e2  (0 1 0);
                e3  (0 0 1);
            }
        }
    }
}

对于参数 d–Darcy coefficient(1/m2) 和 f–Forchheimer coefficient(1/m) 由以下公式描述:
S i = − ( μ d + ρ ∣ U ∣ 2 f ) U i S_i = -(μd + \frac{\rho |U|}{2} f) U_i Si=(μd+2ρUf)Ui
在各向同性的情况下,d, f沿x, y, z三个方向的值相等;而各向异性的情况下则需要分别设定。

N-S方程:
在这里插入图片描述
S中应包含三个方向的 Si
用求解器pisoFoam求解即可。

### OpenFOAM多孔介质模拟与配置 在 OpenFOAM 中,多孔介质模拟可以通过多种方式实现。主要通过 `Darcy` 和 `Forchheimer` 方程来描述流体流动行为[^1]。这些方程可以被集成到求解器中以处理复杂的多孔介质问题。 #### 多孔区域定义 为了设置多孔介质模型,在网格文件夹中的 `constant/polyMesh/boundary` 文件里需指定哪些区域属于多孔介质部分。通常会创建一个新的边界条件或者内部区域用于表示多孔材料属性[^2]。 #### 配置参数 多孔介质的相关物理特性可以在字典文件 `constant/transportProperties` 或者专门建立的一个新文件如 `porosityProperties` 中设定。以下是常见的几个关键参数: - **d**: Darcy系数矩阵 (阻力),单位为 m^-2。 - **f**: Forchheimer系数向量 (惯性损失),单位为 kg/m^3。 下面是一个简单的例子展示如何配置这两个重要变量: ```foam porousZone { type fixedCoeffs; value uniform (0 0 0); d (1e5 0 0, 0 1e5 0, 0 0 1e5); // Example of diagonal matrix for Darcy term. f (0.5 0 0); // Example vector values for Forchheimer term. } ``` 此代码片段展示了如何在一个特定区域内应用多孔效应,并指定了相应的阻尼因子和惯性因子[^3]。 #### 使用案例 对于实际操作而言,可以选择合适的求解程序比如 `simpleFoam`, `pimpleFoam` 来运行带有多孔的应用场景。确保所选求解器支持压力速度耦合算法以及能够正确解析非均匀场分布情况下的动量计算逻辑[^4]。 此外需要注意的是当涉及到复杂几何结构时可能还需要额外调整数值方案以获得稳定收敛的结果。 ```bash blockMesh snappyHexMesh setFields decomposePar mpirun -np X simpleFoam -parallel reconstructPar postProcess ``` 以上命令序列可用于执行并行化的大规模仿真流程,其中包含了前处理阶段直至后处理可视化输出整个过程概述[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值