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. cannot find file /kinematiccloud/collisionrecordspairaccessed

cannot find file /kinematiccloud/collisionrecordspairaccessed

已定时 已固定 已锁定 已移动 OpenFOAM
40 帖子 3 发布者 25.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #17

    @zhe 客气啥 这玩意现在没一个通用的模型解释嘛,要不咱还咋毕业。。。
    哈哈哈 我这都是吹牛逼可以,实际操作就费了 别客气

    祝收敛~
    祝稳定~

    你是做流化床么?流化床应该和你说的概念差不多吧

    游荡

    zheZ 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #18

    @zhe 我们这边考虑碰撞的时候 回头一个impact efficiency 的考量,就是小parcel可能会因为大parcel周围的流场 从而造成绕着大parcel 而不是与大parcel发生碰撞这种情况

    sommerfeld and lain
    influence of droplet collision….
    2020

    游荡

    zheZ 2 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #19

    @星星星星晴 不是流化床,我是做海岸的,哈哈。粒子启动和堆积很重要。所以研究粒子之间的比较多。

    1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #20

    @星星星星晴 那你们还是比较多的是考虑周围流体对粒子的影响。我已经不能再考虑那些了,否则又能做一个课题啦,哈哈哈

    1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #21

    @星星星星晴 有个问题请教一下,有时间帮忙看看。在计算粒子drag时,如果是ErgunWenYuDragForce。分了两个公式:
    if (alphac < 0.8)
    {
    return forceSuSp
    (
    Zero,
    (mass/p.rho())
    (150.0(1.0 - alphac)/alphac + 1.75*Re)muc/(alphacsqr(p.d()))

        );
    }
    else
    {
        return forceSuSp
        (
            Zero,
            (mass/p.rho())
           *0.75*CdRe(alphac*Re)*muc*pow(alphac, -2.65)/(alphac*sqr(p.d()))
        );
    }
    

    按道理将,这两个计算的都是beta值,也就是相对速度前面的那一部分。可是在第二个公式里,好像连两次的相对速度都已经包含在内了。还有,在KinematicParcel.C中,计算加速度时:const vector acp = (Fcp.Sp()*td.Uc() + Fcp.Su())/massEff;
    这里乘以td.Uc(),感觉不对啊。应该在这里乘以相对速度才更合理一些阿。麻烦给看看,实在是推导出来跟公式对不上。谢谢。

    zheZ 星 3 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 zhe 最后由 编辑
    #22

    @星星星星晴 理解错了。第二个公式CdRe(Re)本就只有一个CdRe。但是连个公式都在分母处除以的alphac,这造成跟最后的公式不同。还有第二个问题,应该是乘以相对速度(Uf-Up)的,怎么乘以里td.Uc().请解惑。

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #23

    @zhe
    在这个定义中 OpenFOAM-8/src/lagrangian/intermediate/submodels/Kinematic/ParticleForces/forceSuSp/forceSuSp.H

     Helper container for force Su and Sp terms.
            F = Sp(U - Up) + Su
        Explicit contribution, Su specified as a force
        Implicit coefficient, Sp specified as force/velocity
    
    

    所以 最后在return的时候 Sp和Su是完全不同的俩东西。 U就是td.Uc()

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #24

    @zhe
    我用的of8 是这样的 你用的那个版本啊?

    template<class CloudType>
    Foam::forceSuSp Foam::ErgunWenYuDragForce<CloudType>::calcCoupled
    (
        const typename CloudType::parcelType& p,
        const typename CloudType::parcelType::trackingData& td,
        const scalar dt,
        const scalar mass,
        const scalar Re,
        const scalar muc
    ) const
    {
        const scalar alphac =
            this->alphacInterp().interpolate
            (
                p.coordinates(),
                p.currentTetIndices()
            );
    
        if (alphac < 0.8)
        {
            return forceSuSp
            (
                Zero,
                mass/p.rho()*(150*(1 - alphac)/alphac + 1.75*Re)
               *muc/(alphac*sqr(p.d()))
            );
        }
        else
        {
            return WenYuDragForce<CloudType>::calcCoupled(p, td, dt, mass, Re, muc);
        }
    }
    

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #25

    @zhe 我查了一下of5 好像和你看的wrgunwenyudragforce 这部分相同,我就简单的做了一下量纲分析,最后得到的都是 $\frac{kg}{s}$ 所以得到的是Sp,Sp乘以速度 就是Su 就是力了$\frac{kgm}{s^2}$.

    因为我也不做这种考虑$\alpha$的drag,仅仅是根据自己之前的理解和你强行解释了一波,这玩意属于of的基础定义了~

    游荡

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #26

    @星星星星晴 是的,它算出来就是Sp(),需要乘以(Uf -Up),得出力来。我推导了一下,就是最后那个分母部分除以alphac有点儿对不上。但是粒子运动倒是对的。也没问题了。就是想看看有没有谁也因为这个纳闷过。谢谢啦,之后有问题咱们再讨论!

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 zhe 最后由 编辑
    #27

    @zhe 还是得细细来分解,最后发现,在计算相互作用力时,openfoam不是按着公式来的,而是分开算的相对速度。

    // Calculate the integration coefficients
    const vector acp = (Fcp.Sp()*td.Uc() + Fcp.Su())/massEff;  
    const vector ancp = (Fncp.Su() + Su)/massEff;
    const scalar bcp = Fcp.Sp()/massEff;
    
    // Integrate to find the new parcel velocity
    const vector deltaU = cloud.UIntegrator().delta(U_, dt, acp + ancp, bcp);
    const vector deltaUncp = ancp*dt;
    const vector deltaUcp = deltaU - deltaUncp;
    

    在这里可以看到的是,在计算粒子的速度总变化量时,引用里积分公式,根据自己选择的不同模型,得出不同的delta。大多是选择的Euler哈。将后面的4中参量带进去就可以看出来,这里面分别包含betaUf 和 -betaUp. 希望迷糊的朋友能放宽心用哈。

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #28

    @zhe 牛皮啊,不懂就问,什么事里积分公式?
    另外论坛支持 $\LaTeX$

    游荡

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #29

    @星星星星晴 打错字了,哈哈哈。Linux上面下载的中文输入法总出错。就是IntegrationScheme.

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #30

    @zhe 是 linux上确实输入法什么的比较蛋疼,我都是连单位cluster上算,然后本地处理,win mac都用。

    游荡

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #31

    @星星星星晴 是的是的。提到cluster,想请问你平时怎么把数据导出来的,有没有什么快的办法?我每次都很多files,光导出来就要很久。

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #32

    @zhe 没办法,这玩意是小文件导致的,无法解决,freefilesync 慢慢导呗,服务器上parallel reconstruct 然后就这样了

    游荡

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 星星星星晴 最后由 编辑
    #33

    @星星星星晴 好的,看来也是这样了。谢谢啊。有问题再请教!

    1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    写于 最后由 编辑
    #34

    @星星星星晴 又要麻烦了。我想不通一个问题。我想要精确一下我的drag的coef在特殊环境下计算结果。我用的case很简单,就是一个粒子从空气自由释放,落到水里,达到它的settling velocity。由于我只添加drag和gravity,在中间想要输出Fcp.Sp(),在KinematicParcel.C 中 加了Info << "Fcp.Sp() = " << Fcp.Sp() << endl;
    也就是drag的coef。但是却不会输出。我是用的collidingCloud,在motion里应该就是这个运动方程了。

    td.part() = parcelType::trackingData::tpLinearTrack;
    CloudType::move(cloud, td, deltaT);
    

    粒子运动的轨迹看起来是没问题的。如果不是在KinematicParcel.C 输出Fcp.Sp(), 那怎么可能会计算力的作用?为什么不输出我想要的那个呢?
    还有一个现象,当我的case包含粒子数目很多时,它却可以输出。希望你有时间了帮忙解惑,谢谢!

    星 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #35

    @zhe 在 cannot find file /kinematiccloud/collisionrecordspairaccessed 中说:

    粒子运动的轨迹看起来是没问题的。如果不是在KinematicParcel.C 输出Fcp.Sp(), 那怎么可能会计算力的作用?为什么不输出我想要的那个呢?
    还有一个现象,当我的case包含粒子数目很多时,它却可以输出。希望你有时间了帮忙解惑,谢谢!

    你是serial 还是parallel ? 有没有试过Pout 或者Cout
    Pout 配合 mpirunDebug.

    4.2.1 mpirunDebug
    Is a bash script which can start each process of the parallel run in an extra gdb session. This script can easily extended to start a gdb frontend for each process (download patched mpirunDebug file). Once this is done you'll get a separate GUI instance for each process, where you can set breakpoints etc. separately. This behaviour is similar to Totalview. Maybe one can utilise the session features from the GUI's in order to remember e.g. breakpoints.
    
    mpirunDebug -np 2 xxxFoam -parallel
    

    说实话,我没有考虑过这些,因为我只看有没有UTrans这个field有没有值,我没考虑过这些,我做喷雾的,用那种验证过drag model就好,没你这个那么仔细,或者你去drag force那边输出试试呢

    游荡

    zheZ 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 zhe 最后由 编辑
    #36

    @zhe 查了之前同事的code,他们有在 ParticleForces里面的calcCoupled中输出Su 和Sp 这样你就单独知道某一个力的作用了。
    就是用的Info

    游荡

    1 条回复 最后回复

  • 登录

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