blockMesh生成网格
网格的定义:
points:节点的坐标
faces:顶点数和顶点的标号
internal faces
boundary faces
neighbour
owners
boundary
blockMeshDict
网格生成的控制
顶点的定义(顺序)
块的定义
加密网格:
blockMesh生成网格
网格的定义:
points:节点的坐标
faces:顶点数和顶点的标号
internal faces
boundary faces
neighbour
owners
boundary
blockMeshDict
网格生成的控制
顶点的定义(顺序)
块的定义
加密网格:
fvSchemes
ddtSchemes -时间离散格式
Euler格式(一阶格式)
Crank-Nicolson格式 (二阶格式)
backward格式 (二阶格式,无法保证解的有界性)
steadyState 格式 (稳定流动)
divSchemes -对流项的离散
linear
upwind (耗散性)
linearUpwind
QUICK
limitedLinear
vanLeer
MUSCL
TVD/NVD (限制器)
标量场
矢量场
vanleerV -保证稳定性,精度较差
snGradScheme - 垂向进行计算 (考虑非正交的修正)
laplacianSchemes - 进行差分离散(非正性的修正)
fvSolution -线性方程进行求解
提供多个求解器、设置残差(绝对残差和相对残差)
PCG/PBICG
smoothSolver
GAMG
各种物理场的求解器的设定:
U等
对相应的算法进行设定
PISO算法
constant
网格文件(polyMesh)
transportProperties -指定物性参数
turbulenceProperties - 湍流模型定义
3算例结构和参数设置
3.1算例结构
constan
system
controlDict - 模拟的进程,开始、结束、输出时间等
application 对应的求解器实际没有生效
保存log文件:
icoFoam > log
fvSchemes - 数值离散
fvSolution - 线性方程的求解器
time
2.openfoam的求解器和库函数的介绍
查看快捷方式的定义
vim etc/config/aliases.sh
环境变量的具体地址:
echo $FOAM_SRC
test文件对于openfoam自带的库函数进行测试
创建run文件:
放置定制求解器和算例
mkdir -p $FOAM_RUN
2.1求解器
tree -L 2
basic 基本求解器
combustion
compressible
incompressible
multiphase
heat transer
Stress Analysis
2.2 src(库函数) 所有的求解器
tree -L 2
ODE
dynamicFvMesh
postProcessing
transportModels
sixDoFRigidBodyMotion
TurbulenceModels
FiniteVolume
2.3 tut(算例)
2.4util(工具)
2.5 Wmake
wmake(用于自定义求解器,进行自定义求解器的编译)
wclean (进行删除)
将算例拷到run文件夹下:
cp - $FOAM_TUTORIALS/incompressible/icoFoam/cavity . -r
blockesh
icoFoam
paraFoam
1.CFD简单介绍
1.1 计算流体力学的步骤:
选择控制方程(N-S方程)
对方程和空间进行离散
分析数值计算的精度和稳定性
求解代数方程
对结果进行后处理
1.2 openfoam
在linux系统下进行操作,开源的,没有图形操作界面。
官方的openfoam版本(org版本)
openfoam+版本(com版本)
Foam-extend版本
1.3数值方法
有限体积法
网格系统:
同位网格:速度场和压力场定义在同一个网格系统中(加入Rhie-Chow差分格式解决振荡解问题)
错位网格:速度场和压力场定义在不同的网格系统中(解决振荡解问题)
参考书籍:
1.4常用的linux基本命令
ls -a //查看文件夹中的隐藏文件,.bashrc(环境)
gedit ~/.bashrc //进行环境文档中进行编辑,可以添加不同版本openfoam的快捷方式
source/opt/openfoam9/etc/bashrc(alias)
1.
如果大面积的采样,可以采用utility,
显式算法,需要库朗数小于0.3,才能保证稳定性
半隐式算法:不要求库朗数,但为了保证精度,还是最好小些
压缩速度:总是垂直于作用的界面,
C_alpha建议取1
保存文档::wq 强制退出: :q!
库朗数超过1,会发散
用命令Co,可以查看时间序列下的库朗数
probe:对值场的值抓取和采样。
type:probes
functionObjectLibs('libsample')
outputControl timestep
timetrael 1
enabled true
fields(
u
)probeLocations
(1 1 1)这是位置
fixedLocations false
fiedMinMax 给出场中的最大值和最小值和坐标
1、绝对值作为标准
2、根据某个方向上的极值情况输出极大值和极小值。
minMaxU
{
type fieldMinMax
functionObjectLibs('libfieldFunctionObjects.so')
fields
(U);
mode magnitude ;magnitude\component绝对值和方向
outputControl timeStep
outputInterval 1;
log on write min\max data to standard output,
location yes 写出坐标
write yes
forcesCofficients:输出升力系数,
1、function objects为函数对象,程序运行的时候直接链接,有时候和工具是重合的,probe、大密度连续采样这时候用工具里面的,这时候会输出大量的文件,function object运行的时候设定好,大大节省硬盘空间,在controlDict底下。
画图,监视程序,forces
压力场的积分值,pressure,skin-friction
forces{
type forces;
functionObjectLibs('libforces.so');
patches(hull);边界面
rhoinf 998.8;在不可压缩流里面需要
rhoName 不是必须的
UName 不是必须的
log on;是否显示出来受力
outputControl timestep:
outputInterval 1;每一个步长输出
cofR (1 1 1)算力矩指定一个点,围绕这个点得到的力矩
fieldAverage,场的值
边界上的值(wall shear stress)
图像的生成,模拟的监视。
stupid
refineMesh:加密网格,可以在多个方向进行加密,可以直接使用,直接使用就会对所有网格进行加密,如果不生成新文件夹,refineMesh -overwrite,这样直接覆盖原先生成的网格,每个方向都会扩大两倍。
refineMeshDict,对特定的区域进行加密
用topeset选定网格序列,加载到 set
指定方向要加密的方向,总体坐标系coordinatesystem总体坐标系,指定两个加密方向
tan1(1 0 0)X方向
tan2(0 1 0) y方向
只需要指定加密方向:tan1 tan2 normal
usehextopology :是否只用六面体网格加密
geometriccut :允许是否切割网格。
可以直接执行,网格每个方向加密一倍
1、createBaffles:内部的面转变为边界面。内部面(neighbor 和owner)外部面只有owner,无厚度的面,画内部的无厚度面。createBafflesDict:internaofacesonly true:facezone包含了一些边界面,内部的边界面不会修改,只会改内部面,只改内部面。方法1:type:faceZone(topeset创建)
zoneName: baffleFaces
指定patches,patchPairs,两面壁面,两个边界条件都一样,参数都一样。create two patches of same type,same
方法2 :
pathces,两边的边界条件不一样,制定两个master和slave两个面,两个面分别给不同的边界条件。
周期性的边界条件,master和slave都是cycliAMI,周期性的面只能用patches。
案例:damBreakPorousBaffle,加了个有渗透无厚度的壁面,createBafflesDict,,,searchableSurface:指定一个圆点,制定跨域,p_rgh:压力突变 porousBafflesPressure类型边界条件,(达西公式)createBafflesoverwrite setFields
1、transformpoint,对已经生成的网格进行移动。translate+vector移动;rotate+(vector vector)旋转;3、scale+vector成比例的放大和缩小。
成比例放大和缩小:transforPoints -case cavity -scale‘(1.2 0.4 1)’X方向1.2倍,Y方向0.4倍。
rm -rf 删除文件夹。
2、checkMesh,检查网格。
mkdir -p $FOAM_RUN
General intro on the solvers
-basic
-potentialFoam:solve the velocity potential
-laplacianFoam:solve the Laplacian equation for diffusiom process
-scalarTransportFoam:solve the transport equation for prassive scalar
-combustion
-compressible
-rhoSimpleFoam :compressible+simpleFoam
-rhoPimpleFoam:compressoble+pimpleFoam
-rhoPorousSimpleFoam:compressoble+PorousSimpleFoam