Appendix1用户自定义材料本构开发环境子程序及入口条件材料本构子程序及求解输入文件描述举例说明Duncan&ChangE-B模型的二次开发过程ADINA用户开发特征的未来发展计划主要内容开发环境ADINA8.1版本的开发环境为CompaqVisualFortran6.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:\adina80\adina...\DF98\bin\dfvarsnmake则生成新的动态链接库文件,即adusr.dll。开发过程在ADINAAUI界面中采用User-Supplied模式,并输入其中的参数,这些参数与ADINA子程序中的变量一一对应,用于材料本构的计算;常用参数如:CTI(99)CTD(99)LGTH1LGTH2结构本构开发入口条件已知参数cstrain(1)=x应变cstrain(2)=y应变cstrain(3)=z应变cstrain(4)=xy应变cstrain(5)=yz应变cstrain(6)=zx应变C常用的其它参量ccTIME=当前时间cDT=当前时间步长cTEMP1=当前温度AUI输入参数cCTI(1)=young'smoduluscCTI(2)=poisson'sratioCCTI(n)=…CCTDD(98)=…求解变量STRESS(1)=xxSTRESS(2)=yySTRESS(3)=zzSTRESS(4)=xySTRESS(5)=xzSTRESS(6)=yz历史变量ARRAY(LGTH1)提供多于60个可以输出的实数型历史变量,常用于做如屈服应力、塑性应变、应力水平等数据的存储;IARRAY(LGTH2)提供多个全局整型历史变量,往往用于程序控制或其它用途;结构本构开发出口条件例题:线弹性材料开发SUBROUTINECUSER3[DLLEXPORT](IA,A,NG,NEL,IPT,IDEATH,STRESS,+EPS,STRAIN,DEPS,1DEPST,THSTR1,THSTR2,KTR,INTER,SCP,ARRAY,LGTH1,2IARRAY,LGTH2,D,ALFA,CTD,ALFAA,CTDD,CTI,3TMP1,TMP2,TIME,ETIMV,ETIMV2,DT,PHIST,PRST,RN,4PHIST1,DPSP,TGRAD,INTEG,ISUBM,INDNL,DP,NELP,6DPJE1D,DPJE2D,AKAPPA,PBAR,NNODE,NODNUM,XYZ,+IIN,IOUT,KEY)CC......................................................................子程序说明:传递的变量很多,完全满足绝大多数开发所需常用变量:STRAIN(应变)STRESS(应力)TIME(当前时间)DT(当前时间步长)TMP1(当前温度)…C......................................................................C..C.ELEMENTS:LinearElasticModelfor3-DSOLIDELEMENTS.C..C......................................................................C..C.ADDITIONALVARIABLES:.C..C..C.YMYOUNG'SMODULUS(INPUT).C.PRPOISSON'SRATIO(INPUT).C......................................................................程序中的注释部分:一般程序中主要使用的中间变量给予说明;如上面说明YM在程序中代表弹性模型;PR代表波松比;例题:线弹性材料开发例题:线弹性材料开发CIMPLICITDOUBLEPRECISION(A-H,O-Z)DIMENSIONIA(*),A(*)REALADIMENSIONSTRESS(6),STRAIN(6),DEPS(6),D(6,6),EPS(6)DIMENSIONDEPST(6),THSTR1(6),THSTR2(6)DIMENSIONPHIST(3,3),PRST(3),DPSP(6),TGRAD(3)DIMENSIONARRAY(*),IARRAY(*)DIMENSIONCTD(98),CTDD(98),CTI(99),SCP(99)DIMENSIONDP(6,6)DIMENSIONRN(3,3)DIMENSIONNODNUM(*),XYZ(3,*)DIMENSIONDPJE1D(6),DPJE2D(6,6)DIMENSIONSTDEV(6),EDP(6),TOLER(2)DIMENSIONEPR(6),DPLAST(6)SAVEAE,BK,XLMBDA,DFPL,EDP,EFST,EP,DCOEFDATATOL1/1.E-2/DATAC1D3/.33333333333333D0/DATAC2D3/.66666666666666D0/DATAXVUFL/1.D-300/TOLER(1)=TOL1TOLER(2)=XVUFLC变量声明:采用ADINA开发实例中的变量声明即可。例题:线弹性材料开发CGOTO(1,2,3,4),KEYC*IC*IC*IKEY=1C*IC*IINITIALIZECOMPONENTSOFREALANDINTEGERWORKINGARRAYSC*I(INITIALIZEARRAY(60)ANDIARRAY(2))C*I1CONTINUEC*IDO11I=1,LGTH111ARRAY(I)=0.0DO12I=1,LGTH212IARRAY(I)=0CRETURN将整个程序分为四段执行第一段程序初始化两个数组,用于存放历史变量(ADINA在后处理时像位移、应力等变量显示这些数值),LGTH1和LGTH2是在AUI中输入的整数,有缺省值。C*IKEY=2C*IINTEGRATIONOFELEMENTSTRESSES(CALCULATESTRESS(6))2CONTINUEC*I***INSERTUSER-SUPPLIEDCODINGCLINEARELASTICMATERIALFOR3-DSOLIDELEMENTSCYM=CTI(1)PR=CTI(2)g2=YM/(1.0+PR)g=0.5*g2Cdavg=(-STRAIN(1)-STRAIN(2)-STRAIN(3))*C1D3p=-davg*YM/(1.0-2.0*PR)CSTRESS(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)CRETURN例题:线弹性材料开发执行第二段程序定义STRESS与STRAIN的关系3CONTINUEC*I***INSERTUSER-SUPPLIEDCODINGCELASTICCONSTITUTIVEMATRIXYM=CTI(1)PR=CTI(2)DO315I=1,6DO315J=1,6315D(I,J)=0.D0CM=YM/(1.-2.*PR)AE=(1.+PR)/YMCP=AECP=1./CPC11=(CM+2.*CP)/3.C12=(CM-CP)/3.D(1,1)=C11D(1,2)=C12D(1,3)=C12D(2,2)=C11D(2,3)=C12D(3,3)=C11D(4,4)=0.5*CPD(5,5)=D(4,4)D(6,6)=D(5,5)DO320I=1,3DO320J=I,3320D(J,I)=D(I,J)RETURN形成材料矩阵如果开发非线性弹性材料不需改动;如果开发塑性、粘塑性、混凝土则部分参数需要改动;执行第三段程序C*IKEY=4C*IPRINTINGOFELEMENTRESPONSE(PRINTSTRESS(6),STRAIN(6))C4CONTINUEC*I***INSERTUSER-SUPPLIEDCODINGCPRINTHEADINGANDELEMENTNUMBERC(略)CRETURNEND执行第四段程序结果输出控制:采用例子中的程序即可,一般无需改动。程序结束例题:线弹性材料开发材料参数在ADINAAUI中输入,采用ADINA的User-Supplied材料模式;对应于用户定义程序,则CTI(1)=2e11赋值到YM,CTI(2)=0.3赋值到PR;例题:线弹性材料开发同时采用ADINA提供的材料和用户自定义材料进行计算,结果应完全一致。ADINA用户开发特征的未来发展计划ADINA系统环境开发,目前支持开发特征比较丰富,如:ADINA编译过程简单,不需生成.exe文件,只需生成动态链接库文件;同时,这大大方便了多TASK用户对开发特征的使用;ADINA用户开发特征的未来发展计划ADINA正在计划将常用的开发特征如材料本构的开发、单元特性开发、施加载荷开发进行重新设计,只需要用户提供描述本构或单元的核心语句即可,其它工作ADINA自动处理。届时,用户在ADINA基础上进行核心部分的开发过程将更加简单、高效。