有限元linuxwindows

linuxwindows  时间:2021-03-28  阅读:()

第1章FEPG简介与安装1.
1FEPG是什么或许无需赘言FEPG是什么,读者可能通过各种途径已经对FEPG有了一定的了解.
但不能排除有些读者的确是第一次接触它.
FEPG是"FiniteElementProgramGenerator"的缩写.
顾名思义,它是有限元软件的生成器,因而称为"有限元程序自动生成系统".
简单地说,这是一套有限元软件,然而顾名思义未必准确,其实它还是一套支持有限体积法的软件.
也就是说,这是一套可以生成有限元或有限体积法源程序的软件.
这套系统是利用有限元方法或有限体积法进行数值计算的软件包.

该系统由中国科学院数学与系统科学研究院梁国平先生开发,是一套独具特色的国产高性能有限元数值计算软件.
这些特色将随着本书的叙述逐渐得以展现并被用户体会到.
笔者根据自己的理解和体会用下面几个软件开发领域流行的术语从不同的角度对其做总体概括.

FEPG的总体技术特征可以概括为以下几点:CAG:CodeAutomaticGeneratorFEPG是代码生成器,是生成软件(源代码)的软件.
IDE:IntegratedDevelopmentEnvirenmentFEPG是一套有限元(有限体积)程序的集成开发环境.
CAE:ComputerAidedEngineeringFEPG是一套计算机辅助工程软件.
PSE:ProblemSovingEnvironmentFEPG对用户来说是一套集成的工作平台和问题求解环境.
AreusablecoderepositoryFEPG是一套高效、可重用的代码仓库.
初学者可能对于上述概括不太理解,希望读者带着这些疑惑,在后续的学习中不断体会和领悟.
鉴于FEPG的高度灵活性,对于FEPG究竟是什么这个问题,完全应由用户根据自己对其理解和体会归纳出来.
用户体会越深,使用越灵活,越表明在使用FEPG上正在逐步达到较高层次.

1.
2学习FEPG的起点严格来说,不同用户有不同的基础,也都有适合自己的学习方法.
但也有不少用户反映FEPG难学,或者难以学得深入.
甚至一些用户在使用一段时间后,感觉其纷繁复杂而无从下手,或者困惑于究竟是否要先完整学习有限元理论而裹足不前.
笔者认为,拥有工科本科的知识基础(有限元基础,计算机知识基础),再适当补充有限元的基本数学知识都是可以学好的,问题的关键是找到FEPG学习的起点.

我们的工作和学习常常因为没有积极的进步(如成果、成就感等)作为激励而缺乏兴趣、难以坚持.
很多人执迷于电子游戏的主要原因正是可以随时获得"晋级"等"奖赏"作为动力.
另一方面,这些"晋级"或"奖赏"所带来的成就感又逐渐成为游戏玩家的目标.
这就提示我们,明确的目标和不断进步的正反馈是一个重要的动力之源.
对于大多数用户来说,学习FEPG不是目标,使用FEPG解决专业问题才是目的.
在学习FEPG时最好一开始就结合自己的研究任务,也就是直接把待解决的问题作为自己的学习实例,而不是一味地做书本上现成的简单实例.
这样,使用FEPG就有了明确的目标.
在解决问题这一目标的吸引下,边用边学,遇到问题随时思考、咨询.
到了最后目标问题解决之日,FEPG也就完全学会了.

当然,可能有些用户习惯于先把所有有限元知识都学懂了才敢学FEPG,然后再去解决实际问题.
但笔者认为,这不是研究阶段的工作方法.
学习的主要目的还是为了解决问题,在问题没有解决的时候盲目地学习自己认为可能用到的知识将会花费过多的时间,最后可能会发现对解决问题并没有直接帮助.
因此,效率最高的方式就是在有了必需的基础后,边干边学边思考,把学习FEPG贯穿于研究、解决具体的实际任务当中.

1.
3为什么用FEPG,谁用FEPG应用有限元方法和程序,当前不外乎几种情况:一种是购买和使用大型商业有限元程序;一种是完全自己开发和使用有限元程序;第三种则是从别处(如导师或其他人)获得别人的有限元程序代码,在使用过程中加以修改丰富以满足自己的要求.
另一方面,从需求者的角度而言,可以分为两类,一类是对灵活性要求较高的,比如科研应用;一类是对灵活性的要求不那么高的,比如多数工程领域的应用.

对用户而言,软件只是实现目标的工具.
然而目前软件工具真可谓汗牛充栋,即便同一个领域,比如有限元领域,也存在非常多的选择.
每个软件都有自己的特色,也都有自身的局限性.
选择软件一看能否满足自己的需求,二看该软件能否更好地满足需求,比如能否更高效地、更高质量地完成自己的目标.
即便如此,如果没有前人指导,面对众多软件做出一个合理的选择有时也的确是一件费心的事情.

当前国际上有大量功能强大的有限元软件包可供使用.
ANSYS,ABAQUS,ADINA,NASTRAN等鼎鼎大名的大型通用有限元软件占据了国内有限元软件的很大市场.
在这种情况下,为什么国产的FEPG系统日益获得了较多的应用呢事实上,许多学者在做研究时发现,尽管商业通用软件功能强大,使用方便友好,但是,在处理实际问题中的需求是千变万化的,很多情况下,这导致通用软件并不完全通用.
比如,研究人员想修改程序的算法,或者想修改一下控制方程,甚至有时连想增加一个补充方程(如本构模型)都很难做到.
这是由于商业软件不是完全开放的,用户不能直接修改程序的源代码.
仅仅依靠用户子程序或内嵌语言等开放接口所提供的灵活性是远远不够的.

事实上,这些大型商业软件的特点是,通常只针对有限的几类特定问题(特定的数学模型),一旦编译封装成可执行代码,程序就无法改变,其功能便固定了.
然而用户在处理实际问题中的需求是千变万化的,特别是在科学研究中,这种变化更是难以预测.
尽管这些商业软件提供了二次开发的接口,并且进行不断的升级,但是对用户而言它始终是黑匣子,因此仍然无法适应实际问题的多样性和多变性,尤其是控制方程发生变化的场合.
程序的使用者无法完全地直接操纵软件内部代码是这类软件的主要缺点.
事实上,从大型商业程序出现之前直至现在,国内外许多学者都在针对各自的研究领域编写自用的有限元程序.
这样,在研究中可以随时根据需要而自由地修改代码,具有极大的灵活性和适用性.
甚至一些具有共享精神的学者将程序源代码奉献出来,这就是开源有限元程序.
当前,在网络的开源社区甚至一些机构将有限元程序源代码公布出来给大家免费使用、测试,有效地弥补了商业闭源软件的缺点,极大地促进了有限元法的研究和普及.
然而这类开源程序往往注释不够,其他用户难以理解诸多代码细节,也给用户修改和使用程序造成了一定的困难.

FEPG不仅提供源代码,而且不用像使用常规开源代码那样在纷繁芜杂的代码中穿梭,因为它提供了一套代码快速开发机制,用户只须填写少量的脚本语言文件,就可以自动生成完整的源代码.
从这个角度讲,FEPG实际上具有高效地帮助用户构建有限元程序系统的能力,并且十分容易维护和修改[1].
因此,对于进行创新性科研并且对软件的灵活性要求较高的研究人员、有限元程序内核的开发人员、特别是有限元教学中使用FEPG是非常合适的.
当然,并非只有这类人才适合用FEPG,实际上,任何使用有限元方法进行数值计算和模拟的用户都可以使用FEPG.

1.
4FEPG的特色及其应用模式1.
4.
1定量科学研究的数学模型范式科研讲求创新,研究新问题,提出新思想,利用新方法.
这就决定了科研中的问题是千变万化的.
定量科学研究是对事物由感性(定性)认识上升到理性(定量)认识的一个重要手段.
定量科学研究的一个典型范式就是基于数学模型的研究方法,如图1-1所示.

当前大量的科学研究是基于上述范式的.
这就意味着实际研究中具有大量有限元程序的应用需求.
这些大量的需求又是千变万化的,很难有软件能满足全部学科领域的所有需求.
即便是同一专业,具体研究也需要软件具有较大的灵活性.
但有限元程序的编写是相对复杂的(依赖于人员素质,所采用的开发工具、投入等),即便一个很小的程序也可能花费一个人许多时间,这在当前讲究效率和速度的时代,要求每个学者都开发出一套自己的程序是不太现实的.

需要指出的是,许多研究人员,特别是硕士和博士研究生,几乎很少需要完整地进行上述各个环节的研究,由于时间或者其他因素,大多数只进行其中的一个或者几个环节,譬如有的专注于做试验,有的专注于理论研究,有的专注于数值计算方法,还有的专注于代码编写.
而其中的程序编写环节可能是最耗时费力的,而这可能又不属于大多数人需要创新的地方.
早期的学者由于既有的研究积累较少,可能每个环节都需要亲力亲为,但目前来看,即使有个别学者需要完成各个环节,但也不需要每一个环节都要有创新性的内容.
这就意味着,在一个或者几个非创新性的环节上可以借鉴前人的研究基础,从而节省自己的研究时间.
一些人员比较幸运,有前辈或者师兄师姐的工作可以作为基础,自己只要专注于某一项创新性工作即可,大大加快了自己的研究进程.
然而,幸运的人毕竟有限,有大量研究人员尤其是研究生是从"一无所有"开始进行研究的.
因此,熟练掌握一套有限元程序代码对提高创新性研究的效率是大有裨益的.

1.
4.
2FEPG的特色及应用模式比较FEPG区别于其他有限元软件的第一大特色便是开源,并且这种开源是通过代码自动地生成来实现的,可以随着用户需求自动地动态变化.
笔者把这种开源称为"适应性开源".
然而这里所谓"开源",并不是说FEPG这个软件本身是开放源代码的,而是说利用该软件开发的"产品"(有限元程序)就是源代码,并且版权属于开发者.
拥有了代码的全部自主权,用户使用这些代码就像使用自己编写的程序一样,拥有极大的灵活性.
从这个角度讲,用户可以把FEPG当作一个代码开发工具来使用,这一点和微软的VisualC++有些相似,即FEPG和VisualC++都是开发软件(或程序)的软件,并且给用户提供了一些高效的辅助开发工具.
FEPG的另一特色是通用性.
它是基于有限元方法的一般数学原理开发的,因此具有本质的通用性.
由于各个学科领域的问题通常归结为微分方程数学模型,而FEPG恰恰是利用有限元方法求解微分方程的,因此,从理论上讲,任何学科领域的学者都可以使用它.

我们在新接触一款软件特别是大型有限元软件的时候,即使软件做得用户友好程度非常高,仍然感觉难以下手,或者说不知道这个程序有什么样的使用步骤和原则,这实际上就是这个软件的应用模式的问题.
懂得了一个软件的使用模式就抓住了该软件的使用思想和使用哲学,在具体应用中可以发挥积极的指导作用,不至于只会照猫画虎而不会灵活运用.
许多大型商业软件具有相似的使用模式,即编写输入文件,提交分析,获得分析结果.
但是具体到某个软件,这个过程还是有差别的.
鉴于FEPG的特色,其应用模式必然和其他有限元软件有所不同.
下面通过图1-2中的对比来体会FEPG的这种由其特色决定的应用模式.

从图1-2可以看出,FEPG作为一个软件开发工具,具有和VisualC++极其相似的应用模式,如果熟悉VisualC++开发,则很容易理解这一点.
FEPG可以随时随地对用户的数学模型进行程序生成、修改以实现用户的目的,它并不需要维护一个巨大的模型库.
而通用商业程序的应用模式则不同,它恰恰需要维护一个庞大但有限的数学模型库,一旦软件开发完毕,其能够解决的模型就是有限且固定的,因此其应用模式也是单一的,即用户只需要按照其输入要求填写输入数据文件然后提交给程序分析即可.
当然,这些商业软件通常还给用户提供了较为友好的使用界面以增加直观性,简化使用难度,例如给出良好的图形用户界面(GUI)等.
但是单纯的图形用户界面往往又不能完全实现(描述)程序的功能,因此还是要借助于输入数据文件(如ABAQUS中的inp文件)才是最根本的.
FEPG的灵活性恰恰是因为增加了一个代码开发过程,可以对各个学科出现的数学模型随时进行代码开发,形成新的计算内核.
这相当于FEPG不仅可以做改变计算参数和几何模型这类的计算,还可以改变程序的控制方程,只不过这种改变是以完全重新自动生成(编写)代码的方式来实现的.
这种以代码自动生成技术为基础的以不变应万变的思想在灵活性方面是传统CAE软件难以企及的.

(a)VisualC++典型应用模式(b)FEPG典型应用模式(c)通用商业CAE软件应用模式图1-2FEPG与VisualC++及通用商业CAE软件的应用模式对比FEPG主要有以下几种使用方法.
(1)用户文件法(笔者称之为"自由模式").
即用户填写FEPG所要求的全部脚本文件,然后通过命令提交给FEPG内核进行程序生成.
(2)公式库法(或Appwizard向导方法,【Project】→【Appwizard】).
所谓公式库,就是针对一些典型的应用问题,软件已经为用户准备好了各个问题的脚本文件,对于这些问题,用户不必亲自去研究和编写脚本文件了,而是直接使用公式库里的这些文件就可以工作了.
而这里的"使用",仍然是通过向FEPG内核提交这些脚本文件,然后生成程序.
只是这些程序已经过严格的测试,程序生成后用户直接输入数据就可以进行数值计算了,这种方法与商业CAE的使用很类似(当然商业CAE没有代码生成过程).
另外,用户还会感觉到的一个区别是,在向内核提交这些文件时,使用的操作是不同的,公式库法是直接通过界面操作,而用户文件法是利用GIO(或MDI)命令.
当然,这不是本质区别,对于Appwizard模式,由于其脚本文件都被置于安装文件下,也可以将这些脚本文件拿出来用GIO(或MDI)命令进行生成.

(3)"系统算例库"模式(【Project】→【Samples】).
这种应用模式和公式库方法是很相似的,主要区别是,利用这种模式不仅生成了全部的源程序并编译成了可执行程序,而且连前后处理以及计算数据都准备好了,用户直接执行命令就可以计算并得到计算结果.
换句话说,这种模式是FEPG系统在公式库方法的基础上又为用户增加了一些便利,用户只需要根据自己的问题修改数据和对几何模型进行前处理就可以了.

(4)"用户算例库模式".
用户在使用FEPG过程中开发成功的一些算例可以保存在FEPG系统中,将来如果遇到类似的应用则可以直接使用(将成功算例保存在系统中的好处是从界面提供了一个使用自己历史资源的简单途径,当然这并不是必须的,还可以保存在自己的任意文件下,将来直接拿来使用).

显然,利用(2)~(4)这几种模式,实际上是在利用系统、他人或者用户自己已有的成果,免去了重复劳动,显然具有很高的效率.
第(1)种模式是软件开发模式,其他几种模式则和传统CAE的应用模式类似.
从FEPG本质来看,自由模式是本质方法,其他几种模式都要归结到这个方法上来.
从图1-2中还可以看到,FEPG的使用模式实际上包容了通用商业CAE软件的应用模式.
这就是说,FEPG既可以作为一个软件开发工具来使用,也可以作为一个普通的CAE软件来使用.
例如,只要对FEPG生成的各种模型程序进行适当的整理和打包,然后提供一个友好统一的用户界面,就可以开发出一个较为通用的CAE软件.

1.
4.
3FEPG自由模式及其文件准备在上述的自由模式下,FEPG的具体使用如图1-3所示[3].
FEPG内核通过脚本文件来生成全部有限元源代码程序.
但对于用户来说究竟哪些脚本文件是必须的,哪些是根据情况选择的,还是很复杂的.
详见表1-1.
表1-1程序生成时用户填写的脚本文件选择版本脚本文件选择备注必须可选视情况选择FEPG5.
2gcn,gio,pde(cde,vde),prefbc,nfe,ges,glt,forFEPG6.
0gcn,gio,pde(fde,cde,vde)prefbc,nfe,ges,glt,for此三行分别为各自独立的选择gcn,mdi,pde(fde,cde,vde)prefbc,nfe,ges,glt,formds,mdi,pde(fde,cde,vde)prefbc,nfe,ges,glt,for图1-3FEPG系统有限元源程序生成及具体应用模式1.
5有限元语言从图1-3可以看出,使用FEPG,用户所要做的主要工作就是在分析其数学模型的基础上,正确编写FEPG所要求的脚本文件.
这些脚本文件的作用就是对数学模型及其求解算法按照严格的语法格式进行系统的描述,用户通过这些脚本文件使用FEPG系统的功能,因此,这些文件的内容构成了用户与FEPG系统交流的"语言".
如果把这些脚本文件看作程序,则其内容显然就构成了FEPG系统专用的脚本语言.
由于这些语言的功能是用于描述有限元程序生成请求的,因此称为"有限元语言".

结合图1-3可以看出,FEPG及其提供的有限元语言改变了有限元程序的开发模式.
用户由直接利用高级编程语言(如Fortran、C/C++等)开发有限元程序变成了填写脚本语言,生成程序后做适当的修改,这大大减少了代码工作量.
因此,有限元语言对于用户来说是一种比高级语言更高一层的语言.

梁国平教授指出[4]:有限元语言是一种采用有限元方法和有限体积法求解偏微分方程的模型语言,采用这种语言编写有限元和有限体积程序,主要工作就是书写微分方程表达式及其有限元/有限体积法的具体算法,然后由该语言的生成器(生成系统)自动产生某种高级语言(如Fortran、C/C++等)的有限元/有限体积计算程序.

广义地讲,计算机语言就是一个人与计算机交流的工具.
有限元语言是面向特定领域的模型语言,是一种更高级的计算机语言.
计算机语言的发展是一个不断演化的过程,其根本的推动力就是对抽象机制的更高要求,以及对程序设计思想更好的支持.
具体来说,就是把机器能够理解的语言提升到能够很好地模仿人类思考问题的形式.
计算机语言的演化经历了多个阶段,如从最初的机器语言到汇编语言,到各种结构化高级语言,到面向对象语言,直到现在的面向领域的模型语言[5].

模型语言是一种高度抽象化的语言[5](这里所说的抽象表示"概括"的意思),可以说是目前抽象程度最高的一种计算机语言,比其他高级语言都更接近于人类的自然语言.
使用有限元语言编程就像是使用自然语言描述问题一样简单易懂,其描述有限元问题的方式就像写公式一样简单.

对用户而言,使用FEPG提供的有限元语言,就是要编写FEPG的脚本文件.
FEPG系统内核类似于传统高级语言的编译器.
FEPG有限元语言和高级语言的对比如表1-2所示.
表1-2FEPG有限元语言和高级语言的对比语言项目FEPG有限元语言高级语言(Fortran,C/C++等)源文件FEPG脚本文件高级语言源文件编(翻)译器FEPG内核命令各高级语言厂商提供的专用编译器编(翻)译目标(1)ASCII码Fortran源文件;(2)源文件对应的(高级语言的)编译连接批命令文件;二进制obj文件连接脚本文件无需连接连接成二进制可执行程序产品进一步使用进一步对生成的高级语言文件进行开发(即接下来再按右栏的"高级语言"开发过程进行)调试、验证与使用1.
6FEPG的历史与版本1.
6.
1FEPG的历史历史就是文化,懂点历史对于全面了解一个事物是很有好处的.
FEPG系统是由中国科学院数学与系统科学研究院梁国平研究员独立发明的.
梁先生于1963年毕业于南开大学数学系,同年进入中国科学院数学研究所工作,后兼任美国加州大学伯克利分校客座教授.
梁先生长期从事有限元算法理论及应用以及有限元软件的研发工作.
1981年被中科院数学研究所派往美国学习,进入卡内基·梅隆大学数学系做访问学者,一年后转到加州大学伯克利分校土木工程系.
在加州大学学习的一年期间,师从有限元软件的创始人之一Wilson教授.
当时Wilson教授研究的是PC上的有限元软件SAP-80,采用元件化技术(组件化技术),具有很大特色.
通过这种技术,可以在当时计算机硬件系统配置较低尤其是内存较小的情况下进行规模较大的有限元计算.
这是梁先生最开始接触有限元计算,他接受了Wilson教授的这种元件化有限元程序设计思想.

1983年梁先生归国后即着手FEPG系统的研究.
在研究中吸收了元件化程序设计方法的思想后,也发现Wilson教授当时研究的有限元软件只能把既定的程序给用户使用,不能按照用户的需求而更改.
一旦修改就要修改源代码,这个工作量是很大的.
换句话说,Wilson教授当时研究的有限元软件就是类似于前文提到的商业有限元程序,是固定数量的模型库,其灵活性、柔韧性和普适性都是不够的.
鉴于梁先生的数学背景,他知道有限元方法是求解一般微分方程的数值方法而不仅仅是求解结构问题的手段,因此想到能否从有限元方法最一般的数学原理出发,即从求解偏微分方程的角度来自动生成微分方程的有限元求解程序.
这样,任何微分方程问题都可以通过有限元求解了.
或者可以这样说明:实际问题大多可以归结为微分方程的数学模型,而每个数学模型是千差万别的,理论上,只有每个模型都编写各自的求解程序才是最具有针对性和普适性的,但是这将带来工作量的极大增长,在一个软件中也是不可能实现的.
但是,由于根据有限元的通用数学原理采取了自动生成的技术,这样就让计算机来代替了用户的编程劳动,同时保持了对每个模型编写程序从而适应性最大这个优势.
这些正是诞生FEPG的最初灵感.
这种思想和技术的出现直接改变了传统的有限元程序开发模式,大大提高了程序开发效率.

经过5年的探索与努力,梁先生在1988年完成了自动生成系统的线性部分,两年之后实现了非线性部分,有限元程序自动生成系统正式完成.
从1990年开始,加州大学开始试用FEPG系统,并取得了一系列高质量的科研成果.
1995年,有限元程序自动生成系统被授予国家科学技术进步二等奖.
随后,在数学家杨乐院士的支持下,梁先生准备把这个技术商业化,并于1996年成立了北京飞箭有限元技术开发有限责任公司.
1999年,北京飞箭软件有限公司正式成立,梁先生亲自担任总经理兼总工程师,开始了FEPG的产业化进程.

目前,FEPG系统经过持续不断的开发和多次版本升级,已经形成了多个系列、跨多个软硬件平台的多版本产品.
如在2000年推出了基于互联网的有限元生成系统iFEPG,2004年开发成功并行计算程序的高性能计算平台pFEPG.
2005年推出FEPGV5.
2版本,包括单机、网络、并行版.
FEPG系列产品目前最新版本是V6.
0.
1.
6.
2FEPG产品系列也许用户只用其中的一个版本,但是对FEPG系列产品有个总体的认识是有益的.
FEPG针对当前计算机硬件、操作系统、编译系统以及网络的发展,开发了一系列的产品满足不同用户的需求.
下面概要介绍V6.
0的产品系列.

表1-3给出了当前V6.
0版本的FEPG系统的产品系列.
当前用得最多的是单机版本和网络版.
表1-3FEPGV6.
0产品系列FEPG产品系列说明FEPG.
V6FEPG单机版(FEPG.
PC.
V6)单机串行版(SRC.
PC)用于单CPU的PC单机多核版(OMP.
PC)用于多核PCFEPG网络版(FEPG.
NET.
V6或IFEPG.
V6)客户端为PC基于客户-服务器模式,通过Internet使用远程服务器FEPGFEPG并行版(pFEPG.
V6)面向机群同时支持Internet应用网络版和单机版的使用方式差异极小,在模型文件的编写上更是完全相同,只是在程序生成时前者要通过网络命令上传到服务器端生成程序然后再下传到本机,而后者则是直接在本机上运行FEPG系统命令进行程序生成.
至于并行版,其使用模式一般是先对模型利用单机串行版进行试算,在算法和结果等正确后,再生成并行程序计算,并且填写的文件和串行版大同小异.
因此,用户仍然需要填写和串行版类似的脚本文件,可见,从使用角度而言串行版是并行版的基础.

本书以FEPG.
PC.
V6串行版(标准版)为主要平台进行讲解,在操作上同时兼顾网络版,在必要时加以说明.
1.
6.
3FEPG.
PC.
V6的软硬件环境FEPG的硬件环境和软件环境详见表1-4和表1-5.
表1-4FEPG的硬件配置环境产品模块硬件配置SRL,PCOMP,PCCPU32位或64位体系结构的各种处理器RAM128MB128MB64位支持√√多处理器(多核)支持可运行.
但无多线程完全多线程并行安装所需磁盘空间100MB150MB表1-5FEPG的软件配置环境产品模块支撑环境SRL,PCOMP,PC操作系统WindowsLinuxWindowsLinuxFortran编译器IntelCompilerCompaqVisualFortranPowerstationG77G77IntelCompilerIntelCompilerIntelCompiler数学库不需要不需要IntelMKLIntelMKLFEPG所提供的有限元语言具有广泛的跨各种软硬件平台的特性,只要安装相应的FEPG系统,对于用户来说,就可以按照统一的方法填写脚本文件,然后在各种平台上生成相应的Fortran源代码.

1.
7从安装开始1.
7.
1安装及配置经验软件的应用从安装开始,软件的学习、研究和剖析也应从安装开始.
只有安装并配置好其运行环境,才能正常使用FEPG进行工作.
FEPG系统的安装本身极其简单,但用户特别是初学者在使用过程中仍然可能遇到麻烦.
用户安装和配置FEPG系统可能是以下几种情形:(1)第一次安装和配置;(2)中途发现FEPG不能正常工作后重新安装和配置;(3)FEPG安装在非系统盘上,在重装系统后是否需要重新安装配置问题.
本节先介绍前两个问题,第(3)个问题放在1.
7.
2节中阐述.

我们选择FEPG.
PC.
V6+FortranPowerstation4.
0进行安装配置.
如果是第一次安装和配置,具体步骤如下.
Step(1):将FortranPowerstation4.
0和FEPG.
PC.
V6安装文件均复制到以英文命名的目录下,如都直接复制到D盘根目录"D:\"下.
说明:根据经验,为了减少不必要的麻烦,这一招很有效.
Step(2):安装FortranPowerstation4.
0,可以选择默认安装.
说明:用户也可以根据自己的需要选择定制安装.
安装的目标文件夹最好默认.
安装完毕后选择更新环境变量,但是通常由于某些未知的原因,环境变量并未被更新.
因此,建议用户将path、include和lib三个环境变量手动设置一下,记住在用户环境变量中设置,而不要在系统环境变量中设置.
并且这些路径最好放在各自环境变量的"变量值"的第一个.
也许这不是必要的,但是许多用户可能同时会安装VisualC++6.
0这些软件,笔者的经验是,如果FortranPowerstation4.
0的环境变量不放在第一位置,通常不能成功编译fepg生成的程序,为了方便,干脆统一放在第一位置处.
配置完毕后,一定要重新启动计算机,让设置生效,切记!
Step(3):对于单机版,须插入软件狗.
Step(4):双击FEPG.
PC.
V6的安装文件,根据向导自动完成.
其间要求用户提供安装目录和配置数据,用户可以酌情填写.
说明:安装的目标文件夹(目录)在安装之前无须提前建立.
在此处可以输入要安装的目录.
为了避免不必要的麻烦,建议安装的路径最好简单,不宜太长,不要包含中文目录名,目录名中也不要有空格,例如直接安装在C:\FEPG或D:\FEPG下就是很好的选择.
Step(5):安装完毕.
说明:FEPG系统的配置可以分成两部分,一部分是FEPG系统自身运行环境的配置,安装完毕后,FEPG自身的配置会自动完成,使用中一般不会出现意外.
另一部分是FEPG系统产生的程序在使用过程中的环境配置,主要是指编译器环境变量的配置,是用户应该主要关注的配置问题.

Step(6):测试.
测试安装和配置是否正确.
说明:用FEPG提供的公式库来测试FEPG能否正确生成全部原程序,并正确编译、连接和生成全部可执行程序.
选择最典型的二维直角坐标系下稳态热传导问题来测试.
(a)启动FEPG.
PC.
V6,此时系统会定位到默认的temp目录,用户也可以自己设置工作目录.
(b)将"FEPG安装目录\SAMPLES\HEAT\2DXY\STATIC_HEAT"下的全部文件复制到你的工作目录中.
(c)确保菜单View→ShowOutputConsole被选中,界面下端弹出OutputConsole子窗口,在下端的command编辑框中依次执行如下命令:①genprele回车②testle回车③gidprele回车④le回车⑤gidpostle回车(d)执行完⑤后,会弹出前后处理软件GID界面,此时单击工具栏上的图标,切换到后处理状态.
(e)单击菜单Viewresults→ContourFill→unoda0.
(f)如果看到了结果云图,说明正确执行了计算,也就说明正确生成了全部EXE程序.
至此表明系统正确进行了安装和配置,用户便可以开始使用FEPG系统了,否则还要继续进行下述Step(7)的配置.

Step(7):重新配置编译器.
说明:一般FEPG系统安装不会存在问题,主要的问题可能出在编译器的环境变量配置上.
此时我们要做的就是重新配置环境变量,步骤如下.
①配置lib环境变量:桌面→我的电脑→右键→属性→高级→环境变量→系统变量,在其中的lib中添加Fortran编译器的库文件的路径,笔者的是C:\MSDEV\LIB(注意:这里有很多lib环境变量,每个之间用英文输入模式下的";"分隔).

②配置path环境变量:桌面→我的电脑→右键→属性→高级→环境变量→系统变量,在其中的path中添加Fortran编译器的可执行文件的路径,笔者的是C:\MSDEV\BIN(注意:这里有很多path环境变量,每个之间用英文输入模式下的";"分隔).

③配置include环境变量:桌面→我的电脑→右键→属性→高级→环境变量→计算机当前的"用户变量",在其中的include中添加Fortran编译器的include目录的路径,笔者的是C:\MSDEV\INCLUDE(注意:这里有很多include环境变量,每个之间用英文输入模式下的";"分隔).

为什么要设置该环境变量呢,一个主要的原因是,FEPG用户可以在FEPG命令行中通过执行"b2p'gio文件的主文件名'"将FEPG生成的全部源程序合并成一个主程序,而在该主程序中需要包含"include'FLIB.
FI"和"include'FLIB.
FD"这两个语句,而被包含的这两个文件均位于编译器的include目录中.
笔者的经验是,将该环境变量设置在"系统环境变量"中,有时不能成功,而将其设置在计算机当前用户的include中获得成功.
④重新启动计算机.
根据笔者的经验,这一步是必须的.
而我们常常会忽略这一步.
在很多时候,用户设置好了环境变量,结果仍然无法成功使用,其原因可能就出在没有重新启动系统上.
⑤进入"FEPG安装目录\NFE.
R8"执行其中的批处理命令文件GFEPGLIB.
BAT.
(如果是IFEPG版,GFEPGLIB.
BAT被放在了"FEPG安装目录\nfe"中.
)如果前面安装成功的话,FEPG在安装过程中会自动执行该批处理命令文件.
执行该文件的目的是将一些公用的FOR文件编译成库文件,该库文件在用户基于FEPG开发程序的编译过程中会被调用(详见1.
7.
2节).
然而,由于此处FEPG并没有安装成功,因此,在重新配置好编译器的环境变量后要执行GFEPGLIB.
BAT文件.

如果你是中途发现FEPG不能正常工作后对FEPG进行重新安装和配置,一般也是编译器环境变量的问题,因此按照上述Step(7)的各个步骤进行配置即可.
建议用户将FEPG系统安装在非系统盘目录中.
这样,如果用户重新安装系统后,便无需重新安装FEPG了,而只要安装Fortran编译器,然后按照Step(7)的各个步骤进行配置即可,当然最好还是要按照Step(6)测试一下.

1.
7.
2留意!
一个编译细节系统安装过程是非常简单的,只要双击安装文件并按照提示进行操作即可.
无论是单机版还是网络版的客户端,在安装过程中总会弹出如图1-4所示的DOS编译窗口.
图1-4执行GFEPGLIB.
BAT命令,形成fepg.
lib库文件这实际上是安装程序调用NFE.
R8目录下的GFEPGLIB.
BAT批处理命令文件来编译一些系统自带的for文件,并形成库文件fepg.
lib.
当用户通过FEPG生成自己的程序后,在编译时需要使用(链接)这个库文件.
在安装过程中,如果之前没有正确安装和配置编译器,则此处不能正确编译这些文件,也就不能正确形成这个库文件,这将为用户以后的程序开发和调试留下隐患.
几种可能的情况是:(1)已经安装配置好编译器,此处在FEPG安装过程中能正确编译,则安装成功.
(2)若安装过程中没有正确形成fepg.
lib,则可以在安装完毕后,重新配置好编译器,然后手动单击GFEPGLIB.
BAT,将这些文件重新编译即可.
(3)由于某种原因造成fepg.
lib丢失,参照上述第(2)种情况处理即可.
1.
7.
3FEPG不必重新安装日常的计算机应用中,用户可能需要重新安装操作系统,但FEPG软件不必重装.
为此,建议将FEPG安装在非系统盘中,当操作系统重新安装后,FEPG系统仍然存在,只要进行简单的设置就可以使用了.
具体又分两种情形,如果你的FEPG系统不打算变更了,则设置如下:(1)将NFE.
R8目录添加到系统的path环境变量中;(2)安装Fortran编译器(系统重装后编译器一般都要重装);(3)手动添加编译器的lib,path以及include环境变量,注意最好设置在用户环境变量中,而不是系统环境变量中;(4)手动添加FEPG的R8目录(如D:\FEPG6.
2\NFE.
R8)作为path环境变量.
重新启动系统(切记不要忽略此步),新的设置生效.
不过,有的用户在重装系统后,想将原先安装的FEPG重新安装到其他目录上,这时也不必重新安装FEPG,而只需要将原来的安装文件夹复制到目标目录,然后按上述步骤进行设置即可.
1.
8安装目录及文件概览通常一个软件系统的各种功能的具体实现被分配到各个子目录中.
为了深入理解和应用FEPG系统,考察一下软件的安装目录及其子目录是有帮助的.
单机版的安装目录为D:\FEPG6.
2,其目录结构如图1-5所示.
1.
9网络版与单机版的比较及安装1.
9.
1网络版与单机版使用模式比较FEPG公司将FEPG软件技术和网络技术相结合开发了基于互联网的FEPG,即IFEPG.
使用该版本,只要在服务器上安装FEPG的服务器端软件,分散在各处的用户只要在自己的本地机器上再安装IFEPG的客户端软件,就可以通过互联网使用服务器上的FEPG内核.
脚本文件通过客户端上传到服务器端进行程序生成后,全部的源代码就可以从服务器端下载到本地客户端上编译、运行和使用.
单机版和网络版的架构和使用模式的对比如图1-6所示.

图1-5FEPGV6单机版安装目录采用IFEPG,对于有限元教学和编程实践是非常方便的.
目前一些大学已采用了该系统.
北京飞箭软件公司在公司服务器和教育网服务器上分别安装了IFEPG的服务器端软件.
关于客户端程序的安装请参考1.
9.
2节.
当然,以这种方式使用FEPG是否流畅很大程度上取决于网络环境特别是网速.
而且,服务器端的程序如果没有得到有效维护或者宕机,也可能会无法使用.

用户非常关心的是这个免费使用的网络版在功能上是否作了限制.
目前飞箭公司对IFEPG生成代码的功能以及所生成的代码本身均未作任何形式的限制.
但是,生成的源代码要想进行计算,必须进行前处理和准备数据.
FEPG默认采用GID这款商业软件作为其前后处理工具.
而这个工具在没有授权时对单元数量具有限制.
对于购买了FEPG的用户,自带了授权的GID;而对于免费用户则只能使用受限制的GID.
当然,如果您本来就有GID软件授权,那么网络版IFEPG就相当于对您没有任何限制.
另外,FEPG本质上是代码的自动生成,而对于前后处理,如果用户非常熟悉FEPG源代码,实际上可以自己编写前后处理工具,或者采用其他的前后处理工具来和源代码配合.

(a)单机版工作模式(b)网络版工作模式图1-6单机版与网络版程序使用模式比较用户理解了上述原理对于实际应用非常有益.
使用网络版要时刻分清哪些工作是在远端服务器上进行的(上传脚本,代码生成,下传程序),哪些工作是在自己本机上进行的(编写脚本,编译、调试和生成程序,前处理,运行程序进行计算,后处理等).
当然,由于开发一个有限元程序有时不是一次即可成功的,而是常常需要反复调试,验证结果,以及多次重新编写脚本,重新上传服务器以及重新生成代码,在这些过程中,再碰到服务器宕机,或者网络环境较差,就会给用户体验带来很大麻烦.
因此在使用网络版的过程中一定要有"耐心".

vdsina:俄罗斯VPS(datapro),6卢布/天,1G内存/1核(AMD EPYC 7742)/5gNVMe/10T流量

今天获得消息,vdsina上了AMD EPYC系列的VDS,性价比比较高,站长弄了一个,盲猜CPU是AMD EPYC 7B12(经过咨询,详细CPU型号是“EPYC 7742”)。vdsina,俄罗斯公司,2014年开始运作至今,在售卖多类型VPS和独立服务器,可供选择的有俄罗斯莫斯科datapro和荷兰Serverius数据中心。付款比较麻烦:信用卡、webmoney、比特币,不支持PayPal...

新版本Apache HTTP Server 2.4.51发布更新(有安全漏洞建议升级)

今天中午的时候看到群里网友在讨论新版本的Apache HTTP Server 2.4.51发布且建议更新升级,如果有服务器在使用较早版本的话可能需要升级安全,这次的版本中涉及到安全漏洞的问题。Apache HTTP 中2.4.50的修复补丁CVE-2021-41773 修复不完整,导致新的漏洞CVE-2021-42013。攻击者可以使用由类似别名的指令配置将URL映射到目录外的文件的遍历攻击。这里...

火数云-618限时活动,国内云服务器大连3折,限量50台,九江7折 限量30台!

官方网站:点击访问火数云活动官网活动方案:CPU内存硬盘带宽流量架构IP机房价格购买地址4核4G50G 高效云盘20Mbps独享不限openstack1个九江287元/月立即抢购4核8G50G 高效云盘20Mbps独享不限openstack1个九江329元/月立即抢购2核2G50G 高效云盘5Mbps独享不限openstack1个大连15.9元/月立即抢购2核4G50G 高效云盘5Mbps独享不限...

linuxwindows为你推荐
云爆发云联惠是什么来的陈嘉垣大家觉得陈嘉桓漂亮还是钟嘉欣漂亮?xyq.163.cbg.com梦幻西游藏宝阁www.44ri.comwww.yydcsjw.comwww.henhenlu.com有一个两位数,十位数字是个位数字的二分之一,将十位数字与个位数字对调,新的两位数比原来大36,这个两位数yinrentangzimotang氨基酸洗发水的功效咋样?www4399com4399网站是什么关键词分析怎么样分析关键词?猴山条约猴的谚语有哪些莱姿蔓不蔓不枝的蔓是什么意思
如何注册中文域名 budgetvm 国外空间服务商 北京主机 湖南服务器托管 vip域名 服务器是干什么用的 西安主机 网站防护 闪讯网 nnt hdchina phpinfo e-mail godaddy域名 ssd 赵荣 大硬盘分区 次时代主机 电脑主机打不开 更多