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中文网

  1. CFD中文网
  2. OpenFOAM
  3. PISO算法讨论

PISO算法讨论

已定时 已固定 已锁定 已移动 OpenFOAM
28 帖子 3 发布者 616 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #11
    1. 方程就是这样离散的
    2. 已更新
    3. fvSolution
    4. 参考无痛苦笔记
    5. ddtCorr确保时间步更小的时候结果正确,算法我还没看

    9月CFD算法编程课: http://dyfluid.com/class.html

    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Y 1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 李东岳 最后由 编辑
    #12

    @李东岳

    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的解释。

    Y 2 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #13

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

    9月CFD算法编程课: http://dyfluid.com/class.html

    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Y 1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 李东岳 最后由 编辑
    #14

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

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

    我就想问该怎么化简呀0.0

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #15

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

    9月CFD算法编程课: http://dyfluid.com/class.html

    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Y 1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 李东岳 最后由 编辑
    #16

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

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

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

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #17

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

    9月CFD算法编程课: http://dyfluid.com/class.html

    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Y 2 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 李东岳 最后由 编辑
    #18

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

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

    好的:140:

    1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 李东岳 最后由 编辑
    #19

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

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

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

    1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 yjc95 最后由 编辑
    #20

    @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,因为我把这一行注释之后报错了。

    1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 yjc95 最后由 编辑
    #21

    @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,我在您最新的无痛苦笔记里找到了

    Y A 2 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 yjc95 最后由 编辑
    #22

    @李东岳
    @李东岳
    老师,这是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++语法特点吗?

    A 1 条回复 最后回复
  • A 离线
    A 离线
    Afr1yne
    在 中回复了 yjc95 最后由 编辑
    #23

    @yjc95

    1. icoFoam是不能用湍流模型的,fvm::laplacian(nu , U)是动量方程右边的粘性项。pisoFoam用湍流模型把粘性项模化turbulence->divDevSigma(U)。fvModels.source(U)是源项。
      2.solve(UEqn == -fvc::grad(p))是momentumPredictor里面的,不开的话是用不上的,我感觉你是不是把它理解成求解了?
    Y 1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 Afr1yne 最后由 编辑
    #24

    @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.假设我打开了动量预测,这俩==该咋理解呢?

    1 条回复 最后回复
  • A 离线
    A 离线
    Afr1yne
    在 中回复了 yjc95 最后由 编辑
    #25

    1.就是湍流模型
    2.你可以理解为是个接口,具体是什么根据你的设置,你可以去找下tutorials里面fvModel文件看下
    3.去了解下fvVectorMatrix UEqn,不是你想象的这种连等

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

    请教下这种红字怎么打出来的22d255eb-7695-44f6-99d2-f9cd5fcb91ef-image.png

    Y 1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 Afr1yne 最后由 编辑
    #26

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

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #27

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

    看笔记

    “fvModels.source(U)是源项”是哪个源项?是体积力、电场力这种?

    所有源项。 普适性源项

    我了解过FvVectorMatrix,说它存储了Ax=b的相关信息

    ==是操作符重载,笔记里面写了操作符重载

    9月CFD算法编程课: http://dyfluid.com/class.html

    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    Y 1 条回复 最后回复
  • Y 在线
    Y 在线
    yjc95
    在 中回复了 李东岳 最后由 李东岳 编辑
    #28

    谢谢岳子老师。

    1 条回复 最后回复

  • 登录

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