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中文网

K

kdfluxit

@kdfluxit
关于
帖子
10
主题
2
群组
0
粉丝
0
关注
1

帖子

最新

  • 质量源项添加问题,参数rho无效
    K kdfluxit

    @dzw05
    不好意思, 刚仔细看了一遍看到了, 谢谢!


  • 质量源项添加问题,参数rho无效
    K kdfluxit

    最近也在做添加质量源项的事情, 搜索到了该帖子, 看到
    张RP Oct 10, 2019, 8:31 PM , 似乎作者rhoPimpleFoam里面采用scalarSemiImplicitySource添加源项获得了合理的结果.
    根据
    《dzw05 OPENFOAM教授 Oct 10, 2019, 3:32 PM》的回复, 因为pimpleFoam是不可压缩求解器, 所以没有rho.
    所以不能用

    massSource
    {
    type scalarSemiImplicitSource;
    timeStart 0.2;
    ...
    injectionRateSuSp
    {
    rho ();
    H2O ();
    }
    }
    

    我不太理解为什么 rhoPimpleFoam里面可以使用这种添加的方法. 因为我查看rhoPimpleFoam里面没有类似于

         fvScalarMatrix rhoEqn
         (
             fvm::ddt(rho)
           + fvc::div(phi)
           ==
             parcels.Srho(rho)
           + surfaceFilm.Srho()
           + fvOptions(rho)
         );
     
         rhoEqn.solve();
    

    显式地求解continuity equation.

    而是采用压力柏松方程, 所以, 我不确定在rhoPimpleFoam里, 采用scalarSemiImplicitySource给rho添加源项是否合理?

    希望有人看到能指教一下, 谢谢


  • 多孔介质多组分,交界面处真实物理场不连续
    K kdfluxit

    @l-j刘侃
    还想再请教一下, 您再前面的回复中提到的“实际上真实情况介面浓度更接近不连续”, 请问您有相关文献?
    从我的直觉上, 这一点实在很难解释, 想要稍微了解一下, 谢谢


  • 多孔介质多组分,交界面处真实物理场不连续
    K kdfluxit

    @l-j刘侃
    非常感谢您的解答. 我现在感觉有一些初步的认识了


  • 多孔介质多组分,交界面处真实物理场不连续
    K kdfluxit

    @l-j刘侃
    谢谢你的关注. 感谢你的资料, 我会认真了解一下.

    我目前关注的燃料电池的气体扩散层, 其厚度大概在200微米左右, 一般入口气体的速度与气体扩散层表面平行;
    但是仍然有一定的对流; 而且在这个很薄的区域内, 很可能这些对流对物质的输运比扩散更强. 对于目前的研究而言, 即使是 $10^-3$ m/s这个量级的速度都是值得注意的.
    因此, 我比较关注速度的计算, 尤其是气流从通道进入气体扩散层那个界面的速度.

    另外
    , 我参看过ANSYS FLUENT 18.2手册中 7.1.1.Species Transport Equations, 这里面说到, 如果计算瞬态, 就在瞬态的项上乘以一个孔隙度 $\epsilon$ , 方程就变成了
    $\frac{\partial \epsilon \rho Y_i}{\partial}$=
    右边的项与没有孔隙度时没有区别. 我项问一下, 我这样理解对吗?

    另外2
    同样在手册中 6.2.3.8. Modeling Porous Media Based on Physical Velocity
    里面谈到, 如果开启物理速度后标量方程的计算就是

    $\frac{\partial }{\partial t}(\epsilon \rho \phi) + \nabla \cdot (\epsilon \rho \vec{v} \phi) = \nabla \cdot (\epsilon \rho \Gamma \nabla \phi) + \epsilon S_{\phi}$

    这样看起来计算的就是物理速度了. 是否会对计算的准确性有一定帮助呢?

    ---- 这里我想请教一下, 虽然FLUENT计算的结果不对, 但是受压力驱动进入气体扩散层的趋势是否合理呢?
    或者FLUENT的这种计算方案, 哪些变量的趋势是比较合理的?


  • 多孔介质多组分,交界面处真实物理场不连续
    K kdfluxit

    @东岳
    谢谢您的关注;
    **表象物理量:**以组分摩尔浓度为例 在多孔介质中, 如果有一个控制体的体积是$V$, 控制体中孔隙的体积是$V_{pore}$, 这个控制体中某个的摩尔数为$n$, 表象浓度(superficial)为$\frac{n}{V}$, 这个浓度在将固体不分考虑进入了体积, 因此不是真实物理的浓度, 孔中的浓度为$\frac{n}{V_{pore}}$;
    由于上述方程中的$\rho$,是表象的量(质量除以控制体体积$V$), 因此在交界面处, 也是表象$\rho$连续. 因为求解的是连续方程, 交界面两侧的$\rho$是连续的, 但是将交界面两侧的表象量$\rho$换算成物理量, 就应该用表象量除以孔隙度, 即:
    $\frac{\rho}{\epsilon_{zone.1}}$,$\frac{\rho}{\epsilon_{zone.2}}$.
    这就会导致, 在交界面处, 表象的量$\rho$连续, 但是真实物理量$\frac{\rho}{\epsilon}$不连续


    回复: 多孔介质多组分
    谢谢您的关注;
    表象物理量以组分质量浓度ρ为例 在多孔介质中, 如果有一个控制体的体积是V, 控制体中孔隙的体积是Vpore, 这个控制体中某个组分的质量为m, 表象浓度(superficial)为ρ=mV, 这个浓度在将固体部分考虑进入了体积, 因此不是真实物理的浓度, 孔中的浓度为$\rho p=\frac{m}{V{pore}}$;由于上述方程中的\rho是表象的量(质量m除以控制体体积V),因此在交界面处,也是表象质量浓度连续.因为求解的是连续方程,交界面两侧的是连续的,但是将交界面两侧的表象量$\rho=\frac{m}{V}$换算成物理量$\rho_p=\frac{m}{V}$,就应该用表象量除以孔隙度,即:$\rho_p=\frac{\rho}{\epsilon}$,$\epsilon = \frac{V_{pore}}{V}$这就会导致,在交界面处,表象的量$\rho$连续,但是真实物理量$\rho _{pore}$不连续


  • 多孔介质多组分,交界面处真实物理场不连续
    K kdfluxit

    @kdfluxit
    不好意思, 问题编辑的不合适, 重新编辑一下问题
    FLUENT 中计算组分输运的公式为

    \begin{equation}
    \frac{\partial{\rho Y_i}}{\partial t} +\nabla\cdot(\rho \vec{v} Y_i)=\nabla \cdot (\rho D_i\nabla Y_i)) +S_i
    \end{equation}

    如果有三个连续的计算区域(区域之间边界条件为interior), 有两个区域为孔隙度不同的多孔介质.
    如图所示
    IMG_0282.JPG

    Zone.1为非多孔介质;
    Zone.2为孔隙度($\epsilon_2$)为0.5的多孔介质;
    Zone.3为孔隙度($\epsilon_3$)为0.1的多孔介质;

    有两个关注的交界面, Interface.1(Zone.1和Zone.2)和Interface.2(Zone.2和Zone.3)
    我同时打开多孔介质模型和组分输运模型.
    请问
    1.计算的组分浓度场($c_i$)是表象浓度场(superficial)吗?
    2.如果表象浓度场在交界面处是连续的, 那么两个区域在交界面处, 将表象浓度场($c_i$)除以孔隙度($\epsilon_2$和$\epsilon_3$)得到的真实浓度场在交界面处就是不连续的, 这似乎不太合理.
    请问有人遇到过类似问题吗?


  • 多孔介质多组分,交界面处真实物理场不连续
    K kdfluxit

    FLUENT 中计算组分输运的公式为
    \begin{equation}
    \frac{\partial{\rho Y_i}}{\partial t} +\nabla\cdot(\rho \vec{v} Y_i)=\nabla \cdot (\rho D_i\nabla Y_i)) +S_i
    \end{equation}

    如果有三个连续的计算区域(区域之间边界条件为interior), 有两个区域为孔隙度不同的多孔介质.
    我同时打开多孔介质模型和组分输运模型.
    计算的组分浓度场($c_i$)是表象浓度场(superficial)吗?
    如果表象浓度场在交界面处是连续的, 那么将表象浓度场($c_i$)除以孔隙度得到的真实浓度场在交界面处就是不连续的, 这似乎不太合理.
    请问有人遇到过类似问题吗?


  • 在不同的block中设置不同的物性参数
    K kdfluxit

    自问自答一波:
    我现在感觉好像是检查constant/porosityProperties 文件里面的字典. 只要里面存在字典 cellZone(键) 对应的 name_(值)的block就被当作是多孔介质, 然后通过

    cellZoneID = mesh.cellZone().indices(name_)
    

    这个函数来确认该区域的ID
    上述内容是在
    porosityModel.H porosityModel.C中感觉到的.但是没有找到实质的证据.


  • 在不同的block中设置不同的物性参数
    K kdfluxit

    我最终的目的是希望在不同的区域设置不同的扩散系数. 为了实现这个, 我觉得首先要识别区域, 因此想要参考已有的求解器中如何识别区域的. 在porousSimpleFoam的算例中有几个angledDuct的例子, 这几个例子里面在blockMeshDict 里面设置了三个区域: 分别命名为“inlet”, “porosity”, “outlet”. 我猜测porousSimpleFoam是通过名称来识别区域, 并确定是否添加多孔介质源项的. 因此, 我又查看了porousSimpleFoam求解器源代码里面: createPorousZones.H, 这里面有一句

    IOporosityModelList pZones(mesh);
    

    我又查看了IOporosityModelList的构造函数

    Foam::porosityModelList::porosityModelList
     (
         const fvMesh& mesh,
         const dictionary& dict
     )
     :
         PtrList<porosityModel>(),
         mesh_(mesh)
     {
         reset(dict);
         active(true);
     }
    

    里面用到了 reset()和active()两个函数来构造
    这两个函数的代码如下

     bool Foam::porosityModelList::active(const bool warn) const
     {
         bool anyOk = false;
         forAll(*this, i)
         {
             anyOk = anyOk || this->operator[](i).active();
         }
      
         if (warn && this->size() && !anyOk)
         {
             Info<< "No porosity models active" << endl;
         }
      
         return anyOk;
     }
      
      
     void Foam::porosityModelList::reset(const dictionary& dict)
     {
         label count = 0;
         for (const entry& dEntry : dict)
         {
             if (dEntry.isDict())
             {
                 ++count;
             }
         }
      
         this->resize(count);
      
         count = 0;
         for (const entry& dEntry : dict)
         {
             if (dEntry.isDict())
             {
                 const word& name = dEntry.keyword();
                 const dictionary& modelDict = dEntry.dict();
      
                 this->set
                 (
                     count++,
                     porosityModel::New(name, mesh_, modelDict)
                 );
             }
         }
     }
    

    但是我还是没有看出来是如何识别多孔区域的. 求大神给解释一下

  • 登录

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