面向对象的CFD程序设计实验——[4]

[入库:2005年8月19日] [更新:2007年3月24日]

本文简介:选择自 quain_tchew 的 blog

为了实现参数文件操作,我不打算自己写这样的代码。以前使用过amroc,觉得它的controldevice那个类很好,完全透明的参数文件读取,于是想拿过来用用。这样就要求需要外部参数的类必须由一个controlable类派生,包含一个提供参数来源(在这里是参数文件)的controldevice成员对象,并重载一个有关参数注册的方法register_at(controldevice &, const string &)。所以我又修改了case、boundarycondtion类,并加入了一个timecontrol类作为计算时间管理,因为这三个都是需要外部参数的。

到这里,我觉得需要测试一下,看看这三个类能否正确操作参数文件,读取正确的参数。于是问题就来了,由于case里面包含有mesh、solvercontrol类的引用,但是这些类还没实现,在代码编译时就会有问题。没法子,我只好暂且删除这些成员变量,完了再添加上去。这样类图就成为如下所示

 

然而使用别人的类看来不是一件容易的事情。那些参数文件操作类本身还是不算简单的,因为设计者g. berti的本意是能够从广义外部的设备(文件、设备、gui……)提取参数。当我企图把单独编译这个externalcontrol代码时就发现这玩意还连着另外一些名为utility东西的代码,而且再unix下开发时g. berti考虑了多种编译器不同的情况,使得需要定义不少宏来设置编译选项。我考虑ralf deiterding 在amroc中实现的简化版externalcontrol,不幸的是,也需要定义不少编译选项宏。这东西的makefile文件我当初花了不少时间才搞个半懂,难道要写类似那样的makefile文件么?god。

本文关键:面向对象的CFD程序设计实验——[4]
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top