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



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

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

  • OpenFOAM讲师

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



  • @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都有单独的速度呢?


  • OpenFOAM讲师

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


Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2