Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

Y

yjc95

@yjc95
关于
帖子
103
主题
10
群组
0
粉丝
0
关注
0

帖子

最新

  • 势流算法问题
    Y yjc95

    @李东岳 在 势流算法问题 中说:

    推导太长没细看,如果都是1 -2 1,那你的矩阵不相容无法求解。

    老师,我推导出来的系数矩阵是这个,上面是我写错了
    \begin{equation}
    \begin{bmatrix} 1& -1& 0& 0\-1& 2& -1& 0\ 0& -1& 2&-1 \ 0& 0& -1& 1\ \end{bmatrix}
    \end{equation}


  • 势流算法问题
    Y yjc95

    @李东岳 在 势流算法问题 中说:

    推导太长没细看,如果都是1 -2 1,那你的矩阵不相容无法求解。

    我和您推导的结果最大的区别在于系数矩阵的那个3和源项,这个3是咋求出来的呢?


  • 势流算法问题
    Y yjc95

    @李东岳 在 势流算法问题 中说:

    网格2和3,离散出来的系数为啥不一样

    老师,是我笔误,2和3网格系数都是1 -2 1,推导过程没错。


  • 势流算法问题
    Y yjc95

    @李东岳 在 势流算法问题 中说:

    你得矩阵看起来不相容。你用的都是零梯度边界条件么

    第一个矩阵是用进口固定梯度,出口固定值条件求出来的,第二个矩阵是用入口零梯度,出口固定值,加上一个源项求出来的。求出来这俩也不等价啊


  • 势流算法问题
    Y yjc95

    @李东岳 在 势流算法问题 中说:

    哪个第一个图?

    另外,按照 http://dyfluid.com/potentialFoam.html 上面写的,目前我们要证明的是,链接里面的方程10(进口固定梯度,出口固定值),与方程11(进口零法向梯度,出口固定值,附加源项)的等价。考虑4网格系统,方程10与11离散出来的矩阵都是:

    \begin{equation}
    \begin{bmatrix}
    1 & -1 & & \\
    -1 & 2 & -1 & \\
    & -1 & 2 & -1 \\
    & & -1 & 3 \\
    \end{bmatrix}
    \begin{bmatrix}
    \Phi_1 \\
    \Phi_2 \\
    \Phi_3 \\
    \Phi_4 \\
    \end{bmatrix} \equiv
    \begin{bmatrix}
    u_{inlet} \\
    0 \\
    0 \\
    v \\
    \end{bmatrix}
    \end{equation}

    老师,方程(11)和进口固定梯度,出口固定值得到的矩阵我又手算了一遍。对于4网格系统:
    450d9bca-8d6d-492e-9ec2-327f811bc737-image.png

    1. 进口固定梯度,出口固定值

    边界条件:
    fe4f4dce-8834-40a6-9608-18b01402a70f-1.svg

    b7db26d7-29ad-4492-835b-93dd95276d32-2.svg

    cell 1:

    ce5938e7-9528-4dc8-ac5c-36d578b7b554-3.svg

    4.svg

    011bb5c1-127e-46ee-9091-b8555f55f9e1-5.svg

    cell 2:

    6.svg

    7.svg

    18030715-1857-4364-9720-d9b6c345fb5c-8.svg

    同理cell 3:

    744e2ac4-5370-4e6b-ab01-a767f14da5d6-9.svg

    cell 4:

    10.svg

    0862b3db-7c54-4fff-a3de-36d4fedce55b-27.svg

    9db9ea88-636a-4d7c-adcd-0cfc5c0bc8ba-12.svg

    矩阵为:

    13.svg

    2. 方程(11)

    边界条件:
    dbab3e79-0904-4e4f-b1b2-6b9edbf6d768-14.svg

    bab20e64-0440-4dce-939f-4593493fc837-15.svg

    cell 1:

    c664ed29-0689-40ee-a178-9d9030881534-16.svg

    383030c8-7747-4c7d-ac79-cc016f05d04e-17.svg

    78f97aa5-4d3b-4fcf-9186-fd8623f83b4e-28.svg

    cell 2:

    6c03a256-5e87-4b81-a211-d974bba6d45e-19.svg

    1e103688-73ce-497a-b3c8-4e4588eade2a-20.svg

    29f9f01b-4d63-4372-bcbe-d87c5e681a84-21.svg

    同理cell 3:

    d14edb14-97bf-43fc-bd37-28c7d1165f85-22.svg

    cell 4:

    23.svg

    e74ab305-afc2-4aa4-9386-78b8a45e063a-24.svg

    76fc0df2-a518-4296-a8ad-d78e14e9e5dc-25.svg

    矩阵为:
    28d3e96a-cdd5-466d-9b3b-e4d7d59e4531-29.svg

    和您算的系数矩阵第四行不一致,和等号右边的第一行和第四行也不一致,但计算过程我检查了好几遍,也没发现问题,问题出在哪儿了?


  • PISO算法讨论
    Y yjc95

    谢谢岳子老师。


  • PISO算法讨论
    Y yjc95

    @Afr1yne
    1.我知道是湍流模型,我想在openfoam的代码中找到它
    3.我了解过FvVectorMatrix,说它存储了Ax=b的相关信息。我也能猜到不是连等,我只是想看看最底层的定义,但我不知道在哪里找。
    在你想标红的字前后加上`


  • PISO算法讨论
    Y yjc95

    @Afr1yne 在 PISO算法讨论 中说:

    @yjc95

    1. icoFoam是不能用湍流模型的,fvm::laplacian(nu , U)是动量方程右边的粘性项。pisoFoam用湍流模型把粘性项模化turbulence->divDevSigma(U)。fvModels.source(U)是源项。
      2.solve(UEqn == -fvc::grad(p))是momentumPredictor里面的,不开的话是用不上的,我感觉你是不是把它理解成求解了?

    谢谢您的回复。
    1.“pisoFoam用湍流模型把粘性项模化turbulence->divDevSigma(U)”具体是咋模化的呢?
    2.“fvModels.source(U)是源项”是哪个源项?是体积力、电场力这种?
    3.假设我打开了动量预测,这俩==该咋理解呢?


  • PISO算法讨论
    Y yjc95

    @李东岳
    @李东岳
    老师,这是pisoFoam里的速度方程

        fvm::ddt(U) + fvm::div(phi , U)
    +  MRF.DDt(U)
    +  turbulence->divDevSigma(U)
    ==
        fvModels.source(U)
    
    solve(UEqn == -fvc::grad(p))
    

    这是icoFoam里的速度方程

        fvm::ddt(U) 
    + fvm::div(phi , U)
    -  fvm::laplacian(nu , U)
    
    solve(UEqn == -fvc::grad(p))
    

    比较不难发现,pisoFoam里的速度方程多了MRF.DDt(U),turbulence->divDevSigma(U)
    和== fvModels.source(U),少了fvm::laplacian(nu , U)。

    MRF.DDt(U)是和旋转结构有关,在cavityRAS这个案例中用不到。

    1.

    turbulence->divDevSigma(U)应该是这个案例中用到的K-epsilon方程,这个方程的具体代码在哪个文件里可以看到呢?fvModels.source(U)就是fvm::laplacian(nu , U)吗?

    2.

    第一段代码中已经有==了,第二段代码又有一个==,从逻辑上讲,应该将fvModels.source(U)移到等号左边,再等于-fvc::grad(p),这是C++语法特点吗?


  • PISO算法讨论
    Y yjc95

    @yjc95 在 PISO算法讨论 中说:

    @李东岳

    1. 方程(27)等号右边等于
      \begin{equation}
      \Delta t \int_{}^{}\frac{1}{A}\bigtriangledown pd\textbf{S}
      \end{equation}

    \begin{equation}
    =\Delta t\sum \frac{1}{A_{f}}(\bigtriangledown p)_{f}\cdot \textbf{S}
    \end{equation}
    面上压力梯度咋就变成了方程(26)矩形框的那部分?

    3.cavity案例的fvSolution里p-preconditioner DIC对应piso.momentumPredictor,因为有DIC这一设置,所以if为真,执行动量预测步。同样在fvSolution里,PISO-nNonOrthogonalCorrectors 0对应的应该是piso.correctNonOrthogonal,但值为0,while语句不执行,就不会求解压力方程了。但运行该案例,是有求解压力的。

    4.无痛苦笔记中没有关于constrainHbyA的解释。

    老师,问题4,我在您最新的无痛苦笔记里找到了


  • PISO算法讨论
    Y yjc95

    @yjc95 在 PISO算法讨论 中说:

    @李东岳

    1. 方程(27)等号右边等于
      \begin{equation}
      \Delta t \int_{}^{}\frac{1}{A}\bigtriangledown pd\textbf{S}
      \end{equation}

    \begin{equation}
    =\Delta t\sum \frac{1}{A_{f}}(\bigtriangledown p)_{f}\cdot \textbf{S}
    \end{equation}
    面上压力梯度咋就变成了方程(26)矩形框的那部分?

    3.cavity案例的fvSolution里p-preconditioner DIC对应piso.momentumPredictor,因为有DIC这一设置,所以if为真,执行动量预测步。同样在fvSolution里,PISO-nNonOrthogonalCorrectors 0对应的应该是piso.correctNonOrthogonal,但值为0,while语句不执行,就不会求解压力方程了。但运行该案例,是有求解压力的。

    4.无痛苦笔记中没有关于constrainHbyA的解释。

    老师,问题3,piso.correctNonOrthogonal对应的是fvSolution下的PISO-nCorrectors,因为我把这一行注释之后报错了。


  • PISO算法讨论
    Y yjc95

    @李东岳 在 PISO算法讨论 中说:

    $\nabla p=\frac{1}{V}\int \nabla p \rd V$ 是基本的离散法则。我向你推荐算法课 http://dyfluid.com/class.html

    老师,我突然想明白了,$\bigtriangledown p$是定义在体心上的,当然就等于控制体内各处压力梯度的值之和除以体积了。脑子一下子短路了(T_T)


  • PISO算法讨论
    Y yjc95

    @李东岳 在 PISO算法讨论 中说:

    $\nabla p=\frac{1}{V}\int \nabla p \rd V$ 是基本的离散法则。我向你推荐算法课 http://dyfluid.com/class.html

    好的:140:


  • PISO算法讨论
    Y yjc95

    @李东岳 在 PISO算法讨论 中说:

    化简成26行括号里面的形式

    这样化简的原理是啥呀?没想明白


  • PISO算法讨论
    Y yjc95

    @李东岳 在 PISO算法讨论 中说:

    你得方程2,里面的$\nabla p$还需要继续化简

    我就想问该怎么化简呀0.0


  • PISO算法讨论
    Y yjc95

    @李东岳

    1. 方程(27)等号右边等于
      \begin{equation}
      \Delta t \int_{}^{}\frac{1}{A}\bigtriangledown pd\textbf{S}
      \end{equation}

    \begin{equation}
    =\Delta t\sum \frac{1}{A_{f}}(\bigtriangledown p)_{f}\cdot \textbf{S}
    \end{equation}
    面上压力梯度咋就变成了方程(26)矩形框的那部分?

    3.cavity案例的fvSolution里p-preconditioner DIC对应piso.momentumPredictor,因为有DIC这一设置,所以if为真,执行动量预测步。同样在fvSolution里,PISO-nNonOrthogonalCorrectors 0对应的应该是piso.correctNonOrthogonal,但值为0,while语句不执行,就不会求解压力方程了。但运行该案例,是有求解压力的。

    4.无痛苦笔记中没有关于constrainHbyA的解释。


  • PISO算法讨论
    Y yjc95

    @李东岳 老师,还有几个问题向您请教。

    1.

    $ \triangledown p $离散后为啥要除以体积?
    62aa6a52-6d70-4355-abe3-3b862c9c1e8f-image.png

    2.

    这三段代码对应的应该是(3)、(4)、(5)都除以$ \Delta t$ 吧?
    05a3286c-2e1d-451b-9eac-6a9ce7efccbf-image.png

    3.

    icoFoam.C源代码中,

            if (piso.momentumPredictor())
            {
                solve(UEqn == -fvc::grad(p));
            }
    
    // Non-orthogonal pressure corrector loop
                while (piso.correctNonOrthogonal())
    

    中piso.momentumPredictor()和piso.correctNonOrthogonal()是在哪个文件中定义的?constant和system两个文件夹下没找到。

    4.

    icoFoam.C源代码中,HbyA的定义为啥是HbyA(constrainHbyA(rAU*UEqn.H(), U, p)),constrainHbyA啥意思?

    5.

    组建phiHbyA用到的 fvc::flux(HbyA) + fvc::interpolate(rAU)*fvc::ddtCorr(U, phi)是啥意思呢?


  • PISO算法讨论
    Y yjc95

    @yjc95 老师,我看源代码解决这个问题了,是先减去参考点的值再求解压力方程。


  • PISO算法讨论
    Y yjc95

    @李东岳 好的老师。再向您请教个问题,icoFoam里面,fvSolution下定义了pRefCell和pRefValue,在求解方程中用到的p是已经减去这个值的吗?


  • PISO算法讨论
    Y yjc95

    @李东岳 老师,这就是我想请教您的。我看您在用户手册上写到过,您跟的Issa讨论过PISO算法,那么openfoam中的PISO是Issa提出的那样吗?还是PISO算法发展到现在已经有很多变体了。

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]