openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程

上传人:第*** 文档编号:48805715 上传时间:2018-07-20 格式:PPT 页数:72 大小:938KB
返回 下载 相关 举报
openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程_第1页
第1页 / 共72页
openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程_第2页
第2页 / 共72页
openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程_第3页
第3页 / 共72页
openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程_第4页
第4页 / 共72页
openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程_第5页
第5页 / 共72页
点击查看更多>>
资源描述

《openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程》由会员分享,可在线阅读,更多相关《openfoam典型case各文件注释及加入和应用新方程和创建新边界条件教程(72页珍藏版)》请在金锄头文库上搜索。

1、OpenFOAM的基础篇陈丽萍南京工业大学城建学院暖通研究所第一部分 OpenFOAM的简介OpenFOAM(Open Source Field Operation and Manipulation)第一部分 OpenFOAM简介其官方网站为”库”(library)C+语言编写利用OpenFOAM得到可执行的软件(application)求解器 solver工具 utility数值计算后处理流体流动、化学反应、 换热 、 结构动力学、 电磁场、金融评估等建模、 网格 、边界条件前处理计算结果显 示和处理1. OpenFOAM框架2. OpenFOAM 应用分类应用分类(1) 直接利用标准求解器

2、(2) 自定义求解器(3) 自定义离散方法替代商业软件免费喔这类需求较大,商业 软件与之不可相比的更高级的应用下面再谈谈 分类(2)和(3) 的魅力商业软件中的所谓udf,user subroutine和这是不可相比的。总之,将OpenFOAM作为类库来构建自己的求解器,这是其它软件无法实现的。 分类(2)自定义求解器的魅力按照自己的求解流程来编写求解器, 关注的重点是求解的流程。需要关心离散和求解的最底层的知识吗?开始初始值用CFD进行室内温度计算辐射传热计算Qri导热计算Qcdi由热平衡求新的对流传热量Qcvi m+1收敛条件结束Qcvi m 赋新值对于研究离散格式、代数求解器用户来说,创

3、建更高效更高精度的离散方法,这需要修改finiteVolume库和OpenFOAM库中对应的代码。分类(3)自定义离散方法的魅力尤其是对流项,尽管OpenFOAM已经提供了基于NVD和TVD的模板和40多种有名的高阶高精度格式,这仍然是不够的,对流项的离散仍然是目前CFD的重点研究方向。高级应用服务未来第二部分 OpenFOAM的应用标准求解器solver的应用 (以顶盖驱动流为例)算例Case的结构:FoamFile version 2.0;format ascii;class dictionary;object blockMeshDict; / * * * * * * * * * * *

4、* * * * * * * * * / convertToMeters 0.1;网格文件 blockMeshDict文件头vertices (0 0 0)(1 0 0)(1 1 0)(0 1 0)(0 0 0.1)(1 0 0.1)(1 1 0.1)(0 1 0.1) ); blocks (hex (0 1 2 3 4 5 6 7) (20 20 1) simpleGrading (1 1 1) ); edges ( ); patches (wall movingWall (3 7 6 2)wall fixedWalls (0 4 7 3)(2 6 5 1)(1 5 4 0)empty fro

5、ntAndBack (0 3 2 1)(4 5 6 7) ); 算例所在的目录下,在运行终端窗口输入:blockMesh进行网格生成。网格生成过程中,如有错误,运行终端窗口将显示。查看网格在运行终端输入:paraFoamFoamFile version 2.0;format ascii;class dictionary;object controlDict; / * * * * * * * * * * * * * * * * * * / application icoFoam; startFrom startTime; start Time 0; stopAt endTime; endTime

6、 0.5; deltaT 0.005;文件为system/controlDict,典型的controlDict文件如下writeControl timeStep; writeInterval 20; purgeWrite 0; writeFormat ascii; writePrecision 6; uncompressed/compressed; writeCompression uncompressed; timeFormat general;timePrecision 6; /时间文件夹精度runTimeModifiable yes; /在求解过程中是否允许修改以上参 数文件为syste

7、m/fvSolution,典型的文件为 :(省去文件头)solvers /方程求解器 p PCG /压力采用预条件共轭梯度法(主要用于求解对称矩阵)preconditioner DIC; tolerance 1e-06; /残差relTol 0; /迭代容差;U PBiCG /速度采用预条件双共轭梯度法(主要用于反对称矩阵)preconditioner DILU; /预测器,对角不完全LUtolerance 1e-05;/残差relTol 0; /迭代容差; PISO /piso控制参数 nCorrectors 2;/修正次数nNonOrthogonalCorrectors 0;/非正交修正次

8、数pRefCell 0;/压力参考cell的indexpRefValue 0;/压力参考值 离散格式的选择:文件:system/fvSchemes,典型文件 :(省去文件头)ddtSchemes default Euler; /欧拉离散 gradSchemes /梯度离散 default Gauss linear;/高斯方法,线性插值grad(p) Gauss linear; /压力的梯度离散 divSchemes /散度离散 default none; /散度的离散(必须指定没有默认值)div(phi,U) Gauss linear;/对流项离散,高斯理论,用线性插值 laplacianSc

9、hemes /拉普拉斯项离散 default none; /拉普拉斯项离散,必须指定laplacian(nu,U) Gauss linear corrected; /扩散项离散采用 高斯理论,采用线性插值laplacian(1|A(U),p) Gauss linear corrected;/压力方程离 散采用高斯理论,线性插值 interpolationSchemes /插值格式 default linear; /默认线性插值interpolate(HbyA) linear;/线性插值 snGradSchemes/梯度法向分量 default corrected;/默认带有非正交修正 flux

10、Required /是否计算流律 default no; /默认不计算p;/压力需要计算,因为需要利用压力流律修正速度0目录中压力文件:FoamFileversion 2.0;format ascii;class volScalarField;object p;/ * * * * * * * * * * * * * * * * * * * * * * /dimensions 0 2 -2 0 0 0 0;internalField uniform 0;boundaryFieldmovingWall type zeroGradient; fixedWalls type zeroGradient;

11、 frontAndBack type empty; / * /dimensions 0 1 -1 0 0 0 0; internalField uniform (0 0 0); boundaryField movingWall type fixedValue;value uniform (1 0 0); fixedWalls type fixedValue;value uniform (0 0 0); frontAndBack type empty; 速度文件如下:transportProperties 字典文件: FoamFile version 2.0;format ascii;class

12、 dictionary;location “constant“;object transportProperties; / * * * * * * * * * * * * * * * * * * * * * / nu nu 0 2 -1 0 0 0 0 0.01;在算例所在的目录下,在运行终端输入:icoFoam 等值线或等值面第三部分 求解器求解器结构:Info(“C“);gradient_ = f(C);operator=(this-patchInternalField() + gradient_/this-patch().deltaCoeffs();2. 修改 newgradFvPatchScalarField.C3. OpenFOAM-1.xsrcfiniteVolumeMake 的files 文件中添加关于新边界的编译文件$(derivedFvPatchFields)/newgrad/newgradFvPatchField.C 444. 进入OpenFOAM-1.xsrcfiniteVolume 目录 编译wmake libso如何应用newgrad 边界条件?同OpenFOAM 提供的边界条件 一样!Thank you for listening!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 外语文库 > 英语学习

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号