ANSYS-UPFs 用户子程序编译连接方法

ANSYS-UPFs 用户子程序编译连接方法
ANSYS-UPFs 用户子程序编译连接方法

ANSYS-UPFs 用户子程序编译连接方法

使用软件:Microsoft visual studio 2005、Fortran 9.1、Ansys 11.0

操作系统Windows XP

编译连接的方法一:

1.通过:开始->所有程序->microsoft visual studio 2005 -> visual studio tools -> visual studio 2005 command prompt 打开命令触发窗口

2.输入"CD D:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin" ——回车

再次输入"ifortvars.bat",——回车,从而打开fortran命令窗口

其中CD表示"change directory"

3.输入"CD D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel"——回车

再次输入"ANSCUST.BAT"——回车

注意:A.不能省略步骤1,而直接从fortran命令窗口开始输入

B.可以同时连接多个子程序

C.使用此方法编译连接时要将安装好后没有改动的“D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel”文件夹复制并存放到其他地方以备以后使用。同时将D:\program files\......\user\intel中的不需要连接的*.f和*.c文件删除

D.开始运行后需要耐心等待一段时间,直到产生ANSYS.EXE文件为止

编译连接的方法二:

1.改写ANSCUST.BA T批处理文件

在ANSCUST.BA T批处理文件的第二行添加如下内容

@call "D:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin\ifortvars.bat"

在ANSCUST.BA T批处理文件的最后一行添加如下内容

pause

2.将文件:MAKEFILE,ansysex.def,ansyslarge.def,ansyssmall.def,及修改好的子程序文件(可以有多个)和修改后的ANSCUST.BA T批处理文件一并复制到其他路径下的同一个文件夹内,当然也可以就在D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel文件夹中

3.通过双击运行ANSCUST.BA T批处理文件同样能够产生ansys.exe文件

注意:A.必须保证fortran 9.1与microsoft visual studio 2005是连接的

如果先安装microsoft visual studio 2005,后安装fortran 9.1,则安装fortran 9.1时会提示是否连接到microsoft visual studio 2005,记得要选择连接

如果fortran 9.1与microsoft visual studio 2005没有连接,则需要通过修改批处理文件D:\Program Files\Intel\Compiler\Fortran\9.1\IA32\Bin\ifortvars.bat中的@call声明将其指向D:\Program Files\Microsoft Visual Studio 8\VC\Bin\Vcvars32.bat即可

B.使用这种方法连接时,必须保证D:\Program Files\ANSYS Inc\v110\ANSYS\custom

\user\intel文件夹中的ASK.EXE存在,否则运行ANSCUST.BAT批处理文件时会出现:"D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel\ask"不是内部或外部命令,也不是可运行的程序

连接用户子程序(即连接前面产生的ANSYS.EXE文件)

1.在Ansys Product Launcher窗口选择Customzation Preferences选项卡,在custom ANSYS executable

通过browse按钮输入前面产生的ANSYS.EXE文件的全部路径,然后点击run开始运行

2.如果ansys11.0 output window 显示This ANSYS version was linked by license,则表示连接成功

注意:在连接用户子程序的过程中,可能需要D:\Program Files\ANSYS Inc\v110\ANSYS\custom\user\intel文件夹中其他一些必要文件的存在,因此最好将intel文件夹下不需要编译连接的.F和.C文件删除,然后编译产生ANSYS.EXE文件,然后再连接。

Jake-Ni

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.用户子程序不能嵌套。即任何用户子程序都不能调用任何其他用户子程

编译原理(PL0编译程序源代码)

/*PL/0编译程序(C语言版) *编译和运行环境: *Visual C++6.0 *WinXP/7 *使用方法: *运行后输入PL/0源程序文件名 *回答是否将虚拟机代码写入文件 *回答是否将符号表写入文件 *执行成功会产生四个文件(词法分析结果.txt符号表.txt虚拟代码.txt源程序和地址.txt) */ #include #include"pl0.h" #include"string" #define stacksize 500//解释执行时使用的栈 int main(){ bool nxtlev[symnum]; printf("请输入源程序文件名:"); scanf("%s",fname); fin=fopen(fname,"r");//以只读方式打开pl0源程序文件 cifa=fopen("词法分析结果.txt","w"); fa1=fopen("源程序和地址.txt","w");//输出源文件及各行对应的首地址 fprintf(fa1,"输入pl0源程序文件名:"); fprintf(fa1,"%s\n",fname); if(fin){ printf("是否将虚拟机代码写入文件?(Y/N)");//是否输出虚拟机代码 scanf("%s",fname); listswitch=(fname[0]=='y'||fname[0]=='Y'); printf("是否将符号表写入文件?(Y/N)");//是否输出符号表scanf("%s",fname); tableswitch=(fname[0]=='y'||fname[0]=='Y'); init();//初始化 err=0; cc=cx=ll=0; ch=' '; if(-1!=getsym()){ fa=fopen("虚拟代码.txt","w"); fas=fopen("符号表.txt","w"); addset(nxtlev,declbegsys,statbegsys,symnum); nxtlev[period]=true; if(-1==block(0,0,nxtlev)){//调用编译程序 fclose(fa); fclose(fa1); fclose(fas); fclose(fin); return 0; } if(sym!=period){ error(9);//结尾丢失了句号 }

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 UAMP用户子程序

Overview User subroutine UAMP: ?allows you to define the current value of an amplitude definition as a function of time; ?can be used to model control engineering aspects of your system when sensors are used (sensor values are from the beginning of the increment); ?can use a predefined number of state variables in their definition; and ?can optionally compute the derivatives and integrals of the amplitude function. Explicit solution dependence The solution dependence introduced in this user subroutine is explicit: all data passed in the subroutine for information or to be updated are values at the beginning of that increment. User subroutine interface SUBROUTINE UAMP( * ampName, time, ampValueOld, dt, nProps, props, nSvars, * svars, lFlagsInfo, * nSensor, sensorValues, sensorNames, jSensorLookUpTable, * AmpValueNew, * lFlagsDefine, * AmpDerivative, AmpSecDerivative, AmpIncIntegral, * AmpDoubleIntegral) C INCLUDE 'ABA_PARAM.INC' C time indices parameter (iStepTime = 1, * iTotalTime = 2, * nTime = 2) C flags passed in for information parameter (iInitialization = 1, * iRegularInc = 2, * iCuts = 3

abaqus安装方法详解

***防火墙英文存放位置及安装路径,系统组件…… 第一部分Abaqus的安装问题(不含子程序) 1)用虚拟光驱加载DVD2,安装Document,直接运行根目录下的setup.exe 即可,安装过程比较简单。 (完成1后不要急着安装啊!因为你需要做一些事情来使得你的电脑可以破解abaqus。做什么呢!需要做两项,分别是: 1.1.设置一个环境变量,变量名为:LM_LICENSE_FILE;变量值为:27011@127.0.0.1。 这个时候有人会问,这是咋回事啊!因该是27011@自己的电脑名称。 我要告诉你这个127.0.0.1就是指你的电脑。所以不用再写你的电脑名字了,要是万一你的电脑名字是汉语的,那么还不好使呢! 这个步骤的目的在于在你的电脑里面建立了一个解码系统,可以明目张胆地使用abaqus。 1.2.修改abaqus安装盘中SHooTERS文件夹中的abaqus69.dat,打开它,将“this_host”修改为127.0.0.1。保存。) 根据个人安装经验,上述方法有时可能会失效,自己调整如下。 因为我下载的版本的license文件第一行为:SERVER THIS_host ID=20111111 27011 而不是SERVER THIS_host ID=20111111 27003 第4步:变量名LM_LICENSE_FILE,值为27011@hostname (hostname为你的计算机名字) 第8步:27003@hostname 更改为27011@hostname (hostname为你的计算机名字) 2)设置环境变量:鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”,然后在系统变量栏新建一个环境变量,变量名LM_LICENSE_FILE,值为27011@hostname。(以前版本的为27003等现为27011,hostname为你的计算机名) 3)用虚拟光驱加载DVD1,先安装License,运行 X:\win86_32\license\Windows\Disk1\InstData\VM\install.exe。安装过程中可能需要输入你的计算机名,一般上一步环境变量设置好了就不用输入了,安装时选择“just install the licenseing utilities”。注意:如果你的计算机上还装有abaqus 的其他版本,6.10版本的license可能会与低版本的发生冲突,导致无法安装第7步的product,所以需要把其他版本的license停掉,这样就可以了;我是讲6.8完全卸载之后再安装的6.10。 (中间选择Abaqus web server,很快安装好后,最后得画面会出现一个URL,例如http:// hostname:2080/v6.9/。需要拷贝一下,或者抄写下来。)

ABAQUS子程序UMAT里弹塑本构的实现

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

abaqus子程序安装方法

ABAQUS6.9 用户子程序全部通过的安装方法 ABAQUS6.9子程序全部通过的安装方法 “Abaqus6.9”+ “Microsoft Visual C++ 2005 Express” + “Intel Fortran10.1”! 参考许多前人经验和帖子,整理出本文,共分三部分介绍: 第一部分:不使用子程序的用户按此即可完成ABAQUS安装; 第二部分:需使用子程序的用户,先按第一部分安装,再按第二部分安装; 最后一部分结合自己的实践谈几点注意的事项。 第一部分Abaqus6.9的安装步骤 1、建议安装顺序为:先DVD2, 再DVD1中的lisence. (因为安装DVD1 product 时,需要一个安装好html document的地址)。 2、先安装DVD2, (要输入计算机名hostname),最后得画面会出现一个URL,需要记下来。(我的是http://xumeng861:2080/v6.9) 3、鼠标右键点击桌面“我的电脑”图标,通过路径“属性->高级->环境变量”(环境变量分为用户变量和系统变量两种),然后在系统变量栏新建一个系统变量,变量名 LM_LICENSE_FILE,值为27003@hostname (例如:27003@xumeng861)。 4、再打开DVD1,安装license,在安装DVD1的时候,会选择安装license还是product. 第一步先选择license,(对于常用的win 7系统,打开安装文件的文件夹,假设虚拟光盘为F盘,则F:\ABAQUS6.9\win86_32\license\Windows\Disk1\InstData\VM\install..exe, 应用兼容模式运行--- 即右击install.exe—属性--兼容性—勾选“以兼容模式运行这个程序”—选择windows XP (service Pack 3)。)在安装好之后,进行license设置。 5、打开DVD1,然后打开SHOOTERS文件夹,将abaqus69.dat文件用记事本打开,"this_host" 替换为计算机名,改好的文件另存为硬盘C:\SIMULIA\License\license.dat(把abaqus69.dat改为license.dat似乎也影响到子程序通过) 6、在开始-程序菜单中运行Abaqus licensing/Licensing utilities, 并设置: 进入config service选项卡- Service name 中输入Flexlm Service 1(名字可以随意输入) - Path to the lmgrd.exe file:C:\SIMULIA\License\lmgrd.exe; - Path to the license file:C:\SIMULIA\License\license.dat (注:步骤5中建立好的文件)

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

配置abaqus子程序的方法

安装VS+IVF+ABAQUS 第一步:::找到IVF初始化文件及其绝对路径(X:\是所在盘符,x是IVF版本相关的数字) IVF 10.x都是X:\...\Intel\Compiler\10.x\xxx\bin\ifortvars.bat IVF 11.x32位系 统是X:\...\Intel\Compiler\11.x\xxx\bin\ia32\ifortvars_ia32.bat intel64位系统 是X:\...\Intel\Compiler\11.x\xxx\bin\intel64\ifortvars_intel64.bat (注意64位是分intel64位和AMD64位,根据机器情况选择软件版本,Abaqus 也是如此,我只用过所以也只讨论intel64) 再找到已安装的Abaqus所在文件夹下的Commands文件夹中的 abq6XXX.bat文件,右键编辑打开它,在@echo off下插入下面这行命令(以32位系统IVF11.x为例) @call "X:\...\Intel\Compiler\11.x\xxx\bin\ia32\ifortvars_ia32.bat" 保存关闭abq6XXX.bat文件。 第二步::在开始菜单的Abaqus文件夹中找到Abaqus Verification快捷方式,点击它进行验证。 我的配置:VS2013+IVF2013 SP1 update3+ABAQUS 6.14.1 将aba6141.bat 文件中改为:

@echo off call "C:\Program Files (x86)\Intel\Composer XE 2013 SP1\bin\ifortvars.bat" intel64 vs2013 "G:\SIMULIA\Abaqus\6.14-1\code\bin\abq6141.exe" %*

(完整word版)PL0源代码(C语言版)

/*PL/0 编译系统C版本头文件pl0.h*/ # define norw 13 //a number of reserved word /*关键字个数*/ # define txmax 100 //length of identifier table /*名字表容量*/ # define nmax 14 //max number of digits in numbers /*number的最大位数*/ # define al 10 //length of identifier /*符号的最大长度*/ # define amax 2047 //maximum address /*地址上界*/ # define levmax 3 //max depth of block nesting /*最大允许过程嵌套声明层数[0,lexmax]*/ # define cxmax 200 //size of code array /*最多的虚拟机代码数*/ /*符号*/ enum symbol{ nul, ident, number, plus, minus, times, slash, oddsym, eql, neq, //slash斜线 lss, leq, gtr, geq, lparen, //leq :less than or equal to; gtr: great than;lparen:left parenthesis rparen, comma, semicolon,period, becomes,//comma逗号semicolon分号period句号becomes赋值号 beginsym, endsym, ifsym, thensym, whilesym, writesym, readsym, dosym, callsym, constsym, varsym, procsym, }; #define symnum 32 /*-------------*/ enum object{ //object为三种标识符的类型 constant, variable, procedur, }; /*--------------*/ enum fct{ //fct类型分别标识类PCODE的各条指令 lit, opr, lod, sto, cal, inte, jmp, jpc, //书本P23 }; #define fctnum 8 /*--------------*/ struct instruction //指令 { enum fct f; //功能码 int l; //层次差 int a; //P23 }; FILE * fas; //输出名字表

ABAQUS用户子程序

ABAQUS用户子程序 转自https://www.360docs.net/doc/316774370.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用户子程序

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field.

abaqus子程序通过验证方法小结

abaqus子程序通过验证方法小结 本文只对abaqus子程序验证进行小结,不提供abaqus的详细安装方法。 想要在ABAQUS里用子程序,必须安装Intel Visual Fortran,而安装Intel Visual Fortran前需要安装Microsoft Visual Studio,做好相关设置后通过AbaqusVerification测试子程序以及其他ABAQUS功能是否能正常使用。 每种方法都必须先安装Microsoft Visual Studio(英文版),然后安装Intel Visual Fortran(若为64位系统,两个软件都选择自定义安装,勾上64位系统支持项),这里要注意MVS(2008)的默认的custom安装内容是没有64位系统支持的,需要勾选64位系统支持项,或者直接勾选full,进行完全安装。每种软件的安装程序都最好右击以管理员身份运行。Abaqus的安装顺序可在MVS和IVF的前面或者后面,没有限制。下面介绍子程序验证方法。 方法1: 1.找到IVF的初始化文件ifortvars.bat(不同版本名称可能稍有差异), 按住shift键,右击初始化文件,选择复制为路径。 2.再找到已安装的Abaqus所在文件夹下的commands文件夹中的 abq6xxx.bat文件,右击编辑打开它,在@echo off下插入命令 @call并将第一步复制的路径粘贴在其后,关闭并保存文件。 3.在开始菜单的abaqus文件夹下找到abaqus verification快捷方式,

左击它进行验证(必须先启动abaqus license),最后如果验证文件全部pass则成功! 方法2: 1.同方法1 2.右键点击Abaqus Verification快捷方式,选择属性,在目标中的内容前面加所复制的路径并在其后边加上&&,如"X:\yourdir\Intel\Compiler\Fortran\$version$\IA32\Bin\ifortvars.b at"&& (注意&&后有个空格,64位系统为"...\$version$\em64t\bin\ifortvars.bat" && ),同时在Abaqus主程序的目标内容前面加同样的内容 3.在开始菜单的abaqus文件夹下找到abaqus verification快捷方

浅谈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用运行,语法如下: Home 序,但可以调用用户自己编写的FORTRAN子程序和ABAQUS应用程序。当用户编写FORTRAN子程序时,建议子程序名以K开头,以免和ABAQUS内部程序冲突。 2.当用户在用户子程序中利用OPEN打开外部文件时,要注意以下两点:一是设备号的选择是有限制的,只能取15-18和大于100的设备号,其余的都已被ABAQUS占用。二是用户需提供外部文件的绝对路径而不是相对路径。3.ABAQUS 应用程序必须由用户子程序调用。 当用到某个用户子程序时,用户所关心的主要有两方面:一是ABAQUS提供的用户子程序的接口参数。有些参数是ABAQUS传到用户子程序中的,例如SUBROUTINE DLOAD中的KSTEP,KINC,COORDS;有些是需要用户自己定义的,例如F。二是ABAQUS何时调用该用户子程序,对于不同的用户子程序ABAQUS调用的时间是不同的。有些是在每个STEP的开始,有的是STEP结尾,有的是在每个INCREMENT的开始等等。当ABAQUS调用用户子程序是,都会把当前的STEP和INCREMENT利用用户子程序的两个实参KSTEP和KINC传给用户子程序,用户可编个小程序把它们输出到外部文件中,这样对ABAQUS何时调用该用户子程序就会有更深的了解。 下面就选出几个常用的用户子程序和应用程序进行详细解释:一.SUBROUTINE DLOAD(F,KSTEP,KINC,TIME,NOEL,NPT,LAYER,KSPT,COORDS,

第2章 PL0编译程序的实现 完整课后习题答案+吕映芝编

第2章 PL/0编译程序的实现 第1题 PL/0语言允许过程嵌套定义和递归调用,试问它的编译程序如何解决运行时的存储管理。 答案: PL/0语言允许过程嵌套定义和递归调用,它的编译程序在运行时采用了栈式动态存储管理。(数组CODE存放的只读目标程序,它在运行时不改变。)运行时的数据区S是由解释程序定义的一维整型数组,解释执行时对数据空间S的管理遵循后进先出规则,当每个过程(包括主程序)被调用时,才分配数据空间,退出过程时,则所分配的数据空间被释放。应用动态链和静态链的方式分别解决递归调用和非局部变量的引用问题。 第2题 若PL/0编译程序运行时的存储分配策略采用栈式动态分配,并用动态链和静态链的方式分别解决递归调用和非局部变量的引用问题,试写出下列程序执行到赋值语句b∶=10时运行栈的布局示意图。 var x,y; procedure p; var a; procedure q; var b; begin (q) b∶=10; end (q); procedure s; var c,d; procedure r; var e,f; begin (r) call q; end (r); begin (s) call r; end (s); begin (p) call s;

end (p); begin (main) call p; end (main). 答案: 程序执行到赋值语句b∶=10时运行栈的布局示意图为: 第3题 写出题2中当程序编译到r的过程体时的名字表table的内容。 size name kind level/val adr 答案: 题2中当程序编译到r的过程体时的名字表table的内容为: name kind level/val adr size x variable 0 dx y variable 0 dx+1 p procedure 0 过程p的入口(待填) 5

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:

ABAQUS用户子程序复习进程

A B A Q U S用户子程序

ABAQUS用户子程序 ABAQUS/Standard subroutines: 1.CREEP: Define time-dependent, viscoplastic behavior (creep and swelling). 定义和时间相关的、粘塑性的运动(蠕变和膨胀) 2. DFLOW: Define nonuniform pore fluid velocity in a consolidation analysis. 在压实分析中,定义非均匀孔隙流速度 3. DFLUX: Define nonuniform distributed flux in a heat transfer or mass diffusion analysis. 在热传递和质量扩散分析中,定义非均匀的分布流量 4. DISP: Specify prescribed boundary conditions. 指定规定的边界条件 5. DLOAD: Specify nonuniform distributed loads. 指定非均匀的分布荷载 6. FILM: Define nonuniform film coefficient and associated sink temperatures for heat transfer analysis. 对热传递分析指定非均匀的膜层散热系数和联合的散热器温度 7. FLOW: Define nonuniform seepage coefficient and associated sink pore pressure for consolidation analysis. 对压实分析定义非均匀的渗流系数和渗入孔隙压力 8. FRIC: Define frictional behavior for contact surfaces. 对接触面定义摩擦 9. GAPCON: Define conductance between contact surfaces or nodes in a fully coupled temperature-displacement analysis or pure heat transfer analysis. 在一个完全耦合的温度—置换分析或者是纯热传递分析中,定义接触面或节点间的导热系数。 10. GAPELECTR: Define electrical conductance between surfaces in a coupled thermal-electrical analysis. 在耦合热电分析中,定义表面间的导电系数 11. HARDINI: Define initial equivalent plastic strain and initial backstress tensor. 定义初始等效应变和初始反应力张量 12. HETVAL: Provide internal heat generation in heat transfer analysis. 在热传递分析中提供初始热 13. MPC: Define multi-point constraints. 定义多点约束 14. ORIENT: Provide an orientation for defining local material directions or local directions for kinematic coupling constraints or local rigid body directions for inertia relief. 为定义局部材料方向提供定位;运动学耦合约束的局部方向;惯性释放的局部刚体方向。 15. RSURFU: Define a rigid surface. 定义一个刚性面 16. SDVINI: Define initial solution-dependent state variable fields. 定义初始和结果相关的变量场 17. SIGINI: Define an initial stress field.

相关文档
最新文档