OpenFOAM——绕流振动

流体的物性参数为:
密度:1kg/m3
粘度系数:0.01N·s/m2

首先进行建模操作,任何建模软件均可,本算例在ICEM建模和进行网格划分,生成的网格如下:

接下来转入OpenFOAM的操作:
首先新建一个文件夹,名字任取,本算例中我将该文件夹命名为:cylinder

然后进入OpenFOAM的安装目录,将安装目录下的wingMotion算例(我的目录为/opt/openfoam5/tutorials/ incompressible/pimpleDyMFoam/wingMotion/wingMotion2D_pimpleDyMFoam)下的0.orig文件夹、constant文件夹和system文件夹拷贝到cylinder文件夹下,将0.orig文件夹重命名为0,删除0文件夹下的include文件夹, k,nut, omega这些文件,因为本算例不会用到这些文件夹和文件。

然后将刚才导出的网格文件拷贝到cylinder文件夹下,在cylinder文件夹下打开终端,输入fluentMeshToFoam命令(由于从ICEM当中导出模型的时候就已经进行了缩放,所以这里不用缩放网格):


我们打开constant文件夹
接着我们打开polyMesh文件夹,对其中的boundary文件进行编辑,将UP和DOWN边界的Type改为symmetry,记得后面一定要跟上分号,否则后面计算会报错

transportProperties文件修改如下:

设置运动黏度为0.01m2/s
然后我们拷贝oscillatingBox下的dynamicMeshDict字典(我的路径是/opt/openfoam5/tutorials/multiphase
/potentialFreeSurfaceDyMFoam/oscillatingBox/constant/dynamicMeshDict)到constant文件夹下,覆盖当前的dynamicMeshDict,修改覆盖后的dynamicMeshDict文件如下:

接着修改turbulenceProperties文件,此处我们将模拟类型设置为层流(laminar)

文件夹下进行操作:
修改0文件夹下p、U和pointDisplacement文件:
p文件当中的内容如下:

U文件当中的内容如下:

p和U文件参数的具体含义,详见http://blog.sina.com.cn/s/blog_14d64daa10102wskl.html
pointDisplacement文件当中的内容如下:

说明一下:比起其他求解器多出来的pointDisplacement字典主要用于指定边界的位移,本算例我们指定圆柱的位移为oscillatingDisplacement类型,那么也就是说圆柱的运动满足表达式y=Asin(ωt),其中amplitude为振幅,这里为一个向量,用于指定边界运动的最大位移,对应表达式中的A,本算例我们指定圆柱在Y方向上下振动,在Y方向的最大位移为2米,所以
amplitude (0 2 0);
而omega关键词对应表达式中的ω
其他的边界不运动,所以
".*"
{
type fixedValue;
value uniform (0 0 0);
}
接着我们设置controlDict文件

限制库朗数不超过0.9
fvSchemes文件修改如下:

fvSolution文件修改如下:

为了加快计算,我们采用分块并行计算
因为system目录下已存在decomposeParDict字典,所以我们可以在终端中输入decomposePar直接进行分块:


在终端中输入mpirun -np 4 pimpleDyMFoam -parallel开始计算:

等到计算结束:

将计算结果导入paraview里面进行处理

OpenFOAM——绕流振动的更多相关文章
- 绕流振动UDF【转载】
宏DEFINE_GRID_MOTION用来移动任意边界和流体区域内的网格节点.它提供了对节点和网格最大限度的操作,可以将刚体运动.变形和相对运动等结合起来.但是使用此UDF时,每一个时间步都必须执行. ...
- OpenFOAM&Gmsh&CFD圆柱绕流(两个圆柱)
问题: 圆柱绕流问题,模拟仿真有两个圆柱.一个源的流体变化情况. 解决步骤: 1.使用Gmsh画出网格,并保存cylindertwo.msh 2.以Cavity为基础创建新的Case:Cylinder ...
- OpenFOAM——圆柱绕流对流换热
本算例来自<ANSYS FLUENT技术基础与工程应用:流动传热与环境污染控制领域> TOP和DOWN为对称边界(symmetry),入口速度为0.01m/s,入口温度为300K,圆柱温度 ...
- OpenFOAM当中监测力和阻力系数
首先准备好我们自己的平常算例文件,本次我们以圆柱绕流的算例来说明用法 我们找到constant文件夹 打开其中的transportProperties文件 我们将其中的: nu ...
- OpenFOAM设置监测点(探针)
首先准备好我们自己的平常算例文件,本次我们以圆柱绕流的算例来说明用法 然后我们在/opt/openfoam4/etc/caseDicts/postProcessing/probes文件夹下找到prob ...
- 【一起学OpenFOAM】03 OpenFOAM基本使用流程
OpenFOAM初学者常常对于软件的使用流程感到很迷惑,与其他的具有GUI的CFD软件不同,OpenFOAM的所有操作均为基于文本操作,譬如说里面各种计算模型.计算参数.流程控制参数等,均为通过修改对 ...
- 【一起学OpenFOAM】系列由来
1 为什么要学习OpenFOAM 掐指算起来,接触CFD也差不多有十个年头了,其间一直使用的商用CFD软件,有Fluent.CFX.StarCCM+等,这些商用软件各有其优缺点,都能较好的解决常规的工 ...
- 【一起学OpenFoam】02 软件准备
"工欲善其事必先利其器",在利用OpenFoam解决我们的工程问题之前,首先要做的事情是搭建一个OpenFoam运行环境.很遗憾的是,OpenFoam的原生开发系统是Linux,因 ...
- OpenSUSE下编译安装OpenFoam
在不是Ubuntu系统下安装OpenFoam,需要采用编译安装的方式.以下以OpenSuSE为例进行编译安装. 1 软件包准备 需要下载两个程序包: OpenFOAM-4.x-version-4.1. ...
随机推荐
- aria2 cmd set chmod, and others..
import 'package:flutter/material.dart'; import 'dart:io'; import 'dart:async'; import 'package:rxdar ...
- 83.基于Vue SEO的四种方案(小结)
前言:众所周知,Vue SPA单页面应用对SEO不友好,当然也有相应的解决方案,下面列出几种最近研究和使用过的SEO方案,SRR和静态化基于Nuxt来说. 1.SSR服务器渲染:2.静态化:3.预渲染 ...
- JavaWeb 之 Filter 验证用户登录案例
需求: 1. 访问一个网站的资源.验证其是否登录 2. 如果登录了,则直接放行. 3. 如果没有登录,则跳转到登录页面,提示"您尚未登录,请先登录". 代码实现: import j ...
- 【GLG Toolkit 行业案例】Baltic Information Systems, Ltd.公司选择使用GLG Toolkit
BIS (Baltic Information Systems, Ltd.)是一家专门为核电厂开发安全和过程监控系统的软件公司. BIS的新产品 BISMARC 是一个通用过程控制和监控的SCADA系 ...
- Telnet入侵Windows2000
开启Telnet 打开控制面板,管理工具 计算机管理 连接刚刚探测到的主机 输入探测到的主机IP 如下图所示,连接成功 找到Telnet服务 启动Telnet服务 远程登录 注意 Telnet登录需要 ...
- MySQL DataType--浮点数(Floating-Point Types)学习
浮点数(Floating-Point Types) MySQL支持两种浮点数类型来表示近似值:1.FLOAT,单精度浮点数,使用4字节存储,存储数据范围3.402823466E+38 - -1.175 ...
- k8s之pod与Pod控制器
k8s中最为重要的基础资源,pod,pod controller,service pod controller类型有多种需要向控制器赋值之后使用: kubectl命令使用 kubectk get no ...
- 18道kafka高频面试题哪些你还不会?(含答案和思维导图)
前言 Kafka是最初由Linkedin公司开发,是一个分布式.支持分区的(partition).多副本的(replica),基于zookeeper协调的分布式消息系统,它的最大的特性就是可以实时的处 ...
- SHA-1算法——(2)
地址:https://www.alvestrand.no/objectid/1.3.14.3.2.26.html 地址:http://oidref.com/1.3.14.3.2.26 这个值好像是个标 ...
- js 函数的this指向
一. 1.es5: 函数里的this指向分两种,一种正常函数调用指向被调用的对象,比如: test=()=>{ console.log(this) }; test();//是当前window调用 ...