【OpenFOAM入门学习资料】IOobject类对象的构建
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一个IOobject是如何构造的
简单描述:在OF的各种类的构造中都涉及到IOobject的构造,因而这里对其构造进行一个详细的分析。
其实单纯从IOobject类构造函数的组织来看是非常简单的,它的所有工作都是在初始化列表中进行的。
IOobject类为一个对象定义属性并且提供一个隐含的objectRegistry管理器,并为流输入输出提供基础。
其构造由一个对象名,一个类名,一个实例路径,一个objectRegistry的引用,以及相应的表明存储状态的参数。
该类具有10个私有变量:
word name_;
word headerClassName_;
string note_;
word instance_;
fileName local_;
const objectRegistry& db_;
readOption rOpt_;
writeOption wOpt_;
bool registerObject_;
objectState objState_;
其中headerClassName_,note_,objState_等三个成员变量在构造时是无需显式给出的,如:
headerClassName_在构造时就是IOobject运行时类别的typeName的值,对于IOobject对象来说即IOobject,
note_在构造时空缺,
objState_构造时都是GOOD。
因而这三个变量在构造时可无需通过构造参数给出,另外还有三个在构造函数的参数中都提供了默认值,
rOpt_=NO_READ,
wOpt_=NO_WRITE,
而registerObject_=true.
local_有时在构造时也可以保持为空,这样就衍生出了该类目前所提供的两个构造函数:
其中一个构造函数含有六个形参,这六个参数及其对应的成员变量名分别为:const word& name-->name_,
const word& instance-->instance_,
const objectRegistry& registry-->db_,
readOption ro-->rOpt_,
writeOption wo-->wOpt_,
bool registerObject-->registerObject_
而另外一个构造函数除提供上述六个形参外,还提供了:
cosnt fileName& local-->local_
因此在构造一个IOobject的对象时最少只用提供三个实参,用来指出name_,instance_和db_;
例如:
IOobject
(
"T",
runTime.timeName(),
mesh,
IOobject::MUST_READ,
IOobject::AUTO_WRITE
);
这段代码将构造一个IOobject的对象,该对象的名字(name_)为"T",实例路径(instance_)为runTime的当前时间值表示的文件夹,对象注册器(objectReistry)为mesh,读选项(rOpt_)为MUST_READ,写选项(wOpt_)为AUTO_WRITE,其余的五个成员变量的取值如下:local_();
headerClassName_(IOobject);
note_();
objState_(GOOD);
registedObject_(true);。