ADINA 第8章 用户自定义材料.ppt
Appendix 1用户自定义材料本构开发环境子程序及入口条件材料本构子程序及求解输入文件描述举例说明Duncan&Chang EB模型的二次开发过程ADINA用户开发特征的未来发展计划主要内容开发环境ADINA8.1版本的开发环境为Compaq Visual Fortran 6.6A;方式是通过ADINA(对所有用户)提供的Makefile自动进行链接各个*.f(20余个实例文件)文件生成动态链接库文件,针对不同的求解器开发,提供不同的Makefile文件,包括:ADINA模块:adusr.dllADINA-T模块:atusr.dllADINA-F模块:afusr.dllADINA-FSI模块:adfusr.dllADINA-TMC模块:adtusr.dll开发过程 将用户自定义的本构代替*.f中的相关本构描述;ADINA提供两种本构示例Fortran文件,一类是0vl3*.f文件,用于2D模型单元的本构;一类是0vl4*.f文件,用于2D模型单元的本构;编辑Makefile文件,修改其中的参数:MAT2D_OBJ=ovl30u_pl1.obj(2D模型)MAT3D_OBJ=ovl40u_pl1.obj(3D模型)编译过程:CdD:adina80adina.DF98bindfvarsnmake则生成新的动态链接库文件,即adusr.dll。开发过程 在ADINA AUI界面中采用User-Supplied模式,并输入其中的参数,这些参数与ADINA子程序中的变量一一对应,用于材料本构的计算;常用参数如:CTI(99)CTD(99)LGTH1LGTH2结构本构开发入口条件已知参数c strain(1)=x应变c strain(2)=y应变c strain(3)=z应变c strain(4)=xy应变c strain(5)=yz应变c strain(6)=zx应变C 常用的其它参量cc TIME=当前时间c DT=当前时间步长c TEMP1=当前温度AUI输入参数c CTI(1)=youngs modulusc CTI(2)=poissons ratioC CTI(n)=C CTDD(98)=求解变量STRESS(1)=xxSTRESS(2)=yySTRESS(3)=zzSTRESS(4)=xySTRESS(5)=xzSTRESS(6)=yz历史变量 ARRAY(LGTH1)提供多于60个可以输出的实数型历史变量,常用于做如屈服应力、塑性应变、应力水平等数据的存储;IARRAY(LGTH2)提供多个全局整型历史变量,往往用于程序控制或其它用途;结构本构开发出口条件例题:线弹性材料开发 SUBROUTINE CUSER3 DLLEXPORT(IA,A,NG,NEL,IPT,IDEATH,STRESS,+EPS,STRAIN,DEPS,1 DEPST,THSTR1,THSTR2,KTR,INTER,SCP,ARRAY,LGTH1,2 IARRAY,LGTH2,D,ALFA,CTD,ALFAA,CTDD,CTI,3 TMP1,TMP2,TIME,ETIMV,ETIMV2,DT,PHIST,PRST,RN,4 PHIST1,DPSP,TGRAD,INTEG,ISUBM,INDNL,DP,NELP,6 DPJE1D,DPJE2D,AKAPPA,PBAR,NNODE,NODNUM,XYZ,+IIN,IOUT,KEY)CC.子程序说明:传递的变量很多,完全满足绝大多数开发所需常用变量:STRAIN(应变)STRESS(应力)TIME(当前时间)DT(当前时间步长)TMP1(当前温度)C.C.C.ELEMENTS:Linear Elastic Model for 3-D SOLID ELEMENTS .C.C.C.C.ADDITIONAL VARIABLES:.C.C.C.YM YOUNGS MODULUS(INPUT).C.PR POISSONS RATIO(INPUT).C.程序中的注释部分:一般程序中主要使用的中间变量给予说明;如上面说明YM在程序中代表弹性模型;PR代表波松比;例题:线弹性材料开发例题:线弹性材料开发C IMPLICIT DOUBLE PRECISION(A-H,O-Z)DIMENSION IA(*),A(*)REAL A DIMENSION STRESS(6),STRAIN(6),DEPS(6),D(6,6),EPS(6)DIMENSION DEPST(6),THSTR1(6),THSTR2(6)DIMENSION PHIST(3,3),PRST(3),DPSP(6),TGRAD(3)DIMENSION ARRAY(*),IARRAY(*)DIMENSION CTD(98),CTDD(98),CTI(99),SCP(99)DIMENSION DP(6,6)DIMENSION RN(3,3)DIMENSION NODNUM(*),XYZ(3,*)DIMENSION DPJE1D(6),DPJE2D(6,6)DIMENSION STDEV(6),EDP(6),TOLER(2)DIMENSION EPR(6),DPLAST(6)SAVE AE,BK,XLMBDA,DFPL,EDP,EFST,EP,DCOEF DATA TOL1/1.E-2/DATA C1D3/.33333333333333D0/DATA C2D3/.66666666666666D0/DATA XVUFL/1.D-300/TOLER(1)=TOL1 TOLER(2)=XVUFLC变量声明:采用ADINA开发实例中的变量声明即可。例题:线弹性材料开发C GO TO(1,2,3,4),KEYC*IC*IC*I K E Y =1C*IC*I INITIALIZE COMPONENTS OF REAL AND INTEGER WORKING ARRAYSC*I (INITIALIZE ARRAY(60)AND IARRAY(2)C*I 1 CONTINUEC*I DO 11 I=1,LGTH1 11 ARRAY(I)=0.0 DO 12 I=1,LGTH2 12 IARRAY(I)=0C RETURN将整个程序分为四段执行第一段程序初始化两个数组,用于存放历史变量(ADINA在后处理时像位移、应力等变量显示这些数值),LGTH1和LGTH2是在AUI中输入的整数,有缺省值。C*I K E Y=2C*I INTEGRATION OF ELEMENT STRESSES(CALCULATE STRESS(6)2 CONTINUEC*I *I N S E R T U S E R-S U P P L I E D C O D I N GC L I N E A R E L A S T I C M A T E R I A L F O R 3-D S O L I D E L E M E N T SC YM=CTI(1)PR=CTI(2)g2=YM/(1.0+PR)g=0.5*g2C davg=(-STRAIN(1)-STRAIN(2)-STRAIN(3)*C1D3 p=-davg*YM/(1.0-2.0*PR)C STRESS(1)=p+g2*(STRAIN(1)+davg)STRESS(2)=p+g2*(STRAIN(2)+davg)STRESS(3)=p+g2*(STRAIN(3)+davg)STRESS(4)=g*STRAIN(4)STRESS(5)=g*STRAIN(5)STRESS(6)=g*STRAIN(6)C RETURN 例题:线弹性材料开发执行第二段程序定义STRESS与STRAIN的关系 3 CONTINUEC*I *I N S E R T U S E R-S U P P L I E D C O D I N GC ELASTIC CONSTITUTIVE MATRIX YM=CTI(1)PR=CTI(2)DO 315 I=1,6 DO 315 J=1,6 315 D(I,J)=0.D0 CM=YM/(1.-2.*PR)AE=(1.+PR)/YM CP=AE CP=1./CP C11=(CM+2.*CP)/3.C12=(CM-CP)/3.D(1,1)=C11 D(1,2)=C12 D(1,3)=C12 D(2,2)=C11 D(2,3)=C12 D(3,3)=C11 D(4,4)=0.5*CP D(5,5)=D(4,4)D(6,6)=D(5,5)DO 320 I=1,3 DO 320 J=I,3 320 D(J,I)=D(I,J)RETURN形成材料矩阵如果开发非线性弹性材料不需改动;如果开发塑性、粘塑性、混凝土则部分参数需要改动;执行第三段程序C*I K E Y=4C*I PRINTING OF ELEMENT RESPONSE(PRINT STRESS(6),STRAIN(6)C 4 CONTINUEC*I *I N S E R T U S E R-S U P P L I E D C O D I N GC PRINT HEADING AND ELEMENT NUMBERC (略)C RETURN END执行第四段程序结果输出控制:采用例子中的程序即可,一般无需改动。程序结束例题:线弹性材料开发材料参数在ADINA AUI中输入,采用ADINA的UserSupplied材料模式;对应于用户定义程序,则CTI(1)2e11赋值到YM,CTI(2)0.3赋值到PR;例题:线弹性材料开发同时采用ADINA提供的材料和用户自定义材料进行计算,结果应完全一致。ADINA用户开发特征的未来发展计划 ADINA系统环境开发,目前支持开发特征比较丰富,如:ADINA编译过程简单,不需生成.exe文件,只需生成动态链接库文件;同时,这大大方便了多TASK用户对开发特征的使用;ADINA用户开发特征的未来发展计划 ADINA正在计划将常用的开发特征如材料本构的开发、单元特性开发、施加载荷开发进行重新设计,只需要用户提供描述本构或单元的核心语句即可,其它工作ADINA自动处理。届时,用户在ADINA基础上进行核心部分的开发过程将更加简单、高效。