OpenFOAM实用手册
1. 如何获得帮助
2. 经验教训
2.1 哲学
2.2 通过使用学习
2.3 通过修补OpenFOAM进行学习
2.3.1 我今天学到了一些东西
2.3.2 代码有问题吗?
3. 安装OpenFOAM
3.1 先决条件
3.2 下载来源
4. 更新OpenFOAM仓库版本
4.1 版本管理
4.2 检查更新
4.3 仅检查更新
4.4 安装更新
4.4.1 工作流程
4.4.2 问题排查
4.5 更新问题
4.5.1 缺少安装包
4.5.2 库的更新
4.5.3 更新的源无法编译
4.5.4 自有代码无法运行
5. OpenFOAM-6源安装更新方法
5.1 动机
5.2 使OpenFOAM-6的源码能够被更新
5.3 重新编译源包
6. 维护OpenFOAM的安装
6.1 应对操作系统更新
6.2 应对操作系统升级
7. 第三方软件安装
7.1 安装pyFoam
7.2 安装 swak4foam
7.3 编译外部函数库
8. 搭建环境
8.1 初始化(source)OpenFOAM
8.1.1 永久初始化(source)OpenFOAM
8.1.2 按需初始化(source)OpenFOAM
9. 单位和维度
9.1 单位检查
9.1.1 关于基础单位的一条重要提示
9.1.2 单位输入语法
9.1.3 单位编程语法
9.2 维度
9.2.1 维度检查
9.3 运动黏度 vs. 动力黏度
9.4 误区:OpenFOAM中的压强
9.4.1 不可压缩
9.4.2 可压缩
9.4.3 误区:不可压缩多相流问题中的压强
10. 文件和目录
10.1 必需的文件目录
10.2 补充目录
10.2.1 处理器
10.2.2 函数
10.2.3 数据组
10.3 系统目录文件
10.3.1 主文件
10.3.2 附加文件
11. 控制OpenFOAM
11.1 施加控制的手段
11.1.1 变量
11.1.2 字典
11.1.3 命令行参数
11.2 字典的语法
11.2.1 关键词--香蕉测试
11.2.2 必须的和可选的设置
11.2.3 陷阱:分号(;)
11.2.4 开关
11.3 controlDict
11.3.1 时间控制
11.3.2 数据写入
11.3.3 加载附加库
11.3.4 函数
11.3.5 外包一个字典
11.3.6 陷阱
11.4 字典的运行时间修改
11.5 fvSolution字典
11.5.1 解算器控制
11.5.2 解算方法控制
11.6 命令行参数
11.6.1 获取帮助。-help
11.6.2 获得控制:-dict
本文档由OpenFOAM公众号整理制作
-
+
首页
9.1.3 单位编程语法
#### 9.1.3 单位编程语法 OpenFOAM中的单个数字或这整个场不仅可以从文件中读取,还可以从现有的数据中计算得到,或者创造全新的,独立于现有数据的数据。让我们看看如何从编程的角度创造一个带单位的数据。在OpenFOAM中有带单位的数据类型和不带单位的数据类型,如scalar和dimensionedScalar两类。dimensionedScalar类型基本上式scalar加上dimensionSet。 **计算带单位的量** 计算出的场从涉及的运算和运算对象中继承他们的单位集(dimension set)。表27显示了根据速度场的平方创建了动能场K。新创建的场的名字是K,因为K作为参数传递给了构造函数。场K的单位来自于构造函数的第二个参数。因为对数值类型的所有数学操作都是对单位的镜像,所以对单位类型的任何数学操作不仅会产生数值结果,还会产生单位结果。在这种情况下,最终的单位是平方米每平方秒。 ``` Info < < "Creating field kinetic energy K\n" << endl ; volScalarField K ("K", 0.5* magSqr ( U ) ) ; ``` 表27 计算动能场 **计算带单位的量** 当从零开始创建一个带单位的量时,需要明确地说明单位集。在表28中,单位集作为第二个参数明确地传递给了dimensionedScalar的构造函数。注意单位集中的五个参数的使用。由于最后两个SI单位(电流和发光强度)在流体动力学中几乎不需要,为了方便,仅在构造函数中定义五个参数即可。 ``` dimensionedScalar foo("foo", dimensionSet (0 , 3 , 0 , 0 , 0) , scalar (1.0) ) ``` 表28 创造一个新的dimensionedScalar数据类型的变量 总是明确设置单位集的5个或7个指数会使代码严重膨胀,而没有任何好处。因此,dimensionSet中有许多全局常量。这些常量定义了最常见的单位集,并提供了非常方便的简写,如表29所示。 ``` dimensionedScalar bar("bar", dimless , scalar (0.0) ) ``` 表29 创造一个新的dimensionedScalar数据类型的变量 由于对带单位的量的数值部分执行的所有数学运算也在单位集上执行,因此dimensionSet类也实现了相应的数学操作。我们可以使用这些单位和全局简写来定义我们的新的带单位的量的单位集。在表30中,我们没有必要计算速度的单位集,但是,这个表演示了单位集数学运算的使用。 ``` dimensionedScalar baz ("baz", dimLength / dimTime , 42.0) ``` 表30 创造一个新的dimensionedScalar数据类型的变量
poplee
2024年11月4日 15:46
转发文档
收藏文档
上一篇
下一篇
手机扫码
复制链接
手机扫一扫转发分享
复制链接
Markdown文件
分享
链接
类型
密码
更新密码