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. 小白求助——floatingobject算例浮块突然失去浮体性质

小白求助——floatingobject算例浮块突然失去浮体性质

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

    请教各位,最近在floatingobject算例的基础上进行了一些修改——将浮体放到水下,密度仍然小于水,理想情况下应该上浮,但是从结果看浮体却失去了其性质,在水面扰动下也依旧一动不动,请大佬们指点迷津。微信图片_1.jpg

    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #2

    基础上进行了一些修改

    把那个基础找出来,重新修改。一点点一点点修改,不要一下把修改做完。每做一点点修改就跑一遍算例,看看在正常不。就知道哪一点点修改导致的不正常了。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    A 1 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    在 中回复了 bestucan 最后由 李东岳 编辑
    #3

    @bestucan微信图片_2.png 感谢回复,我现在解决了这个问题,浮块可以实现上浮了,但是在进一步修改的时候又出现了另外的问题。在水面以上加设了一个垂向震荡物块,水下的物块不变。但是运行报错(图如下第一张)。这个错误网上有人问过,按照我的理解是此时floatingobject在水中的上浮不能进行计算了,可是为啥添加震荡物块之前没问题,之后就不行了呢?是因为一个dynamicMeshDict里不能让两个域运动起来嘛,求大佬解答。下面是报错的结果、动网格文件和模型图。

    FoamFile
    {
        version     2.0;
        format      ascii;
        class       dictionary;
        object      dynamicMeshDict;
    }
    // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
    dynamicFvMesh       dynamicMotionSolverFvMesh;
    
    motionSolverLibs   (rigidBodyMeshMotion);
    motionSolver       rigidBodyMotion;
    
    rigidBodyMotionCoeffs
    {
        report          on;
    
        solver
        {
            type Newmark;
        }
    
        accelerationRelaxation 0.7;
    
        bodies
        {
            floatingObject
            {
                type            cuboid;
                parent          root;
    
                // Cuboid dimensions
                Lx              2;
                Ly              2;
                Lz              2;
    
                // Density of the cuboid
                rho             800;
    
                // Cuboid mass
                mass            #eval{ $rho*$Lx*$Ly*$Lz };
                L               ($Lx $Ly $Lz);
                centreOfMass    (0 0 1);//
                transform       (1 0 0 0 1 0 0 0 1) (5 5 2);
    
    
                joint
                {
                    type            composite;
                    joints
                    (
                        {
                            type Pxyz;
                        }
                        {
                            type Rxyz;
                        }
                    );
                }
    			
    			/*restraints 
    			{
    
    				verticalSpring
    				{
    					body                     floatingObject;
    					sixDoFRigidBodyMotionRestraint linearSpring;
    					anchor          (5 5 8);
    					refAttachmentPt (5 5 4);
    					stiffness       2;
    					damping         0.00;
    					restLength      3;
    				}
                }*/
    			
                patches         (floatingObject);
                innerDistance   0.05;
                outerDistance   5.75;
            }		
        }
    }
    
    dynamicFvMesh   dynamicMotionSolverFvMesh;
    
    motionSolverLibs   ("libfvMotionSolvers.so");
    motionSolver    displacementLaplacian;	
    
    displacementLaplacianCoeffs
    {
    	diffusivity inverseDistance (Object);
    }
    ![2.0000.png](/assets/uploads/files/1645450190145-2.0000.png) 
    
    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #4

    我抽空看了一下,然后,没看懂...:135:

    报错提示

    you are probably trying to solv3e for a field with a default boundary condition.

    你可以从这个 搜索链接 上看cfd online上关于该报错的搜索结果。我没做过这个,不太了解。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    A 1 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    在 中回复了 bestucan 最后由 编辑
    #5

    @bestucan 不好意思,可能我的表述有所欠缺。我试着换一种问法,请问一个动网格文件dynamicMeshDict里可以计算计算域中两处网格的运动吗(我目前涉及到的只有计算域中一个东西运动)?就像上面贴出的代码,那是我的动网格文件里的,代码上面的部分是控制水中物体上浮,下面的是控制水面以上的物体运动。我分别运行是没有问题的,但是合起来就报错了,我怀疑是放到一起导致的。不知这次有没有将问题描述清楚,求解答,感谢老师。

    李东岳李 bestucanB 2 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    在 中回复了 AXY 0 最后由 编辑
    #6

    看一下你cellDisplacement的边界条件。这个需要时calculated,你可能给了边界条件

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

    A 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 AXY 0 最后由 编辑
    #7

    @axy-0 我说的看不懂不是你的描述看不懂,是我看不懂这个领域的问题和代码:chigua2:

    不过你描述的更详细,我不懂也能找到一些相关资料。

    看这个的第七页底部的 motionSolverLibs 配置。两个浮体求解器。你的只有一个。但估计是求解方法不一样。

    还有这个,应该是用一个求解器求解两个浮体。

    看哪个对你有用。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    A 2 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    在 中回复了 李东岳 最后由 李东岳 编辑
    #8

    @李东岳 感谢李老师回复,我零文件下的pointdisplacement代码如下,水中物体的边界类型我一开始设置为calculated,就出现了上面的报错提示,报错后我设置为了固定数值fixedvalue,就可以运行了,但与此带来的就是水中物体失去浮体性质。

    dimensions      [0 1 0 0 0 0 0];
    
    internalField   uniform (0 0 0);
    
    boundaryField
    {    
    
        stationaryWalls
        {
            type            fixedValue;
            value           uniform (0 0 0);
        }
    
        atmosphere
        {
            type            fixedValue;
            value           uniform (0 0 0);
        }
    
        floatingObject
        {
            type         	calculated;   			
            value           uniform (0 0 0);
        }
      
    	Object
        {
            type            oscillatingDisplacement;
    		omega           6.28;
    		amplitude       (0 0 0.5);
    		value           uniform (0 0 0);
        }
    
    }
    
    1 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    在 中回复了 bestucan 最后由 编辑
    #9

    @bestucan 感谢这位老师的帮助,今天有点小忙,先马一下您的资料:140:

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #10

    因为你设置为固定值了,所以就失去浮动特征了。你要设置成calculated

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

    1 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    在 中回复了 bestucan 最后由 编辑
    #11

    @bestucan 您好,现在我解决了之前的问题,两个物体可以保持自身的运动状态了。所以又想继续在两个物体之间添加一个弹簧,因为我现在还看不懂c++的代码,因此只能依照您给的双附体的那份资料依葫芦画瓢,在修改sixdofrigidbodymotion代码后进行编译,在编译过程中出现了点问题,但也没有报error,请您指点以下问题所在。
    6.0000.png QQ图片2.png

    1 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    写于 最后由 编辑
    #12

    @李东岳 感谢老师回复,现在我解决了之前的问题,在进一步往下做。

    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #13

    myLinearSpring.C 无法编译。

    想把它整的能编译就比较麻烦了, 这不是 C++ 而是 makefile 的知识。本来就一个 makefile 的话也不算特别麻烦。 OpenFOAM 自己封装了个 wmake,把 makefile 分放到 Make 文件夹里的 file 和 option 了。

    依赖的源文件和库都在那里写着。myLinearSpring.C.dep 就是编译源文件依赖的文件。要么是 myLinearSpring.C 的位置不对,要么是编译路径没配置对。

    参考这个,不过这个是 makefile 不是 wmake

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    A 1 条回复 最后回复
  • A 离线
    A 离线
    AXY 0
    在 中回复了 bestucan 最后由 编辑
    #14

    @bestucan 感谢您的回复,文件不能编译的问题我目前已经解决。新的库编译好后我试着用新定义的弹簧mylinearspring连接我案例的两个物体,跑了一下case发现结果不尽人意,可能这个弹簧只能像报告中那样用在两个都是被动运动的浮体上,我这里有个主动运动的,就用不了了。可能还要后续对库进行另外的改动,鉴于现在刚学openfoam不久,之前没学过c++,所以源文件还读不懂,要先去补补c++的东西。再次感谢您的帮助:xinxin:

    1 条回复 最后回复

  • 登录

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