View
169
Download
1
Category
Preview:
DESCRIPTION
ANSYS/LS-DYNA 专题培训. LS-DYNA 材料的 二次开发. 内 容. ● 二次开发环境 ● 主程序及入口条件 ● 开发材料的本构、子程序及求解输入文件描述 ● 编译、运行新的求解器 ● 开发 Kelvin_voigt 粘弹材料 ● 用新材料模式做大变形分析. 二次开发环境. LS-DYNA 二次开发基于 FORTRAN 环境 在 PC 和 UNIX 平台下都需要进行连接编译,生成新的求解器 Pc 平台需安装 digital visual fortran 5.0 或 Microsoft power station 4.0 - PowerPoint PPT Presentation
Citation preview
ANSYS/LS-DYNA Training 2001
内 容
● 二次开发环境
● 主程序及入口条件
● 开发材料的本构、子程序及求解输入文件描述
● 编译、运行新的求解器
● 开发 Kelvin_voigt 粘弹材料
● 用新材料模式做大变形分析
ANSYS/LS-DYNA Training 2001
LS-DYNA 二次开发基于 FORTRAN 环境
在 PC 和 UNIX 平台下都需要进行连接编译,生成新的求解器
Pc 平台需安装 digital visual fortran 5.0 或 Microsoft power station 4.0
提供的资源包括:Ls-dyna.f 用户自定义本构子程序
Ls-dyna.lib 静态连接库
Ls-dyna.dsp digital FORTRAN workspace 文件或 MAKEFILE 用于(包括主程序)
Readme.txt 说明文件
二次开发环境
ANSYS/LS-DYNA Training 2001
在 UNIX 平台提供如下资源:Makefile 执行编译批处理文件(?)
object 文件(内含主程序)
dyn21.f 用户定义本构子程序
支持的平台:
940.2 版 DEC NEC IBM
HP SGI SUN
950d 版COMPAQ CRAY SGI
IBM LINUX SUN
用户平台需安装 FORTRAN77
ANSYS/LS-DYNA Training 2001
二次开发如何实现?用户自定义的本构代替 ls-dyna.f 或 dyn21.f 中的相关本构描述
LS-DYNA 共提供 10 种 *user_defined_material_model, 由这些输入数据为自定义本构提供参数,完成分析
在程序中使用的自定义 subroutine 要和 Jobname.K 中指定的相同
在一次分析中,用户最多可同时使用 10 种自定义材料本构
ANSYS/LS-DYNA Training 2001
主程序及入口条件
c******************************************************************
c| LS-DYNA main program entry |
c******************************************************************
program lsdyna3d
call dyna3d
stop
end
c******************************************************************
ANSYS/LS-DYNA Training 2001
入口条件
参数传递c cm(1)=young's modulus
c cm(2)=poisson's ratio
C cm(n)= 用户在点 K 中给定的新本构参数
c eps(1)= x 应变增量
c eps(2)= y 应变增量
c eps(3)= z 应变增量
c eps(4)= xy 应变增量
c eps(5)= yz 应变增量
c eps(6)= zx 应变增量
c 单元类型 etype:
c eq.“brick” 实体单元
c eq.“shell” 壳单元
c eq.“beam” 梁单元
c
c time= 当前时间
c dt1= 当前时间步长
c capa= 纵向剪切缩减因子
c sig(1)= x 应力
c sig(2)=y 应力
c sig(3)=z 应力
c sig(4)=xy 应力
c sig(5)=yz 应力
c sig(6)=zx 应力
c
c hisv(1)= 历史变量 1
c hisv(2)= 历史变量 2
…
c hisv(n)= 历史变量 n
ANSYS/LS-DYNA Training 2001
每个积分步、主程序提供如下这些已知量:
6 个应变增量
可能涉及的历史变量 hisv ( n)
单元类型的字符串
当前时间
当前时间步长
用户在点 K 文件中给定如下参数:弹性模量
波松比
其它参数 cm(n)
Ls-dyna.f 或 dyn21.f应完成的工作:
求出 6 个应力增量
求出其它可能涉及的历史变量 hisv ( n )
ANSYS/LS-DYNA Training 2001
参数说明
由主程序提供的所有参数基于单元坐标系,计算得到的应力显然如此,之后由主程序将其转换到整体坐标系
所有的历史变量在初始调用子程序
时将置零
能量计算完全由主程序完成
ANSYS/LS-DYNA Training 2001
子程序举例
c******************************************************************
c| user-defined subroutine example |
c******************************************************************
subroutine umat41 (cm,eps,sig,hisv,dt1,capa,etype,time)
c isotropic elastic material (sample user subroutine)
c variables
c cm(1)=young's modulus
c cm(2)=poisson's ratio
c
c eps(1)=local x strain increment
c eps(2)=local y strain increment
c eps(3)=local z strain increment
c eps(4)=local xy strain increment
c eps(5)=local yz strain increment
c eps(6)=local zx strain increment
ANSYS/LS-DYNA Training 2001
c sig(1)=local x stress
c sig(2)=local y stress
c sig(3)=local z stress
c sig(4)=local xy stress
c sig(5)=local yz stress
c sig(6)=local zx stress
c hisv(1)=1st history variable
c hisv(2)=2nd history variable
c hisv(n)=nth history variable
c dt1=current time step size
c capa=reduction factor for transverse shear
c etype:
c eq."brick" for solid elements
c eq."shell" for all shell elements
c eq."beam" for all beam elements
c time=current problem time.
ANSYS/LS-DYNA Training 2001
character*(*) etype
dimension cm(*),eps(*),sig(*),hisv(*)
c
c compute shear modulus, g
c
g2 =cm(1)/(1.+cm(2))
g =.5*g2
c
if (etype.eq.'brick') then
davg=(-eps(1)-eps(2)-eps(3))/3.
p=-davg*cm(1)/((1.-2.*cm(2)))
sig(1)=sig(1)+p+g2*(eps(1)+davg)
sig(2)=sig(2)+p+g2*(eps(2)+davg)
sig(3)=sig(3)+p+g2*(eps(3)+davg)
sig(4)=sig(4)+g*eps(4)
sig(5)=sig(5)+g*eps(5)
sig(6)=sig(6)+g*eps(6)
ANSYS/LS-DYNA Training 2001
elseif (etype.eq.'shell') then
c
gc =capa*g
q1 =cm(1)*cm(2)/((1.0+cm(2))*(1.0-2.0*cm(2)))
q3 =1./(q1+g2)
eps(3)=-q1*(eps(1)+eps(2))*q3
davg =(-eps(1)-eps(2)-eps(3))/3.
p =-davg*cm(1)/((1.-2.*cm(2)))
sig(1)=sig(1)+p+g2*(eps(1)+davg)
sig(2)=sig(2)+p+g2*(eps(2)+davg)
sig(3)=0.0
sig(4)=sig(4)+g *eps(4)
sig(5)=sig(5)+gc*eps(5)
sig(6)=sig(6)+gc*eps(6)
c
ANSYS/LS-DYNA Training 2001
elseif (etype.eq.'beam' ) then
q1 =cm(1)*cm(2)/((1.0+cm(2))*(1.0-2.0*cm(2)))
q3 =q1+2.0*g
gc =capa*g
deti =1./(q3*q3-q1*q1)
c22i = q3*deti; c23i =-q1*deti
fac =(c22i+c23i)*q1
eps(2)=-eps(1)*fac-sig(2)*c22i-sig(3)*c23i
eps(3)=-eps(1)*fac-sig(2)*c23i-sig(3)*c22i
davg =(-eps(1)-eps(2)-eps(3))/3.
p =-davg*cm(1)/((1.-2.*cm(2)))
sig(1)=sig(1)+p+g2*(eps(1)+davg)
sig(2)=0.0
sig(3)=0.0
sig(4)=sig(4)+gc*eps(4)
sig(5)=0.0
sig(6)=sig(6)+gc*eps(6)
endif
return
end
ANSYS/LS-DYNA Training 2001
对应的点 K 中的材料描述
*MAT_USER_DEFINED_MATERIAL_MODELS
$ MID RO MT LMC NHV IORTHO IBULK IG
1 7.890E-09 41 4 0 0 4 3
$ IVECT IFAIL
0 0
$ P1(E) P2(NU) P3(G) P4(K)
2.100E+05 3.000E-01 80.769E+3 175.0E+3
ANSYS/LS-DYNA Training 2001
练习:在 PC 上开发并应用 kelvin-voigt粘弹材料
橡胶采用 kelvin-voigt 模型 , 本构方程由下式给定:
= E0 +E1 ( / t )
其中: E0 =0.6437Mpa, E1 = 0.0136Mpa·s;
密度: 4000Kg/m3
应用此材料做大变形分析
球直径 10cm, 下面由地板支撑,上部由一钢板在 10ms 将其到厚度为 5cm 的圆饼
ANSYS/LS-DYNA Training 2001
步骤:
得到 LSTC公司提供的资源 Ls-dyna.f
Ls-dyna.lib
Ls-dyna.dsp
打开 digit visual fortran
在此环境中打开 Ls-dyna.dsp ,将
ANSYS/LS-DYNA Training 2001
subroutine umat41 (cm,eps,sig,hisv,dt1,capa,etype,time,d,s,t)
character*(*) etype
dimension cm(*),eps(*),sig(*),hisv(*),d(6),s(6),t(6)
C
c
character*(*) etype
dimension cm(*),eps(*),sig(*),hisv(*),d(6),s(6),t(6)
c
g2 =cm(1)/(1.+cm(2))
g =.5*g2
Ls-dyna.f
ANSYS/LS-DYNA Training 2001
if (etype.eq.'brick') then
davg=(-eps(1)-eps(2)-eps(3))/3.
p=-davg*cm(1)/((1.-2.*cm(2)))
s(1)=p+g2*(eps(1)+davg)
s(2)=p+g2*(eps(2)+davg)
s(3)=p+g2*(eps(3)+davg)
s(4)=g*eps(4)
s(5)=g*eps(5)
s(6)=g*eps(6)
d(1)=eps(1)/dt1
d(2)=eps(2)/dt1
d(3)=eps(3)/dt1
d(4)=eps(4)/dt1
d(5)=eps(5)/dt1
d(6)=eps(6)/dt1
C for the second term in the constitutive
g2 =cm(5)/(1.+cm(2))
davg=(-d(1)-d(2)-d(3))/3.
ANSYS/LS-DYNA Training 2001
p=-davg*cm(5)/((1.-2.*cm(2)))
t(1)=p+g2*(d(1)+davg)
t(2)=p+g2*(d(2)+davg)
t(3)=p+g2*(d(3)+davg)
t(4)=g*d(4)
t(5)=g*d(5)
t(6)=g*d(6)
sig(1)=sig(1)+s(1)+t(1)
sig(2)=sig(2)+s(2)+t(2)
sig(3)=sig(3)+s(3)+t(3)
sig(4)=sig(4)+s(4)+t(4)
sig(5)=sig(5)+s(5)+t(5)
sig(6)=sig(6)+s(6)+t(6)
endif
c
return
end
ANSYS/LS-DYNA Training 2001
Kelvin.k
*MAT_USER_DEFINED_MATERIAL_MODELS
$ MID RO MT LMC NHV IORTHO IBULK IG
2 4e3 41 5 0 0 4 3
0 0
6.437e5 .49 8e6 2e7 1.36e4
Recommended