@李东岳 再次感谢李老师回复,我后续按照您的指导试一下,另外再查阅一下其他资料学习学习
AXY 0
帖子
-
OF计算域中设置圆形相区域时出错2022年6月21日 03:25 -
OF计算域中设置圆形相区域时出错2022年6月21日 03:16@李东岳 李老师,顺便想请教一下,of里面允许不同的液相拥有不同的重力加速度g值么?我想设置整体液体场处于失重状态,而setfields确定的相区域拥有正常的g值。
-
OF计算域中设置圆形相区域时出错2022年6月21日 02:58@李东岳 感谢李老师回复,这个问题已经解决,是场设置的问题。
-
OF计算域中设置圆形相区域时出错2022年6月20日 08:24@李东岳 感谢东岳老师回复,这个问题解决了,把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计算域中设置圆形相区域时出错2022年6月20日 07:19想请教各位,我在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 ); } );
-
linearSpring能否传递力给予边界?2022年6月13日 01:38@李东岳 感谢李老师回复。目前边界是静止的,弹簧一端连接静止边界,一端连接运动物块。从了解到的资料看,目前OF中的弹簧应该也只支持一端连接动物体,一端连接静物体。因为OF通过坐标确定连接点,我想知道如果连接点坐标在边界上,那么这个弹簧是否真的连在了边界上,能否和边界传递力?感觉也想不到什么能够验证的办法。
-
linearSpring能否传递力给予边界?2022年6月12日 04:09新手求助各位老师,对于OF中sixDoFRigidBodyMotion库中的线性弹簧linearSpring约束,如果锚固点anchor坐标设置在边界上,在弹簧伸缩过程中能否传递力给予边界?
-
流固耦合中线性弹簧局限性的问题2022年5月21日 06:24求助各位,目前of的动网格技术可不可以实现下图功能:在计算域顶端和计算域内的物块之间连接弹簧,同时给整个计算域施加简谐运动?
目前学习of五个月有余,从我的了解来看,of自带动网格库中的弹簧只支持一端连接固定点,一端连接运动的物体。想问问大家有没有做过类似的东西,能提供些思路,不动底层代码能够解决这个问题,不胜感激。 -
请教:paraview后处理时,可以间隔读取计算结果么2022年4月10日 11:52求助各位。我的OF算例计算时间步和输出时间步设置的都比较小(0.002s),导致计算结果有4000个时程文件,请问导入paraview后处理的时候,可以间隔几个文件导入一个么,4000帧的话处理起来太费时费空间了。
-
OF后处理中forceCoeffs的几个概念求教2022年3月28日 10:54想请教各位,我对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是相对谁的参考呢,计算域吗? -
动网格库中如何增加使用运行时间runtime的功能2022年3月25日 04:53@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"
-
动网格库中如何增加使用运行时间runtime的功能2022年3月24日 05:59@星星星星晴 首先很感谢你的回复,你提供的方法,在其他源库里也参考过类似的引用格式,但是上机编译会出现两个问题:
‘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这个成员的,我不清楚我这个该如何判断引用哪个成员
-
动网格库中如何增加使用运行时间runtime的功能2022年3月23日 16:15求助各位,我想在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的restraint模块中改变linearSpring的锚点位置,编译出错2022年3月15日 09:09求助各位老师,我试着在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是不能变动的量,那要怎样才能改动它呢?
-
小白求助——floatingobject算例浮块突然失去浮体性质2022年2月26日 08:40@bestucan 感谢您的回复,文件不能编译的问题我目前已经解决。新的库编译好后我试着用新定义的弹簧mylinearspring连接我案例的两个物体,跑了一下case发现结果不尽人意,可能这个弹簧只能像报告中那样用在两个都是被动运动的浮体上,我这里有个主动运动的,就用不了了。可能还要后续对库进行另外的改动,鉴于现在刚学openfoam不久,之前没学过c++,所以源文件还读不懂,要先去补补c++的东西。再次感谢您的帮助
-
小白求助——floatingobject算例浮块突然失去浮体性质2022年2月25日 10:58@李东岳 感谢老师回复,现在我解决了之前的问题,在进一步往下做。
-
小白求助——floatingobject算例浮块突然失去浮体性质2022年2月25日 10:52@bestucan 您好,现在我解决了之前的问题,两个物体可以保持自身的运动状态了。所以又想继续在两个物体之间添加一个弹簧,因为我现在还看不懂c++的代码,因此只能依照您给的双附体的那份资料依葫芦画瓢,在修改sixdofrigidbodymotion代码后进行编译,在编译过程中出现了点问题,但也没有报error,请您指点以下问题所在。
-
小白求助——floatingobject算例浮块突然失去浮体性质2022年2月24日 04:06@bestucan 感谢这位老师的帮助,今天有点小忙,先马一下您的资料
-
小白求助——floatingobject算例浮块突然失去浮体性质2022年2月24日 04:03@李东岳 感谢李老师回复,我零文件下的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); } }
-
小白求助——floatingobject算例浮块突然失去浮体性质2022年2月23日 16:14@bestucan 不好意思,可能我的表述有所欠缺。我试着换一种问法,请问一个动网格文件dynamicMeshDict里可以计算计算域中两处网格的运动吗(我目前涉及到的只有计算域中一个东西运动)?就像上面贴出的代码,那是我的动网格文件里的,代码上面的部分是控制水中物体上浮,下面的是控制水面以上的物体运动。我分别运行是没有问题的,但是合起来就报错了,我怀疑是放到一起导致的。不知这次有没有将问题描述清楚,求解答,感谢老师。