美文网首页
基于coalChemistryFoam的稠密气固两相求解器开发(

基于coalChemistryFoam的稠密气固两相求解器开发(

作者: charryzzz | 来源:发表于2021-01-02 05:07 被阅读0次

基于coalChemistryFoam的稠密气固两相求解器开发

今天和大家一起学习一篇出自于Chalmers University of Technology的OpenFOAM课程的学生报告

对于气固两相流,如果颗粒间距远大于粒径,那么拉格朗日点源假设可以简化计算,但是当颗粒间距与粒径可比或者离散相的体积分数不可忽略,则常用的欧拉-拉格朗日方法可能不再适用,这篇报告的目的就是在欧拉-拉格朗日框架的基础上通过引入离散相的体积分数来魔改OF自带的coalChemistryFoam求解器(本报告针对的是OpenFOAMv1806)。

首先作者简要分析了coalChemistryFoam的框架,因为Lagrangian类比较复杂,有机会以后单独来讲,下面介绍关于体积分数的魔改
连续相控制方程如下(其实就是加了\alpha):
\frac{\partial\left(\alpha \rho_{g}\right)}{\partial t}+\nabla \cdot\left(\alpha \rho_{g} \mathbf{U}_{g}\right)=S_{m}
\frac{\partial( \alpha \rho_{g} \mathbf{U}_{g} )}{\partial t}+\nabla \cdot\left(\alpha \rho_{g} \mathbf{U}_{g} \mathbf{U}_{g}\right)-\nabla \cdot\left(\alpha \tau_{g}\right)-\nabla \cdot\left(\alpha \rho_{g} \mathbf{R}_{g}\right)=-\alpha \nabla p+\alpha \rho_{g} \mathbf{g}+S_{\mathbf{U}}
\frac{\partial\left(\alpha \rho_{g}(h+K)\right)}{\partial t}+\nabla \cdot\left(\alpha \rho_{g} \mathbf{U}_{g}(h+K)\right)-\nabla \cdot\left(\alpha \alpha_{e f f} \nabla(\mathrm{h})\right)=\alpha \nabla p+\alpha \rho_{g} \mathbf{U}_{g} \cdot \mathbf{g}+S_{h}
\frac{\partial\left(\alpha \rho_{g} Y_{i}\right)}{\partial t}+\nabla \cdot\left(\alpha \rho_{g} \mathbf{U}_{g} Y_{i}\right)-\nabla \cdot\left(\alpha D_{e f f} \nabla\left(\rho_{g} Y_{i}\right)\right)=S_{i}
在原有的coalChemistryFoam的基础上,需要做以下三点修改:

  1. 建立新的fields variables,主要就是体积分数\alpha
  2. 建立新的湍流模型
  3. 更新方程的求解

Alpha fields

createFields.H中将

#include "compressibleCreatePhi.H"

替换为

surfaceScalarField phi
(
    IOobject
    (
        "phi",
        runTime.timeName(),
        mesh,
        IOobject::READ_IF_PRESENT,
        IOobject::AUTO_WRITE
    ),
    linearInterpolate(U) & mesh.Sf()
);

这个OF中的phi在可压缩流中表示的就是质量通量,对比原来的compressibleCreatePhi.H

 surfaceScalarField phi
 (
     IOobject
     (
         "phi",
         runTime.timeName(),
         mesh,
         IOobject::READ_IF_PRESENT,
         IOobject::AUTO_WRITE
     ),
     linearInterpolate(rho*U) & mesh.Sf()
 );

不难发现\phi = \rho*U 被替换为\phi = U,为什么这么做大家可以思考一下
接着定义了连续相的体积分数

volScalarField alphac
(
    IOobject
    (
        "alpha",
        runTime.timeName(),
        mesh,
        IOobject::READ_IF_PRESENT,
        IOobject::AUTO_WRITE
    ),
    mesh,
    dimensionedScalar(dimless, Zero)
);

计算连续相体积分数

scalar alphacMin // 相体积分数的最小值 = 1 - 离散相体积分数的最大值
(
    1.0
  - readScalar
    (
        coalParcels.particleProperties().subDict("constantProperties")
       .lookup("alphaMax")
    )
);

// Update alphac from the particle locations
alphac = max(1.0 - coalParcels.theta() - limestoneParcels.theta(), alphacMin);
alphac.correctBoundaryConditions();

注意到这里调用了Lagrangian类中的theta()函数,这个函数应在OF源代码里是没有的,应该是作者自己定义的,但是作者提交的源代码里并没有Lagrangian类的部分,所以它是如何实现的我们不得而知,但是不难推断出theta()应该是返回离散相的体积。代码里coalParcelslimestoneParcels是离散相的名称,它们是在creatClouds.H文件中定义的:

Info<< "\nConstructing coal cloud" << endl;
coalCloud coalParcels
(
    "coalCloud1",
    rhoc,
    Uc,
    g,
    slgThermo
);

Info<< "\nConstructing limestone cloud" << endl;
basicThermoCloud limestoneParcels
(
    "limestoneCloud1",
    rhoc,
    Uc,
    g,
    slgThermo
);

因为以上的修改,phi不再表示质量通量,故定义新的rhoPhi

surfaceScalarField rhocPhic
(
    IOobject
    (
        "rhoPhi",
        runTime.timeName(),
        mesh,
        IOobject::READ_IF_PRESENT,
        IOobject::AUTO_WRITE
    ),
    fvc::interpolate(rhoc)*phic
);

surfaceScalarField alphaRhoPhic
(
    IOobject
    (
        "alphaRhoPhi",
        runTime.timeName(),
        mesh,
        IOobject::READ_IF_PRESENT,
        IOobject::AUTO_WRITE
    ),
    alphacf*rhocPhic
);

至此,体积分数\alpha及考虑体积分数的质量通量都定义好了,后续我们会继续学习余下部分:

  1. 建立新的湍流模型
  2. 更新方程的求解

相关文章

  • 基于coalChemistryFoam的稠密气固两相求解器开发(

    基于coalChemistryFoam的稠密气固两相求解器开发 前文链接:这里请插入上一篇的链接(基于coalCh...

  • 基于coalChemistryFoam的稠密气固两相求解器开发(

    基于coalChemistryFoam的稠密气固两相求解器开发 今天和大家一起学习一篇出自于Chalmers Un...

  • 新工具Get-Z3求解器

    首先z3求解器是什么呢? 它是由微软公司开发的一个优秀的SMT求解器(也就定理证明器),它能够检查逻辑表达式的可满...

  • 真空除气器

    真空除气器又称负压除气器,真空除气器在整个钻井液固控系统中平衡钻井压力起到了重要的的作用,能够有效清除泥浆中的有害...

  • MAC OS下安装和使用aspect

    aspect是目前比较活跃的地幔对流求解器,基于Deallii。 安装Dealii 在mac系统下安装也很简单,直...

  • OpenFOAM程序开发入门(3)

    六、OpenFOAM程序开发――求解器的详细分析1 进入icoFoam目录,可以看到createFields.H ...

  • 容不下

    是物有空间,可融什么先?性质未改变,物理反应点;升器大装小,同类状态前;固装液气多,液气固里面;思域有多大,浩瀚无...

  • 迷茫期

    整个实验思路还是没理顺,测了那些参数,最终还是达不到解决问题的目的。 也是,1957年至今,关于气固两相流的研究就...

  • chromium和cef的区别

    1 浏览器开发内核讨论 为何市场上的浏览器多数基于chromium开源代码而不是cef开发,基于此问题展开讨论,...

  • blockMesh-四分之一同心圆柱体网格

    最近需要仿真一个带有coflow的气固两相流射流火焰,其中气相采用DNS,如果进行完整计算域的CFD,网格量在千万...

网友评论

      本文标题:基于coalChemistryFoam的稠密气固两相求解器开发(

      本文链接:https://www.haomeiwen.com/subject/dxscoktx.html