Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

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

    OpenFOAM
    2
    4
    642
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 星
      星星星星晴 last edited by

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

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

      在写博士毕业论文,寻找postdoc或者职位中~
      m.sui20@foxmail.com

      1 Reply Last reply Reply Quote
      • Y
        yfclark 讲师 last edited by

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

        星 1 Reply Last reply Reply Quote
        • 星
          星星星星晴 @yfclark last edited by

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

          在写博士毕业论文,寻找postdoc或者职位中~
          m.sui20@foxmail.com

          1 Reply Last reply Reply Quote
          • Y
            yfclark 讲师 last edited by

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

            1 Reply Last reply Reply Quote
            • First post
              Last post

            CFD中文网 | 东岳流体 | 京ICP备15017992号-2
            论坛登录问题反馈可联系 li.dy@dyfluid.com