@李东岳 再次感谢李老师回复,我后续按照您的指导试一下,另外再查阅一下其他资料学习学习
AXY 0
帖子
-
-
@李东岳 李老师,顺便想请教一下,of里面允许不同的液相拥有不同的重力加速度g值么?我想设置整体液体场处于失重状态,而setfields确定的相区域拥有正常的g值。
-
@李东岳 感谢李老师回复,这个问题已经解决,是场设置的问题。
-
@李东岳 感谢东岳老师回复,这个问题解决了,把sourceInfo和大括号删掉就好了。现在setFields可以正常运行,不过程序运计算完成后有另一个问题就是结果中相区域无法显示。请问这是否是由于整体的计算域网格是矩形的,不能在网格上划出圆形区域,进而设置不同的相分数呢?
可以正常运行:Create time Create mesh for time = 0 Reading setFieldsDict Setting field default values Setting internal values of volScalarField alpha.water Setting field region values Adding cells with centre within cylinder, with p1 = (0.5 0.85 0), p2 = (0.5 0.85 0.1), radius = 0.15 Setting internal values of volScalarField alpha.water End
但是结果里显示不出设置的圆形相区域
-
想请教各位,我在OF自带的溃坝算例上进行了修改,试图将原来矩形相区域改为圆形,我使用了cylinderToCell给圆柱区域添加相分数,但是在setFields这一步出错,错误提示是说在cylinderToCell中没有找到定义的半径radius,可是我分明定义了半径大小。请各位指正问题,感谢。
下面是错误提示:--> FOAM FATAL IO ERROR: (openfoam-2012) Entry 'radius' not found in dictionary "cylinderToCell" file: cylinderToCell at line 29 to 36. From bool Foam::dictionary::readCheck(const Foam::word&, T&, const Predicate&, Foam::keyType::option, bool) const [with T = double; Predicate = Foam::MinMax<double>] in file /home/pawan/OpenFOAM/OpenFOAM/OpenFOAM-v2012/src/OpenFOAM/lnInclude/dictionaryTemplates.C at line 372. FOAM exiting
下面是我的setFieldsDict文件内容:
defaultFieldValues ( volScalarFieldValue alpha.water 0 ); regions ( cylinderToCell { sourceInfo { p1 (0.5 0 0.85); p2 (0.5 0.1 0.85); radius 0.15; } fieldValues ( volScalarFieldValue alpha.water 1 ); } );
-
@李东岳 感谢李老师回复。目前边界是静止的,弹簧一端连接静止边界,一端连接运动物块。从了解到的资料看,目前OF中的弹簧应该也只支持一端连接动物体,一端连接静物体。因为OF通过坐标确定连接点,我想知道如果连接点坐标在边界上,那么这个弹簧是否真的连在了边界上,能否和边界传递力?感觉也想不到什么能够验证的办法。
-
新手求助各位老师,对于OF中sixDoFRigidBodyMotion库中的线性弹簧linearSpring约束,如果锚固点anchor坐标设置在边界上,在弹簧伸缩过程中能否传递力给予边界?
-
求助各位,目前of的动网格技术可不可以实现下图功能:在计算域顶端和计算域内的物块之间连接弹簧,同时给整个计算域施加简谐运动?
目前学习of五个月有余,从我的了解来看,of自带动网格库中的弹簧只支持一端连接固定点,一端连接运动的物体。想问问大家有没有做过类似的东西,能提供些思路,不动底层代码能够解决这个问题,不胜感激。 -
求助各位。我的OF算例计算时间步和输出时间步设置的都比较小(0.002s),导致计算结果有4000个时程文件,请问导入paraview后处理的时候,可以间隔几个文件导入一个么,4000帧的话处理起来太费时费空间了。
-
想请教各位,我对OF后处理中力系数forceCoeffs中的几个概念不太能理解,想请教一下各位。
forceCoeffs { type forceCoeffs; libs ( "libforces.so" ); writeControl timeStep; writeInterval 1; patches ( "floatingObject" ); rho rhoInf; log true; rhoInf 1000; liftDir (0 0 1); //升力方向 dragDir (0 0 1); //拖曳力方向 CofR (5 5 2); //用于计算力矩的点 pitchAxis (0 0 1); //pitch方向,围绕转动的轴 magUInf 0; //无限远处来流处的速度 lRef 2; //参考长度 Aref 8; //参考面积 }
首先这里对liftDir升力和dragDir拖曳力的定义是怎样的 ?举个例子,如果模拟的是一个物体在水中匀速运动,升力可否理解为浮力?那这里的拖曳力又是指什么呢?
还是这个例子,pitchAxis解释为围绕转动的轴,这又是指什么?另外如果在静水中运动,那magUInf可以设置为0吗?lRef和Aref是相对谁的参考呢,计算域吗? -
@tens 感谢您的回复,我试着把这个头文件加入到.C文件中,但是对编译结果貌似并没有作用,报错是一样的。已经把我觉得可能能用到的头文件都放进去了
#include "mylinearSpring.H" #include "addToRunTimeSelectionTable.H" #include "sixDoFRigidBodyMotion.H" // Foam classes #include "OFstream.H" #include "IFstream.H" #include "Vector.H" // std classes #include <stdio.h> #include <fstream> #include <iostream> #include <string.h> #include <stdlib.h> #include "pointPatchFields.H" #include "addToRunTimeSelectionTable.H" #include "Time.H" #include "polyMesh.H" #include "fixedValuePointPatchField.H" #include "fvCFD.H" #include "fvMesh.H" #include "volFields.H"
-
@星星星星晴 首先很感谢你的回复,你提供的方法,在其他源库里也参考过类似的引用格式,但是上机编译会出现两个问题:
‘fvMesh’ was not declared in this scope
error: ‘const class Foam::sixDoFRigidBodyMotionRestraints::mylinearSpring’ has no member named ‘owner’ const fvMesh& mesh = this->owner().mesh();
前者通过添加头文件“fvMesh.H”可以解决,但是后者仍没有思路。这个报错应该是在说这个库里没有叫owner的成员?我看其他库里有引用internalFields这个成员的,我不清楚我这个该如何判断引用哪个成员
-
求助各位,我想在sixDoFRigidBodyMotion库下的linearSpring子库中添加与运行时间runtime相关的功能,采用了多种方法如
scalar TT = mesh.time();
还有
const Time& TT = mesh.time();
或者
scalar TT = runTime.value();
但是编译时均会报同样一个错误:
‘runTime’或者‘mesh’ was not declared in this scope
这个子库里原本没有与时间相关的东西,不知道是头文件的问题还是什么,也在网上找了蛮多相关的资料,但是帮助都不大,请各位大佬指点。
-
求助各位老师,我试着在sixDoFRigidBodyMotion库中建立一个新的mylinearSpring文件夹(类似于原linearSpring),意图改动其中的锚点anchor的位置。先试着让它z坐标加1,在编译时出错,错误信息如下。
sixDoFRigidBodyMotion/restraints/mylinearSpring/mylinearSpring.C:error: assignment of read-only location ‘((const Foam::sixDoFRigidBodyMotionRestraints::mylinearSpring*)this)->Foam::sixDoFRigidBodyMotionRestraints::mylinearSpring::anchor_.Foam::Vector<Cmpt>::z<double>()’ anchor_.z()=anchor_.z()+1;
提示在给只读位置幅值,是不是意味着在这里anchor是不能变动的量,那要怎样才能改动它呢?
-
@bestucan 感谢您的回复,文件不能编译的问题我目前已经解决。新的库编译好后我试着用新定义的弹簧mylinearspring连接我案例的两个物体,跑了一下case发现结果不尽人意,可能这个弹簧只能像报告中那样用在两个都是被动运动的浮体上,我这里有个主动运动的,就用不了了。可能还要后续对库进行另外的改动,鉴于现在刚学openfoam不久,之前没学过c++,所以源文件还读不懂,要先去补补c++的东西。再次感谢您的帮助
-
@李东岳 感谢老师回复,现在我解决了之前的问题,在进一步往下做。
-
@bestucan 您好,现在我解决了之前的问题,两个物体可以保持自身的运动状态了。所以又想继续在两个物体之间添加一个弹簧,因为我现在还看不懂c++的代码,因此只能依照您给的双附体的那份资料依葫芦画瓢,在修改sixdofrigidbodymotion代码后进行编译,在编译过程中出现了点问题,但也没有报error,请您指点以下问题所在。
-
@bestucan 感谢这位老师的帮助,今天有点小忙,先马一下您的资料
-
@李东岳 感谢李老师回复,我零文件下的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); } }
-
@bestucan 不好意思,可能我的表述有所欠缺。我试着换一种问法,请问一个动网格文件dynamicMeshDict里可以计算计算域中两处网格的运动吗(我目前涉及到的只有计算域中一个东西运动)?就像上面贴出的代码,那是我的动网格文件里的,代码上面的部分是控制水中物体上浮,下面的是控制水面以上的物体运动。我分别运行是没有问题的,但是合起来就报错了,我怀疑是放到一起导致的。不知这次有没有将问题描述清楚,求解答,感谢老师。
-
@bestucan 感谢回复,我现在解决了这个问题,浮块可以实现上浮了,但是在进一步修改的时候又出现了另外的问题。在水面以上加设了一个垂向震荡物块,水下的物块不变。但是运行报错(图如下第一张)。这个错误网上有人问过,按照我的理解是此时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)
-
请教各位,最近在floatingobject算例的基础上进行了一些修改——将浮体放到水下,密度仍然小于水,理想情况下应该上浮,但是从结果看浮体却失去了其性质,在水面扰动下也依旧一动不动,请大佬们指点迷津。
-
@李东岳 感谢李老师的回复。刚刚我又试着修改了一下(代码在第一张图),但是这次修改过后运行结果仍然存在有问题,程序没有运行起来,请您指点。
![3699c109-7ea4-4bd2-a3d8-8143185f9510-_157$9_AFAWJ1{)8W35YL3.png
-
求助各位老师,我想定义计算域中一个块体按照固定形式(正弦)运动,原本参考了wiki中DynamicMeshDict下的动网格类型solidBodyMotionFvMesh,但是运行报错,提示v2012版本下没有此类型的动网格,请问还有没有其他方法可以解决?
-
@李东岳 您好,我刚刚解决了之前权限的问题,可是这次键入interFoam命令之后又出现了另一种错误,看提示好像是wmake出错?请问这又是什么原因,这个算例本身应该是没问题的。
![)K435ZJCL}TWILHXJP`O42.png -
@bestucan 感谢 按您的指示我学习下
-
@axy-0 直接在win设置里重置可以吗
-
@bestucan 感谢大佬回复,另外请问如何退出root呢,关闭终端再进去还是自动进入root
-
@李东岳 感谢回复,我这个是乌班图子系统,我后面再咨询一下那位大佬
-
@李东岳 起因是openfoam隔了许久不用,我最初设置的密码忘记了,所以只能用root,刚刚我也是了解到确实可能是这个原因导致的。想问一下大佬我这种情况,忘记原密码且又不能用这个root应该咋办
-
求助各位大佬,目前刚开始学OpenFOAM,刚刚跑一个六自由度的液仓振动的算例,键入interFOAM求解器后系统报错,请问这个是哪里出了问题呀。这个用的是OpenFOAM-8
OF计算域中设置圆形相区域时出错
OF计算域中设置圆形相区域时出错
OF计算域中设置圆形相区域时出错
OF计算域中设置圆形相区域时出错
OF计算域中设置圆形相区域时出错
linearSpring能否传递力给予边界?
linearSpring能否传递力给予边界?
流固耦合中线性弹簧局限性的问题
请教:paraview后处理时,可以间隔读取计算结果么
OF后处理中forceCoeffs的几个概念求教
动网格库中如何增加使用运行时间runtime的功能
动网格库中如何增加使用运行时间runtime的功能
动网格库中如何增加使用运行时间runtime的功能
在sixDoFRigidBodyMotion的restraint模块中改变linearSpring的锚点位置,编译出错
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
小白求助——floatingobject算例浮块突然失去浮体性质
动网格算例—搅拌容器
2012版本 动网格问题
2012版本 动网格问题
interFoam求解报错
interFoam求解报错
interFoam求解报错
interFoam求解报错
interFoam求解报错
interFoam求解报错
interFoam求解报错