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. potentialFOAM代码中的几个问题求解

potentialFOAM代码中的几个问题求解

已定时 已固定 已锁定 已移动 OpenFOAM
7 帖子 3 发布者 8.3k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 张某人张 离线
    张某人张 离线
    张某人
    写于 最后由 编辑
    #1
    while (potentialFlow.correctNonOrthogonal())
    {
        fvScalarMatrix PhiEqn
        (
            fvm::laplacian(dimensionedScalar("1", dimless, 1), Phi)
         ==
            fvc::div(phi)//为什么此处方程的右侧是通量的散度而不是0?
        );
        PhiEqn.setReference(PhiRefCell, PhiRefValue);
        PhiEqn.solve();
    
        if (potentialFlow.finalNonOrthogonalIter())
        {
            phi -= PhiEqn.flux();//此处为什么要在当前通量的基础上减去由速度势建构出来的通量?
        }
    }
    
    MRF.makeAbsolute(phi);//此处的makeAbsolute按字面意思是取绝对值,那这个对下文中重构速度场不会产生影响么?
    
    Info<< "Continuity error = "
        << mag(fvc::div(phi))().weightedAverage(mesh.V()).value()
        << endl;
    
    U = fvc::reconstruct(phi);
    U.correctBoundaryConditions();
    

    论坛里的各位前辈,对代码中不理解的地方已经用备注说明,还请各位赐教!

    让回流区再发展一会儿~

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

    过几天我整理一下potentialFoam解析,顺便回答下各个问题。

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

    张某人张 1 条回复 最后回复
  • 张某人张 离线
    张某人张 离线
    张某人
    在 中回复了 李东岳 最后由 编辑
    #3

    @东岳 好的,有劳李老师了。
    另外,求解器的名字我写错了,应该是potentialFoam,抱歉。

    让回流区再发展一会儿~

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

    已更新
    http://dyfluid.com/potentialFoam.html

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

    张某人张 1 条回复 最后回复
  • 张某人张 离线
    张某人张 离线
    张某人
    在 中回复了 李东岳 最后由 编辑
    #5

    @东岳 李老师,您好,辛苦李老师更新求解器说明。对说明中仍有一处不是很理解:

    if  (potentialFlow.finalNonOrthogonalIter())
    {
         phi -= PhiEqn.flux();
    }
    

    此处的“-=”的使用在编程语言中不是应该等效于“phi=phi-PhiEqn.flux();”么?那这与您在说明中给出的公式(3)和(6)似乎就不一致了。

    让回流区再发展一会儿~

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

    phi初始化为0了已经。

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

    1 条回复 最后回复
  • Y 离线
    Y 离线
    youv
    写于 最后由 李东岳 编辑
    #7
    if  (potentialFlow.finalNonOrthogonalIter())
    {
         phi -= PhiEqn.flux();
    }
    

    这段我觉得倒不是因为phi被初始化了,好像上面求解的Phi方程就不是 http://dyfluid.com/potentialFoam.html 里头的方程(6),而应该是
    ▽(▽P)=▽(U-▽P)
    也就是代码中的phi=(U-▽P),这样子的话也能解释速度边界条件是怎么添加到Phi 方程中的了。但有一点不很明白,就是代码中好像表达的并不完全是phi=(U-▽P)的意思,所以还是有些糊涂。

    另,

    MRF.makeAbsolute(phi);//此处的makeAbsolute按字面意思是取绝对值,那这个对下文中重构速度场不会产生影响么?
    

    这句话应该不是取绝对值,可能用了多重坐标系,之前有个变换,现在变回来了,但不是很确定是不是这个意思
    @东岳 @张某人
    上面是我的理解,如果有不对的地方还请直接指出来,一起讨论讨论

    1 条回复 最后回复

  • 登录

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