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. 关于基本求解器中laplacianFoam热传导明明有时间导数为什么还是用稳态的simple算法?

关于基本求解器中laplacianFoam热传导明明有时间导数为什么还是用稳态的simple算法?

已定时 已固定 已锁定 已移动 OpenFOAM
11 帖子 4 发布者 11.9k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    写于 最后由 编辑
    #1

    关于基本求解器中laplacianFoam热传导明明有时间导数为什么还是用稳态的simple算法?不是piso算法吗?看结果输出文件也少一些东西,难道热传导是瞬间完成的当做稳态来处理吗?怎么理解呢谢谢~~

    1 条回复 最后回复
  • chpjz0391C 离线
    chpjz0391C 离线
    chpjz0391
    写于 最后由 CFD中文网 编辑
    #2

    这个求解器没用过,但是用其他的稳态,你看主程序里面,都是以timeloop来计算的,

    while (simple.loop())
        {
            Info<< "Time = " << runTime.timeName() << nl << endl;
    
            parcels.evolve();
    

    而瞬态的还有有这一步

    while (runTime.run())
    

    稳态是不存在这一步的

    1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    写于 最后由 编辑
    #3

    因为这里只涉及单一变量的求解,没有相关变量的耦合问题(例如速度-压力),所以用simple算法是没有问题的,只是单纯地按时间步推进,当时间大到一定程度(具体多大取决于DT的数值)的时候,温度场不再变化,也就是达到稳态。

    金石为开金 1 条回复 最后回复
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    在 中回复了 队长别开枪 最后由 编辑
    #4

    @队长别开枪 能具体说一下吗?是不是非常快的瞬态比如热传导可以用simple?谢谢

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 金石为开 最后由 队长别开枪 编辑
    #5

    @金石为开 SIMPLE算法本身是为不可压流动中速度-压力的耦合问题设计出来的,这里温度场的求解没有这类耦合问题,用simple只是为了达到按时间推进和设置非正交修正的目的,在源代码里你把while (simple.loop())改成while (runTime.loop())或者while (runTime.run())效果都是一样的。如果不需要非正交修正,则只需把

    while (simple.correctNonOrthogonal())
    {
        solve
        (
            fvm::ddt(T) - fvm::laplacian(DT, T)     
        );
    }
    

    改成

    solve
    (
        fvm::ddt(T) - fvm::laplacian(DT, T)     
    );
    

    此时我们就没有引入simple的必要了,所以这里使用simple只是为了方便设置非正交修正次数罢了。
    这里有一个算例,温度场开始随时间剧烈变化,最后趋于稳定
    OpenFOAM求解器开发

    李东岳李 金石为开金 2 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    在 中回复了 队长别开枪 最后由 编辑
    #6

    @队长别开枪
    最后的链接写的不错。但是我建议在这个文档以及其他文档中对某些取自《OpenFOAM用户指南》的地方注明出处。

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

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 李东岳 最后由 编辑
    #7

    @李东岳 好的,我差不多一个月前刚接触OpenFOAM,原先都是基于Fortran自己写的求解器,直到后来老板说OpenFOAM好,本身那个文档就是笔记性质的,主要用于内部讨论,不过我会尽快标注所有出处的,谢谢您的建议。

    1 条回复 最后回复
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    在 中回复了 队长别开枪 最后由 编辑
    #8

    @队长别开枪 simple.loop()函数也有时间控制的作用?一直以为只有是收敛控制。如果这样,求解瞬态simple和求解稳态simple他们有什么区别呢?还有piso我懂,simple截止条件在哪里,哪个代码表示这个?非常感谢,我对理论部分还理解不太透彻。~~

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

    simple.loop()函数也有时间控制的作用?一直以为只有是收敛控制。

    没有,此函数可以控制时间。但是不能控制收敛。SIMPLE截止条件在Foam::simpleControl::criteriaSatisfied()函数。参见simpleControl.C。

    瞬态simple和求解稳态simple他们有什么区别呢?

    瞬态SIMPLE添加时间项步进大家都知道的。这就是瞬态SIMPLE和稳态SIMPLE的区别。不过或许你关心的是瞬态SIMPLE和瞬态PISO的区别。需要注意的是PISO为Issa在1986年提出的本身就针对瞬态问题的非迭代算法。PISO在时间步进中不需要迭代。这是最主要的区别。更多介绍参见Issa 1986年的论文。PISO在SIMPLE之后研发,Issa以及对他们的区别进行了充分的解释。

    Enjoy

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

    金石为开金 1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #10

    不过,关于laplacianFoam这个simpleloop应该是个无关紧要的bug。

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

    1 条回复 最后回复
  • 金石为开金 离线
    金石为开金 离线
    金石为开
    在 中回复了 李东岳 最后由 编辑
    #11

    @李东岳 我是看你的《浅谈Piso,Simple算法》理解这些算法的,里面只有稳态SIMPLE,我理解的PISO算法是不是指第一个PISO算法把右边箭头指向第三个方框前面实现Ueqn.A与.H持续更新对不对,我这样理解对不?非常感谢~

    1 条回复 最后回复

  • 登录

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