ansys中混凝土损伤模型的开发

  • 格式:txt
  • 大小:6.26 KB
  • 文档页数:3

?
epst0=0.00003
epstr=0.00006
epstu=0.00015

coef=1

fc=14300000
fi=30
kesi=epstu/epst0
eta=epstr/epst0
lamda=0.1
alpha=0.197
E0=3e10
N=log10(lamda)/log10(epst0/epstr)+1

epsc0=-fc/E0
epscr=epsc0/lamda**(1/(N-1))
epscu=-0.0033

*afun,deg

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
delta_t=0.04 !时间步长基数

*dim,cum,array,1,5
cum(1,1)=0 !累积时间
cum(1,2)=2 !累积时间步
cum(1,3)=0.04 !旧时间步长
cum(1,4)=0.04 !新时间步长
cum(1,5)=1 !时间步长基数的倍数

*dim,error,array,5000,1

*CFOPEN,'iteration.txt',' ',' '
*VWRITE,cum(1,1),cum(1,2),cum(1,3),cum(1,4),cum(1,5)
(f15.7,f15.1,2f15.10,f15.1)

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
esel,s,mat,,1
*get,ne,elem,,count
*dim,Error_E,array,ne,1
*dim,concrete,array,ne,4
*dim,damage_index,array,ne,1000
*do,i,1,ne,1
*get,emin,elem,,num,min
concrete(i,1)=emin
esel,u,elem,,emin
*enddo
allsel,all

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
finish
/config,nres,150000
/config,nproc,2
/config,fsplit,896
/nerr,1,99999999

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/solu
bcsoption,,incore,2000
antype,trans
rescontrol,define,all,1
timint,off
time,1e-5

kbc,1
nsubst,2
allsel,all
outres,all,last
solve

TRNOPT,FULL
LUMPM,0
KBC,0
!alphad,0.4412
!betad,0.0056
timint,on

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
*do,i,1,1000,1 !迭代
tt=min(cum(1,1)+cum(1,4),cum(1,5)*delta_t)
time,tt
acel,acelx(tt)*coef,-acely(tt)*coef
nsubst,1
outres,all,last
allsel,all
solve

!save
/post1
set,cum(1,2),1
etable,strain,epel,1
etable,p1,s,1
etable,p3,s,3
etable,eps3,epel,3
*do,j,1,ne,1
*get,concrete(j,2),elem,concrete(j,1),etab,strain
*if,concrete(j,2),lt,epst0,then
*get,sig1,elem,concrete(j,1),etab,p1
*get,sig3,elem,concrete(j,1),etab,p3
*if,(1+sin(fi))/(1-sin(fi))*sig1-sig3,ge,fc,then
*get,s3,elem,concrete(j,1),etab,eps3
*if,s3,gt,epsc0,then
damage=0
*elseif,s3,gt,epscr,then
damage=1-(epsc0/s3)**N
*elseif,s3,gt,epscu,then
damage=1-lamda*epscr/s3
*else
damage=1
*endif
*else
damage=0
*endif
*elseif,concrete(j,2),lt,epstr,then
damage=1-(epst0/concrete(j,2))**N
*elseif,concrete(j,2),lt,epstu,then
damage=1-lamda*epstr/concrete(j,2)
*else
damage=1

*endif
concrete(j,3)=max(damage,concrete(j,3))
damage_index(j,i)=concrete(j,3)
*get,matnum,elem,concrete(j,1),attr,mat
*get,elastic_module,ex,matnum
elastic_module_new=(1-concrete(j,3))*E0
*if,elastic_module_new,le,3e7,then
elastic_module_new=3e7
*endif
concrete(j,4)=elastic_module_new
Error_E(j)=abs((elastic_module-elastic_module_new)/elastic_module)
*enddo
allsel,all

*CFOPEN,'parameter.txt',' ',' '
*VWRITE,concrete(1,1),concrete(1,2),concrete(1,3),concrete(1,4)
(f15.1,f18.10,f15.8,f18.5)

*if,tt,eq,5,then
*CFOPEN,'parameter5.txt',' ',' '
*VWRITE,concrete(1,1),concrete(1,2),concrete(1,3),concrete(1,4)
(f15.1,f18.10,f15.8,f18.5)
*elseif,tt,eq,10,then
*CFOPEN,'parameter10.txt',' ',' '
*VWRITE,concrete(1,1),concrete(1,2),concrete(1,3),concrete(1,4)
(f15.1,f18.10,f15.8,f18.5)
*elseif,tt,eq,20,then
*CFOPEN,'parameter20.txt',' ',' '
*VWRITE,concrete(1,1),concrete(1,2),concrete(1,3),concrete(1,4)
(f15.1,f18.10,f15.8,f18.5)
*elseif,tt,eq,30,then
*CFOPEN,'parameter30.txt',' ',' '
*VWRITE,concrete(1,1),concrete(1,2),concrete(1,3),concrete(1,4)
(f15.1,f18.10,f15.8,f18.5)
*endif

*vscfun,Error_E_max,RMS,Error_E
error(i,1)=Error_E_max

*CFOPEN,'error.txt',' ',' '
*VWRITE,error(1,1)
(f15.5)

*if,Error_E_max,lt,1,then
cum(1,1)=min(cum(1,1)+cum(1,4),cum(1,5)*delta_t)
cum(1,2)=cum(1,2)+1

time_size_new=cum(1,4)
*if,cum(1,4),eq,cum(1,3),then
cum(1,4)=min(1.2*cum(1,4),delta_t)
*endif
cum(1,3)=time_size_new

num=cum(1,1)/delta_t
*if,mod(num,1),le,1e-10,or,abs(mod(num,1)-1),le,1e-10,then
cum(1,5)=cum(1,5)+1
*endif

*CFOPEN,'iteration.txt',' ',' '
*VWRITE,cum(1,1),cum(1,2),cum(1,3),cum(1,4),cum(1,5)
(f15.7,f15.1,2f15.10,f15.1)

/solu
antype,trans,rest,cum(1,2)-1 !重启动,修改材料参数

*VREAD,concrete,'parameter','txt',' ',jik,4,ne,1, , ,
(f15.1,f18.10,f15.8,f18.5)

*VREAD,cum,'iteration','txt',' ',jik,5,1,1, , ,
(f15.7,f15.1,2f15.10,f15.1)

*VREAD,error,'error','txt',' ',jik,1,5000,1, , ,
(f15.5)

*do,k,1,ne,1
mp,ex,k+6,concrete(k,4)
mp,prxy,k+6,0.2
mp,dens,k+6,2500
mpchg,k+6,concrete(k,1)
*enddo
TRNOPT,FULL
LUMPM,0
outres,all,last
KBC,0
timint,on
*else
/solu
antype,trans,rest,cum(1,2)-1 !重启动,修改时间步长

*VREAD,cum,'iteration','txt',' ',jik,5,1,1, , ,
(f15.

7,f15.1,2f15.10,f15.1)

*VREAD,error,'error','txt',' ',jik,1,5000,1, , ,
(f15.5)

cum(1,3)=cum(1,4)
cum(1,4)=cum(1,4)/2

*CFOPEN,'iteration.txt',' ',' '
*VWRITE,cum(1,1),cum(1,2),cum(1,3),cum(1,4 ),cum(1,5)
(f15.7,f15.1,2f15.10,f15.1)

*endif
*enddo














下载文档原格式

  / 3
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。