zhoulon 发表于 2008-9-16 19:50:09

FEPG版的FAQ

    今天看了一下HyperWorks版的FAQ,联想到FEPG版的微弱人气,尤其是其比较低下的普及率,本人在此对整个FEPG版已经发表过的一些基础性问题和一些常识问题进行整理汇总,在此命名为“FEPG版的FAQ”,欢迎大家批评指正,并作一些相应地补充。在此希望每一位来FEPG版的朋友们发扬互助的精神,让你我大家都能有所提高并能尽量节省时间和精力。

绪论关于FEPG

    鉴于FEPG的普及率比较低下,首先先对FEPG作一个解释,然后进行具体的问题分析和求证。FEPG就是有限元程序自动生成系统,是Finite Element Program Generator的简称FEPG,是梁国平研究员历经八年的潜心研究独创的具有国际领先水平的工程数值计算软件。FEPG采用元件化思想和有限元语言这一先进的软件设计,是解决各种领域、各方面问题的有限元求解的极其有力的工具。 采用FEPG可以由计算机自动产生FORTRAN程序,突破了目前有限元软件系统只适用于特定领域和特定问题的限制。用户只需输入有限元方法所需的各种表达式和公式,即可自动产生所需的全部有限元程序。包括前处理程序、单元子程序、算法程序等,免去了大量的繁琐的有限元编程劳动,保证了程序的正确性的统一,为用户节省大量的时间和精力。
    本系统适用于固体力学、流体力学、物理学、化学、生物学、地质学等各种领域。 以FEPG为平台,结合网络技术,公司针对工程科学领域成功开发了在线有限元程序生成系统(IFEPG)、压力容器分析设计系统(VAS2.0)、电机分析设计系统等计算应用软件。这些分析设计软件中采用了区域分解法,多柔体有限元技术,组合网格法等现今世界最先进的算法,可以解决已有有限元软件不能解决的许多难题
产品功能特点,可在数天甚至数小时内完成人们需要数月甚至数年才能完成的编程劳动;能求解各种通用有限元软件难以求解的多学科非线性耦合问题。利用向导AppWizard功能,由公式库傻瓜式自动生成有限元程序;利用 WorkSpace 功能,轻松自如使用系统;方便快捷的几何建模,性能卓越的网格生成,灵活丰富的图形输出;前后处理与分析求解的完美而自由的结合;求解器的自由选择和新式求解器的快速嵌入;支持从 PC 机到工作站到巨型机的各种平台。
    关于FEPG的详细介绍,可以去飞箭在线http://www.fegensoft.com
FEPG安装常见问题与解答
1. 哪儿可以下载FEPG?
答:FEPG由于开发时间短,用户比较少,不存在象其他商用软件的盗版不盗版的问题,初始用户可以到飞箭在线http://www.fegensoft.com去找相应链接去下载网络单机版(说明一点现在FEPG侧重于并行版本的推广)。飞箭公司为了推荐自己的产品,对于初始用户可以到这个网站进行下载进行试用网络版本,飞箭公司那边有服务器,用户在下载安装FEPG以后,须将自己写的文件通过网络上传到飞箭公司的服务器上面,才能生成有限元程序。与单机版的区别就是用不用上传到服务器,或者说程序是在客户端生成还是在服务器端生成的问题。
2. 如何学习FEPG?
答:FEPG不同于其它的商业软件,它需要用户在合理理解自己问题的基础上,构造出自己问题的物理模型和数学模型和几何模型,属于智能型的软件;而商业软件只要能够理解问题的物理模型,构造出几何模型可以了,具体的数学模型都是商业软件里面固化了的,不需要用户修改(即使是二次开发,也只是修改一些细枝末节的东西),属于傻瓜型的软件。其次,FEPG虽然有自己的公式库,可以方便用户使用,但都是一些基本的物理问题,这些在一般商业软件里面基本都可以找到,没有太大的实用价值,而对用户具有实用价值的,或者说用户真正要使用的就是其他软件里面找不到的一些不太常用的模型,用户利用FEPG的自动生成程序系统生成自己的程序。这样,相对于普通商业软件来说,FEPG对用户的要求比较高一些。所以,个人认为有必要对如何来学习FEPG进行一些探究,希望对大家有用:
第一:首先学习公式库功能,了解FEPG与其他软件的区别,比较经典的例子(其实也是比较完整的例子),就是稳态二维热传到问题的那个例子,进而感受一下FEPG求解问题的整个过程。
第二:学习中级教程,学会填写pde、gcn、nfe、gio和修改pre文件,这个是FEPG的精髓,是其不同于一般软件的地方,也是我们一般用户最需要的东西。
第三:要了解FEPG的数据结构,例如几个前处理输出文件:id0、elem0、disp0、disp1等的数据结构,以方便自己在使用时对初始值、边界条件等进行的修改等操作,更深入地理解FEPG的程序结构。
第四:要通读FEPG的几个元件程序(start.for、bft.for、solv.for、elpsa.for、ulpsa.for)程序,了解各个程序的流程,数据控制,命令组合等,以利于自己在以后程序修改的工作。
第五:要对FEPG的前后处理软件gid进行熟练地掌握,熟悉其对几何模型、网格划分、加载和后处理的一系列操作。经典例子是球体的网格剖分,通过这个例子可以学习gid的网格剖分六面体的基本思路——将几个模型先进行六面体几何剖分(球体是在建模时就这样做的),然后利用gid的仅有的一种六面体剖分方法(个人称作三边对选法)进行剖分,这方面gid不太好,网格剖分算法太少,不如hypermesh等一些专用软件做得好。

3. FEPG前后处理gid一个月免费版本到期咋办?
答:免费版前后处理gid网上申请只能最多申请三个月(也就是三次,一个月一次)。如果到期地话,有两种办法可以解决:1) 修改机器名,可以重新申请三个月。2) 修改系统时间,一般是将系统时间往前调整一段时间,也可以重新申请三个月。

    由于现在时间和精力的关系,不可能一下子就把所有内容都写出来,现在只给出绪论部分,其它部分以后会陆续给出。

[ 本帖最后由 zhoulon 于 2008-9-27 08:46 编辑 ]

zhoulon 发表于 2008-9-16 20:13:59

第一章FEPG软件安装

FEPG安装常见问题与解答
1.关于Fortran编译器的安装和配置?
答:在安装FEPG之前一般要先安装好Powerstation Fortran 4.0或者是visual fortran6.0、6.5编译器,并设置好Fortran编译器的path、lib和include路径。一般在安装编译器时出现提示时候进行环境变量设置时进行设置就可以了,如果没有设置,可以自己在安装好编译器后进行如下设置:

如果你的Powerstation Fortran 4.0编译器安装在目录C:\MSDEV下,设置如下:
在WIN 2000/XP下的设置:
a. 鼠标移到我的电脑图标,单击右键,然后点击属性;
b. 点击高级属性;
c. 点击环境变量,进行系统变量设置;系统变量如下图:

d. 如果图上的include、lib、path几个变量没有,请点击新建;如有,点击编辑;按下面变量值进行修改:
变量:path值:c:\MSDEV\bin; %path%
变量:lib 值:c:\MSDEV\lib;%lib%
变量:include值:c:\MSDEV\include;%include%

注意:如果path、lib和include变量中有相应新增加的内容,可不增加。如果编译器装在其它目录,则把C:\MSDEV换为该目录名。实际上,在安装Powerstation Fortran 4.0时,会出现一个对话框,询问是否增加环境变量,如果选是,这些变量就已经配置好了。安装fepg,需要用户有管理员权限。

2.运行FEPG命令生成Fortran源程序时,出现fl32不是内部命令也不是外部命令的错误(或fl32 is not internal command)?
答:没配置好Fortran编译器的path路径。按照上面第1个问题中的解答配置好path路径。

3. 运行FEPG命令生成Fortran源程序时,有些fortran源程序没连接成可执行程序,出现不能发现fepg.lib库文件的错误?
答:安装FEPG之前,没安装和配置好Fortran编译器所致。在安装FEPG之后出现此情况,可先按照上面第1个问题中的解答配置好Fortran编译器,然后在dos窗口下,运行FEPG所在目录下nfe.r8目录下的gfepglib.bat程序,即可生成fepg.lib库文件。

4. 是否可用其他的Fortran编译器?
答:还可用Visual Fortran 6.5编译器,配置与Powerstation Fortran 4.0相同。对于IFEPG5.2(for g77)客户端,还可以用g77编译器了

5.是否与其他软件有兼容性问题?
答:FEPG 与其他软件没有兼容性问题。但Powerstation Fortran 4.0和Visual C++ 6.0如果在安装时,都选了设置环境变量,在用Fortran编译器编译连接FEPG产生的Fortran源程序时,会出问题。可在安装Visual C++时,出现是否设置环境变量对话框时,选择否,即可解决此问题,此时,用Visual C++编译窗口可编译VC程序,只是在dos窗口中不行,一般影响不大。前处理GID与MATLAB有兼容性问题,用户安装了FEPG和MATLAB后,FEPG.GID可能启动不了。可以将操作系统PATH环境变量中关于MATLAB的路径删除,这样FEPG.GID就可以启动了。在已经安装了瑞星杀毒软件的系统里,进行FEPG安装,会出现瑞星检测到FEPG里面的各个for程序是病毒的现象,具体处理办法是卸掉瑞星,安装FEPG,然后再安装瑞星就可以了。

6.是不是一定要先装fortran,再装FEPG,如果先装FEPG,再装fortran,有什么解决办法?
答:不一定先装fortran,再装FEPG。如果先装FEPG,那么装完fortran再运行ifepg安装目录下nfe下的gfepglib.bat。

7.请问如果要装VC怎么办啊?
答:在安装Visual C++时,出现是否设置环境变量对话框时,选择否,即可解决此问题。就是不要设关于VC++的环境变量,应该就可以了。这样VC应该用VC的界面能用。

8.打开Ifepg后,连接服务器时,出现了can't create file是怎么回事啊?
答:这一般是IFEPG服务器端的问题。如出现尽快联系我们。

9.出现cannot open file"dfor.lib"?
答:这可能是换fortran编译器造成的,比如Visual FROTRAN 6.1变成powerstation 4.0。因为各个编译器编译出来的obj代码不同,连接的库不同。如果你用powerstation 4.0提供的fl32命令,将一些Visual FROTRAN 6.1产生的obj文件,连接成可执行程序可能就会出现这个问题。解决办法是使用powerstation 4.0提供的fl32将那些文件重新编译一下。

10.Error: Couldn't initialize GID. Check DISPLAY and xhost,Check for more info to files in directory: C:\DOCUME~1\xxc1\LOCALS~1\Temp\gid3
答:安装fepg时,需要使用administrator用户安装,第一次运行gid时,也需要使用administrator用户运行,第二次运行gid就应该不用了。

11.安装后,运行gid建模型,模型显示异常是怎么回事?
答:gid对某些型号的显卡支持的不好,你可以将显卡的硬件加速调成无试试。在Windows 2000下操作如下,用鼠标右键点击桌面的空处,点击出现的“属性”菜单项,点击出现的“设置”页,点击出现的“高级”按钮,点击出现的“疑难解答”页,将“硬件加速”的拉条调到“无”。

[ 本帖最后由 zhoulon 于 2008-9-27 08:46 编辑 ]

zhoulon 发表于 2008-9-16 20:23:39

刚才的环境变量设置图形没有传上,现在补上。

yuminhust2005 发表于 2008-9-20 13:25:48

这个软件的价格是多少?

zhoulon 发表于 2008-9-24 11:09:44

第二章FEPG前后处理gid

    要进行有限元计算,需要准备有限元数据,而每个有限元软件的数据文件的结构可能各不相同。就拿FEPG来说,它把GID做为前后处理器,那么我们就需要将GID的数据文件转换成FEPG计算需要的数据文件了。在一开始学习FEPG时,一般要求用户先掌握前后处理的操作了。下面我们说说前处理的操作步骤:
运行 GetPre:修改Pre文件。此文件是前处理文件,给出有限元的数据结构由此产生FEPG与前处理gid的接口文件。
运行ForGid:生成前后处理的接口文件
运行RunGid:用Fepg.Gid建模,划分网格
运行GidPre:生成计算所需要的数据文件

    在FEPG5.*以后,为了节省命令,将forgid,rungid,gidpre这三个命令放在了一个preproc命令中了,但是对于初学者可能会有些问题,在运行preproc时,会出现一个dos窗口,然后会出现gid的界面,这时候,初学者可能会将那个dos窗口关掉,结果在gid中操作完成后,造成gidpre命令没执行(因为dos窗口关掉了),这样,在进行计算时,会出现disp0等文件找不到的错误,所以大家在运行preproc后,暂时不要关掉那个dos窗口,等gidpre执行完成后,再关掉那个dos窗口。下面再说说这几个命令具体做了些什么(初学者可以先不看)。
    getpre就是启动了一个界面程序,来填写或修改pre文件了。关于pre的填写方式,大家可以参看《FEPG中级教程--如何由公式生成有限元程序》。
forgid生成的前处理接口文件主要是在gid目录下,有一个fepg.gid的子目录里面的几个文件。点击gid中的condition菜单项出现的那个对话框的内容就是那几个文件的具体显示了。如果用户填写了pos文件,那么forgid还会生成一些gidpost等文件。
Rungid命令是启动了gid程序,在那里主要是进行建模,加材料号,指定位移(温度)的边界条件,给定初值条件,网格划分,生成数据文件。那些数据文件就是在项目名.gid目录下的项目名.dat和项目名-1.dat文件,其中项目名.dat包括点的坐标,单元的节点编号(包括体单元和边界单元)和ID信息,而项目名-1.dat文件包括Disp信息了。这两个文件是文本文件,大家可以看的。
    Gidpre命令是将那些.dat文件生成Fepg的计算程序所需要的二进制数据文件(比如coor0,elem0,id0,disp0等文件。这些文件的格式,大家可以参看《基于fepg的有限元方法》)

    如果大家想知道coor0,elem0,id0,disp0等文件生成的到底对不对的话,大家可以在那个工作目录下运行prt命令(它是由gidpre命令生成的prt.for编译出来的),它会将coor0,elem0,id0,disp0等文件的内容放在out文本文件中。通过看out文件,大家可以看到coor0等文件的对错,需要说明一下,对于单元数目大于10万的模型来说,这个文件常常会出现错误,所以,一般在进行完前处理以后,一般都要通过out文件来检验生成的文件对不对。

    对于后处理,除了gid.pos文件按照教程上面的说法进行填写以外,没有太多需要注意的东西。
前后处理问题及解答
1. 一个问题有两种以上材料如何处理?
答:拿一个例子进行说明:比如一个面由一条线把它分成两部 分,那两个部分需要分配不同的材料。 实现它的做法是,把这两部分分别生成一个面,注意,两个面的生成需要共用中间的那条线! 然后就可以分别给这两个面分配材料号。最后生成网格的时候,两个面的网格在中间线上是协调的。对于体的问题,是一样的办法。这种问题的关键还是在公共边界(线、面)的处理,必须保证公共边界同是两部分的边界。

2.有没有办法检查前处理的全部结果?那个prt生成的out文件包含了很多信息,但是没有力(第二类边界条件)的信息。本来力的条件加起来比较麻烦,如果没有办法检验就更难办了?
答:第二类边界条件,是通过边界单元加上的,out应该有边界单元,力的大小在边界单元的材料中,这是FEPG不同于其它有限元软件的地方,力在材料数据中。

3.fepg中有5面体单元吗?或者叫三棱柱单元。在单元类型中好像没有?
答:在前处理gid中还没有,但fepg能生成这个计算程序。用w6试试。

4.用gid作图遇到一个问题,有500个给定坐标的点,不用一个一个的输入,太累了,而且容易出错,怎样把这500个点划出来?
答:第一种方法:gid中有宏命令的功能,你可以写个宏命令文件来实现。点击utilities中preferences菜单,有一个write batch file的文本框(这个在进行几何处理和划分网格时,如果选择它,可以记录操作记录,很有用的。下次启动gid时,读取这个文件就可以得到以前的gid模型),可以输入宏命令文件的名字,点击accept,那个文件会纪录你在gid中的操作。utilities->graphical-read batch window可以读入宏命令文件。
宏命令可以按照如下格式书写
escape escape escape escape
geometry create point
500点坐标 例如:
0 0 0
0 0 1
1 0 0
…………

第二种方法:用autolisp编写一个小程序,把数据读进去。在autocad中执行后形成该500个节点,导出dxf格式。最后用gid读dxf搞定。

5. 编译时出现这样的错误:
(fgidpre.for(289): error FOR3359: duplicate type declaration for symbol BFD detected between R and )
然后后处理打不开,我用的是gid8.0?
答:你的fgidpre.for(289行)程序出错,可以查一下,可能是有多个end。
6. 我对一个六面体做四面体网格剖分,要求四个侧表面是结构化的,但是在生成网格的时候总是过不去,出现了以下错误:
error:trying to mesh a tetrahedra volume with quadrilateral contours?
答:这个地方是个技巧性问题:选结构化,然后选需要结构化的面,然后选 --选择需要的单元,然后选中你要结构化的面。

7. 请问在GID中通过文件-export-postinformation导出的文件包括两个文件,一个是所有node数量,一个是所有的elem,我想导出二维平面上一条线上的坐标及结果如何导出?
答:这个问题比较麻烦,这里不便给出,都在下面结果随x坐标的曲线.doc的附件里面。

8. 通过一些例子可以发现,对于不同的例子,程序生成之后,进入GID,点击边界条件,弹出的菜单内容是依不同问题而自动变化的,这是怎么实现的?
答:这个是通过pre文件来实现的,是和pre文件相互对应的,你修改几次pre文件看一下就知道了,尤其是修改计算的初值个数会看得更为明显一些的。其实:PRE文件 --> C:\IFEPG.f32\gid\fepg.gid\fepg.cnd
GID将根据fepg.cnd决定菜单的内容。另外fepg.gid目录下的其他文件,您也可以阅读一下,肯定会收获不少。比如:fepg.bas........
9. 为什么我的Graphics菜单打不开?
答:同时按住alt+y就可以用了,这个是gid菜单锁定的问题,采用上面的方法是可以解锁的。

10. 运行gid的时候,出现错误窗口,提示:“SwapBuffers failed”,不知是出了什么问题?
答:硬件加速。这个一般软件都有类似的问题,跟显卡有关,只要将显卡的硬件加速去掉就可以了。
11. 如何显示动画?
答:内容比较多,精华贴中:
http://forum.simwe.com/viewthread.php?tid=115031&extra=page%3D1%26amp%3Bfilter%3Ddigest有这方面的介绍,但没有实例,而且也不具体,这里在附件里面给出一个实例和详细的步骤,详见附件:瞬态问题显示动画的步骤。

[ 本帖最后由 zhoulon 于 2008-9-27 08:49 编辑 ]

runinwind 发表于 2008-9-27 19:49:06

支持见习斑竹的工作,希望FEPG版能越来越旺!

zhoulon 发表于 2008-10-25 15:42:35

请教如图所示计算过程中出现的问题
答:是这样的,修改 elesa.for 程序以及其它元件程序中开头的第9行 MAXT=8000000/2

    implicit real*8 (a-h,o-z)
    character*12 fname,filename(20)
    common /aa/ ia(8000000)
    common /bb/ ib(4000000)
    common /cc/ ic(4000000)
    open(1,file=' ',form='unformatted',status='old')
    read(1) knode,kdgof
    close(1)
    MAXT=80000000/2
ia,ib,ic数组也需要改。

common /aa/ ia(80000000)
common /bb/ ib(40000000)
common /cc/ ic(40000000)
一般,ia是你机器内存的大小,ib,ic是ia的一半。

zhoulon 发表于 2008-10-25 15:58:17

请问'has the wrong data type'是哪出问题了?
在关闭前处理时出现如下警告:
fgidpre.for
fgidpre.for(29): warning FOR4270: unused symbol FNAME
fgidpre.for(102): warning FOR4269: unused dummy argument FILENAME
fgidpre.for : warning FOR4227: argument COOR (number 3) in reference to procedur
e FGIDPRE from procedure main incorrect: has the wrong data type
fgidpre.for : warning FOR4227: argument RDATA (number 4) in reference to procedu
re FGIDPRE from procedure main incorrect: has the wrong data type
Microsoft (R) 32-Bit Incremental Linker Version 3.00.5270
Copyright (C) Microsoft Corp 1992-1995. All rights reserved.


然后在计算时出现如下错误:
EMATE =
.10E-01 .25E-02 .00E+00 .00E+00
run-time error M6101: MATH
- floating-point error: invalid


F:\fepg\moni\0002>solv sys f einform estiff u

run-time error F6416: OPEN(sys)
- file not found

F:\fepg\moni\0002>ulesa disp0 time sys bfd nv u displace end
KNODE,KDGOF,KVAR =
7994   1   7994
run-time error F6416: OPEN(sys)
- file not found


答:是pde的问题,单元计算时浮点溢出,可能是pde中表达式值太大或太小,例如有指数运算等,或者除零运算,可以跟踪一下看那条语句出错。

[ 本帖最后由 zhoulon 于 2008-10-25 16:00 编辑 ]

zhoulon 发表于 2008-10-25 16:02:31

公式库生成的粘弹性程序有如下图所示的问题?
答:利用粘弹性公式库生成程序后,有的生成的.pos文件式空的,因此用户在做前处理之前,要把这个文件写好,否则结果保存不下来,就是上面的错误,这个也是软件的一个bug。

zhoulon 发表于 2008-10-25 16:07:35

单机版的FEPG生成的弹塑性程序似乎不能运行?
答:三维问题的drucker-prager屈服准则以前的有个小问题。正确的plas.for在附件里。你只需要把它拷贝到fepg\solid\3dxyz\e_plast;fepg\solid\3droz\e_plast;fepg\solid\3drso\e_plast;里面就可以了。
如果加载步不均匀或者计算中人为改变屈服强度,也许会遇到不收敛问题。这个时候可以修改
执行bat文件如下:
startnin .........
copy unod unod.bak /加入这一行
....
bft .....
copy unod.bak unod /加入这一行
.....
另外如果你用高斯积分。那么你需要保证计算位移和应力都用一致的高斯积分。可以在ges文件的gaus段看到你用的积分方式。

zhoulon 发表于 2008-10-25 16:22:31

FEPG中一些关键字的含义

FEPG ---- FINITE ELEMENT PROGRAM GENERATOR
----------------------------------------------------------------------------------
PDE ---- PARTIAL DIFFERENTIAL EQUATION
CDE ---- COMPLEX DIFFERENTIAL EQUATION
FDE ---- FORMULAR DIFFERENTIAL EQUATION
VDE ---- VECTOR DIFFERENTIAL EQUATION
FBC ---- FORCE BOUNDARY CONDITION
GCN ---- GENERATE CMD AND NFE FILE
GIO ---- GENERATE IO FILE
NFE ---- NONLINEAR FINITE ELEMENT(现在都是指算法文件)
-----------------------------------------------------------------------------------
AWZ ---- APPLICATION WIZARD
BFT ---- BOUNDARY FORCE TIME
SHAP ---- SHAPE
COOR ---- COORDINATE
COEF ---- COEFICIENT
MATE ---- MATERIAL
STIF ---- STIFF
DEFI ---- DEFINITION
DIST ---- DISTRIBUTE
GAUS ---- GAUSS (代表积分方法)
-------------------------------------------------------------------------------
GES ---- GENERATE (FINITE) ELEMENT SCHEME
GVS ---- GENERATE (FINITE) VOLUME SCHEME
GLT ---- GLOBAL LOCAL TRANSFORMATION
-------------------------------------------------------------------------------
E (元件)---- EQUATION, ELEMENT
-------------------------------------------------------------------------------

zhoulon 发表于 2008-10-25 16:32:40

第三章由公式库生成程序
FEPG为了方便用户使用,将一些常用的问题类型集成到这个库里面,用户在直接利用这个库直接生成所需问题的有限元程序之后,就可以向其它商业软件一样进行计算操作了。
下面是在使用这个库的时候的一些常见问题解答。
1. 在用AppWizard生成程序模板,在此基础上修改成所需要的程序修改之后如何运行命令 重新生成程序? 初级教程上只给出了PDE文件的修改与生成 如果修改其他的文件 如FBC 、GCN 、CIO等文件 之后 又该如何生成程序斑竹可不可以给出FEPG系统详细一些的命令说明文件?
答:我一般修改了这些文件,就将这些原型文件拷贝到一个新目录下,运行gio命令重新生成程序。
2. 我用公式库生成有限元程序时总是提示'fem.dat'不是内部或外部命令,也不是可运行的程序或批处理文件,不知为什么? path lib include这三个环境变量都有,且与安装说明中要求的一致,不知还有没有其他的原因?
答:路径可能与vc,matlab等有冲突,看看软件安装版,如有真有的话,可以将vc或者是matlab的路径删除。
3. 几个场同时都要用到一个附加的fortran子程序,一旦这个fortran子程序修改并编译后,要不要对这几个场的e元件都要做编译处理?如在软件中右键电击弹出 let npa 之类的?
答:是的,需要重新连接子程序模块。
4. 在fepg生成程序或者程序运行时时,出现一些警告正常么?
答:正常!这个是fortran4.0或Visual fortran编译器的语法检查功能,主要是变量在某个程序或者这个程序的调用程序中的类型不一致引起的(例如整形变量和实型变量的不一致),不影响计算结果。还有这样的警告信息也是没有关系的:warning LNK4084: total image size 382849024 exceeds max <268435456>;image may not run
5. 网路版本用公式库怎么用不了,重起计算机还是用不了,选好问题坐标后,点击AWZ却出现一个Schemes对话框,什么也没有.这是怎么回事?
答:这个一般是服务器的问题,如果能上教育网络,可以连接教育网络和fepg公司的服务器试试就可以知道了。
6. 想在材料内部某一点加一与时间有关的荷载,该如何填写有关文件,需要修改哪些文件?
答:pde中load写成时间的变量。
7. 用awz和gio两种方式生成程序,结果发现用awz方式的多了一个solve.for程序,为什么?
答:awz、gio生成的程序可能是不完全一样的,我也是碰到过的,但是结算结果是一致的,gio好些。个人认为这可能是软件设计时的一个bug。
8. 公式库生成的粘弹性程序有问题?
答:利用粘弹性公式库生成程序后,有的生成的.pos文件式空的,因此用户在做前处理之前,要把这个文件写好,否则结果保存不下来,就是上面的错误
9. 我想在边界上加一个周期性变化的条件,怎么加啊?比如一个面,其上部边界是这样一个条件:15Sin(10t)下部条件是0度?
答:关于随时间变化的边值问题,在填写gcn文件时,其中的命令流段,bft后面要跟那个场的标示符(如a)。生成程序后要修改生成的bft文件中的bound,其中bound(r,t,j,nf)中,r是点的坐标数组,t是时间,j是第几个自由度,nf是第几个场。如果gcn中有bft a这种形式,则该场的边界值不根据前处理中赋给的,而是由bft中的bound函数中给的决定.而前处理中你给的边值将没有用,全部需要在bound里面赋给周期性的就可以在bft中修改bound函数中的
if(判断上边界,这里需要判断的全体点为id为-1的点。也就是说,id不为-1的点
我们可以不管.如果你只有上面的线和下面的线id为-1,如果区域为1*1,则你只要写x.gt.0.5就可以)
bound=15.0*dsin(10.0*t)
if(x.lt.0.5)
bound=0.0
10. 我在做流固耦合的问题时,将初始地应力设为0,即在前处理中施加材料参数时,固体场a中all2中fu=fv=0,然后建模型施加边界条件,发现如果给固体场边界上施加条件和不施加时得到的结果不一样,为什么?不施加边界条件不就是边界力为0吗?
答:我试了试,当不考虑耦合时,结果没有变化,但考虑耦合时,结果就有变化。是因为我在做耦合分析时,固体场有fbc文件,即第二类边界条件,如果在gid中不施加边界力时,相当于没考虑第二类边界条件;即使边界力为0,也应该在gid中施加,这样结果才正确。
11. 在请教一个问题,就是前处理时生成好网格,点击calculate出现错误?
Error in base file c:/ifepg.f32/gid/problemtypes/fepg.gid/fepg.bas at line number 33: Unknown Condition name: Volume-aew4
不知道这是什么问题,用的是4面体单元................?
答:重新定义一下问题类型,data-probem type-fepg。
12. 最近在读由 FEPG自动生成的程序,有两个问题不是很明白
1.关于打开文件
例如
OPEN(1,FILE=’ ‘,FORM=’UNFORMATTED’)
READ(1) KNODE,KDGOF
CLOSE(1)
OPEN(3,FILE=’ ‘,FORM=’UNFORMATTED’)
READ(3) nelem,nnode
rewind(3)
程序里的文件名好象都是由执行文件例 le.bat 来确定的
starta disp0 id0 nv disp0 bfd time0 time coor0 unod。
但是如何确定所读文件就是你想要的,或者是打开文件有什么顺序?打开同一个文件有时用的标号也不一样,如果没有注释语句的话,我不知道某个open是打开哪个文件
2.关于prmt的用法
prmt是系统定义的传递参数的一个语句,但是如何传递参数我还没搞清楚。例如在基于FEPG的有限元方法一书第19页在PDE中插入fortran语句时用到参数传递
$c6 epsilon=prmt(1)
$c6 rho=prmt(2)
答:1.程序中的空格即为待定参数,这些参数由对应的可执行程序后面带的字符串来赋值。所以,程序中第一个空格对应的是第一个文件,以此类推。2.prmt是存储材料参数和时间,单元号的数组。这个数组在E程序中赋值,调用单元子程序时作为参数传人单元子程序。所以在单元子程序中可以使用。具体可以参考E程序中的prmt赋值语句。

[ 本帖最后由 zhoulon 于 2008-10-27 17:24 编辑 ]

zhoulon 发表于 2008-10-27 14:37:55

第四章用户有限元生成程序
1. 我的E原件都没有问题,可是到SOLV的时候,我的求解器一直过不去?solv过不去,出现的是
NUMEL,NEQ =       625   1224   1225
NIN_SOLVER .... MAXA =   305107
Q = NaN               Q0 = NaN
如果不是solv 原件本身的问题,其他问题最有可能是出在哪里?如果我想换求解器,哪里有,怎么换?
答:Q = NaN         Q0 = NaN
可能数据读串了,或者超界,换求解器不管用,E程序输出数据不对;在dos窗口下运行计算,调试;方程不多,应该是数据或是pde文件错误.否则会很快解出来的,用prt命令打印一下结果,看看out文件是否正确。
2. 在做瞬态热传导问题时,单元的初始温度是坐标的函数关系(eg: U-D1=x*10-5),怎么在初始条件赋值时,计算时总是将所写的表达式当 0 来计算,我记得在弹性力学问题中,边界力是可以写成坐标的函数表达式的啊,为什么初始温度就不能写成坐标的函数表达式呢?还是需要注意其它具体事项?
答:gid中可以加边值的表达式,得到gidbfd.for,初值gid加不了。但可以通过下面两种方式来修改初值:(a)但我们是可以先通过gid前处理后得到的节点号与坐标值对应的剖分文件(*.dat),读出每个节点号与其对应的坐标值,这个时候就可以自己根据坐标值,来给每个节点赋与坐标相干的初值,再修改start.for,读取初值时,直接调用自己赋好的初值文件。(b)用提供的bound、bound1、bound2函数给出表达式。
3. 在bft中,有一个调用bound的语句,IF (ID.LT.0) BF(J,N) = BOUND(R,T,J,NF),这里的ID指的是什么?是指的在gid里赋边界条件时给的那个-1,1这些值吗?如果是,当我边界给的是1,也就是ID大于0时,bft是认为边界上这个自由度的值为0,还是说像gid里那样认为不约束?
答:不约束,这里不是说id小于零才做处理么。
4. 有时写 disp p, 或coef pn,后面的逗号是什么意思?不写上行不行?为什么在pde文件中shap %1 %2,%1 %2是从哪传递的单元类型信息,为什么我写的pde文件这样做总出错,而必须得直接将单元信息标上?
答:第一个问题,可以不写。第二个问题,用GCN系统生成程序时,pde可用%1 %2,此时,单元类型是在GIO文件中规定的。详细的看看关于耦合问题的章节吧。
5. 在非线性和耦合问题中,为什么必须填写信息段中的coef行,这一行所起的作用是什么?如果是非线性耦合问题,该如何填写coef?
答:非线性问题中,导入上一迭代步的值了;耦合问题中,导入其他场的值。先填写上一迭代步的变量名,在写耦合场的变量名。如二维问题a场要求位移,本身与温度场耦合, coef un vn tn,其中un,vn是上一迭代步的值,tn为温度。
6. 在某些FBC文件中,有这么几行:
refc rx
dord 1,1
node 2
是何用处,各参数啥意思?
答:那几行是GES文件中的几行,你可参看《FEPG使用说明书》,关于GES的部分。在FBC文件中可以不用管它。
7. 关于随时间变化的第二类边界条件如何加入?对弹性问题,第二类边界条件为应力,应力边界随时间变化,如何加进边界?
答:在fbc中给,可以给出边界条件的表达式。其中time是本时间步。要是个函数,后面加一个fortran函数吧!然后在load段调用。
fbc文件如下:
disp u
coor x
shap %1 %2
gaus %3
mate ea eb 1.0e1;3.0e1;
stif
dist=+*0.0d0
load=+*eb*ea*time
end
8. gio lps,之后cmd窗口内出现:LINK : fatal error LNK1181: cannot open input file \"all2.obj\" ,是怎么回事?可能是那里出错?怎么检查?
答:ll2,q4,t3呀,有这些字样的文件一般是生成单元子程序的。如果有问题,大多是pde,vde,或fbc上文件填写的有问题,检查一下。
9. 运行np.dat后出现的问题
我在修改了非稳态热传导例子后,进行完前处理后,运行np.bat   dos窗口出现下列情况
KNODE,KDGOF,KVAR,KCOOR,KELEM =
240   1   240   32000000
TMAX,DT,TIME,IT =   3.000000000000000   1.000000000000000
    1.000000000000000       1
K =       4
MMATE =       2 NMATE =       3
EMATE =
.25E-01 .71E-01 .00E+00 .00E+00 .00E+00 .00E+00
run-time error M6103: MATH
- floating-point error: divide by zero
C:\mei>IF NOT EXIST END GOTO 2
C:\mei>enpa disp0 sys time nv coor0 bfd diag elem0 f displace end
而且一直停不下来,是怎么回事呀?
答:e程序求解时,出现divide by zero(除零)错误。可能是pde文件写的有问题,看看其中的除法运算,有没有除零的情况,改改。或者,前处理的数据,和计算时的数据不一致,如前处理化的网格是三角形,而计算时的单元类型是四边形。
10. $c6 if (imate.gt.1) then 中的imate表示什么,是表示材料的类型吗?imate.gt.1是表示什么大于1呢?
答:imate表示本种单元的材料号,就是我们在gid中添加的那个材料号。那句话表示,单元材料号大于1的情况。

[ 本帖最后由 zhoulon 于 2008-10-27 15:22 编辑 ]

zhoulon 发表于 2008-10-27 14:43:59

11. 如何使用两个bft?我的计算流程要求在正式开始计算之前 先初始化应力,为此要使用弹塑性的,因此 需要 一个bft来控制,最后开始 时间计算,因此 还要一个 bft控制程序,同时内部还可能 用弹塑性计算,比较复杂, 使用两个bft会有冲突,有做过类似的么?
答:可以增加一个程序,这个程序摘自bft.for,把不需要的部分去掉就行。
12. 渗流问题,当压强和饱和度分开求解,以饱和度的收敛为非线性收敛准则。可是分开求解和压强与饱和度和起来求解结果还总不一样,而且是一个有震荡,一个没有震荡,不知道为什么?
答:一步一步对结果,发现收敛时,压强的值总对不上。于是,想到可能是分开算时,饱和度收敛后,压强并没有重新算的原因,因为我a场是压强,b场是饱和度,b场收敛了,就算非线性收敛。于是改为先算b场,再算a场.结果就和一起计算一样啦。所以,调试程序实在是非常费劲的.只有深入地分析数据、算法,才能发现问题。
13. 请问求解的位移场都是正确的,但是相应的求解出的应力全为0,可能的原因是什么?
答:求解应力场时出错,建议察看应力场计算时是否有除零现象和打印pde文件中的coef系数值,是否正确。
14. 像disp0 id0 nv 等自动生成的无格式输入或输出文件,用记事本打开和FEPG打开都是乱码,里面的数据能看吗?怎样打开呢?
答:*.0这些文件是无格式文件。如果需要看文件里面的内容,需要在dos窗口下执行prt命令( 工作目录的路径下)。然后用记事本打开工作路径下的out文件,就可以看到了。所以可以查看prt.for文件,看怎么读取和打印这些*.0的。nv文件是程序执行过程中产生的,可以在程序写nv文件时,用有格式方式写出nv文件。
15. 由gid做前处理后生成的两个.dat文件各代表什么意思?比如我生成的两个文件名为les.dat ,les-1.dat。请斑竹说明一下les-1.dat文件的作用和意义?
答:两个dat文件存放gid导出来的有限元模型数据。这两个文件通过fepg元件程序fgidpre转化后得到fepg程序可识别的计算数据文件coor0、elem0、id0、diap0等。其中,les.dat存4部分信息:节点坐标、节点自由度规格数、节点自由度初值、单元编码和材料号信息les-1.dat存节点自由度边值。基本上就是这样,详细可读fepg系统目录下gid目录下的fepg.bas和fepg1.bas文件。
16. fepg通过批处理命令实现计算流程,这样对于多次迭代的问题需要多次重启.exe计算模块,这样一些下一步需要的数值需要保存成文件,供下一步调用。迭代计算过程中pde文件中coef引用的值是不是只通过nfe读得?这种对下一步计算有用的数值必须要以文件得方式保存,是不是也可以直接在pde文件中打开并读取上一步的计算值(比如unod 写成read(s,unod) u du)?或者在pde文件中写write(s,aaa) ff?
答:不可以的。NFE文件读结果文件,然后计算单刚的时候会根据程序找到单元上几个节点在上一步的值。如果pde文件中读结果,需要自己判断,当前单元是哪个单元,包含哪几个整体节点号,然后取结果文件在这几个整体节点号上的值。而且这样不能用上一步结果的一阶导数。
17. *.gcn 文件中的 &, 和 %1 是什么意思?
----------------
defi
a ell &
b str a &
START%1 a
SOLV%1 a
stress b
----------------
答:%1是求解器参数。比如你可以生成程序时用 gio sin 或gio nin 或gio sor等,如果直接用gio 则默认为 gio c,&其实没有什么作用。
18. 有时候我们希望用其他名字的文件作为时间步控制文件,fepg默认的是time
理论上应该可以改成其他名字,比如在批处理中出现time的地方换成 step,当然,相应地准备一个初始文件step0,但是,实际计算结果表明,每换成一个新名字,计算结果都和原来用time作时间控制文件时不一样,其他地方一点都没有修改!我测试的是弹塑性程序。对于fepg其他的瞬态问题程序,我也测试了一个,没有这样的问题。
答:求应力的场中有这么一句话,
    inquire(file='time',exist=filflg)
    if (filflg) then
    open(6,file='time',form='unformatted',status='old')
    read(6) tmax,dt,time,it
    close(6)
    write(*,*) 'tmax,time,dt,it =',tmax,time,dt,it
    endif
所以,这个time也要改。因为会影响应力的计算。(弹塑性特别,因为PDE里面求应力与时间有关)。
19. 我生成的start文件,很奇怪!
implicit real*8 (a-h,o-z)
    character*40 fname,filename(20)
    common /aa/ ia(63750000)
    common /bb/ ib(31870000)
    common /cc/ ic(15930000)
    numarg = 0
    numarg = numarg+1


call getarg(numarg,fname)
open(1,file=fname,form='unformatted',status='old')
    read(1) knode,kdgof
    close(1)
    kvar=knode*kdgof
    write(*,*) 'knode,kdgof,kvar ='
    write(*,'(1x,4i7)') knode,kdgof,kvar
    KCOOR=3
    KELEM=500000
所有的文件打开前的文件名都是由“getarg"命令得到的? 什么原因? 
getarg的源程序哪里有?
答:系统的函数,获取可执行程序带的参数。starta.exe disp0,获取的第一个字符串就是disp0,g77编译器下的语法。
20. 请教流体场的自由滑动边界怎么给(边界是曲线)?平行边界x,y时,我通常是将垂直方向的速度设为0,平行的为自由,边界是斜的应该怎么给?
答:用fbc,fy设置为很大的一个数。滑动边界条件也就是说在滑动边界的法线上速度的梯度为很大。于是写fbc文件,使得u对y的导数为很大的一个数,也就是说fy取很大的一个数即可。
21. FEPG产生的Fortran程序能独立运行吗?产生的.for的程序什么关系?哪个是主程序,哪个是子程序呀?
答:可以独立运行!
FEPG生成的程序包含几个独立的子程序,也就是常说的元件程序。
包括start.for,E%1.for.(这里所有的%1代表gcn文件的名称)如果gcn写的是solvc的话,包括start.for,E%1.for,solv%1.for,U%1.for.
有几个场,一般就有几个对应的starta.for,startb.for, E%1a.for,E%1b.for等等。
左边浏览器窗口里面E%1.for下面的*.for文件,是E%1.for需要调用的子程序。
按照生成的%1.bat里面写的顺序,执行这些.for文件编译成的exe程序。
所以,当生成程序后,拷贝fegen.bat(这个文件是编译所有这些生成的*.for命令)
到新文件(因为当执行其他操作时这个文件会被其他内容冲掉)。
然后拷贝所有的*.for文件,拷贝所有的*0文件和time0文件,*.io文件,*.lin文件到新文件夹。当然还要把%1.bat考备出来。
拷贝安装目录下\nfe\fepg.lib文件到该文件夹。
这时,
fegen.bat里面的编译命令里面的fepg.lib现在已经不在系统的lib路径里面,可以把fepg.lib存放的绝对路径写在fegen.bat中fepg.lib前。
然后就可以执行刚拷贝的fegen.bat执行编译,完了之后执行*.bat就可以了
其实很简单的思路是,
从%1.bat里面找,第一列对应的.for是需要的。其实也就是文件夹下所有的.for
*.0是前处理形成的数据文件,time0和*.io是需要的数据文件。
fepg.lib是一些基本子函数封装成的库文件,*.for中调用但在文件中找不到的子函数
都被编译在fepg.lib文件里面。这些子函数的源代码文件为安装文件夹下的\nfe.r8下的*.for。
22. IO文件有什么用处?
答:IO文件是告诉系统生成e程序的时候需要调用哪些pde,fbc模块。

[ 本帖最后由 zhoulon 于 2008-10-27 16:46 编辑 ]

zhoulon 发表于 2008-10-27 18:18:49

23. 当我计算完毕之后,在进入后处理是,dos窗口出现了一个error:缺少gidpost.dof文件,请问各位大侠是什么原因?我copy了其他计算好的gidpost.dof文件,并做了改动,结果运行正常了。请问这样做行不?还有这个文件有什么作用?
答:原因是你第一次联服务器时没有做后处理,然而再次联服务器只上传了pre文件,但没有传pos文件,如果上传了pos文件,就没有问题了。当然你自己拷贝一个也是可以得。
24. 如果不加边界条件是不是就是第二类边界条件,并且等于零呀?
答:是的,是这样的,自然边界条件一般是不需要施加的。
25. 我按照飞箭旧版网站中演示厅中第二个例子三维瞬态热传导的步骤做,但到最后没有结果呀,执行完h.bat后Dos窗口里说:SIN_SOLVER MEMORY REQUIRED.... 185718,生成的fortran程序中没有solv.for和u*.for,怎么回事呢?
答:如果求解器用的是SOLVsin的话,就不生成u*.for了。
26. 命令gefep lpsa 与let lpsa 有什么区别?而且我在修改完压力场的nfe 文件后运行gnfep命令老是有问题,显示ulpsa.apg file not found may be you need to run gefep instead of this command ,该怎么办?请问gefep 与gnfep 有什么区别?
答:gefep是由e*.fpg和e*.apg联合nfe文件生成e元件程序。而gnfep也是这样的功能,但是这个是对应与solvc这种分成三个元件程序的,E,solv和u。如果你不是solvc,则请用提示的那个genfe。
27. 我在看生成的Fortran程序时,在eq4.for中使用了两个子程序,分别为
call shapn(nrefc,ncoor,4,ru(1,iu),cu,crtr,1,3,3)
call dshap(feq41,refc,shpr,2,4,1)
我在生成的Fortran程序中都没有找到这两个子程序的定义,在Fortran的帮助文件中也没有找到这两个子程序?
答:这两个子程序是通过调用fepg的库实现的。这个库存在于安装目录下的 nfe(网络版)目录或nfe.r8(单机版)目录,库的名称为fepg.lib,这个库的源代码也在这个目录下,是多个.for文件。这些文件的名称你可以通过察看目录下 gfepglib.bat 的内容来找到。具体在哪个.for中,你可以自己找每个.for文件都不大,很容易察看。
28. 单元子程序可以正常生成,为什么很多时候在后处理中看不到任何结果呢?
答:看计算过程是否出错。看后处理过程中dos黑窗口是否报错。以确定是pos文件写错了还是没有得到unod文件。
29. 我计算的是一个温度应力耦合的问题,不过在后处理gid中怎么显示的切应力是0啊,不过我在结果文件。flavia.res中看到的切应力并不是0。我的pos文件是这样的:我怀疑我的pos文件有点问题。请那位大侠指点?不胜感激。其中tilt=e2xy/(ex+1),gid显示的也都为0。flavia.res中也是0
12
unod u
unodb u v
unodc sx sy   sxy   ex ey e1xy e2xy   1 2 3
unodc sx sy   sxy   ex ey e1xy e2xy   4 5
unodc sx sy   sxy   ex ey e1xy e2xy tilt   6 7 8
答:这个与gid的后处理显示结果有关系。
你可以把pos文件写成
12
unod u
unodb u v
unodc sx sy   sxy   ex ey e1xy e2xy   1 2 3
unodc sx sy   sxy   ex ey e1xy e2xy   4 5
unodc sx sy   sxy   ex ey e1xy e2xy tilt   6 7
unodc sx sy   sxy   ex ey e1xy e2xy tilt 8
就能看到tilt了。
30. 2drz 坐标系,pde文件中刚度矩阵为何要乘以vol?哪些项要乘以vol?质量项、载荷项也都要乘吗?
答:为了统一,所有坐标系都有vol变量。如果是直角坐标,vol=1。vol代表一个积分常数(在rz坐标系下,应该会跟r有关)。直角坐标系下的积分在变换到rz坐标系后,不会原封不动就把积分区域作改动就可以的,肯定要有一个积分常数出来。这就是vol的作用。所有积分的地方都会出现。所以载荷项也是要乘的,质量项也要乘。
31. 请问大侠,gcn文件中post a 与post c 有什么作用?
答:gcn 中post 是当前时间步的拷贝计算到另外文件,第五个时间步计算出来的结果为unod文件,post的作用是 copy unod unod.5。
32. 两个场的边界单元如何施加呢? 比如一个是位移场,一个是温度场,不同场施加边界的表面是不同的(三维问题),是通过分配两个材料号?
答:每个场都有对应的边界单元,以a,b标识不同,所以a,和b场分开加。
33. 我想问的是在方程中出现了点源或点汇项,如何在FEPG中编写实现?
答:源项对应于pde的load段.点源项就判断某个点,在这个点处,源项fx付给对应的值,否则赋给0。材料系数里面fx 默认为0.0,在pde,的 stif后用
$c6 if(x.lt.xxx+1.d-5.and.x.gt.xxx-1.0d-5.and.y.lt...........) fx=1.0。
34. 感觉网络版很难用,不是文件老师上传不了或者不全,就是pre文件一填写参数后,getpre就执行错误?
答:上传文件不全可以删除目录下得filelist文件,或者是fepg.evr 文件。再上传。修改pre文件可以用记事本直接修改,不用getpre也可以。上传文件时不要上传计算的结果文件,否则上传会很慢。上传不成功可以试试其他方式。上传方式一:菜单“File"---> "retrieve",上传方式二:菜单"Run"--->输入 " upload * "。
35. fepg.gid文件夹下还有两个没有扩展名的BAS1和BAS2文件,这两个文件有什么作用呢?
答:计算结果与gid做接口用的。
36. 感觉FEPG算法填写,尤其是写用户自己的算法感觉相当困难,不知道自己填写的东西将来究竟如何反映到生成的程序中去,如何对应的?
答:nfe文件的equation段和solution段分别对应生成程序的e元件和u元件.可以到e*.for和U*.for中找到对应。

[ 本帖最后由 zhoulon 于 2008-10-27 18:51 编辑 ]

zhoulon 发表于 2008-11-5 16:38:02

长期使用gid的时候,会发现在进行面相交操作的时候遇到下面图形里面的错误提示,点击确定以后,gid就自动关闭了,如果没有及时保存文件的话,很长时间所作的工作可能就白费了,关键是感觉莫名其妙,根本不知道什么原因,更找不到解决的方法。本人就这个问题在这里给出解决的方法。

下面是原始图形和错误提示,我想对模型中的两个面进行相交操作,结果在点击菜单geometry-----creat-----intersection-----suface-surface之后,根据提示,选择原始图形中的两个表面,结果发生错误提示图形中的提示。一般当我们遇到这种问题的时候根本就摸不着头脑,不知道为何发生这种问题,难道是gid的bug,其实不是。我们可以仔细看错误提示图形,然后发现标注图形中用圆标出来的部分居然求交了,而其它地方没有求交,那我们可以大胆猜测问题应该是这两个表面在没有进行求交的地方根本就没有相交,造成gid运行出错。

[ 本帖最后由 zhoulon 于 2008-11-5 16:45 编辑 ]

zhoulon 发表于 2008-11-5 16:51:12

顺着上面的分析思路,我们将两个表面中面积比较小的表面的一条边向外延伸,然后再生成一个较大的表面,以保证新生成的表面和原来面积较大的表面能够相交,然后点击菜单进行求教操作,结果操作成功,进而证明我们刚开始的猜测正确。

[ 本帖最后由 zhoulon 于 2008-11-5 16:54 编辑 ]

zhoulon 发表于 2008-11-5 17:01:43

有的人抱怨gid不太好用,有好多问题不太懂,莫名其妙的,根本就找不到原因。实际上任何软件都有自己的核心程序,都有自己的程序算法,对于一些简单的基本的模型可能都没有什么问题,但是对于一些比较复杂的模型问题百出,其实主要的就是我们不太了解他们的算法规则所致。在这种情况之下,我们只有在使用的过程当中细心总结,并和别人进行交流,我们对软件的熟悉和了解程度也会自然提高的。我以前在用ansys的时候,由于设置的不对,也会出现突然关闭的情况发生;而且ansys还有一个bug就是有些时候不知道咋就突然界面锁定了(当然了也有解决方法的,但是新手可能还是比较麻烦),所以说每一步都必须按照操作流程仔细操作。不过个人感觉gid在使用的时候问题比较多一些,划分网格的算法和其它一些比较少一些,呵呵。

zlxiaonan 发表于 2008-11-6 09:24:51

软件自动关闭是比较恶心,一些看起来理所当然的操作也可能导致突然关闭,现在我都及时保存。:D

zhoulon 发表于 2008-11-6 10:54:41

是呀,所以说在使用软件的过程中一定要不断的保存,不过现在有好多软件可是自动设置保存时间,这个比较好,呵呵。
页: [1] 2
查看完整版本: FEPG版的FAQ