abaqus使用自定义材料umat子程序时出现ifort.exe问题解决方法

abaqus使用自定义材料umat子程序时出现ifort.exe问题解决方法
abaqus使用自定义材料umat子程序时出现ifort.exe问题解决方法

下方法适用于Abaqus v6.6 v6.7 v6.8 v6.9

想要在ABAQUS里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过Abaqus V erification测试子程序以及其他ABAQUS功能是否能正常使用。

子程序通过验证方法:

1:先安装Microsoft Visual Studio(英文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项)

2:右键点击Abaqus V erification快捷方式,选择“属性”,在“目标”中的内容前面加上"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\i fortvars.bat" && (注意&&后有个空格,还要注意路径用双引号括起来,64位系统为"...\$version$\em64t\bin\ifortvars.bat" && )

3:双击此Abaqus V erification快捷方式进行验证(必

须先启动ABAQUS license)

说明:

1:ABAQUS先装后装都可以,没有影响,若已装上ABAQUS可不必卸载,完成以上步骤即可。

2:X:\yourdir为Fortran安装位置,$version$为版本号,比如我的Fortran 10.1.030装在了C:\Program Files,ABAQUS6.9装在了D:\ABAQUS6.9,则在Abaqus V erification快捷方式“目标”中的全部内容为:

"C:\Program

Files\Intel\Compiler\Fortran\10.1.030\IA32\Bin\ifortvars .bat" && D:\ABAQUS6.9\Commands\abq691.bat -verify -all -log && notepad.exe verify.log || notepad.exe verify.log

(本质上就是要把IVF的初始化文件ifortvars.bat找到,并和其路径一起添加进快捷方式,使点击此快捷

方式时会先自动运行ifortvars.bat,进行环境变量的临时自动设置)

若需要在Abaqus CAE或Abaqus Command中使用子程序,使用以下两种方法都可以:

1)使用之前所述同样的方法修改其快捷方式,仅需修改一次,以后使用直接点击即可。

2)找到Commands文件夹下的abq6XX.bat文件(6XX 为版本号,比如是6.9.1,则为abq691.bat),编辑此文件,插入下面这行使之成为第一行:

@call

"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\i fortvars.bat"

保存即可(X:\yourdir为Fortran安装位置,$version$为版本号)。

第二种方法一劳永逸,任何abaqus的快捷方式都能无须修改使用子程序功能,并且还能直接点击cae文件来使用子程序,

3:通过多台电脑测试,安装英文版本的Microsoft Visual Studio可以解决“Fail - Unable to locate or determine the version of a C++ compiler on this system.”的问题,使此项顺利通过。

电驴下载页面:(均含32位和64位,默认安装时未装64位,需要则选自定义安装并在C++下勾上64位选项)

Microsoft Visual Studio 2005 英文版https://www.360docs.net/doc/6f11658578.html,/topics/138840/

Microsoft Visual Studio 2008 英文版https://www.360docs.net/doc/6f11658578.html,/topics/2768056/

4:Intel Visual Fortran 最新版官方下载地址::(均含32位和64位,默认安装为都安装,不需要可去掉64位选项)

Intel Visual Fortran 9.1.039 专业版https://www.360docs.net/doc/6f11658578.html,/irc_nas/872/ W_FC_C_9.1.039.exe?lang=zh-cn

2010-4-29 10:35 回复

Intel Visual Fortran 10.1.030 专业版https://www.360docs.net/doc/6f11658578.html,/akdlm/irc_n as/1386/w_fc_p_10.1.030_novsppe.exe

若以上链接失效,或下载其他版本,直接进入官方下载页面下载:

https://www.360docs.net/doc/6f11658578.html,/en-us/articles/intel-visual-fortra n-compiler-professional-edition-for-windows-evaluation/

官方下载后好像会把30天试用的license发到邮箱里,如何解决“试用”问题,相信大家都是聪明人,可以自行解决,在此就不方便多说了。

5:Abaqus v6.9 可使用:MVS2005+IVF9.1,MVS2005+IVF10.1,MVS2008+IVF1 0.1这三种组合

其他Abaqus版本所需IVF版本参见官方System

Requirements说明:https://www.360docs.net/doc/6f11658578.html,/support/sup_systems_info.html 各版本IVF对MVS版本的要求见官方SOSS在线支持系统说明:https://www.360docs.net/doc/6f11658578.html,/cgi-bin/abaqus.cfg/php/endus er/std_adp.php?p_faqid=3702

6:如果使用Intel Visual Fortran V ersion 11.0及11.1出现问题,请根据个人情况选用以下方法解决:

1)你所使用的ABAQUS版本是否能支持IVF11版本,建议使用官方推荐的版本,目前好像从6.9ef开始可以使用IVF11。

2)“实际上在X:\....\Intel\Compiler\11.1\038\bin下还有另两个文件夹,分别是IA32和IA64,就是分别为32位机和64位机准备的,所以我用的是X:\....\Intel\Compiler\11.1\038\bin\ia32\ifortvars_ia32.ba t",也是可行的。这也算是对楼主的方法一点补充吧。”

3)从官方SOSS上得知:

Intel 从Visual Fortran V ersion 11 开始改变了ifortsvars.bat文件的运行方式,需要添加一个参数来运行临时环境变量的设置。

Windows 32:需要加上'ia32' 这个参数

例如:"C:\Program Files\Intel\Compiler\11.0\072\fortran\Bin\ifortvars.bat"

ia32

Windows 64位:则加上'intel64'这个参数

例如:"C:\Program Files (x86)\Intel\Compiler\11.0\072\fortran\Bin\ifortvars.bat" intel64

7:如果所有都准备好了,但是点击Abaqus V erification 时自动退出,这是因为在你以前手动设置环境变量时,你删除了一些系统内容导致的。请在系统环境变量的PA TH项中加上:

%SystemRoot%\system32;%SystemRoot%;%SystemRo ot%\System32\Wbem;

然后验证就不会自动退出了。

8:如果还有关于"CA TIA"的项通不过,请找到你的ABAQUS安装文件,在win86_32目录下点击安装vcredist_x86-2.exe,(64位系统在win86_64目录下,安装vcredist_x64.exe 和vcredist_x86-2.exe )这个是Microsoft Visual C++ 2005 SP1运行库文件,用来支持一些模型导入的功能,安装后再验证即可通过。

以下为此方法使用Microsoft Visual Studio 2005 +Intel Visual Fortran10.1.030 子程序验证结果:

Abaqus Product Install V erification...

Thu Oct 15 09:27:18 2009

Running system requirement checks.

Requirement: Windows XP, Windows Server 2003 Standard Edition, or Windows

Vista

Product: All Abaqus Products

Status: Pass - Found Microsoft Windows XP Professional Service Pack

3 (Build 2600).

Requirement: Microsoft Visual C++ 8.0 (.NET 2005)

Product: Abaqus make utility with C++ Status: Pass - Found Microsoft Visual C++ 8.0.50727.42.

Requirement: Intel Fortran Compiler 9.1 or 10.1 Product: Abaqus make utility with Fortran and Abaqus with user

subroutines

Status: Pass - Found Intel Fortran Compiler 10.1 Build 20090203

Package ID w_fc_p_10.1.030.

Requirement: Internet Explorer 6.0, Mozilla 1.2, Firefox 1.0.1, or

greater

Product: Abaqus Documentation

Status: Pass - Found Internet Explorer 8.0.6001.18702

Making F:\Abaqus\verify. All verification files will reside in this

directory.

-----------------------------------------------------------------------------

Abaqus/Standard

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Standard with user subroutines

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Explicit (single precision)

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Explicit (double precision)

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Explicit with user subroutines (single precision)

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Explicit with user subroutines (double precision)

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Viewer

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/CAE

...PASS

Continuing...

-----------------------------------------------------------------------------

Geometry Translator for CATIA V4

...PASS

Continuing...

-----------------------------------------------------------------------------

Geometry Translator for CATIA V5

...PASS

Continuing...

-----------------------------------------------------------------------------

Direct Geometry Import for CATIA V5

...PASS

Continuing...

-----------------------------------------------------------------------------

Geometry Translator for I-DEAS

...PASS

Continuing...

-----------------------------------------------------------------------------

Geometry Translator for Parasolid

...PASS

Continuing...

-----------------------------------------------------------------------------

Geometry Translator for Pro/ENGINEER

...PASS

Continuing...

-----------------------------------------------------------------------------

SolidWorks Associative Interface

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/AMS

...PASS

Continuing...

---------------------------------------------------------------------

--------

Abaqus Interface for MSC.ADAMS

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Standard parametric studies

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Explicit parametric studies

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus/Design

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus Interface for Moldflow

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus make utility with Fortran

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus make utility with C++

...PASS

Continuing...

---------------------------------------------------------------------

Abaqus make utility with object code

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus scripting interface

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus analyses using parallelization

Running thread-based parallel with 2 cpu(s)

Abaqus/Explicit domain-level parallel

...PASS

Abaqus/Standard direct solver

...PASS

Continuing...

---------------------------------------------------------------------

Abaqus/Foundation

...PASS

Continuing...

-----------------------------------------------------------------------------

Abaqus noGUI (CAE/Viewer)

...PASS

Continuing...

-----------------------------------------------------------------------------

Clean-up...

V erification directory F:\Abaqus\verify has been deleted.

以下是我对MVS和INF安装的理解,以及网上最常见的安装方法的一些说明,有兴趣的朋友可以看看并讨论,也许可以解决一些疑惑。

使子程序通过验证,主要有四个方面步骤:安装ABAQUS,安装MVS,安装IVF,设置环境变量。先装MVS后装IVF可以使IVF找到MVS,环境变量的设置可以让ABAQUS找到MVS和IVF相关的文件从而通过验证,所以只要环境变量设置正确,不论先装后装ABAQUS都可以。

环境变量的设置,官方SOSS上说有“永久”法和“临时”法两种:

“临时”法就是使用MVS和IVF自带的初始化bat文件来自动进行环境变量的设置。在32位系统中,MVS的初始化文件是vcvars32.bat(64位系统为vcvarsamd64.bat),IVF的初始化文件是ifortvars.bat,只要在运行ABAQUS命令时事先调用执行这两个文件即可临时设置好环境变量,实际上只需单独调用执行ifortvars.bat即可,因为只要IVF先于MVS安装,ifortvars.bat中就已经包含了vcvars32.bat(64位系统为vcvarsamd64.bat)的调用执行。“临时”的方法设置环境变量时,不会改变“我的电脑->高级->环境变量”中的设置,但需要每次执行ABAQUS命令前都调用执行一次ifortvars.bat,上面的步骤2就是设置自动调

用执行ifortvars.bat。

“永久”法就是可以让任何打开的程序或命令使用环境变量,不需要事先调用ifortvars.bat文件。虽然SOSS中没有具体说如何设置“永久“的环境变量,但我认为应该就是把ifortvars.bat和vcvars32.bat中所涉及到的环境变量进行手动添加,也就是设置PAHT,INCLUDE,LIB等环境变量的过程,这也就是网上流行的方法,设置完后需要注销一次才能生效。

“临时”法看似不彻底,但实际上我觉得比“永久”法好,“临时”法不需要手动设置环境变量,不需要注销重启,而且比较可靠。若用"永久"法设置好环境变量后,有时候其他软件的安装或使用会自动修改环境变量的设置,可能就会影响ABAQUS子程序的使用了,又得重新手动设置。

好多人都曾经碰到这种情况,所有的安装设置都弄好了,但仍然会有下面的项无法通过

Requirement: Microsoft Visual C++ 8.0 (.NET 2005)

ABAQUS-二次开发资料-UMAT

各个楼层及内容索引 2-------------------------------------什么是UMAT 3-------------------------------------UMAT功能简介 4-------------------------------------UMAT开始的变量声明 5-------------------------------------UMAT中各个变量的详细解释 6-------------------------------------关于沙漏和横向剪切刚度 7-------------------------------------UMAT流程和参数表格实例展示 8-------------------------------------FORTRAN语言中的接口程序Interface 9-------------------------------------关于UMAT是否可以用Fortran90编写的问题 10-17--------------------------------Fortran77的一些有用的知识简介 20-25\30-32-----------------------弹塑性力学相关知识简介 34-37--------------------------------用户材料子程序实例JOhn-cook模型压缩包下载 38-------------------------------------JOhn-cook模型本构简介图 40-------------------------------------用户材料子程序实例JOhn-cook模型完整程序+david详细注解[欢迎大家来看看,并提供意见,完全是自己的diy的,不保证完全正确,希望共同探讨,以便更正,带"?"部分,还望各位大师\同仁指教] 1什么是UMAT??? 1.1 UMAT功能简介!!![-摘自庄茁老师的书 UMAT子程序具有强大的功能,使用UMAT子程序: (1)可以定义材料的本构关系,使用ABAQUS材料库中没有包含的材料进行计算,扩充程序 功能。ABAQUS软件2003年度用户年会论文集 (2)几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQUS中 的任何单元; (3)必须在UMAT中提供材料本构模型的雅可比(Jacobian)矩阵,即应力增量对应变增量 的变化率。 (4)可以和用户子程序“USDFLD”联合使用,通过“USDFLD”重新定义单元每一物质点上传 递到UMAT中场变量的数值。 1.2 UMAT开始的变量声明 由于主程序与UMAT之间存在数据传递,甚至共用一些变量,因此必须遵守有关书写格式,UMAT中常用的变量在文件开头予以定义,通常格式为: SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD, 1 RPL,DDSDDT,DRPLDE,DRPLDT, 2STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME 3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,

ABAQUS中Fortran子程序调用方法

第一种方法: / o/ J5 @6 U/ ^- o$ 1. 建立工作目录/ ]" 2. 将Abaqus安装目录\6.4-pr11\site下的aba_param_dp.inc或aba_param_sp.inc拷贝到工作目录,并改名为aba_param.inc; # ~/ |0 I0 E6 {, @4 X3 q: W3. 将编译的fortran程序拷贝到工作目录; 4. 将.obj文件拷贝到工作目录; 5. 建立好输入文件.inp; 6. 运行abaqusjob=inp_name user=fortran name即可。 第二种方法: 在Job模块里,创建工作,在EditJob对话框中选择General选项卡,在Usersubroutine file中点击Select 按钮,从弹出对话框中选择你要调用的子程序文件(后缀为.for或.f)。 , D8 i7 d/r c6 @" | 以下是网上摘录的资料,供参考:. |$ t/ }$W7 Y6 m4 h6 D6 j 用户进行二次开发时,要在命令行窗口执行下面的命令: 4 O. R+ ^,@( ? abaqus job=job_name user=sub_name ABAQUS会把用户的源程序编译成obj文件,然后临时生成一个静态库standardU.lib和动态库standardU.dll,还有其它一些临时文件,而它的主程序(如standard.exe和explicit.exe等)则没有任何改变,由此看来ABAQUS是通过加载上述2个库文件来实现对用户程序的连接,而一旦运行结束则删除所有的临时文件。这种运行机制与ANSYS、LS-DYNA、marc等都不同。 : j6 g' R-o( {0 [* N2 J3 X这些生成的临时文件要到文件夹C:\Documentsand Settings\Administrator\Local Settings\Temp\中才能找到,这也是6楼所说的藏了一些工作吧,大家不妨试一下。 1子程序格式(程序后缀是.f; .f90; .for;.obj??) 答:我试过,.for格是应该是不可以的,至少6.2和6.3版本应该是不行,其他的没用过,没有发言权。在Abaqus中,运行abaqusj=jobname user=username时,默认的用户子程序后缀名是.for(.f,.f90应该都不行的,手册上也有讲过),只有在username.for文件没有找到的情况下,才会去搜索username.obj,如果两者都没有,就会报错误信息。 如果username包括扩展名for或obj,那么就根据各自的扩展名ABAQUS会自动选择进行操作。 2CAE中如何调用?Command下如何调用? 答:CAE中在creat job的jobmanager中的general中可以指定子程序; Command下用命令:abaqus j=jobnameuser=userfilename (无后缀); 3若有多个子程序同时存在,如何处理 答:将其写在一个文件中即可,然后用一个总的子程序调用(具体参见手册) 4我对VF不是很熟,是否可以用VC,C++编写子程序? A: 若要在vf中调试,那么应该根据需要把SITE文件夹中的ABA_PARAM_DP.INC(双精度)或ABA_PARAM_SP.INC(单精度)拷到相应的位置,并改名为ABA_PARAM.INC即可。 据说6.4的将可以,6.3的你可以尝试着将VC,C++程序编译为obj文件,没试过。在你的工作目录下应该已经存在ufield.obj和uvarm.obj这两个文件(这两个文件应该是你分别单独调试ufield.FOR和uvarm.FOR时自动编译生成的,你可以将他们删掉试试看),但是由于你的FOR文件中已经有了UV ARM 和UFIELD这两个subroutine,显然会造成重复定义,请查实。 用户子程序的使用 假设你的输入文件为:a.inp b.for 那么在ABAQUS Command 中的命令应该是这样的: abaqusjob=a user=b

ABAQUS-UMAT弹塑本构二次开发的实现

前言 有限元法是工程中广泛使用的一种数值计算方法。它是力学、计算方法和计算机技术相结合的产物。在工程应用中,有限元法比其它数值分析方法更流行的一个重要原因在于:相对与其它数值分析方法,有限元法对边界的模拟更灵活,近似程度更高。所以,伴随着有限元理论以及计算机技术的发展,大有限元软件的应用证变得越来越普及。 ABAQUS软件一直以非线性有限元分析软件而闻名,这也是它和ANSYS,Nastran等软件的区别所在。非线性有限元分析的用处越来越大,因为在所用材料非常复杂很多情况下,用线性分析来近似已不再有效。比方说,一个复合材料就不能用传统的线性分析软件包进行分析。任何与时间有关联,有较大位移量的情况都不能用线性分析法来处理。多年前,虽然非线性分析能更适合、更准确的处理问题,但是由于当时计算设备的能力不够强大、非线性分析软件包线性分析功能不够健全,所以通常采用线性处理的方法。 这种情况已经得到了极大的改善,计算设备的能力变得更加强大、类似ABAQUS这样的产品功能日臻完善,应用日益广泛。 非线性有限元分析在各个制造行业得到了广泛应用,有不少大型用户。航空航天业一直是非线性有限元分析的大客户,一个重要原因是大量使用复合材料。新一代波音 787客机将全部采用复合材料。只有像 ABAQUS这样的软件,才能分析包括多个子系统的产品耐久性能。在汽车业,用线性有限元分析来做四轮耐久性分析不可能得到足够准确的结果。分析汽车的整体和各个子系统的性能要求(如悬挂系统等)需要进行非线性分析。在土木工程业, ABAQUS能处理包括混凝土静动力开裂分析以及沥青混凝土方面的静动力分析,还能处理高度复杂非线性材料的损伤和断裂问题,这对于大型桥梁结构,高层建筑的结构分析非常有效。 瞬态、大变形、高级材料的碰撞问题必须用非线性有限元分析来计算。线性分析在这种情况下是不适用的。以往有一些专门的软件来分析碰撞问题,但现在ABAQUS在通用有限元软件包就能解决这些问题。所以,ABAQUS可以在一个软件完成线性和非线性分析。 ABAQUS给用户提供了强大二次开发接口,尤其是在材料本构方面,给用户开发符合实际工程的材料本构模型提供了强大帮助,本文将针对其用户材料子程序展开研究,总结常用材料模型的开发方法。

ABAQUS子程序

Home 浅谈ABAQUS用户子程序 李青清华大学工程力学系 摘要本文首先概要介绍了ABAQUS的用户子程序和应用程序,然后从参数,功能两方面详细论述了DLOAD, UEXTERNALDB, URDFIL三个用户子程序和GETENVVAR,POSFIL,DBFILE三个应用程序,并详细介绍了ABAQUS的结果文件(.FIL)存储格式。 关键字ABAQUS,用户子程序,应用程序,结果文件 一、前言: ABAQUS为用户提供了强大而又灵活的用户子程序接口(USER SUBROUTINE)和应用程序接口(UTILITY ROUTINE)。ABAQUS 6.2.5一共有42个用户子程序接口,13个应用程序接口,用户可以定义包括边界条件、荷载条件、接触条件、材料特性以及利用用户子程序和其它应用软件进行数据交换等等。这些用户子程序接口使用户解决一些问题时有很大的灵活性,同时大大的扩充了ABAQUS的功能。例如:如果荷载条件是时间的函数,这在ABAQUS/CAE 和INPUT 文件中是难以实现的,但在用户子程序DLOAD中就很容易实现。 二.在ABAQUS中使用用户子程序 ABAQUS的用户子程序是根据ABAQUS提供的相应接口,按照FORTRAN语法用户自己编写的代码。在一个算例中,用户可以用到多个用户子程序,但必须把它们放在一个以.FOR为扩展名的文件中。运行带有用户子程序的算例时有两种方法,一是在CAE中运行,在EDIT JOB菜单的GENERAL子菜单的USER SUBROUTINE FILE对话框中选择用户子程序所在的文件即可;另外是在ABABQUS COMMAND用运行,语法如下: ABAQUS JOB=[JOB] USER?[.FOR]?C 用户在编写用户子程序时,要注意以下几点: 1.用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程

abaqus简单umat子程序

SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,RPL,DDSDDT, 1 DRPLDE,DRPLDT,STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED, 2 CMNAME,NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT, 3 PNEWDT,CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,KSTEP,KINC) include 'aba_param.inc' CHARACTER*8 CMNAME DIMENSION STRESS(NTENS),STATEV(NSTATV),DDSDDE(NTENS,NTENS), 1 DDSDDT(NTENS),DRPLDE(NTENS),STRAN(NTENS),DSTRAN(NTENS), 2 TIME(2),PREDEF(1),DPRED(1),PROPS(NPROPS),COORDS(3),DROT(3,3), 3 DFGRD0(3,3),DFGRD1(3,3) C UMAT FOR ISOTROPIC ELASTICITY C CANNOT BE USE D FOR PLAN E STRESS C ---------------------------------------------------------------- C PROPS(1) - E C PROPS(2) - NU C ---------------------------------------------------------------- C IF (NDI.NE.3) THEN WRITE (*,*) 'THIS UMAT MAY ONLY BE USED FOR ELEMENTS 1 WITH THREE DIRECT STRESS COMPONENTS' CALL XIT ENDIF open(400,file='D:\test.txt') C ELASTIC PROPERTIES EMOD=PROPS(1) ENU=PROPS(2) EBULK3=EMOD/(1-2*ENU) EG2=EMOD/(1+ENU) EG=EG2/2 EG3=3*EG ELAM=(EBULK3-EG2)/3 write(400,*) 'temp=',temp C ELASTIC STIFFNESS C DO K1=1, NDI DO K2=1, NDI DDSDDE(K2, K1)=ELAM END DO DDSDDE(K1, K1)=EG2+ELAM

基于Python的Abaqus二次开发实例讲解

基于Python的Abaqus二次开发实例讲解 (asian58 2013.6.26) 基于Python的Abaqus的二次开发便捷之处在于: 1、所有的代码均可以先在Abaqus\CAE中操作一遍后再通过rp文件读取,然后再在此基础上进行相应的修改; 2、Python是一种解释性语言,读起来非常清晰,因此在修改程序的过程中,不存在程序难以理解的问题; 3、Python是一种通用性的、功能非常强大的面向对象编程语言,有许多成熟的类似于Matlab函数的程序在网络上流传,为后期进一步的数据处理提供了方便。 为了更加方便地完成Abaqus的二次开发,需进行一些相关约定: 1、所有参数化直接通过点的坐标值进行,直接对几何尺寸的参数化反而更加繁琐; 2、程序参数化已不允许在模型中添加太多的Tie,因此不同零部件的绑定直接通过共节点来进行,这就要求建模方法与常规的建模方法有所区别。思路如下: 将一个整机拆成几个大的Part来建立,一个Part中包含许多零件,这样在划分网格式时就可以自动实现共节点的绑定。不同的零件可通过建立不同的Set来进行区分,不同Part 的绑定可以通过Tie来实现。将一个复杂的结构拆成几个恰当的Part来建立,一方面可以将复杂的模型简单化,使建立复杂模型成为可能;另一方面,不同的Part可单独调用,从而又可实现程序的模块化,增加程序的适应范围,延长程序的使用寿命,也方便后期程序的维护和修改。 3、通过py文件建立起的模型要进行参数优化,已不适合采用Isight中Abaqus模块,需要用到Isight的Simcode模块。 下面详细解释一个臂架的py文件。 #此程序用来绘制臂架前段 #导入相关模块 # -*- coding: mbcs -*- from abaqus import * from abaqusConstants import * #定义整个臂架的长、宽、高 L0=14300 W0=1650 H0=800

ABAQUS用户子程序

当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS 调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1.F为用户定义的是每个积分点所作用的荷载的大小; 2.KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值;3.TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值;4.NOEL,NPT为积分点所在单元的编号和积分点的编号; 5.COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER*80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)*PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)**2*PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)**3*PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)**4*PLOAD END IF RETURN END UMAT 子程序具有强大的功能,使用UMAT 子程序: (1) 可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩

ABAQUS二次开发教程

ABAQUS(Python语言)二次开发人生苦短,我用Python 作者:Fan Shengbao Python2、7 2017年12月

目录 第一章Python程序基本语法 (1) 1、1Python语法结构 1 1、2Python元组 1 1、3Python列表 1 1、4Python字典 2 1、5Python集合 3 1、6Python字符串 3 1、7Python分支语句 4 1、8Python循环语句 5 1、8、1for循环 5 1、8、2while循环 5 1、9Python定义函数 5 1、10Python模块 6 1、11Python包 7 1、12Python文件与目录 7

1、1 2、1目录操作 7 1、1 2、2文件操作 7 1、13Python异常处理 8 第二章ABAQUS/Python二次开发 (9) 2、1ABAQUS执行Python程序 9 2、2编写ABAQUS/Python程序 10 2、3ABAQUS录制Python程序 10 2、4ABAQUS/Python对象介绍 11 2、4、1 session对象 (11) 2、4、2 mdb对象 (11) 2、4、3 odb对象 (13) 2、5ABAQUS完整二次开发示例 13 2、6ABAQUS二次开发常用函数 15 2、6、1 Part模块常用函数 (15)

第一章Python程序基本语法 1.1Python语法结构 Python语言以缩进来约束每个程序块,编写程序时要特别注意每一行的缩进量,同一层次的语句应具有相同的缩进量。下面就是一段Python程序示例: #-*- coding:utf-8 -*- for i in range(1,10): for j in range(1,i+1): print str(j)+'x'+str(i)+' = '+str(i*j), print 该段程序主要功能就是实现乘法口诀表输出打印,其中“#-*- coding:utf-8 -*-”就是约定文档的编码方式。程序主体部分由两个嵌套的for循环语句组成,可以瞧到每一个for循环块的内部都具有相同的缩进量。程序输出结果如下: 1x1=1 1x2=2 2x2=4 1x3=3 2x3=6 3x3=9 1x4=4 2x4=8 3x4=12 4x4=16 1x5=5 2x5=10 3x5=15 4x5=20 5x5=25 1x6=6 2x6=12 3x6=18 4x6=24 5x6=30 6x6=36 1x7=7 2x7=14 3x7=21 4x7=28 5x7=35 6x7=42 7x7=49 1x8=8 2x8=16 3x8=24 4x8=32 5x8=40 6x8=48 7x8=56 8x8=64 1x9=9 2x9=18 3x9=27 4x9=36 5x9=45 6x9=54 7x9=63 8x9=72 9x9=81 Python程序中一行中“#”号后面的内容为注释,“#”号只支持单行注释,多行注释可使用“’’’ …‘’’”注释符。 ''' Abaqus6、14 Python ''' 1.2Python元组 Python中的元组(tuple)相当于C语言中的数组简化版,其内容与长度均不可变,只能对其内容进行访问。 tt1 =(1,2,3,4,5) print tt1[1] 程序执行结果: 2 1.3Python列表 Python中的列表(list)相当于C语言中的数组,但比C语言中的数组使用起来更加方便灵活。其长度与内容均可修改,列表就是编程时使用较多的结构。

Abaqus材料用户子程序UMAT基础知识与手册例子完整解释

1、为何需要使用用户材料子程序(User-Defined Material, UMAT )? 很简单,当ABAQUS 没有提供我们需要的材料模型时。所以,在决定自己定义一种新的材料模型之前,最好对ABAQUS 已经提供的模型心中有数,并且尽量使用现有的模型,因为这些模型已经经过详细的验证,并被广泛接受。 UMAT 子程序具有强大的功能,使用UMAT 子程序: (1)可以定义材料的本构关系,使用ABAQUS 材料库中没有包含的材料进行计算,扩充程序功能。 (2) 几乎可以用于力学行为分析的任何分析过程,几乎可以把用户材料属性赋予ABAQU S 中的任何单元。 (3) 必须在UMAT 中提供材料本构模型的雅可比(Jacobian )矩阵,即应力增量对应变增量的变化率。 (4) 可以和用户子程序“USDFLD ”联合使用,通过“USDFLD ”重新定义单元每一物质点上传递到UMAT 中场变量的数值。 2、需要哪些基础知识? 先看一下ABAQUS 手册(ABAQUS Analysis User's Manual )里的一段话: Warning: The use of this option generally requires considerable expertise(一定的专业知识). The user is cautioned that the implementation (实现) of any realistic constitutive (基本) model requires extensive (广泛的) development and testing. Initial testing on a single eleme nt model with prescribed traction loading (指定拉伸载荷) is strongly recommended. 但这并不意味着非力学专业,或者力学基础知识不很丰富者就只能望洋兴叹,因为我们的任务不是开发一套完整的有限元软件,而只是提供一个描述材料力学性能的本构方程(Constitutive equation )而已。当然,最基本的一些概念和知识还是要具备的,比如: 应力(stress),应变(strain )及其分量; volumetric part 和deviatoric part ;模量(modul us )、泊松比(Poisson’s ratio)、拉梅常数(Lame constant);矩阵的加减乘除甚至求逆;还有一些高等数学知识如积分、微分等。 3、UMAT 的基本任务? 我们知道,有限元计算(增量方法)的基本问题是: 已知第n 步的结果(应力,应变等)n σ,n ε,然后给出一个应变增量1+n d ε,计算新的应力1+n σ。UMAT 要完成这一计算,并要计算Jacobian 矩阵DDSDDE(I,J) =εσΔ?Δ?/。σΔ是应力增量矩阵(张量或许更合适),εΔ是应变增量矩阵。DDSDDE(I,J) 定义了第J 个应变分量的微小变化对

ABAQUS用户子程序

ABAQUS用户子程序 转自https://www.360docs.net/doc/6f11658578.html, 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 (子程序中很重要的就是要知道由abaqus提供的那些参量的意义,如下) 首先介绍几个子程序: 一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, JLTYP,SNAME) 参数: 1. F为用户定义的是每个积分点所作用的荷载的大小; 2. KSTEP,KINC为ABAQUS传到用户子程序当前的STEP和INCREMENT值; 3. TIME(1),TIME(2)为当前STEP TIME和INCREMENT TIME的值; 4. NOEL,NPT为积分点所在单元的编号和积分点的编号; 5. COORDS为当前积分点的坐标; 6.除F外,所有参数的值都是ABAQUS传到用户子程序中的。 功能: 1.荷载可以被定义为积分点坐标、时间、单元编号和单元节点编号的函数。 2.用户可以从其他程序的结果文件中进行相关操作来定义积分点F的大小。 例1:这个例子在每个积分点施加的荷载不仅是坐标的函数,而且是随STEP变化而变化的。SUBROUTINE DLOAD(P,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS, 1 JLTYP,SNAME) INCLUDE 'ABA_PARAM.INC' C DIMENSION TIME(2),COORDS(3) CHARACTER80 SNAME PARAMETER (PLOAD=100.E4) IF (KSTEP.EQ.1) THEN !当STEP=1时的荷载大小 P=PLOAD ELSE IF (KSTEP.EQ.2) THEN !当STEP=2时的荷载大小 P=COORDS(1)PLOAD !施加在积分点的荷载P是坐标的函数 ELSE IF (KSTEP.EQ.3) THEN !当STEP=3时的荷载大小 P=COORDS(1)2PLOAD ELSE IF (KSTEP.EQ.4) THEN !当STEP=4时的荷载大小 P=COORDS(1)3PLOAD ELSE IF (KSTEP.EQ.5) THEN !当STEP=5时的荷载大小 P=COORDS(1)4PLOAD

ABAQUS子程序UMAT的应用

A B A Q U S子程序U M A T 的应用 This model paper was revised by the Standardization Office on December 10, 2020

目录

摘要 ABAQUS软件功能强大,特别是能够模拟复杂的非线性问题,它包括了多种材料本构关系及失效准则模型,并具有良好的开放性,提供了若干个用户子程序接口,允许用户以代码的形式来扩展主程序的功能。 本文主要研究了ABAQUS用户子程序UMAT的开发方法,采用FORTRAN语言编制了各向同性硬化材料模型的接口程序,研究该类材料的弹塑性本构关系极其实现方法。 本文紧紧围绕UMAT的二次开发技术,首先对其接口原理做了详细介绍,然后针 对非线性有限元增量理论中的常刚度法和切线刚度法的算法理论做了深入的剖析,推导出了常刚度法和切线刚度法的算法理论的具体表达式,然后分别编制了两种算法的UMAT程序,最后建立了一个具体的验算模型,通过与ABAQUS自带弹塑性本构关系的计算结果相比较,验证两者的正确性。 本文还对常刚度法和切线刚度法得算法效率做了对比,得出了在非线性程度较高 时切线刚度法效率高于常刚度法的结论。 关键字: ABAQUS、UMAT、有限元、材料非线性、FORTRAN、切线刚度 ABSTRACT ABAQUS software powerful, especially to simulate complex non-linear problem, which includes a wide range of material constitutive model and failure criteria, and has a good open, providing a number of user subroutine interface that allows users to code form to expand the functions of the main program.

Abaqus二次开发

Abaqus二次开发——Abaqus/python入门体会入门实例 #=========================================================== 自己的论文要用到有限元进行数值模拟分析,以前都用ansys计算,可ansys中岩土的本构模型只有D-P模型,无法准确的反映土的硬化/软化性质,模拟计算出的结果因此也和实际差别很大。Abaqus有着丰富的材料模型,超强的非线性分析能力,岩土的模型也很多,因此才转学Abaqus。Abaqus的cae建模功能还是很好的,但科研课题一般都要进行参数分析,采用cae的建模方法有些不切实际,学了没几天就放弃cae开始学习inp,也是学了一阵子才知道inp不能建立实体模型,只能直接建节点和单元。复杂的模型inp也无法建立,但采用Python建模就可以解决这个问题。 由于Abaqus的学习资料不多,过了好些日子才知道Abaqus也可以采用Python语言进行建模计算,只是比Ansys的Apdl语言复杂得多,并且除了手册上的Script资料之外,没有较为系统的教程,刚一接触真是让人头痛。通过查看Simwe论坛上关于Python的帖子,和论坛朋友的帮助,自己在慢慢积累,现在对Python有了一点点了解,算是入了个门。 接触Abaqus也没多久,对python更是一知半解,绝大多数地方根本都不清楚,抽空写一点认识体会主要是给像自己一样刚学习Abqus Python的朋友,能少走一些弯路,节约一些时间。同时希望大家批评指正、共同讨论、补充。 #-------------------------------------------------------------------------------------------------- 学习Abaqus/Python基础:Abaqus的cae建模有比较全面的认识;了解一些Python语法知识(大家都不会有太多时间单独学习Python语言本身,只需要有概念了解即可,不懂的地方可以随时查询Python script手册) Abaqus/Python学会使用不太难,可要精通应用还是要付出一定的劳动。大家所分析的课题专业不同,方向也千差万别,所用到的Abaqus的功能也就有很大的差别,能对自己的工作领域熟练应用就算成功。Abaqus毕竟只是软件,如何考虑专业知识成功建模才是最困难的。

ABAQUSFortran二次开发

目录 摘要.................................................................... ABSTRACT................................................................. 1.绪论 0 1.1.课题的研究背景 0 1.2.本文的研究内容和方法 (1) 2.基于ABAQUS软件的二次开发 (2) 2.1.ABAQUS介绍 (2) 2.2.ABAQUS各模块简介 (2) 2.3.ABAQUS的二次开发平台 (5) 2.4.ABAQUS的二次开发语言 (6) 3.用户材料子程序UMAT (7) 3.1.UMAT开发环境设置 (7) 3.2.UMAT注意事项 (8) 3.3.UMAT接口的原理 (10) 3.4.UMAT的使用方法 (14)

4.材料非线性问题 (15) 4.1.材料的弹塑性本构关系 (16) 4.2.非线性有限元算法理论 (20) 4.3.增量理论常刚度法公式推导 (22) 4.4.增量理论切线刚度法公式推导 (23) 5.UMAT程序设计和编码 (25) 5.1.本构关系描述 (25) 5.2.常刚度法程序设计 (27) 5.3.常刚度法程序编码 (28) 5.4.切线刚度法程序设计 (36) 5.5.切线刚度法程序编码 (38) 5.6.程序的调试 (46) 6.程序验证 (48) 6.1.问题描述 (49) 6.2.本构关系 (49) 6.3.ABAQUS自带材料模型计算 (49)

6.4.常刚度法的UMAT验证 (50) 6.5.切线刚度法的UMAT验证 (52) 6.6.两种算法的比较分析 (54) 7.结论与展望 (55) 7.1.结论 (55) 7.2.展望 (56) 致谢 (57) 参考文献 (57) 附1:ABAQUS自带弹塑性材料验证的INP文件 (58) 附2:用于算法验证的INP文件 (81)

ABAQUS子程序USDFLD

Abaqus/CAE User's Manual 12.8.5 Defining field variables at a material point (在一个材料点定义场变量) In Abaqus/Standard you can introduce dependence on solution variables with user subroutine USDFLD. This subroutine allows you to define field variables at a material point as functions of time, of any of the available material point quantities listed in “Abaqus/Standard output variable identifiers,” Section 4.2.1 of the Abaqus Analysis User's Manual, and of material directions. Material properties defined as functions of these field variables may, thus, be dependent on the solution. User subroutine USDFLD is called at each point for which the material definition includes a reference to the user subroutine. (在ABAQUS里面,你能够用子程序USDFLD来求解变量。USDFLD允许你将一个材料点上的场变量定义为时间函数,能够使用到的材料点在用户使用手册4.2.1节中“abaqus输出变量的标识码”中被提及到。材料的特性被定义作为场变量的函数,因此依赖于求解方法。) (在每个被定义材料性能的点USDFLD能够被调用) To include a reference to user subroutine USDFLD in a material definition: 1.From the menu bar in the Edit Material dialog box, select General User Defined Field. (For information on displaying the Edit Material dialog box, see “Creating or editing a material,” Section 12.7.1.) 2.Click OK to close the Edit Material dialog box. Alternatively, you can select another material behavior to define from the menus in the Edit Material dialog box (see “Browsing and modifying material behaviors,” Section 12.7.2, for more information). Abaqus/CAE User's Manual (子程序USDFLD在材料中的定义过程可参考下面:

ABAQUS前_后处理模块二次开发的应用_朱兆华

文章编号:1001-2265(2009)01-0030-04 收稿日期:2008-08-11  *基金项目:江西省科技厅科技支撑项目[2007];江西省教育厅2009年度一般科技项目(G J J 09025);江西省教育厅科技研究项目(G J J 08429) 作者简介:朱兆华(1979—)男,江苏涟水人,南昌大学机电学院硕士研究生,助理工程师,研究方向为材料加工新技术,(E-m a i l )b y j 245@163. c o m 。 A B A Q U S 前、后处理模块二次开发的应用 * 朱兆华1 ,黄菊花1 ,张庭芳1 ,谢世坤2 ,白引娟 3 (1.南昌大学机电工程学院,南昌 330031;2.井冈山大学工学院,江西吉安 343009;3.江西协中汽车 内饰有限公司,南昌 330032) 摘要:文章以实例说明了P y t h o n 脚本语言和A B A Q U S G U I T o o l k i t 在A B A Q U S 的前、后处理模块二次开发中的应用,并阐述了不同模块之间的调用流程。通过二次开发程序控制A B A Q U S 的建模和装配的过程,有效地解决了模型装配时的繁琐、易错等问题,提高了前处理的效率;因A B A Q U S 对板料拉深进行数值 模拟的后处理功能不够全面,为扩展后处理的功能,更好地查看和分析模拟的结果,文章对A B A Q U S 后处理进行二次开发来达到这一目的。 关键词:A B A Q U S ;P y t h o n ;A B A Q U S G U I T o o l k i t ;二次开发中图分类号:T H 16;T G 65 文献标识码:A A p p l i c a t i o no f S e c o n d -d e v e l o p e d o n A B A Q U S P r e -p r e c e s s a n d P o s t -p r o c e s s Z H UZ h a o -h u a 1,H U A N GJ u -h u a 1,Z H A N GT i n g -f a n g 1,X I ES h i -k u n 2,B A I Y i n -j u a n 3 (1.S c h o o l o f M e c h a n i c a l a n dE l e c t r i c a l E n g i n e e r i n g ,N a n c h a n g U n i v e r s i t y ,N a n c h a n g 330031;2.C o l l e g e o f E n g i n e e r i n g ,J i n g g a n g s h a n U n i v e r s i t y ,J i a n g x i J i 'a n 343009,C h i n a ) A b s t r a c t :T h i s a r t i c l e u s i n g a n e x a m p l e t o e x p l a i n P y t h o n a n d A B A Q U S G U I T o o l k i t p r o g r a m m e f o r A B A Q U S p r e -p r o c e s s a n d p o s t -p r o c e s s s e c o n d -d e v e l o p m e n t a n de x p o u n dt h e p r o c e s s a m o n g d i f f e r e n t m o d u l e s 。T h o u g h s e c o n d -d e v e l o p m e n t t h e p r o c e s s o f m o d e l a n da s s e m b l e c a n b e c o n t r o l l e d ,t h e t e d i o u s 、e r r o r -p r o n e a n do t h e r p r o b l e m s c a n b e e f f e c t i v e l y s o l v e d ,s o t h ew o r k i n g e f f i c i e n c y c a nb e h i g h l y i m p r o v e di nt h e p r e -p r o c e s s ;F o r d r a w i n g s h e e t ,p o s t -p r o c e s s f u n c t i o n s p r o v i d e db y A B A Q U S a r ei n s u f f i c i e n t .I no r d e r t o e x t e n dp o s t -p r o c e s s f u n c t i o n s a n d e x a m i n e s i m u l a t i o n r e s u l t e f f e c t i v e l y s e c o n d d e v e l o p o n A B A Q U S p o s t -p r o c e s s i s u s e d i n t h i s p a -p e r . K e y w o r d s :A B A Q U S ;P y t h o n ;A B A Q U S G U I T o o l k i t ;s e c o n d -d e v e l o p m e n t 0 引言 A B A Q U S 是国际上最先进的大型通用有限元计算分析软件之一,可以模拟绝大部分工程材料的线性和非线性行为。A B A Q U S 自带的C A E 是进行有限元分析的前后处理模块,也是建模、分析和后处理的人机交互平台,它具有良好的人机对话界面,因此A B A Q U S 软件在工程中得到了广泛的应用。 P y t h o n 是一种面向对象的脚本语言,它功能强大,既可以独立运行,也可以用作脚本语言。特别适用于 快速的应用程序开发。 1 A B A Q U S /C A E 处理过程和二次开发接口 介绍 A B A Q U S /C A E 处理有两个程序:①内核程序;②G U I 程序。内核程序实际上就是它的脚本语言,它采用的是P y t h o n 语言,同时扩展了P y t h o n 语言,额外提供了大约500个对象模型,对象模型之间的关系复杂,它们间部分关系如图1所示。 图1中,C o n t a i n e r 表示容器,里面包括其他对象, · 30·

相关文档
最新文档