单元还可以不断扩充,体现了程序的可扩充性。
图3 VC 编辑器对有限元对象类的管理
MFC 类库除了在对象类的设计和定义有重要的应用外,在面向对象有限元程序中还有两个重要的应用:工具类和图形类的使用。
MFC 封装了相当多的工具类,如CArray 数组类、CList 链表类以及它们的模板。笔者在开发程序中,应用它们对结构对象数据进行管理,极为方便。如应用CObArray 数组类构造了各个单元数组来存储各个单元对象的数据,应用CObList 链表类构造了各个单元链表,实现了对各个图元对象拾取中的选择、存储以及调用等操作[5]。利用面向对象技术,单元基类的各种功能函数对于不同类型的单元都是适用的,体现了程序中代码的可重用性。
MFC 也封装了相当多的图形类,它们以CDC 为基类,能够实现画图、填充、坐标转换等多种功能。这样就可以在有限元集合上扩充各个对象的图形功能,把有限元前后处理的图形显示和分析计算作为统一的对象集合来考虑。Marifep 程序在有限元对象和MFC 负责屏幕显示的CView 对象之间用MFC 构造了一个图形映射对象。该映射对象负责坐标转换、窗口放缩等具体的图形操作细节;而各个有限元对象只要简单的将自身的前后处理绘制在由图形映射对象所提供的虚拟环境中,就可以实现数据可视化效果,如图4 所示。