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. 请问大神们,这个函数最后到底指向了哪????this->append(pPtr);

请问大神们,这个函数最后到底指向了哪????this->append(pPtr);

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

    请问大神们,这个函数最后到底指向了哪????
    位于
    /src/lagrangian/basic/Cloud.C

    template<class ParticleType>
    void Foam::Cloud<ParticleType>::addParticle(ParticleType* pPtr)
    {
        this->append(pPtr);
    }
    
    

    游荡

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #2

    就是给cloud添加粒子啊,this指的是使用的cloud,你描述一下想实现什么功能

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

    @yfclark

     scalar Re = rhoAv*Urmag*dChild/muAv;
    
            // Add child parcel as copy of parent
            SprayParcel<ParcelType>* child = new SprayParcel<ParcelType>(*this);
            child->origId() = this->getNewParticleID();
            child->d() = dChild;
            child->d0() = dChild;
            const scalar massChild = child->mass();
            child->mass0() = massChild;
            child->nParticle() = parcelMassChild/massChild;
    
            const forceSuSp Fcp =
                forces.calcCoupled(*child, dt, massChild, Re, muAv);
            const forceSuSp Fncp =
                forces.calcNonCoupled(*child, dt, massChild, Re, muAv);
    
            child->age() = 0.0;
            child->liquidCore() = 0.0;
            child->KHindex() = 1.0;
            child->y() = td.cloud().breakup().y0();
            child->yDot() = td.cloud().breakup().yDot0();
            child->tc() = 0.0;
            child->ms() = -GREAT;
            child->injector() = this->injector();
            child->tMom() = massChild/(Fcp.Sp() + Fncp.Sp());
            child->user() = 0.0;
            child->setCellValues(td, dt, celli);
    
            td.cloud().addParticle(child);
    

    所以说,最后addParticle会把child这个函数中的数据用来添加粒子。
    但是哪里能查到这个addParticle都需要什么参数呢?
    比如说我想增加child 的数量,单独设置每个child都有单独的速度呢?

    游荡

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #4

    我没仔细看,你的代码思路上没啥问题,addparticle传入一个particletype类型的指针,就是你前面用new创建的指针,但是好像参数不太对吧,new sprayparcel(一些参数),应该不是传入this指针,你可以参考一下injection model里面入射粒子部分的写法

    1 条回复 最后回复

  • 登录

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