@fubianhanshu
在particleIO.C下添加一行代码,注释原先的输出可以输出颗粒全局坐标。
os << position() << token::SPACE << celli_;
先采用最笨的方法,把保存时间步设置小,遍历读取坐标,其他的再慢慢实现,看着lagrangian粒子程序太复杂了
@fubianhanshu
在particleIO.C下添加一行代码,注释原先的输出可以输出颗粒全局坐标。
os << position() << token::SPACE << celli_;
先采用最笨的方法,把保存时间步设置小,遍历读取坐标,其他的再慢慢实现,看着lagrangian粒子程序太复杂了
@星星星星晴 谢谢哈,这个昨天我也看到了,我再看看他的这个实现思路。另外应该还有两种思路,一是:src/functioObjects/lagrangian/cloudInfo可以在计算过程总输出颗粒质量随时间的文本信息(这正是我想实现的效果),应该也可以将particle的坐标输出的程序代码到这里新建类,但是对于底层代码理解的不透,尝试了还没编译通。二是:至少v1706版本以后的functionObject/field/中都有particleDistribution库函数,也可以将它改写到of版本里实现,这个工作应该更大些,涉及太多的依赖头文件和关键字写法的不一样。
DPMFoam中将是不是可以实现颗粒位置信息按照时间顺序输出到postProcessing中的一个文本中?正常情况颗粒位置是保存在每个输出的时间步文件夹下有positions文本中的,我计算颗粒比较少,想要输出颗粒连续时间的位置,若是是每个时间步保存文件大小太大,且后期通过shell脚本遍历每个结果路径下的positions内容写入单独文本中比较麻烦。是不可以改写src/lagrangian/basic/IOPosition中的远程序实现,不知道具体怎么改,有前辈可以指点下吗?
@李东岳 这个实现了就能很好的解决关于颗粒的后处理问题了。一种是要想知道某个颗粒归属哪个网格就一直追踪这个颗粒的坐标,然后再确定网格;另一种是要知道某个网格内有哪几个粒子就像你说的遍历一遍网格确定粒子,会很慢。但可能还会遇到下面的问题,我在做CFD-DEM的时候在paraview中选取的粒子发现有两个编号,一个是:ID,一个是id,而且在多核计算的时候发现id会在跨越block时进行重新编号(后处理显示时),DPMFoam中应该不存在。
@sungda 好的,谢谢哈。我使用的5.X版本,跟liggghts耦合用,想要给定随距离变化的速度梯度作为初始场,我安装试下,有问题了向你多请教
@星星星星晴 我都是合成后处理的,选定某个粒子,整个时间序列ID号应该是不变的,多核分割后怎么处理界面的也不太清楚,我注意到分割后并行计算时,每个块内的粒子是动态变化的
@upc_ngh 选完后显示全域,装上Python后,用find找也很方便,就像楼下道友说的