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中文网

P

pcwang

@pcwang
关于
帖子
5
主题
2
群组
0
粉丝
1
关注
1

帖子

最新

  • waves2Foam 运行 waveFoam 命令出错
    P pcwang

    @李东岳 东岳老师您好,感谢您的回复。我重新安装gcc 9.4.0和gsl 2.7之后,使用root账户尝试编译发现错误,如下:

    make[1]: *** [/home/user1/OpenFOAM/user1-v2012/platforms/linux64GccDPInt32Opt/bin/faceSetToSTL] Error 1 
    make[1]: Leaving directory `/home/user1/OpenFOAM/user1-v2012/applications/utilities/waves2Foam/applications/utilities/preProcessing/faceSetToSTL' 
    make: *** [faceSetToSTL] Error 2
    

    想询问一下这种错误是来自 gsl 版本问题吗?或者是否需要重新编译OpenFOAM-v2012(之前使用的gcc 4.8.5 编译的v2012)?


  • waves2Foam 运行 waveFoam 命令出错
    P pcwang

    各位老师,同学大家好:
    今天在课题组服务器编译waves2Foam之后,运行了waveFoam -help命令,终端出现报错,如下所示。查询之后说是内存出现问题。想问一下是在编译 waves2Foam 有问题吗?
    版本:
    OpenFOAM-v2012;
    waves2Foam-r2154;
    系统CentOS Linux release 7.9.2009;
    gcc version 4.8.5 20150623 (Red Hat 4.8.5-44) (GCC)
    9f1ad8e9-a7c6-456d-ab6a-046fea70d20b-image.png


  • interFoam 或 interDyMFoam 如何调用 sixDoFRigidBodyMotion 类?
    P pcwang

    @bestucan
    非常感谢您的回复,对我的启发很大。

    之前提到的硕士论文中的流程图如下:

    sixDoFRigidBodyMotion模块代码实现流程.png

    我之前一直在研究interDyMFoam.C对sixDoFRigidBodyMotion类的调用流程,以及sixDoFSolver下的Newmark.C的源码结构,所以忽略了对于速度v这个变量定义的位置。我去看了一下sixDoFSolver和sixDoFRigidBodyMotion这两个类的头文件。

    六自由度运动求解器sixDoFSolver在sixDoFSolver.H62行处,声明了一个sixDoFRigidBodyMotion的类:

    sixDoFRigidBodyMotion& body_;
    

    而在sixDoFRigidBodyMotion类的头文件sixDoFRigidBodyMotion.H中,在第79到83行,有如下声明:

    //- Motion state data object
    sixDoFRigidBodyMotionState motionState_;
      
    //- Motion state data object for previous time-step
    sixDoFRigidBodyMotionState motionState0_;
    

    并且对于速度v、加速度a的声明,源码中将其声明为内联函数,在sixDoFRigidBodyMotionI.H中的第143到第152行:

     inline const Foam::vector& Foam::sixDoFRigidBodyMotion::v() const
     {
         return motionState_.v();
     }
      
      
     inline const Foam::vector& Foam::sixDoFRigidBodyMotion::a() const
     {
         return motionState_.a();
     }
    

    所以按照代码的思路和我的理解,应该是将所有的状态量如速度v、加速度a等,保存在sixDoFRigidBodyMotionState这个类中,并且除了当前时间步的运动状态,前一时间步的运动状态也能够访问。

    关于取速度的问题,我认为是可行的。在查阅源码时,见到了sixDoFRigidBodyMotionRestraint的子类linearDamper::restrain()调用了sixDoFRigidBodyMotion的v()。

    sixDoFRigidBodyMotion_v().png

    代码在linearDamper.C的第73到89行,如下

     void Foam::sixDoFRigidBodyMotionRestraints::linearDamper::restrain
     (
         const sixDoFRigidBodyMotion& motion,
         vector& restraintPosition,
         vector& restraintForce,
         vector& restraintMoment
     ) const
     {
         restraintForce = -coeff_*motion.v();
         restraintMoment = Zero;
      
         if (motion.report())
         {
             Info<< " force " << restraintForce
                 << endl;
         }
     }
    

    不难理解,阻尼与速度成正比,所以需要得到六自由度浮体的速度v,即公式中的motion.v()。而调用restrain函数需要把sixDoFRigidBodyMotion& motion传入,因此实现了对速度的调用。

    除此之外,类似的像是 sphericalAngularDamper、sphericalAngularSpring、linearAxialAngularSpring、tabulatedAxialAngularSpring这些约束模型,实现了对角速度omega()的调用,如下图所示

    sixDoFRigidBodyMotion_omega().png

    以上是我的一些拙见,有错误的地方还请多多指点。


  • interFoam 或 interDyMFoam 如何调用 sixDoFRigidBodyMotion 类?
    P pcwang

    @bestucan 感谢您的回复。

    这几天我在知网找到了一篇硕士论文,其中在第二章第2.3节有对sixDoFRigidBodyMotion类的调用的介绍,以下是硕士论文的网址:
    WEC-防波堤集成系统能量捕获效率与消波性能研究

    [1]毛艳军. WEC-防波堤集成系统能量捕获效率与消波性能研究[D].大连理工大学,2019.DOI:10.26991/d.cnki.gdllu.2019.001609.

    我目前遇到的另一个困难是,我想把浮体的位移和速度通过sixDoFRigidBodyMotion下的restraint类传递给系泊线。希望通过一个新的约束模型,调用浮体的位移和速度矢量,作为系泊计算的边界条件。但是目前还没有找到相应的变量或者代码,不知道@bestucan 老师您有什么高见?


  • interFoam 或 interDyMFoam 如何调用 sixDoFRigidBodyMotion 类?
    P pcwang

    各位老师朋友们大家好,我的课题是关于漂浮式平台,目前需要将系泊线的外力和力矩耦合到浮体上,将浮体的位移和速度传递给系泊线作为边界条件,从而进行双向耦合。想请教一下各位在 interFoam 或 旧版本中的 interDyMFoam 中是如何调用 sixDoFRigidBodyMotion 的?

  • 登录

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