主要内容1.通用有限元软件二次开发简介2.用户自定义材料本构关系3.小结通用有限元软件二次开发简介:ABAQUSABAQUS二次开发工具用户子程序:Fortran,VC自定义载荷,边界,本构关系,后处理脚本语言:PYTHON对ABAQUS功能进行全面的用户更新通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序CREEP:定义时相关,黏塑性行为(蠕变和膨胀)DFLOW:定义固结分析中的非均匀空隙流速DFLUX:定义热传导中的非均匀热流DISP:定义非均布边界条件DLOAD:定义非均布载荷FILM:定义固结沉降分析中的非均匀渗流系数FRIC:定义接触面中的摩擦行为通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序GAPCON:定义耦合温度-位移分析或纯热传导分析中接触面的导率GAPELECTR:定义耦合热电分析中的导率HARDINI:定义初始等效塑性应变和初始背应力张量HETVAL:提供热传导分析中的内部热生成MPC:定义多点约束ORIENT:提供局部材料方向或运动耦合约束中的局部方向或惯性作用的局部刚体方向通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序RSURFU:定义刚体面SDVINI:定义初始求解相关的状态变量SIGINI:定义初始应力场UCORR:定义随机响应载荷的交叉相关性质UEL:定义单元UEXPAN:定义热应变增量UEXTERNALDB:管理用户定义的外部数据库并计算模型无关的历史信息通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序UFIELD:定义预定义场变量UFLUID:定义静水流体单元的流密度UFLUIDLEAKOFF:定义空隙压力粘着单元的流体渗漏系数UGENS:定义壳界面的力学行为UHARD:定义各向同性或混合硬化的屈服面尺寸和硬化参数UHYPEL:定义亚弹性应力应变关系通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序UHYPER:定义超弹性材料UINTER:定义接触面的面交互行为UMASFL:定义对流/扩散分析中的质量流动率条件UMAT:定义材料的力学行为UMATHT:定义材料热行为UMESHMOTION:指定自适应网格中的网格运动约束UMULLINS:定义Mullins效应材料模型的损伤变量通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序UPOREP:定义初始流体空隙压力UPRESS:指定等效压应力条件UPSD:定义随机响应载荷的频率相关性URDFIL:读结果文件USDFLD:指定材料点的域变量UTRACLOAD:指定非均布牵引载荷UTRS:定义粘弹性材料的减缩时间平移函数UVRAM:单元输出通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序UWAVE:定义ABAQUS/AQUA分析波运动VOIDRI:定义初始空穴比通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1:不同载荷步间改变弹性模量Inputfile*HEADING用户自定义损伤弹性模型(USDFLD)*ELEMENT,TYPE=T2D2,ELSET=ONE1,1,2*NODE1,0.,0.2,10.,0.*SOLIDSECTION,ELSET=ONE,MATERIAL=ELASTIC1.通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1*MATERIAL,NAME=ELASTIC*ELASTIC,DEPENDENCIES=12000.,0.3,0.,0.001500.,0.3,0.,0.011200.,0.3,0.,0.021000.,0.3,0.,0.04*USERDEFINEDFIELD*DEPVAR1通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1*BOUNDARY1,1,22,2*STEP*STATIC0.1,1.0,0.0,0.1*CLOAD2,1,20.*ENDSTEP通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1*STATIC0.1,1.0,0.0,0.1*CLOAD2,1,0.*ENDSTEP*STEP,INC=20*STATIC0.1,2.0,0.0,0.1*CLOAD2,1,40.*ENDSTEP通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1SUBROUTINEUSDFLD(FIELD,STATEV,PNEWDT,DIRECT,T,CELENT,TIME,DTIME,CMNAME,ORNAME,NFIELD,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC,NDI,NSHR,COORD,JMAC,JMATYP,MATLAYO,LACCFLA)INCLUDE'ABA_PARAM.INC'CHARACTER*80CMNAME,ORNAMECHARACTER*3FLGRAY(15)DIMENSIONFIELD(NFIELD),STATEV(NSTATV),DIRECT(3,3),1T(3,3),TIME(2)DIMENSIONARRAY(15),JARRAY(15),JMAC(*),JMATYP(*),1COORD(*)通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1CAbsolutevalueofcurrentstrain:CALLGETVRM('E',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,LACCFLA)EPS=ABS(ARRAY(1))CMaximumvalueofstrainuptothispointintime:CALLGETVRM('SDV',ARRAY,JARRAY,FLGRAY,JRCD,JMAC,JMATYP,MATLAYO,LACCFLA)EPSMAX=ARRAY(1)CUsethemaximumstrainasafieldvariableFIELD(1)=MAX(EPS,EPSMAX)CStorethemaximumstrainasasolutiondependentstateCvariableSTATEV(1)=FIELD(1)通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例1CIferror,writecommentto.DATfile:IF(JRCD.NE.0)THENWRITE(6,*)'REQUESTERRORINUSDFLDFORELEMENTNUMBER',NOEL,'INTEGRATIONPOINTNUMBER',NPTENDIFCRETURNEND通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例2:定义蠕变模型通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例2:定义蠕变模型SUBROUTINECREEP(DECRA,DESWA,STATEV,SERD,EC,ESW,P,QTILD,1TEMP,DTEMP,PREDEF,DPRED,TIME,DTIME,CMNAME,LEXIMP,LEND,2COORDS,NSTATV,NOEL,NPT,LAYER,KSPT,KSTEP,KINC)CINCLUDE'ABA_PARAM.INC'CCHARACTER*80CMNAMECDIMENSIONDECRA(5),DESWA(5),STATEV(*),PREDEF(*),DPRED(*),1TIME(2),COORDS(*),EC(2),ESW(2)通用有限元软件二次开发简介:ABAQUSABAQUS用户子程序示例2:定义蠕变模型A=SIG0=AN=T1=EXP(QTILD/SIG0)T2=EXP(−QTILD/SIG0)DECRA(1)=A*(.5*(T1−T2))**AN*DTIMEIF(LEXIMP.EQ.1)THENDECRA(5)=AN*A*(.5*(T1−T2))**(AN−1.)*DTIME/1SIG0*.5*(T1+T2)ENDIFRETURNEND通用有限元软件二次开发简介:ANSYSANSYS二次开发工具APDL:通过参数化模型来自动完成一些通用性强的任务;UIDL:用户界面设计语言,允许用户设计ANSYS图形界面;UPFs:Fortran90函数及例程以扩展或修改程序的功能,包括定义新材料本构,新单元,新的屈服准则,自定义优化算法,将ANSYS作为一个子程序来调用等。通用有限元软件二次开发简介:ANSYSANSYS-APDL*Do循环*do!起始行……!循环语句块*enddo!结束行不允许用label分支语句*if或*go命令跳出do循环语句;不允许用label将程序跳到另一行,但可以用if-then-else来实现;do循环结构中,第一次循环后自动禁止命令结果输出;欲得到所有结果输出,在do循环结构中使用/gopr或/go语句;/clear命令不会清除do循环的堆栈,但它会删除所有的参数。可在/clear命令前运行/parsav命令来防止。通用有限元软件二次开发简介:ANSYSANSYS-APDL*do,i,0,64,1!采用do循环设置移动载荷*set,tim,tim+1time,timnsel,allfdele,all,allnsel,allnsel,s,loc,x,(64+i)*0.5!施加5个集中载荷f,all,fy,-loadnsel,allnsel,s,loc,x,(64+i-3)*0.5…*enddo通用有限元软件二次开发简介:ANSYSANSYS-APDLCYC1=2!循环2圈*DO,I,1,CYC1,1!DO循环开始LSEL,S,LOC,Y,60TIME,5NSUBST,5AUTOTS,0SFL,ALL,PRES,PEAK1ALLSELLSWRITELSEL,S,LOC,Y,60AUTOTS,0NSUBST,5TIME,10SFL,ALL,PRES,0ALLSEL通用有限元软件二次开发简介:ANSYSANSYS-APDLLSWRITELSEL,S,LOC,Y,60TIME,12.5NSUBST,5AUTOTS,0SFL,ALL,PRES,VALLEY1ALLSELLSWRITELSEL,S,LOC,Y,60NSUBST,5AUTOTS,0TIME,15SFL,ALL,PRES,0ALLSELLSWRITE*ENDDO!DO循环结束通用有限元软件二次开发简介:ANSYSANSYS-APDL:Repeatn,1,10,360/(nnode-1),0!创建nnode个节点,夹角为360/nnode*repeat,nnode,1,0,360/nnode,0!重复执行上述命令nnode次通用有限元软件二次开发简介:ANSYSANSYS-UIDL:单行参数输入*ASK,Par,Query,DVAL其中,Par为参数名称,用于存储用户输入的参数。Query是询问信息,用户可以输入最多包含54个字符串的提示信息以方便正确输入参数。DVAL是用户用空响应时程序自动赋给该参数的缺省值。用户用空格响应时则表示删除该参数。*ASK,RADIUS,’INPUTTHERADIUSOFCIRCLE’,4通用有限元软件二次开发简介:ANSYSANSYS-UIDL:多行参数输入MULTIPRO,’START’,PROMPT_NUM*CSET,STRT_LOC,END_LOC,PARAM_NAME,’PROMPT_STRING’,DEF_VALUEMULTIPRO,’END’其中,’START’为第一个参数,用于标识MULTIPRO指令的开始;PROMPT_NUM为一整型数,等于执行“MULTIPRO”命令行后的*CSET参数输入提示行的数目,至少有一个*CSET命令省略了DEF_VALUE参数或DEF_VALUE为0,才必须用到该参数。通用有限元软件二次开发简介:ANSYSANSYS-UIDL:多行参数输入MULTIPRO,'START',3*CSET,1,3,EX_1,'YOUNGSMODULUS(MPa)',2.06E5*CSET,4,