OpenFOAM
文章平均质量分 94
OpenFOAM相关内容
_黄岛主_
一名研发设计类软件的搬砖工。
展开
-
OpenFOAM热物理类代码详解
热物理类的RTS机制OpenFOAM利用RTS机制来动态创建模型实例,核心思想在于利用C++中静态成员会在类的实例化之前创建,以buoyantSimpleFoam.C对于生成热物理类的代码的为例,其中 rhoThermo::New(mesh)作者网址:https://blog.csdn.net/dsfsdffgfd调用rhoThermo类中静态成员函数: Foam::autoPtr<Foam::rhoThermo> Foam::rhoThermo::New (原创 2021-02-04 21:35:12 · 3245 阅读 · 1 评论 -
OpenFOAM中divDevRhoReff和divDevReff详解
OpenFOAM中divDevRhoReff和divDevReff具体是啥?先看动量方程:$$\frac{\partial \rho \mathbf{U}}{\partial t}+\nabla \cdot \left( \rho \mathbf{UU} \right)=\nabla \cdot \sigma +\mathbf{f}\tag{1}$$ ...原创 2018-08-27 18:23:40 · 3745 阅读 · 2 评论 -
OpenFOAM怎样提取某个面的压力值?
一个实例如下所示: 作者博客:http://blog.sina.com.cn/u/5593422497转载 2018-09-03 11:39:39 · 6011 阅读 · 0 评论 -
常见物理量的量纲在OpenFOAM中的表示
在OpenFOAM中一般使用的是国际单位,分别为:表1 OpenFOAM中的国际单位 数目 描述 单位 符号 1 Mass kilogram kg 2 Length meters m 3 Time second s 4 Temperature Kelvin K 5 Quanti...原创 2018-09-09 22:38:11 · 13140 阅读 · 8 评论 -
OpenFOAM中的topoSet及其应用
发现一篇写的不错的技术文章,分享一下。分享的这篇文章主要是介绍OpenFOAM中topoSet工具的使用方法,CFD 模拟需要的前处理和后处理,通常需要涉及到对某些指定区域进行操作。比如,在指定区域设置初始浓度,在指定区域加入一个源项,给指定区域加上一个旋转速度,计算指定区域内的统计值,计算某个截面上的通量,甚至对某些特定的网格使用特殊的离散格式等等。OpenFOAM 中有一个专门的工具来...转载 2018-11-12 21:20:40 · 10626 阅读 · 3 评论 -
使用Tecplot直接打开OpenFOAM的计算结果
Tecplot自2013版之后就已经有了支持OpenFOAM的loader,可以直接打开OpenFOAM的计算结果,不用再使用foamToTecplot360工具进行转换了,如下:原创 2018-11-14 18:18:28 · 10533 阅读 · 20 评论 -
ParaView中的Descriptive Statistics filter
Descriptive Statistics filter一般与Probe Location filter连用,首先使用Probe Location filter查询某个点的各变量值,然后在其基础上应用Descriptive Statistics filter,可以统计出各变量的最大值、平均值和最小值,如下所示:可以在左侧红色框内选择要显示的变量,上图中显示的是速度U(拆分为了各分量)和压...原创 2019-01-27 22:27:19 · 2192 阅读 · 0 评论 -
在ParaView中使用Surface Flow filter计算某个面上的流量
Surface Flow filter是计算某个面上流量的过滤器,因此首先需要有面的存在。如下计算的是截面上的流量,算例和上一篇中的相同,都是圆柱绕流的算例,截面位置分别是在截面上应用Surface Flow filter,Input Vector选择速度U,然后可在Information面板或者Spread Sheet View中查看流量的大小。 可以对每一个面都应用Surfac...原创 2019-01-27 23:10:14 · 3827 阅读 · 0 评论 -
在ParaView中计算圆柱绕流算例里圆柱所受的升阻力
具体的操作步骤就不展示了,仅看一下计算圆柱所受升力时建立的可视化管线,如下:计算阻力的方法类似,仅计算公式不同,其可视化管线如下: ...原创 2019-01-29 10:47:55 · 4379 阅读 · 4 评论 -
分享一段在ParaView中循环输出文件的代码
有时会有这样一种需求:就是将视窗中的场景(非保存图片,场景信息是可编辑的矢量形式)保存导出,然后作为其它软件的资源文件。但是在用paraview输出场景时,每次只能输出当前时刻的场景,如果模拟的是瞬态问题,有时会有几十个时间文件,如果对每一时刻都手动导出会特别的繁琐。在这种情况下,我们自然而然的会想到使用脚本来自动化这个过程。下面就以cavity算例进行演示,cavity算例官方结果一...原创 2019-03-06 15:38:45 · 1678 阅读 · 2 评论 -
为什么不建议科学可视化时使用Rainbow做颜色映射?
科学数据可视化时需要一组颜色做映射,Rainbow就是其中使用很广的一类,如下:是不是很熟悉?用它做颜色映射后的效果是下图这个样子的:然而ParaView官方人员不建议使用Rainbow做颜色映射,他们给出的理由是:1、Rainbow颜色不遵循自然感知的排序,也即Rainbow的色调在我们的视觉系统中并没有真正的有序感知(相对明亮的人们较易感知到,但Rainbow的颜色都很亮...原创 2019-05-14 17:53:56 · 2355 阅读 · 2 评论 -
ParaView中的EvenlySpacedStreamlines2D filter,实现二维平面上流线的均匀分布
通过之前的文章在 ParaView 中画截面上的流线是可以实现在二维平面上绘制流线的,绘制后的局部细节如下:可以看出上面的流线分布非常不均匀,有些地方密集,有些地方稀疏,如果想要使流线均匀的分布,可以使用EvenlySpacedStreamlines2D filter,在平面上应用后效果如下:可以看出流线的分布均匀了很多。...原创 2019-08-16 23:18:46 · 2136 阅读 · 7 评论 -
在虚拟机上用软件渲染的方式运行ParaView
大部分的OpenFOAM用户都是在虚拟机上(Linux系统)工作,所以ParaView也是在虚拟机上运行。我们都知道虚拟机上是没有硬件OpenGL渲染的,所以对图形图像的渲染只能使用软件的方式。在虚拟机上,老版本的ParaView可以使用下面的命令启动软件渲染:paraview --mesa-llvm在ParaView 5.6以后,命令为:paraview-mesa parav...原创 2019-09-30 20:54:33 · 1626 阅读 · 0 评论 -
在ParaView中使用particle tracer filter进行粒子追踪
ParaView中的粒子追踪过滤器(Particle tracer filter)可以在无拉格朗日数据的情况下,创建随时间变化的无质量粒子的示踪轨迹。1、演示算例 演示所用算例为OpenFOAM中的cavity算例,位置在$FOAM_TUTORIALS/incompressible/icoFoam/cavity/cavity2、具体步骤2.1、仅创建出粒子加载cavity算...原创 2018-08-17 18:08:46 · 5105 阅读 · 0 评论 -
在OpenFOAM的源码中查找信息
OpenFOAM的源码包含海量的文件,如果通过鼠标一个文件一个文件的查找信息,不仅效率低,而且很有可能找不到自己想要寻找的内容。因此,下面介绍通过Linux命令行来进行查找信息的方法,不仅适用于OpenFOAM,同样适用于其它在Linux下的信息查找。1、定位文件// 定位src中文件名包含fvPatch的文件find $FOAM_SRC -name "*fvPatch*"/...原创 2018-08-19 21:13:02 · 5579 阅读 · 0 评论 -
OpenFOAM内部场变量的定义及使用示例
1、内部场变量的定义一种组分的定义方式如下:volScalarField CO2( IOobject ( "CO2", runTime.timeName(), mesh, IOobject::READ_IF_PRESENT, IOobject::AUTO_WRITE ), m...原创 2018-08-19 20:44:32 · 5676 阅读 · 2 评论 -
sprayFoam显示粒子轨迹
具体步骤:在 Pipeline Browser 中选择算例; 在菜单中依次选择 Filters -> Alphabetical -> Extract Block; 在 Properties 中 Block Indices 内选择 internalMesh,然后 Apply,以显示流场信息; 重复 1-2,在 Properties 中 Block Indices 内选...转载 2018-08-09 16:02:49 · 4151 阅读 · 0 评论 -
一张图看清OpenFOAM各版本关系
下图是一张展示OpenFOAM发展中各版本的关系,虽然有些版本已经有了更新,但主要的发展路径基本没变。目前用户最广的是基金会的版本,已更新到6.0。...原创 2018-08-05 21:01:30 · 9977 阅读 · 0 评论 -
在VMware Workstation中安装ubuntu
从OpenFOAM基金会的官网我们可以发现,OpenFOAM在ubuntu系统中的安装是最为方便的,而且ubuntu自身的操作系统与Windows最为接近,所以初学者还是使用ubuntu比较好。下面就分享一下我自己试过的安装教程。 在VMware中安装ubuntu的过程可参考:https://jingyan.baidu.com/article/c275f6ba07e269e33d756...原创 2018-08-05 21:07:17 · 208 阅读 · 0 评论 -
OpenFOAM的安装
OpenFOAM的安装教程可参考:http://www.dyfluid.com/docs/install.html 或者直接查看官网的介绍,里面介绍了在各个Linux系统中的安装方法:https://openfoam.org/download/6-ubuntu/(在Ubuntu中安装OpenFOAM的方法) ...原创 2018-08-05 21:16:36 · 19105 阅读 · 2 评论 -
OpenFOAM中的wmake和wclean
OpenFOAM程序以一种规范的格式来架构,每个程序的源代码放置在以这个程序命名的文件夹中。最顶层的源文件以.C命名。例如,一个叫做newApp的源代码放置在newApp的文件夹,顶层文件即为newApp.C,参见下图程序的文件结构这个文件夹必须包含一个叫做Make的文件夹,其中有options以及files文件。options文件包含程序所需的头文件和链接库,用户一般不需要改动。fil...原创 2018-08-05 21:35:18 · 7312 阅读 · 2 评论 -
OpenFOAM的好伙伴ParaView
使用OpenFOAM的同学都清楚,ParaView是与之搭配的后处理软件,功能非常强大。奈何它是一款开源软件(学习资料较少),再加上国内盗版软件横行,基本上后处理部分都被那几款有名的商业软件所把持,比如Tecplot、cfd-post、EnSight等等。商业软件在易用性和稳定性上一般比开源的好很多,不过在功能上开源软件有时会更胜一筹,今天就介绍一下开源软件ParaView的那些事。...原创 2018-08-05 21:43:50 · 9464 阅读 · 6 评论 -
OpenFOAM运行算例前的准备
OpenFOAM有太多的库代码和算例代码,为了不对其源代码造成污染,我们需要在自己的“地盘”使用OpenFOAM。OpenFOAM的开发者已经考虑到了这一点,因此为用户定义了run文件夹,下面我们就看一下OpenFOAM运行算例前创建自己“地盘”的过程。首先检查是否存在run(run文件夹是用户存放自己的OpenFOAM算例或求解器的位置)文件夹,在桌面打开终端,输入下面的命令// ...原创 2018-08-05 22:16:04 · 8838 阅读 · 7 评论 -
用git管理OpenFOAM算例(附.gitignore文件)
配置过程参考:https://zhuanlan.zhihu.com/p/27739073如何删除github远程仓库中的文件夹?解决办法:1.克隆远程仓库到本地库。例如使用ssh方法:git clone git@github.com:xxx/xxx.git2.对需要删除的文件、文件夹进行如下操作:git rm test.txt (删除文件) git rm -r test ...原创 2018-08-05 22:50:48 · 505 阅读 · 0 评论 -
使用Kate管理OpenFOAM算例及开发求解器
Kate将文本编辑器和终端集成在了一起,所以用其来管理OpenFOAM算例及开发求解器非常方便,其安装配置方法为:http://www.cnblogs.com/EasonJim/p/7228254.html ...原创 2018-08-05 22:54:39 · 1552 阅读 · 0 评论 -
在OpenFOAM中使用foamCloneCase快速创建参数化研究所需的各算例
在CFD仿真分析时,经常需要进行参数化研究,如不同的入口速度对结果的影响、不同的网格疏密对结果的影响等。在此种情况下,就需要建立多个case进行仿真计算。foamCloneCase工具就是用来快速创建参数化研究所需算例的,通过一个例子进行说明。比如OpenFOAM中最经典的cavity算例,我们已经有了一个现成的算例cavity,并且已经计算完成,新生成了5个时间文件,最新的(latestTi...原创 2018-08-11 11:00:50 · 1227 阅读 · 4 评论 -
在Ubuntu中添加alias实现快速进入OpenFOAM常用算例
在Ubuntu等Linux系统中,如果要进入某个路径比较深的文件夹,需要多次点击鼠标或者在终端内输入一大串命令,如假如我们经常访问某个路径,那么上面的方式就会很麻烦。下面就介绍一种通过为某个路径添加alias的方式解决以上问题。首先打开.bashrc文件(可以在Home下通过快捷键Ctrl+H显示隐藏文件找到,也可以在终端内输入gedit $HOME/.bashrc命令打开),在文件的最后...原创 2018-08-14 18:32:39 · 1276 阅读 · 0 评论 -
在集群上并行运行OpenFOAM
使用cavity算例举例,在集群上运行的命令如下:mpirun --hostfile machines -np 40 icoFoam -parallel > log &其中machines文件中指定了计算的节点,假设集群上有三个节点aaa、bbb、ccc,每个节点都有15个核,那么machines文件的内容为(可以看到15+15+10=40为计算所用的总的核心数):a...原创 2018-08-11 12:31:06 · 5900 阅读 · 4 评论 -
OpenFOAM中参考压力p_rgh的由来
在OpenFOAM的动量方程UEqn.H中经常能看到以下代码:solve( UEqn == fvc::reconstruct ( ( - ghf*fvc::snGrad(rho) - fvc::snGrad(p_rgh) )*mesh.magSf() ));其中p_...原创 2018-08-12 12:20:51 · 9213 阅读 · 0 评论 -
计算OpenFOAM中某一个边界的面积
OpenFOAM中计算某一个边界的面积,代码为:// 找到inlet这个patch的IDlabel patchID = mesh.boundaryMesh().findPatchID("inlet"); // 创建inlet的polyPatch类型的引用const polyPatch& cPatch = mesh.boundaryMesh()[patchID]; // 创...原创 2018-08-12 20:34:22 · 2272 阅读 · 0 评论 -
OpenFOAM并行运行算例时怎样查看物理核的多少?
在使用OpenFOAM并行计算之前,需要明确电脑、服务器或集群中有多少资源(processors/cores)可用,这可以通过以下命令进行查看:lscpu输出的内容如下:在以上配置中,一共有24个虚拟核(超线程情况下)、12个物理核。需要注意,OpenFOAM不使用超线程(HT,超线程一般用在操作系统中,用来改善处理多任务时的性能),因此为了最大限度使用硬件,在并行的时候可以使用...原创 2018-08-09 12:52:28 · 3609 阅读 · 3 评论