关于耦合传热求解器的几个问题



  • 查看耦合传热求解器chtMultiRegionSimpleFoam的代码,遇到以下几个问题:

    • chtMultiRegionSimpleFoam中是怎么实现的流固耦合,是强耦合还是弱耦合?

    • chtMultiRegionSimpleFoam中流体区域的求解的方程和buoyantSimpleFoam一样,那么是不是不能求解跨音速流动?

    谢谢!


  • 网格教授 OpenFOAM教授 管理员

    chtMultiRegionSimpleFoam中是怎么实现的流固耦合,是强耦合还是弱耦合?

    你理解的有点偏差。这个求解器里面不是那种动态的流固耦合,只不过实现了流体固体之间的热传导或者对流传导哦。

    那么是不是不能求解跨音速流动?

    我觉得不能。



  • @李东岳 在 关于耦合传热求解器的几个问题 中说:

    这个求解器里面不是那种动态的流固耦合,只不过实现了流体固体之间的热传导或者对流传导哦。

    那就是先计算流体区域,然后将计算得到的边界条件施加到固体区域进行计算,再利用固体区域计算结果更新流体区域的边界条件,直到收敛?那这应该是弱耦合了。

    另外,请问流体和固体之间传递的是什么边界条件,热流密度?传热系数和流体温度?或是其他?这部分在代码中没注意到。

    谢谢!


  • 网格教授 OpenFOAM教授 管理员

    我大略看了一下:

    #include "createFluidMeshes.H"
    #include "createSolidMeshes.H"
    

    划分两个网格的时候就存在了边界场,在求解fluid之后,边界场信息会更新,你不需要显性的传递边界场。

    fvMesh& mesh = solidRegions[i];
    solidThermo& thermo = thermos[i];
    
    tmp<volScalarField> trho = thermo.rho();
    const volScalarField& rho = trho();
    
    tmp<volScalarField> tcp = thermo.Cp();
    const volScalarField& cp = tcp();
    

    这几行代码自动包含边界场,其中给固体的是网格共享的边界场信息。

    应该是这个思路, 你可以确认下。