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. 运行结束后输出密度rho

运行结束后输出密度rho

已定时 已固定 已锁定 已移动 OpenFOAM
44 帖子 7 发布者 17.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • R 离线
    R 离线
    Rachel0096
    写于 最后由 编辑
    #1

    我是个openfoam新手,请教一下各位老师:

    我的算例计算时没有输出密度rho,在计算结束后,还有办法输出吗?

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

    如果不可压缩的话,那就是不会输出rho的

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

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

    @李东岳 老师你好,是可压缩的算例,我在计算的后期修改求解器的代码输出了rho,现在想通过后处理手段补上前期时刻的rho

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

    可压缩算例都应该输出rho啊,你是哪个求解器

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

    1 条回复 最后回复
  • M 离线
    M 离线
    myheart
    在 中回复了 Rachel0096 最后由 编辑
    #5

    @Rachel0096 界友你好,请教一下你是进行了什么更改使求解器能输出rho的?还有reactingFoam这个求解器能算可压缩流动么?:xinxin:

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wangfei9088 大神
    在 中回复了 myheart 最后由 编辑
    #6

    @myheart reactingFoam不能算可压。

    把createFields.H里rho的构造函数加两行就可以输出密度了,如下:

     volScalarField rho
     (
         IOobject
         (
             "rho",
             runTime.timeName(),
             mesh,                 //加逗号
             IOobject::NO_READ,    //
             IOobject::AUTO_WRITE  //
         ),
         thermo.rho()
     );
    
    M 1 条回复 最后回复
  • M 离线
    M 离线
    myheart
    在 中回复了 wangfei9088 最后由 编辑
    #7

    @wangfei9088 感谢大神赐教!既然reactingFoam不能算可压那rhoReactingFoam是不是应该就可以?(貌似后者考虑了温度导致的密度变化,将密度作为一个独立的变量进行计算)

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wangfei9088 大神
    在 中回复了 myheart 最后由 编辑
    #8

    @myheart rhoReactingFoam也不能算可压。
    reactingFoam和rhoReactingFoam分别用的是psiReactionThermo和rhoReactionThermo,区别是基于可压缩性和密度的热物性(thermodynamic properties),不是流场。

    M 1 条回复 最后回复
  • M 离线
    M 离线
    myheart
    在 中回复了 wangfei9088 最后由 编辑
    #9

    @wangfei9088 那如果这样的话,OpenFoam就没有原生的可用于可压缩流的燃烧求解器了是么?

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wangfei9088 大神
    在 中回复了 myheart 最后由 编辑
    #10

    @myheart 是的。

    M 风 3 条回复 最后回复
  • M 离线
    M 离线
    myheart
    在 中回复了 wangfei9088 最后由 编辑
    #11

    @wangfei9088 了解了,感谢:142:

    1 条回复 最后回复
  • 风 离线
    风 离线
    风云5091
    在 中回复了 wangfei9088 最后由 编辑
    #12

    @wangfei9088 前辈您好,最近在学习reactingFoam源码,请问reactingFoam求解器的不可压缩性体现在什么方面呀?它的连续性方程采取的也是可压缩的那一套,我理解的不可压缩性可能指的是某种物质的密度不随温度变化,比如甲烷等等?而每个网格的密度由于网格中不同组分的质量分数不同所以必然会发生改变,不知我的猜想是否对吗,没有在源码中找到相关的说明:xinxin:

    W 1 条回复 最后回复
  • 风 离线
    风 离线
    风云5091
    在 中回复了 wangfei9088 最后由 编辑
    #13

    @wangfei9088 前辈还有就是openfoam中如果要实现输出单个反应的反应速率应该怎么实现呀,我看很多文献中的敏感性分析都用到了这个,从算完的结果中能直接导出来吗:xinxin:

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wangfei9088 大神
    在 中回复了 风云5091 最后由 编辑
    #14

    @风云5091 可压缩指的是处理间断吧,超音速,激波等等,可以看东岳老师写的解析。
    reactingFoam里混合物密度的处理是每个组分的理想气体状态方程得到的密度之和。
    $$
    \begin{equation}
    \rho = \sum_{k=1}^N \rho_k
    \end{equation}
    $$
    以OpenFOAM-v2012为例,perfectGasI.H 计算每个组分的密度:

     template<class Specie>
     inline Foam::scalar Foam::perfectGas<Specie>::rho(scalar p, scalar T) const
     {
         return p/(this->R()*T);
     }
    

    混合物的特性(包括密度)是在multiComponentMixture.H 里计算的,四个函数里分别乘以质量分数:

             const ThermoType& cellMixture(const label celli) const;
      
             const ThermoType& patchFaceMixture
             (
                 const label patchi,
                 const label facei
             ) const;
      
             const ThermoType& cellVolMixture
             (
                 const scalar p,
                 const scalar T,
                 const label celli
             ) const;
      
             const ThermoType& patchFaceVolMixture
             (
                 const scalar p,
                 const scalar T,
                 const label patchi,
                 const label facei
             ) const;
    

    混合物中每个组分的密度也可以在SpecieMixture.C 中获取。

     template<class MixtureType>
     Foam::scalar Foam::SpecieMixture<MixtureType>::rho
     (
         const label speciei,
         const scalar p,
         const scalar T
     ) const
     {
         return this->getLocalThermo(speciei).rho(p, T);
     }
    

    最后,网格和边界里的密度是在哪儿计算并更新的呢?hePsiThermo.C或heRhoThermo.C。

    这些都是源码里提供的,供参考。

    风 1 条回复 最后回复
  • W 离线
    W 离线
    wangfei9088 大神
    在 中回复了 风云5091 最后由 wangfei9088 编辑
    #15

    @风云5091 OpenFOAM-v2012中有个reactionsSensitivityAnalysis ,具体是在controlDict里加一段:

    functions
    {
        sensitivityAnalysis
        {
            libs                (fieldFunctionObjects);
            type                psiReactionsSensitivityAnalysis;
            writeControl        writeTime;
        }
    }
    
    

    可能对你有用,供参考。

    风 1 条回复 最后回复
  • 风 离线
    风 离线
    风云5091
    在 中回复了 wangfei9088 最后由 编辑
    #16

    @wangfei9088 好的好的,谢谢前辈!!

    1 条回复 最后回复
  • 风 离线
    风 离线
    风云5091
    在 中回复了 wangfei9088 最后由 编辑
    #17

    @wangfei9088 前辈这个我之前说的有点问题,我之前以为敏感性分析就是分析每个基元反应的速率,结果好像不是!我目前就是想得到计算收敛后每个基元反应的速率,然后和流场结果对比一下,确定在哪块流场区域哪个基元反应相对更重要:xinxin: :xinxin:

    W 1 条回复 最后回复
  • W 离线
    W 离线
    wangfei9088 大神
    在 中回复了 风云5091 最后由 wangfei9088 编辑
    #18

    @风云5091 我的知识也有限,没见过后处理有这个计算基元反应速率的功能。提供个思路。
    StandardChemistryModel.H 里有计算某个反应中某个组分反应速率的函数:

                 //- Return reaction rate of the speciei in reactionI
                 virtual tmp<volScalarField::Internal> calculateRR
                 (
                     const label reactionI,
                     const label speciei
                 ) const;
    
    

    specieReactionRates.C 用到了上面那个函数,得到的是总的反应速率:

                 volScalarField::Internal RR
                 (
                     chemistryModel_.calculateRR(ri, si)
                 );
    

    我想应该可以仿照它写一个满足要求的functionObjects吧。供参考。

    风 尚 3 条回复 最后回复
  • 风 离线
    风 离线
    风云5091
    在 中回复了 wangfei9088 最后由 编辑
    #19

    @wangfei9088 好的,感谢前辈提供的思路,基元反应速率在我研究的这个领域还挺重要的,至少我看的大部分文献里都提到了这个,暑假可能要多学习学习openfoam代码了:xinxin: :xinxin:

    1 条回复 最后回复
  • 风 离线
    风 离线
    风云5091
    在 中回复了 wangfei9088 最后由 李东岳 编辑
    #20

    @wangfei9088 如果可以的话,前辈您可以提供一些您当时学习燃烧这块openfoam源代码的思路/资料吗,感觉这块李老师研究的也比较少,网上能搜索到的资源也比较少。

    W 1 条回复 最后回复

  • 登录

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