拉格朗日一个bug
-
这个跟颗粒追踪算法的更新有关吧,在 Openfoam 5.0 的发布说明里有提到(OpenFOAM Barycentric Tracking),更新之后颗粒输出的格式与之前版本不兼容。
在
$FOAM_SRC/lagrangian/basic/particle/particleIO.C
中可以看到保存颗粒位置信息时的区别(writePosition
函数):之前版本中为
os << position_ << token::SPACE << celli_;
在 5.0 版中为
os << coordinates_ << token::SPACE << celli_ << token::SPACE << tetFacei_ << token::SPACE << tetPti_; 变量的定义在
$FOAM_SRC/lagrangian/basic/particle/particle.H
中可以找到。 -
有道理!确实输出的是
os << coordinates_ << token::SPACE << celli_ << token::SPACE << tetFacei_ << token::SPACE << tetPti_; 5.x下面怎么后处理呢?paraview提示
ERROR: In /home/buildslave/dashboards/buildbot/paraview-pvbinsdash-linux-shared-release_superbuild/build/superbuild/paraview/src/VTK/IO/Geometry/vtkOpenFOAMReader.cxx, line 8285 vtkOpenFOAMReaderPrivate (0x5e89d60): Error reading line 20 of /home/dyfluid/OpenFOAM_tutorials/5.x/lagrangian/DPMFoam/Goldschmidt/0.01/lagrangian/kinematicCloud/positions: Expected punctuation token ')', found 0
我看5.0把
position
位置矢量写到obj文件里面去了 -
请问有好的方式处理这个问题吗?
-
@浪迹天大 今天遇到了这个问题,解决方法就是楼上说的,用paraFoam 打开
-
@Yufeng-Wei 要么改用基金会版本,基金会版本专门做了优化,自动把质心坐标转化为三维坐标,要么试一试这个https://github.com/blueCFD/lagrangianExtraFunctionObjects
-
我也遇到了这个问题,查了一圈~发现FoamToVTK比较好使,可以输出保存颗粒数据,但是一定注意scv文件不要用excel打开,否则会自动删减数据!(这是什么神奇的操作不清楚)
-
用blueCFD转化了粒子坐标后(https://github.com/blueCFD/lagrangianExtraFunctionObjects/tree/OF5x) 突然遇到了另一个报错 看起来像是转化过程中浮点数出错了 后面找了代码 发现是调用了regIOobject::write(cloud_.size())这个函数,然而我只在of里找到了 virtual bool write(const bool write = true) const这个函数 看起来不太对的样子
-
在OpenFOAM5.X之后的版本中都改了这个position文件的记录方式,那如果想得到粒子的位置信息从而得到轨迹,是不是需要使用p.position函数得到坐标矢量,存到新的矢量变量中,这样就可以得到粒子坐标轨迹了
-
-
12/15