interFoam-UEqn.H/pEqn.H

压力方程 “pEqn.H”

{

    volScalarField rAU("rAU", 1.0/UEqn.A());      // rAU:在速度方程的的最后一个解中,矩阵对角项系数的倒数
    surfaceScalarField rAUf("rAUf", fvc::interpolate(rAU));       //转换为表面标量场
    volVectorField HbyA(constrainHbyA(rAU*UEqn.H(), U, p_rgh));      //定义HbyA
    surfaceScalarField phiHbyA
    (
        "phiHbyA",
        fvc::flux(HbyA)
      + fvc::interpolate(rho*rAU)*fvc::ddtCorr(U, phi)
    );         //将上述体积矢量场转化为面心标量场(参考有限体积法),并保证速度通量的全局守恒,以确保压力方程有解
    MRF.makeRelative(phiHbyA);    //将绝对通量转化为相对于面的通量(参考动网格技术)
    adjustPhi(phiHbyA, U, p_rgh);        //对方程进行修正,保证速度边界条件守恒
    surfaceScalarField phig     
    (
        (
            mixture.surfaceTensionForce()
          - ghf*fvc::snGrad(rho)
        )*rAUf*mesh.magSf()
    );
    phiHbyA += phig;              //更新面通量场
    constrainPressure(p_rgh, U, phiHbyA, rAUf, MRF);       // Update the pressure BCs to ensure flux consistency
    while (pimple.correctNonOrthogonal())          // 非正交压力修正循环 ,根据fvSolution字典文件中设定值n,求解以下方程n-1次 
    {
        fvScalarMatrix p_rghEqn
        (
            fvm::laplacian(rAUf, p_rgh) == fvc::div(phiHbyA)
        );
        //只有求解区域所有的压力边界都为第二类边界条件时,上面的值才会用到。
        //如果有第一类边界条件,压力参考值为该点处边界值。
        //对于不可压缩流动压力值为相对值,上面的参考值的大小对结果无影响,除非存在边界压力。
        p_rghEqn.setReference(pRefCell, getRefCellValue(p_rgh, pRefCell));
        p_rghEqn.solve(mesh.solver(p_rgh.select(pimple.finalInnerIter())));		//通过查询system/fvSolution下的PIMPLE更新压力参考网格并重新设定参考值
        if (pimple.finalNonOrthogonalIter())    //若外迭代次数为n,则压力场的松弛仅在n-1次外循环前进行;若外迭代次数为1,这里使用piso算法,压力不进行亚松驰
        {
            phi = phiHbyA - p_rghEqn.flux();           //在最后一次非正交内循环中,使用最新压力校正通量
            p_rgh.relax();
            U = HbyA + rAU*fvc::reconstruct((phig - p_rghEqn.flux())/rAUf);       //校正速度,满足边界条件(主要针对第二类边界条件)
            U.correctBoundaryConditions();
            fvOptions.correct(U);
        }
    }
    #include "continuityErrs.H"         //计算连续性方程误差
    p == p_rgh + rho*gh;       // 计算总压=动压+静压
    if (p_rgh.needReference())
    {
        p += dimensionedScalar
        (
            "p",
            p.dimensions(),
            pRefValue - getRefCellValue(p, pRefCell)
        );   
        p_rgh = p - rho*gh;       //更新动压
    }
}

p.relax(); || UEqn().relax();
场松弛会改变压力的值,方程松弛会改变压力的变化量。

在这里插入图片描述

在这里插入图片描述

UEqn.H

MRF.correctBoundaryVelocity(U);   //MRF:基于旋转坐标系下的N-S方程修正边界速度,不需要可忽略
fvVectorMatrix UEqn
(
        fvm::ddt(rho, U) + fvm::div(rhoPhi, U)
      + MRF.DDt(rho, U)
      + turbulence->divDevRhoReff(rho, U)       //该项包含两部分:1.分子扩散项 2.雷诺应力的偏分量(dev)的散度。雷诺应力主分量(hyd)的散度归结到了压力项中,这是大多数雷诺时均和大涡模型实现的一贯做法。因此压力比层流模型中多了一项,那就是雷诺应力的主分量,通常被称为湍动压力(动压:p_rgh)                   
     ==
        fvOptions(rho, U)     //源项或约束,不需要可忽略
);
UEqn.relax();       //松弛迭代,加速收敛
fvOptions.constrain(UEqn);  //更正边界条件,维持通量守恒
//momentumPredictor:动量预测求解开关,对多相流以及低雷诺数一般设置为off;如果进行速度预测(on),则求解完整的动量方程得到预测速度;如果不进行速度预测(off),则预测速度直接取当前已知时间步的速度
if (pimple.momentumPredictor())
{
        solve
        (
            UEqn
         ==
            fvc::reconstruct   //显示重构网格中心面(光滑了整个分布情况),转换为体中心通量
            (
                (
                    mixture.surfaceTensionForce()     //表面张力项
                  - ghf*fvc::snGrad(rho)              //体积力项(垂直梯度)
                  - fvc::snGrad(p_rgh)                // `p_rgh:动压`;压力梯度项
                ) * mesh.magSf()                      //网格面矢量绝对值      
            )
        );
        fvOptions.correct(U);   保证动量守恒
}

在这里插入图片描述

相关推荐

最近更新

  1. TCP协议是安全的吗?

    2024-03-13 00:24:01       19 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-13 00:24:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-13 00:24:01       20 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-13 00:24:01       20 阅读

热门阅读

  1. 微信小程序重新加载当前页面、刷新当前页面

    2024-03-13 00:24:01       21 阅读
  2. lmbench学习

    2024-03-13 00:24:01       25 阅读
  3. 蚂蚁SEO蜘蛛池什么用?

    2024-03-13 00:24:01       22 阅读
  4. 什么场景只能用HTTP,不能用RPC?

    2024-03-13 00:24:01       21 阅读
  5. 深入探讨C++中的可变参数列表(Variadic Templates)

    2024-03-13 00:24:01       21 阅读
  6. C++读写锁

    2024-03-13 00:24:01       22 阅读
  7. 《1w实盘and大盘基金预测 day1》

    2024-03-13 00:24:01       19 阅读