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. No matching function for call

No matching function for call

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

    加这个了么

    #include "Random.H"
    

    https://dev.tencent.com/u/dyfluid/p/Solvers_DYFLUID/git/blob/master/randomNumber/randomNumber.C

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    写于 最后由 编辑
    #3

    添加了,在.H头文件上

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    写于 最后由 编辑
    #4

    为什么
    Foam::Random::scalar01() const 有个const?

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #5

    @星星星星晴 这我也不明白,我找了它的原函数也不是const,不知道为啥后面莫名其妙就多了一个const

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 李东岳 编辑
    #6

    @upc_ngh

     cachedRandom& rndGen = this->owner().rndGen();
    YY = rndGen.sample01<scalar>() * 2.0 - 1.0 + ROOTVSMALL;
    

    游荡

    U 2 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #7

    @星星星星晴 好的,多谢我用您这试试看

    1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 李东岳 编辑
    #8

    @星星星星晴 在 No matching function for call 中说:

    cachedRandom& rndGen = this->owner().rndGen();

    还是不行,一直在改,感觉调用一个很简单的函数,实现起来好难呀,昨天的方法和今天都编译不了,我把文件传上来pairCollision.zip ,哪位大佬帮忙看看:wolaile:

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

    @upc_ngh
    晕 他俩都不在一个class里 怎么能互相调用呢。。
    不确定能不能过,你试试看

    template<class CloudType>
    void Foam::PairSpringSliderDashpot<CloudType>::evaluatePair
    (
        typename CloudType::parcelType& pA,
        typename CloudType::parcelType& pB
    ) const
    {
    	
    cachedRandom& rndGen = this->owner().rndGen();
    。
    。
    。
    。
    
     scalar YY = rndGen.sample01<scalar>() * 2.0 - 1.0 + ROOTVSMALL;// I want to INfo the randomnumber everytime when I call this
     //evaluatePair function.
     Info<< "Random number = " << YY << endl
    
    
    }
    

    游荡

    U 1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    在 中回复了 星星星星晴 最后由 编辑
    #10

    @星星星星晴
    好吧还是不太对,报错是下面的样子,我再试试看吧,这和课本上的C++是不太一样,多谢多谢

    In file included from ./submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairSpringSliderDashpot/PairSpringSliderDashpot.T.H:186:0,
                     from ./parcels/include/makeParcelCollisionModels.H:34,
                     from parcels/derived/basicKinematicCollidingParcel/makeBasicKinematicCollidingParcelSubmodels.C:34:
    ./submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairSpringSliderDashpot/PairSpringSliderDashpot.T.C: In instantiation of 'void Foam::PairSpringSliderDashpot<CloudType>::evaluatePair(typename CloudType::parcelType&, typename CloudType::parcelType&) const [with CloudType = Foam::CollidingCloud<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >; typename CloudType::parcelType = Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> >]':
    parcels/derived/basicKinematicCollidingParcel/makeBasicKinematicCollidingParcelSubmodels.C:50:58:   required from here
    ./submodels/Kinematic/CollisionModel/PairCollision/PairModel/PairSpringSliderDashpot/PairSpringSliderDashpot.T.C:301:45: error: passing 'const Foam::CollidingCloud<Foam::KinematicCloud<Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > > > >' as 'this' argument discards qualifiers [-fpermissive]
     cachedRandom& rndGen = this->owner().rndGen();
                                                 ^
    In file included from ./clouds/Templates/KinematicCloud/KinematicCloud.T.H:621:0,
                     from ./clouds/derived/basicKinematicCollidingCloud/basicKinematicCollidingCloud.H:36,
                     from parcels/derived/basicKinematicCollidingParcel/makeBasicKinematicCollidingParcelSubmodels.C:26:
    ./clouds/Templates/KinematicCloud/KinematicCloudI.T.H:359:28: note:   in call to 'Foam::cachedRandom& Foam::KinematicCloud<CloudType>::rndGen() [with CloudType = Foam::Cloud<Foam::CollidingParcel<Foam::KinematicParcel<Foam::particle> > >]'
     inline Foam::cachedRandom& Foam::KinematicCloud<CloudType>::rndGen()
                                ^
    /home/ofuser/blueCFD/OpenFOAM-4.x/wmake/makefiles/general:251: recipe for target '/home/ofuser/blueCFD/OpenFOAM-4.x/platforms/mingw_w64GccDPInt32Opt/src/lagrangian/intermediate/makeBasicKinematicCollidingParcelSubmodels.o' failed
    make: *** [/home/ofuser/blueCFD/OpenFOAM-4.x/platforms/mingw_w64GccDPInt32Opt/src/lagrangian/intermediate/makeBasicKinematicCollidingParcelSubmodels.o] Error 1
    
    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 upc_ngh 最后由 编辑
    #11

    @upc_ngh

    好吧,我也没自己完全弄过这个东西,不过告诉你个好消息。
    再PairSpringSliderDashpot.C上 #include random.H
    然后在最下面的class:evaluatePair 尝试通过,你可以试试。

    Random rndGen(0);
    scalar samples = rndGen.scalar01();
    
    你可以看看这个例子怎么调用的random
    /opt/openfoam/OpenFOAM-4.1/applications/test/BinSum
    

    游荡

    1 条回复 最后回复
  • U 离线
    U 离线
    upc_ngh
    写于 最后由 编辑
    #12

    好的,我认真看看,非常感谢您的回答,谢谢

    1 条回复 最后回复

  • 登录

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