加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]OpenFOAM求解器开发入门(七):多域传热求解器(上)

(2017-05-31 16:10:20)
标签:

转载

目前多域传热的求解器有如下几个(有没有包含在内的请指出,多谢):
  • chtMultiRegionFoam
  • chtMultiRegionSimpleFoam
  • chtIcoMultiRegionFoam
  • chtMultiRegionSimpleBoussinesqFoam
  • conjugateHeatFoam
  • MRconjugateHeatFoam

chtMultiRegion = conjugated heat Transfer of Multi region [1] [9]
chtMultiRegionFoam结合了heatConductionFoam和buoyantFoam,用于求解固体区域和流体区域之间的共轭传热。chtMultiRegionSimpleFoam是对应的稳态求解器。

MRconjugateHeatFoam = Multi Region conjugate heat Transfer [2]

chtIcoMultiRegionFoam = Incompressible version of chtMultiRegionFoam [3]

chtMultiRegionSimpleBoussinesqFoam = uses the Boussinesq approximation [4]

conjugateHeatFoam = the energy equation is solved in a coupled manner for the fluid and solid domain at the matrix level [5-8]

首先通读一下[9],了解共轭传热的物理和chtMultiRegionSimpleFoam的算例设置。

以2.4.0.版本为例,3.0.0版本有些许改动。
chtMultiRegionSimpleFoam.C,头文件在src中的位置和说明等可参照[4],在src中搜索这些文件就可以看到of自带的一些功能描述和注释,直接粘贴过来了:

#include "fvCFD.H" //包括许多头文件
#include "rhoThermo.H" //Basic thermodynamic properties based on density
#include "turbulenceModel.H" //Abstract base class for turbulence models (RAS, LES and laminar)
#include "fixedGradientFvPatchFields.H" //This boundary condition supplies a fixed gradient condition
#include "regionProperties.H" //Simple class to hold region information for coupled region simulations. Gives per physics ('fluid', 'solid') the names of the regions. There is no assumption on this level that one region should only have one set of physics.
#include "solidThermo.H" //Fundamental solid thermodynamic properties
#include "radiationModel.H" //Namespace for radiation modelling
#include "fvIOoptionList.H" //IOoptionList
#include "coordinateSystem.H" //Base class for other coordinate system specifications
#include "fixedFluxPressureFvPatchScalarField.H" //This boundary condition sets the pressure gradient to the provided value such that the flux on the boundary is that specified by the velocity boundary condition.

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

int main(int argc, char *argv[])
{
    #include "setRootCase.H" //checks folder structure of the case
    #include "createTime.H" //check runtime according to the controlDict and initiates time variables

    regionProperties rp(runTime); //读取"regionProperties",参见regionProperties.C

    #include "createFluidMeshes.H" //define fluid region
    #include "createSolidMeshes.H" 

    #include "createFluidFields.H" //creates the fields for the fluid region: rho, kappa, U, phi, g, turbulence, gh, ghf, p_rgh
    #include "createSolidFields.H" 

    #include "initContinuityErrs.H" //Declare and initialise the cumulative continuity error


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

        forAll(fluidRegions, i)
        {
            Info<< "nSolving for fluid region "
                << fluidRegions[i].name() << endl;
            #include "setRegionFluidFields.H" //for each region the region elds are set using the last timestep [4]
            #include "readFluidMultiRegionSIMPLEControls.H"//the algorithm is checked [4]
            #include "solveFluid.H"
        }

        forAll(solidRegions, i)
        {
            Info<< "nSolving for solid region "
                << solidRegions[i].name() << endl;
            #include "setRegionSolidFields.H"
            #include "readSolidMultiRegionSIMPLEControls.H"
            #include "solveSolid.H"
        }

        runTime.write(); 

        Info<< "ExecutionTime = " << runTime.elapsedCpuTime() << " s"
            << "  ClockTime = " << runTime.elapsedClockTime() << " s"
            << nl << endl;
    }

    Info<< "Endn" << endl;

    return 0;
}

由于[4]中已经写得很清楚了,这里不再重复解释,对于solveFluid.H中具体的求解过程,参见本站博文OpenFOAM求解器开发入门(四):buoyantSimpleFoam和buoyantPimpleFoam详解。solveSolid.H则更为简单,看不懂请再次阅读东岳流体工作室发布的系列免费技术文档和本站OpenFOAM入门建议等系列博文。

耦合面上温度的边界条件:
turbulentTemperatureCoupledBaffleMixed
Mixed boundary condition for temperature, to be used for heat-transfer on back-to-back baffles. Optional thin thermal layer resistances can be specified through thickness Layers and kappa Layers entries.
这个边界条件实现原理的讨论参见[10-11],耦合面的处理比较复杂,有时还会涉及到区域之间网格不对应等问题。

chtIcoMultiRegionFoam是不可压的版本[3]。

这样前四个求解器都大同小异。下面看openfoam-extend-foam-extend-3.1applicationssolverscoupledconjugateHeatFoam。参照[6-7]。这个求解器中温度是同时求解的(参见[12-13]),耦合面上使用的边界条件是regionCouple

最后看MRconjugateHeatFoam[2],耦合面采用的是一种Dirichlet–Neumann partitioning,与[15]中实现的类似。


reference
  1. ug
  2. MRconjugateHeatFoam: A Dirichlet–Neumann partitioned multi-region conjugate heat transfer solver
  3. chtIcoMultiRegionFoam - Incompressible version of chtMultiRegionFoam.
  4. A chtMultiRegionSimpleFoam tutorial
  5. Combination of MRFsimpleFoam and conjugateHeatFoam
  6. conjugateHeatFoam with explanational tutorial together with a buoyancy driven flow tutorial and a convective conductive tutorial
  7. conjugateHeatFoam with explanational tutorial together with a buoyancy driven flow tutorial
  8. Integrated conjugate heat transfer solver in OpenFOAM
  9. Getting started with chtMultiRegionSimpleFoam - planeWall2D
  10. guidance please: transient heat conduction between two solids
  11. chtMultiRegionFoam - different mesh on the 2 sides of a coupled boundary
  12. Block-Coupled Simulations Using OpenFOAM(Coupled two-phase fluid/solid (porous medium) heat transfer )
  13. Block coupled calculations in OpenFOAM(the existing segregated solver simpleFoam)
  14. http://www.tfd.chalmers.se/~hani/OFGBG12/slides/KlasJareteg.pdf
  15. Multiphysics Models for the Simulation of Solid Oxide Fuel Cells Subdomain coupling


有CFD或者of相关的问题,欢迎联系一起讨论,邮箱:wangyan14@mails.tsinghua.edu.cn。
请使用单位邮箱。
所需信息:
姓名
具体单位
职务职称
问题的具体描述,可以的话请带上相关的文献和代码等附件

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有