1. 各向同性线弹性本构模型
指标记法:\(\sigma_{ij}=\lambda\varepsilon_{kk}\delta_{ij}+2\mu\varepsilon_{ij}\)
\[\begin{bmatrix} \sigma_1\\\sigma_2\\\sigma_3\\\sigma_4\\\sigma_5\\\sigma_6 \end{bmatrix} = \begin{bmatrix} c&\lambda&\lambda&0&0&0\\\lambda&c&\lambda&0&0&0\\\lambda&\lambda&c&0&0&0\\0&0&0&\mu&0&0\\0&0&0&0&\mu&0\\0&0&0&0&0&\mu \end{bmatrix} \begin{bmatrix} \varepsilon_1\\\varepsilon_2\\\varepsilon_3\\\varepsilon_4\\\varepsilon_5\\\varepsilon_6 \end{bmatrix} \]其中 \(K=\frac{E}{3(1-2\nu)}\),\(\mu=G=\frac{E}{2(1+\nu)}\),\(\lambda=\frac{\nu E}{(1+\nu)(1-2\nu)}\),\(c=\lambda+2\mu=\frac{E(1-\nu)}{(1+\nu)(1-2\nu)}\)。
2. UMAT需要实现的功能
3. UMAT函数头
以下是ABAQUS给出的编程框架:
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
4 JSTEP(4)
C
C user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD
C and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT
C
RETURN
END
其中1-14行是ABAQUS所提供的固定的函数头。
常用的基本变量及其意义:
基本变量 | 含义 |
---|---|
STRESS | 应力张量 |
DSRTRAN | 应变增量张量 |
DDSDDE | 雅可比矩阵,刚度矩阵 |
NDI | Number of direct stress components at this point.正应力分量个数 |
NSHR | Number of engineering shear stress components at this point.剪应力分量个数 |
NTENS | Size of the stress or strain component array (NDI + NSHR ). |
4. 编程实例
整体代码如下:
SUBROUTINE UMAT(STRESS,STATEV,DDSDDE,SSE,SPD,SCD,
1 RPL,DDSDDT,DRPLDE,DRPLDT,
2 STRAN,DSTRAN,TIME,DTIME,TEMP,DTEMP,PREDEF,DPRED,CMNAME,
3 NDI,NSHR,NTENS,NSTATV,PROPS,NPROPS,COORDS,DROT,PNEWDT,
4 CELENT,DFGRD0,DFGRD1,NOEL,NPT,LAYER,KSPT,JSTEP,KINC)
C
INCLUDE 'ABA_PARAM.INC'
C
CHARACTER*80 CMNAME
DIMENSION STRESS(NTENS),STATEV(NSTATV),
1 DDSDDE(NTENS,NTENS),DDSDDT(NTENS),DRPLDE(NTENS),
2 STRAN(NTENS),DSTRAN(NTENS),TIME(2),PREDEF(1),DPRED(1),
3 PROPS(NPROPS),COORDS(3),DROT(3,3),DFGRD0(3,3),DFGRD1(3,3),
4 JSTEP(4)
c
PARAMETER(ONE=1.D0, TWO=2.D0)
C
C user coding to define DDSDDE, STRESS, STATEV, SSE, SPD, SCD
C and, if necessary, RPL, DDSDDT, DRPLDE, DRPLDT, PNEWDT
C
C ELAS PROPS
EE=PROPS(1)
ENU=PROPS(2)
EG=EE/(TWO*(ONE + ENU))
ELAM=(ENU*EE)/((ONE + ENU)*(ONE - TWO*ENU))
C
C ELAS STIFFNESS
DO I=1, NDI
DO J=1, NDI
DDSDDE(I, J)=ELAM
END DO
DDSDDE(I, I)=TWO*EG+ELAM
END DO
DO I=NDI+1, NTENS
DDSDDE(I, I)=EG
END DO
C
C CALC STRESS
DO I=1, NTENS
DO J=1, NTENS
STRESS(I)=STRESS(I)+DDSDDE(I, J)*DSTRAN(J)
END DO
END DO
C
RETURN
END
16行的作用是定义常量(PARAMETER函数),其中里面的1.D0中的D使得常量为双精度。
21行到43行的代码解释:
21-25行:定义常数的输入。开头的E表示弹性
27-36行:填入参数到雅各比矩阵
38-43行:计算应力增量张量并更新应力张量
标签:DO,STRESS,ABAQUS,varepsilon,DDSDDE,NTENS,各向同性,UMAT,lambda From: https://www.cnblogs.com/PeterRabbi/p/17461075.html