CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    MPPICFoam中颗粒分数的求解

    OpenFOAM
    4
    9
    2090
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • zhe
      zhe 最后由 李东岳 编辑

      这是求解粒子体积分数的公式:theta[celli] += p.nParticle()*p.volume();。但是,怎么才能得到nParticle? 这里的nParticle应该是每个cell里所含的粒子个数,这个值怎么才能得到?还有一点,这个code跟theta[p.cell()] += dt*p.nParticle()*p.volume();的区别是什么?请大家给解惑一下,谢谢。

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        @zhe 在 MPPICFoam中颗粒分数的求解 中说:

        nParticle

        这个是你自己给定的哦,在你的kinematicProperties里面有

        CFD高性能服务器 http://dyfluid.com/servers.html
        2023年,线下CFD课,预热一下 http://dyfluid.com/class.html

        zhe 1 条回复 最后回复 回复 引用
        • 星
          星星星星晴 最后由 编辑

          @zhe 在 MPPICFoam中颗粒分数的求解 中说:

          dt

          东岳老师说的没错,在你的constant中的kinematicproperties 中设置的,但是具体细节还要根据你的 injection model调整
          比如你用的fixed,mass,以及number,在injectionModel中查一下如何设定的吧

          体积分数公式不是这个,这个是求每个cell中的particle 的体积和,下面的哪个 theta.primitiveFieldRef() /=mesh_.V 得到的才是体积分数,这个函数返回的theta才是体积分数

          dt这些不知道是什么,在什么地方出现的啊? m3s?做一下量纲分析吧

          m.sui20@foxmail.com

          zhe 1 条回复 最后回复 回复 引用
          • zhe
            zhe @李东岳 最后由 编辑

            @东岳 首先谢谢东岳老师的回复。您所提到的particle properties 里的nparticle代表的是每一个Parcel中含有的particle数量,是自己设定的。但在我上面提到的公式里。这个应该是每个cell里particle的数量吧?这个公式是每个cell里particle占的总体积,没错。我想算出每个cell里的体积浓度。不是需要知道这个theta值吗?

            1 条回复 最后回复 回复 引用
            • zhe
              zhe @星星星星晴 最后由 编辑

              @星星星星晴 嗯,您说的对,下面的那个才是体积分数。想再请教一个额外的问题。在MPPICFoam中,粒子从一个cell转移到另一个cell中,是根据什么选择下一个cell的?这个算法应该在particle.C这个src文档里,但是因为我自己确实看不懂,所以才想问问论坛里的大家。是根据周围cell的浓度高低来选择,还是别的什么?希望您有时间一起讨论一下。谢谢🙏

              星 白 2 条回复 最后回复 回复 引用
              • 星
                星星星星晴 @zhe 最后由 编辑

                @zhe 我不用MPPICFoam 所以我不太了解具体是否因为浓度,我确认的一点是根据速度*lagrangian time step。

                这个是关于kinematic cloud的流程介绍,希望能帮到你
                https://openfoamwiki.net/index.php/OpenFOAM_guide/UML/lagrangian

                m.sui20@foxmail.com

                zhe 1 条回复 最后回复 回复 引用
                • 白
                  白礼耕 @zhe 最后由 编辑

                  @zhe 不太明白你的问题。如果你指的是“粒子是怎么移动的”,和运动相关的都要去src/lagrangian/intermediate/clouds/Templates/KinematicCloud中找。solve(TrackData& td)函数中,从preEvolve()到postEvovle()的过程,就是粒子运动轨迹被求解的过程。每当粒子穿过一个网格时,粒子的所属网格信息都会被更新。如果你指的是如何判断处在cell face上的粒子属于哪个网格,可以参照这篇博士论文:
                  Kärrholm, Fabian Peng. Numerical modelling of diesel spray injection, turbulence interaction and combustion. Gothenburg, Sweden: Chalmers University of Technology, 2008.
                  OpenFOAM的粒子追踪算法就是这个人提出的

                  zhe 1 条回复 最后回复 回复 引用
                  • zhe
                    zhe @白礼耕 最后由 编辑

                    @白礼耕 感谢🙏。我就是想问的这个问题。之前没弄清楚怎么表达。现在知道在哪个位置,也就好知道怎么回事了。谢谢了

                    1 条回复 最后回复 回复 引用
                    • zhe
                      zhe @星星星星晴 最后由 编辑

                      @星星星星晴 这个图,我研究过了,像下面一位朋友回答的,我表达的问题有错。不过,您的回答也让我拓宽了些我之前没想到的问题。谢谢。我也是刚接触不久,以后多学习了,希望也能为后来的人解惑。谢谢

                      1 条回复 最后回复 回复 引用
                      • First post
                        Last post