潘世洋 李同春,2 程 井
1(河海大学水利水电学院 江苏 南京 210098)2(河海大学水资源高效利用与工程安全国家工程研究中心 江苏 南京 210098)
复杂条件下水工有限元计算流程管理程序开发
潘世洋1李同春1,2程井1
1(河海大学水利水电学院江苏 南京 210098)2(河海大学水资源高效利用与工程安全国家工程研究中心江苏 南京 210098)
为提高用于解决复杂问题的水工有限元计算的效率与成功率,提出一种以流程管理思想及微软基础类库MFC为基础,编制界面程序进行水工有限元计算流程管理的思路。按该思路编制出一个流程管理程序用以检验水工有限元计算流程管理的优势与劣势。通过流程管理程序与一般计算流程进行比较,可以得出结论:水工有限元计算流程管理程序操作简单、易于推广;以流程管理程序进行计算,尤其是进行重复计算,其成功率和效率都会得到明显的改善。
水工有限元计算流程管理MFC效率
目前,有诸多通用商业软件可以进行有限元计算分析[1],如ANSYS、ABAQUES、FLAC3D、GID、TECPLOT等。但是,鉴于水利工程计算条件的复杂性,通常需要针对特殊计算情况进行Fortran[2]计算程序的编制,来完成有限元计算分析。经过几代水利专家学者的努力,至今已经发展出了适用于各种复杂条件的,诸多成形的数值计算Fortran程序。这类Fortran程序,因其复杂性,往往难以直接集成到商业软件中。因此,Fortran程序与各大型商业软件并不能很好的衔接,水工有限元计算流程就会被相对割裂开来。其相互关系见图1所示。
图1 加入Fortran程序后水工有限元计算过程相互关系
从图中不难看出有限元计算的前处理、数值计算、后处理三步被割裂开后通常需要在不同的软件中进行处理,它们之间的连接也只能通过人工的方式做处理。然而,由于Fortran程序的重点在于提高计算的速度,在进行计算之前往往需要进行大量文本数据的填写。这很容易造成人为的错误,而出错后若要进行检查其难度同样不小。
一直有专家学者在进行有限元计算界面集成软件的编写工作。多数人都是以一种“推倒重建”(从建模到结果查看都在一套界面中完成)的思路开展相关工作[3]。这种思路并不利于利用已有的成熟有限元商业软件的强大功能,而且可移植性也不高。
可以将流程管理的思想引入水工有限元计算中,优化计算分析流程,提高计算分析的效率。流程管理思想[4]是一种以规范业务流程为中心,提高绩效为目的的系统化的方法。通常包含以下三方面:流程规范、流程优化和流程再造。这种思想一般用于企业管理领域,且已有较为完善的体系。它强调不需要从根本上改变流程,只需对可以改善处进行合理的修改,以实现效率的提高。对于水工有限元计算,在已有较成熟成果的前提下,为提升计算的效率和成功率,有必要借鉴流程管理的思想,在不改变原有成果的基础上对计算的流程进行管理。
图2 使用MFC程序管理前处理、数值计算、后处理流程
为实现流程管理,可以采用MFC[5]作为界面编程工具。即微软基础类库MFC,是微软公司提供的一个类库,以C++[6]语言为基础,以目前主流的Windows操作系统为平台,开发简便,界面友好。为实现前处理、数值计算、后处理三步的互联互通、Fortran文本文件的检查与修改提供了可能。图2为加入MFC程序后,前处理,数值计算,后处理相互关系。
从图2中可以看出,加入管理程序后,有限计算的三步流程得到了很好的交流与联系。所以,本文尝试以流程管理思想作为有限元计算流程管理的指导思想,以MFC为实现手段,编制出一种软件,用于管理基于fortran的有限元计算分析。
水工有限元计算流程一般分三步:前处理、数值计算以及后处理。为实现水工有限元计算流程的统一,进行水工有限元计算流程管理是不可或缺的。
为方便理解,本文以ANSYS作为前处理软件,GID作为后处理软件,用MFC编程实现水工有限元计算流程的管理。
1.1流程管理思路
(1) MFC介绍
MFC即微软基础类库,开发简便,界面友好,为实现前处理、数值计算、后处理三步的互联互通、Fortran文本文件的检查与修改提供了可能。
微软基础类库MFC用于水工有限元计算流程管理的优势在于以下几点:
① 以C++语言为基础,C++语言的表现形式较Fortran语言优势明显。
② 内部封装了丰富的控件和组件,可以实现数据的展示、查找、修改等的多种功能。
③ 以Windows操作系统为平台,方便程序的推广交流。
(2) 流程管理思路
流程管理的思路可以分为四步:确定核心流程;改进或规范核心流程;流程重设计;形成最终流程。示意如图3所示。
图3 流程管理思想
首先,确定核心流程。对应有限元计算中前处理、数值计算、后处理三步骤。
第二步,明确核心流程现状。对应目前三大步骤已有的成果与不足之处。由图1,水工有限元计算三大步骤的不足之处在于,水工有限元计算的各个流程之间的信息交流仍然以人工方式进行。
第三步,流程的重设计。由第二步确定的不足之处可确定:MFC管理程序重点应该放在提升三步流程间的信息交换效率。鉴于水工有限元计算流程中生成与读取的文件格式基本都是文本文件格式。因此,可以在管理程序中建立读取与保存文本文件的机制以实现计算流程的管理。
最后,可以确定MFC管理程序所需的主要功能有:文本文件的查找、读取、保存;执行计算程序;查看计算结果等。以此为依据,再结合每步流程的各自情况即可进行管理程序的编写。
1.2前处理流程管理
(1) 前处理流程
目前,水工有限元计算比较常用的前处理软件有ANSYS、ABAQUES、FLAC3D等。虽然这些软件功能强大,但由于是通用有限元软件,其专业性不强。因此需要进行相关的二次开发,以导出对应数值计算所需的文本文件。
不同的软件都有相应的二次开发语言。以ANSYS为例,ANSYS 参数化设计语言(APDL)为一种可以通过使用参数来完成一系列任务的程序语言[7]。通过ANSYS 参数化设计语言,用户可以根据需要获取自己所需的模型信息,并按对应格式输出到文本文件中。
因此,前处理流程通常做法可以分为两步:
① 使用前处理软件建模。
② 根据Fortran文件需要,进行二次开发,导出Fortran必要的输入文件。
(2) 前处理流程管理
前处理在对应前处理软件中进行,并在二次开发后导出计算所需的文本文件。MFC管理程序对应所需功能为:
① 查找生成的文本文件。
② 在窗口显示文本文件中的数据及其意义,以方便检查。
为实现查找文本文件功能,需要使用C++语言中的文件查找功能(对应语句CFileDialog)、文件复制功能(对应语句CopyFile)。其中所需语句具体功能在C++语言相关说明文件中即可查到。为实现显示文本文件中的数据功能,需要使用MFC程序中封装的相应控件,如MSFLESGRID控件(用于数据显示,如图4所示)。
图4 MSFLEXGRID控件示例
1.3数值计算流程管理
(1) 数值计算流程
数值计算流程通常步骤为:从对应格式的文本文件中读入信息;以Fortran程序进行计算;按一定格式输出计算的结果。数值计算在整个有限元计算中占用时间较长。并且,一旦结果出错通常需要重头开始进行计算。因此,计算开始前的检查以及出错后迅速定位问题显得尤为重要。
Fotran语言程序因其强大的计算能力而在数值计算中广泛采用。然而,计算能力的强大往往意味着它在其他方面必然会弱化。事实上,Fortran语言在界面友好,文件读取与显示等方面的能力较VB语言、C语言、C++语言等要明显逊色。这无疑给开始计算前的检查以及计算出错后的迅速定位问题带来了难度。
为解决这个问题,可以在数值计算中引入MFC程序,以其丰富的界面显示能力,以及C++语言灵活的文件读取、显示功能,作为Fotran计算前检查以及出错后定位问题的补充。这样既能方便不熟悉Fortran程序的操作人员快速上手,又降低了计算出错的可能。
(2) 数值计算流程管理
数值计算流程核心是调用Fortran程序进行运算。对应于以MFC进行流程管理所需要解决的问题:
① 将前处理流程生成的输入文件加入Fotran程序所在目录。
② 运行Fortran程序形成的可执行文件,进行计算。
为实现功能a,可以采用前处理流程中寻找输入文件的方法,或者将Fortran程序所需的文件事先封装进固定的文件夹中。为实现功能b需采用C++语言中运行可执行文件的语句,如Shellexcute语句,Winexe语句等。同样,语句具体功能在C++语言相关说明文件中即可查到。
1.4后处理流程管理
(1) 后处理流程
后处理流程主要是查看计算结果,需要将数值计算结果按后处理程序所需文件格式输出。常用的后处理软件有:GID、TECPLOT、ANSYS等。这些软件各有优劣,所能识别的文件格式也各有不同。
以使用GID作为后处理软件为例。GID需要的输入文件有两种:msh文件和res文件。msh文件中需要包含模型的结点信息、单元信息,res文件中需要相应结点的位移、应力等信息。以此为依据,修改Fortran程序中的输出方式,以输出符合GID格式要求的文件。
(2) 后处理流程管理
后处理流程的管理较为简单,只需实现在后处理软件中打开数值计算的结果文件的功能。因此,实现后处理流程管理分为两步:一是定位结果文件及文件类型;二是使用执行语句打开对应结果文件,执行语句即上述Shellexecute语句等。
1.5水工有限元计算管理程序与一般做法比较
水工有限元计算的三步流程,在各自的流程内,国内外都已经有较为完善的成果,然而这三步的统一连接与控制却鲜有人涉及。技术与知识的存在最终都要落实到应用上。为了更好地应用水工有限元分析方法,实现前处理、数值计算以及后处理流程的统一将是一个不错的发展方向。
将引入MFC的管理程序与一般做法的流程进行比较,结果列表如表1所示。
表1 流程比较
从表1可以看出:
① 在前处理与数值计算流程之间,基于MFC的管理程序将操作人员从繁琐的复制粘贴工作中解放出来;表格的显示方式给检查工作带来了极大的方便,同时大大降低出错的可能;当计算出错时一般查错做法的效率极低,而基于MFC的管理程序以表格的方式将各种数据进行了分类,方便查找,提高了不少效率。
② 在数值计算与后处理阶段,相较一般做法,基于MFC的管理程序操作更为简便,只需一个按钮即可打开结果文件。
③ Windows系统程序带有的记忆功能对于大量的重复劳动具有很好的提高效率的效果。对于做过的计算,程序可以记忆其文件路径,再次计算时不需重复查找文件的繁琐工作,这大大节省了时间。
总而言之,基于MFC的计算流程管理软件一般有以下优势:
① 以表格方式显示Fortran输入文件,方便检查,且检查效率高。
② 操作简单快速,尤其方便重复计算,这对于需要多次计算以确定结果可靠性的水工有限元计算来说显得格外重要。
③ 采用流程管理的思想联系前处理、数值计算、后处理三步,节省工作时间,提高工作效率。
④ 以Windows操作系统为平台,适应面广,利于广泛推广。
2.1算例介绍
以土石坝的静力计算为例。
建立模型:坝底180 m,高40 m,坝顶10 m。心墙顶部6 m,底部20 m。模型竖直方向分五层,每层8 m。五层填筑,建成后蓄水35 m。
以编写的MFC管理程序进行计算流程的管理;前处理流程采用ANSYS进行模型建立与二次开发;Fortran计算程序参考 《计算土力学》[8]中静力计算部分编写;后处理部分在GID软件中进行。计算流程如图5所示。
图5 计算流程
2.2具体计算步骤
1) 使用前处理软件ANSYS建模,进行二次开发导出模型基本信息。如图6所示。
图6 模型信息
2) 打开MFC管理程序,导入输入文件并进行查看。如图7所示。
图7 MFC管理程序界面及Msflexgrid控件显示的数据
3) 检查无误后,使用管理程序中的Solve菜单项进行数值计算。如图8所示。
图8 MFC管理程序界面数值计算
4) 若出错,则返回步骤b)进行查看确认并修改错误;若计算成功则使用MFC管理程序中的Result项进行结果的查看。如图9所示。
图9 MFC管理程序界面查看结果
5) 在GID中进行结果的后处理。该计算程序在GID中可以按填筑级数查看结果,包括:各级填筑的X向位移及应力、Y向位移及应力、水头值等。部分在GID中查看的结果如图10所示。
图10 GID中显示的计算结果1(最后一步X向的位移)
2.3模型网格细化
有限元计算为得到更精确的结果,通常需要将模型进行多次剖分计算。由于流程管理程序可重复计算的优势,采用流程管理程序进行多次计算所耗费的时间会明显小于以一般做法计算所耗费的时间。这必然可以节省很多时间和精力的投入。
将以上算例所建模型再次划分不同密度网格重复之前算例步骤进行计算。得出结果比较如表2所示。
表2 不同网格密度下的计算结果
根据表2,绘制Y向最大位移与自由度的关系曲线图。如图11所示。
图11 Y向最大位移与自由度的关系曲线图
本文介绍了一种基于流程管理思想以及微软MFC基础类库进行有限元计算流程管理的思路。该思路将复杂条件下水工有限元计算流程关联起来,以期节省工作时间、提高工作效率。根据编制的管理程序的实际运用情况可以得出:进行复杂条件下水工有限元计算的管理,对于计算的效率与成功率都有显著的改善。
为实现复杂条件下水工有限元计算流程管理程序的编制,除了需要水工有限元计算必要的知识外,还需要一定的C++语言基础以及对前处理、后处理软件的熟悉。这就要求编写者具有一定的跨学科知识基础。后续的研究工作需要弱化对界面编程语言的要求,并且强化程序的可移植性,以期实现一个管理程序可以集成多种复杂条件下的水工有限元计算流程。
[1] 王勖成.有限单元法[M].北京:清华大学出版社,2003.
[2] 彭国伦.自制带标签版Fortran 95程序设计[M].北京:中国电力出版社,2002.
[3] 郭祥伟,陈国荣,刘银芳.基于VB与Fortran混合编程的混凝土坝温度应力仿真分析软件开发[J].水利水电科技进展,2012,32(2):65-69.
[4] 黄艾舟,梅绍祖.流程管理原理及卓越流程建模方法研究[J].工业工程与管理,2003(2):46-50.
[5] 侯俊杰.深入浅出Windows MFC程序设计[M].武汉:华中理工大学出版社,1998.
[6] DavidJ·Kruglinski.VisualC++6.0技术内幕[M].北京:北京希望电子出版社,1999.
[7] 美国ANSYS公司.APDL使用指南[M].匹兹堡:ANSYS公司,2001.
[8] 朱百里,沈珠江.计算土力学[M].上海:上海科学技术出版社,1990.
DEVELOPING PROCESS MANAGEMENT PROGRAM FOR HYDRAULIC FINITE ELEMENT CALCULATION IN COMPLICATED CONDITIONS
Pan Shiyang1Li Tongchun1,2Cheng Jing1
1(College of Water Conservancy and Hydropower Engineering,Hohai University,Nanjing 210098,Jiangsu,China)2(NationalEngineeringResearchCenterofWaterResourcesEfficientUtilizationandEngineeringSafety,HohaiUniversity,Nanjing210098,Jiangsu,China)
In order to improve the efficiency and accuracy of hydraulic finite element calculations in complicated conditions, in this paper we put forward such an idea, it takes the process management thought and Microsoft Foundation Class Library MFC as the basis, and compiles interface program to carry out process management of hydraulic finite element calculation. According to this idea we compiled a process management program and used it to test the advantages and disadvantages of this process management of hydraulic finite element calculation. By comparing the management program and the general calculation process, it can be concluded that the process management program compiled by us is easy to operate and convenient to promote, meanwhile, the success rate and the efficiency of calculations, especially for repeated calculations, can be obviously improved by using the process management program.
Hydraulic finite element calculationProcess managementMFCEfficiency
2015-05-14。潘世洋,硕士生,主研领域:水工结构工程。李同春,教授。程井,副教授。
TP315
A
10.3969/j.issn.1000-386x.2016.09.019