OpenFOAM方腔驱动流算例 里面包括详细注释的icoFoam求解器icoFoam_learn 运行脚本为allrun,清理算例文件脚本为allclean 使用方法: 1、linux环境下安装OpenFOAM-7,并配置好环境变量 2、下载算例《icoFoam学习算例+程序》并解压 3、进入文件夹cavity_learn/icoFoam_learn在终端输入$wmake编译求解器icoFoam_learn 4、返回文件夹cavity_learn在终端运行脚本allrun,$./allrun 学习时在cavity_learn目录中打开vscode,建议将整个OpenFOAM拖入这个文件夹中,便于函数跳转
2024-07-23 16:12:35 155KB linux bash OpenFOAM
1
icoFoam 求解器名称 |-createFields.H 场变量的声明和初始化 ————————————————————————————————————————————— Info<< "Reading transportProperties\n" << endl; //屏幕提示读入参数控制文件,等价于 C++中std::cout //声明属性字典类对象,该对象由 constant 文件夹下的“transportProperties”初始化创建。 IOdictionary transportProperties ( IOobject //其实IOobject,顾名思义就是输入输出对象,它完成的是一个桥梁的作用,即连接要构造的类及硬盘中的相应文件。这可以通过其成员函数objectStream()了解到,当完成了“搭桥”之后,便可通过这一成员函数返回硬盘文件对应的输入流,从而从输入流中读入将要构造的类的相关信息// ( "transportProperties", // 文件名称 runTime.constant(), // 文件位置,case/constant mesh, // 网格对象 IOobject::MUST_READ_IF_MODIFIED, //如果更改,必须读入 IOobject::NO_WRITE // 不对该文件进行写操作 ) ); //字典查询黏性,以便初始化带有单位的标量 dimensionedScalar nu ( transportProperties.lookup("nu") ); //屏幕提示创建压力场 Info<< "Reading field p\n" << endl; //创建压力场 volScalarField p //声明一个带单位的标量场,网格中心存储变量。 ( IOobject // IOobject主要从事输入输出控制 ( "p", // 压力场初始文件名称 runTime.timeName(), // 文件位置,由case中的system/controlDict中的startTime控制 // 在OpenFOAM中,icoFoam是一个用于模拟无粘或低粘流动的求解器,常用于处理不可压缩流体的问题。在这个学习笔记中,我们将深入理解icoFoam的【createFields.H】文件中涉及的关键概念和技术。 `IOdictionary`是OpenFOAM中的一个重要类,它用于处理配置文件,例如`transportProperties`。`IOdictionary`通过`IOobject`类与硬盘上的文件建立联系,允许读取和写入特定的数据。在示例中,`transportProperties`字典读取了`constant`文件夹下的`transportProperties`文件,该文件定义了流体的物理性质,如黏度(nu)。`lookup("nu")`方法则用于获取黏度值,这是一个具有物理单位的标量。 接着,我们看到了`volScalarField p`的声明,它是压力场。`volScalarField`是OpenFOAM中用于表示在整个计算域内存储的标量场的类。`p`的压力场由`IOobject`控制,文件名为`p`,存储位置基于当前时间(由`runTime.timeName()`决定),这在处理非稳态问题时非常关键,因为它会随着模拟时间的变化而变化。`MUST_READ`表示必须读取此文件,而`AUTO_WRITE`意味着OpenFOAM会根据`controlDict`中的设置自动写入数据。 然后,`volVectorField U`声明了速度场,它是一个体向量场,同样使用`IOobject`进行管理和输入输出。`U`的定义方式与`p`类似,但代表的是流动的速度分量,也是在每个网格中心存储的。 `createPhi.H`包含的`surfaceField phi`涉及到界面流率,它被存储在体之间(volume)的交界面上。这种类型的场对于处理自由表面流动或者多相流问题至关重要,因为它能够追踪不同相之间的界面。 icoFoam求解器在启动时会读取必要的参数,如黏性(nu)和压力、速度场的初始条件。这些场都是基于网格的对象,它们的输入输出由`IOobject`管理,并且会随着模拟时间的推进动态更新。了解这些基本概念对于理解和使用icoFoam进行流体模拟至关重要。在实际应用中,用户还需要熟悉如何编写和修改相应的控制文件,如`controlDict`,以定制模拟的具体设置。
2024-07-23 16:09:39 57KB openfoam
1
本文档从有限体积离散出发,介绍了CFD算法中最基础的PISO,SIMPLE和PIMPLE算法,并将对应各个算法的求解器代码进行了简单解析。本文档适合openFOAM编程的初学者掌握基础的理论知识。
2021-03-16 17:02:04 2.96MB openFOAM CFD PISO算法 icoFoam
1