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. DPM粒子受力分析

DPM粒子受力分析

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

    在DPM中粒子所受力例如重力、虚拟质量力等都是通过forceSuSp中的vector Su以及scalar Sp来决定的,最后通过KinematicParcel.C来计算Fcp以及Fncp(这个地方是每个力单独耦合求解速度还是把所有的力都考虑进来一起耦合),不知道理解的对不对,现在我想要把每个粒子的单独受力比如重力、虚拟质量力等都单独写出来,不知道各位老师有没有什么办法去实现?Ps:我看另一个帖子中写到F=Su*(U-Ud)+Sp.这个是在哪里出现的我也没找到,Ud是啥,可以直接用吗?

    这是单独一个力的以重力为例:

    template<class CloudType>
    Foam::forceSuSp Foam::GravityForce<CloudType>::calcNonCoupled
    (
        const typename CloudType::parcelType& p,
        const scalar dt,
        const scalar mass,
        const scalar Re,
        const scalar muc
    ) const
    {
        forceSuSp value(Zero, 0.0);
    
        value.Su() = mass*g_*(1.0 - p.rhoc()/p.rho());//这里求出来Su
    
        return value;
    }
    

    这是KinematicParcel.C出现通过力算速度的:

    const forceType& forces = td.cloud().forces();
    //这是最后粒子受力耦合求解速度
        // Momentum source due to particle forces
        const parcelType& p = static_cast<const parcelType&>(*this);
    //这个地方是每个力单独耦合求解速度还是把所有的力都考虑进来一起耦合??
        const forceSuSp Fcp = forces.calcCoupled(p, dt, mass, Re, mu);
        const forceSuSp Fncp = forces.calcNonCoupled(p, dt, mass, Re, mu);
        const forceSuSp Feff = Fcp + Fncp;
        const scalar massEff = forces.massEff(p, mass);
        // New particle velocity
        //~~~~~~~~~~~~~~~~~~~~~~
        // Update velocity - treat as 3-D
        const vector abp = (Feff.Sp()*Uc_ + (Feff.Su() + Su))/massEff;
        const scalar bp = Feff.Sp()/massEff;
    
        Spu = dt*Feff.Sp();
    
        IntegrationScheme<vector>::integrationResult Ures =
            td.cloud().UIntegrator().integrate(U_, dt, abp, bp);
    
        vector Unew = Ures.value();
    
    1 条回复 最后回复

  • 登录

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