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. 粒子库的move函数

粒子库的move函数

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

    各位好
    请教一个代码知识
    如下是kinematicparcel.C文件中的move函数
    微信截图_20220410185847.png
    想请教红框里面的代码的含义
    (我的理解是红框里的代码可以使得move函数中可以使用parcelType&p相关的变量比如p.cell(),不知道对不对)
    谢谢各位

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 杨英狄 最后由 编辑
    #2

    @杨英狄 是的,但是如果想要照抄到别的地方的话 可能不一定好使~
    建议不要研读过多的code,先实现你需要的功能即可,不然of是个无底深坑。。。

    游荡

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

    @星星星星晴 你好,想请教一下。我添加了一个函数,想在move里面调用,但是这个函数需要获取流场边界网格信息,所以变量里包括CloudType&owner 。但是,move函数里面没有这个变量。所以我需要模仿红框里面的代码,让我可以在move函数里面使用CloudType&owner。但是不知道该怎样模仿。不知道可否请教你一下。
    谢谢!

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 杨英狄 最后由 编辑
    #4

    @杨英狄 你好,你是自己添加了一个函数在kinematicparcel.c中?类似cellValueSourceCorrection这个函数?希望问题不是出在定义这个函数。。
    不知道下面的能不能解决你的问题

    获取某cell的某个field的值
    
    const objectRegistry& obr = this->mesh();
    rhoc = obr.lookupObject<volScalarField> ("rho").internalField() [celli];
    
    获取cell体积
    const objectRegistry& obr = this->owner().mesh();
       	scalar Vcell = this->owner().mesh().V() [cellI];
    
    
    在hitpatch中有这个
       typename TrackCloudType::parcelType& p =
           static_cast<typename TrackCloudType::parcelType&> (*this);
    
       const polyPatch& pp = p.mesh().boundaryMesh() [p.patch()];
    

    游荡

    杨英狄杨 1 条回复 最后回复
  • 杨英狄杨 离线
    杨英狄杨 离线
    杨英狄
    在 中回复了 星星星星晴 最后由 编辑
    #5

    @星星星星晴 非常感谢!我是做了一个cloudfunction,类似于move里面调用的postface函数,我想让我的cloudfunction被调用,所以打算也放在move里面

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 杨英狄 最后由 编辑
    #6

    @杨英狄 。。。我没理解你说的调用的地方

    could.functions().postFace() 和 cloudfunction是俩概念

    我建议你看看这个解释的调用流程。弄清楚是做一个cloud里的function 还是cloudfunction用作postmove
    https://openfoamwiki.net/index.php/OpenFOAM_guide/UML/lagrangian

    游荡

    杨英狄杨 2 条回复 最后回复
  • 杨英狄杨 离线
    杨英狄杨 离线
    杨英狄
    在 中回复了 星星星星晴 最后由 编辑
    #7

    @星星星星晴 好的谢谢!

    1 条回复 最后回复
  • 杨英狄杨 离线
    杨英狄杨 离线
    杨英狄
    在 中回复了 星星星星晴 最后由 编辑
    #8

    @星星星星晴 你好,是这样的。我的根本目的是做一个新的CloudFunctionObjects,就像particleerosion或者particleTrap这种。
    我发现particleTrap里面有postface函数。我注意到这个postface函数在kinematic.C文件里的move函数中被调用了。所以我就想把我的CloudFunctionObject里的could.functions().函数也加在move里面。(不太清楚particleTrap里面的postface函数与move函数里面调用的postface函数是不是一个东西)
    非常感谢!

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

    @杨英狄 不好意思 我对这个方程不是很了解,可能之前有说错的地方。

    但是我查了一下postface 这个函数就是定义在particletrap中,所以在kinematic.C中是通过这个方法调用的

    cloud.functions().postFace(p, ttd.keepParticle);
    

    你可以试着先copy particletrap这个cloudfunction,
    改个名particletrap2,方程改为postface2,
    重新编译一下,然后你在kinematicparcel的move中调用

    cloud.functions().postFace2(p, ttd.keepParticle);
    

    这俩code是可以用在cloudfunction中的

    获取某cell的某个field的值
    
    const objectRegistry& obr = this->mesh();
    rhoc = obr.lookupObject<volScalarField> ("rho").internalField() [celli];
    
    获取cell体积
    const objectRegistry& obr = this->owner().mesh();
       	scalar Vcell = this->owner().mesh().V() [cellI];
    

    游荡

    杨英狄杨 1 条回复 最后回复
  • 杨英狄杨 离线
    杨英狄杨 离线
    杨英狄
    在 中回复了 星星星星晴 最后由 编辑
    #10

    @星星星星晴 非常感谢你的帮助!:xinxin:

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 杨英狄 最后由 编辑
    #11

    @杨英狄 我简单看了一下 postPatch也是这样,
    CloudFunctionObjectList.C 别忘了。
    善用grep~

    我没做过你这种,可能你还有坑要跨过,先试着搭个架子,然后再往里面填东西。发现有问题咱们再说

    游荡

    杨英狄杨 1 条回复 最后回复
  • 杨英狄杨 离线
    杨英狄杨 离线
    杨英狄
    在 中回复了 星星星星晴 最后由 编辑
    #12

    @星星星星晴 太感谢了!:xinxin2:

    1 条回复 最后回复

  • 登录

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