admin 管理员组文章数量: 1086019
2024年4月16日发(作者:c语言入门看什么书)
OpenFOAM常用类的一些总结
OpenFOAM中有许多类,每个类的功能都很强大,这也使它面向对象设计得以实现。
对于程序,最常用到的,也是最底层的就是数据,在OpenFOAM中引入了三类基础数据类型:
标量scalar, 向量vector, 张量tensor.这三个中数据类型,也是FOAM中最基础的三个类。(还有
一个比较重要的就是bool和label,前者就是是非型,及对错型,只不过是更扩展一些,后者是标
签型数据,相当于c中的整型。关于更多的其它数据类型可以参看目录..srcOpenFOAMprimitives
里面)
在上述数据类的基础上,增加场(field)的概念,就引入了标量场scalarField, 向量场
vectorField, 张量场tensorField。 实际上这三个类又是field类的typedef,如typedef
field
积等。说到这field class,其实他就像是一个数据存放的区域一样,存放上scalar,那它成了标量场
scalarField。这些类中可以有接口实现数据的计算。从field类中又派生出了FieldField类,这个就
是说场中场类,其实这个主要用于边界条件类的一个基类。因为边界条件算是网格类场中的一个特
殊的场,后面会介绍。
比field类高一点的就是几何场类 GeometricField class,其相比field class多了纪录场位置
的相关信息。说到这里请大家注意他和polyMesh class的区别,后者只是纪录网格的结构,如点的
位置、面的组成、体的组成等等,polyMesh class中对应有pointMesh,surfaceMesh,volMesh
等类,从字面上很容易理解其处理和记录网格点、网格面、网格体等信息。而GeometricField类,
其则是记录了在什么样的网格上有量a的相关信息或数据。它包括了内部区域、边界区域
(GeometricBoundaryField class)、网格、尺度单位、计算的先前时间阶的值等。在该类中有常
用的三种(实际上还有其他的许多,可以参看OpenFOAM网上说明):volScalarField体标量场,
volVectorField体向量场,volTensorField体张量场。这里说的场与field有所不同,这里指的是网
格区域上所对应的数据信息。上述的vol就是指ployMesh中的volMesh,如volscalarField类来
说:见下例
volScalarField p
(
IOobject
(
"p",
me(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
),
mesh
版权声明:本文标题:OpenFOAM常用类的一些总结 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://roclinux.cn/p/1713220636a624557.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论