粘弹性人工边界在ANSYS中的实现
wvjd4383
wvjd4383 Lv.7
2015年09月10日 15:39:00
来自于ANSYS
只看楼主

最近几天一直在看粘弹性人工边界的理论,对比一篇论文做了一个实例,与大家一同分享,欢饮拍砖。原文:基于ABAQUS的粘弹性边界单元及在重力坝抗震分析中的应用期刊:世界地震工程,2010年,26卷,第3期本帖:ANSYS算例程序如下:/PREP7!*******************************************************************************

最近几天一直在看粘弹性人工边界的理论,对比一篇论文做了一个实例,与大家一同分享,欢饮拍砖。
原文:基于ABAQUS的粘弹性边界单元及在重力坝抗震分析中的应用
期刊:世界地震工程,2010年,26卷,第3期
本帖:ANSYS算例
程序如下:

/PREP7
!*******************************************************************************
L=800 !水平长度

H=400 !竖向深度

E=1.323E+10 !弹性模量

density=2.7E+03 !密度

mu=0.25 !泊松比

dxyz=20 !网格尺寸

G = E/(2.*(1.+mu)) !剪切模量

alfa = E*(1-mu)/((1.+mu)*(1.-2.*mu)) !若计算平面应力,此式需要修改

Cp=sqrt(alfa/density) !压缩波速

Cs=sqrt(G/density) !剪切波速

R=(sqrt(L*L/4.+H*H)+L/2+H)/3 !波源到边界点等效长度

KbT=0.5*G/R

KbN=1.0*G/R

CbT=density*Cs

CbN=density*Cp

!*******************************************************************************
ET, 1, plane42,,,2 !按平面应变计算

et, 2, combin14, ,, 2 !切向

et, 3, combin14, ,, 2 !法向

r, 2, KbT, CbT

r, 3, KbN, CbN

MP, EX, 1, E

MP, PRXY, 1, mu

MP, DENS, 1, density

rectng,-L/2.,L/2,0.,H

asel, all

aesize, all, dxyz

mshape,0,2D

mshkey,1

amesh, all

!*******************************************************************************
PI = Acos(-1)

TNUM = 400

btime = 0.005

etime = 2.00

DTIME = 0.005
!****************************
nsel,s,loc,y,0 !选中需要加等效荷载的底边界点

*get,NBOTM,node,,count !得到选中的结点数,存入NBOTM

*dim,BOTMU,array,TNUM,3, , , , !储存底边界位移和速度

*dim,BOTMF,array,TNUM, , , , , !储存底边界等效节点荷载

*do,T,1,100,1

BOTMU(T,1)=SIN(4.*PI*T*DTIME)-0.5*SIN(8.*PI*T*DTIME)

BOTMU(T,2)=4.*PI*COS(4.*PI*T*DTIME)-4.*PI*COS(8.*PI*T*DTIME)

BOTMU(T,3)=-16.*PI*PI*SIN(4.*PI*T*DTIME)+32.*PI*PI*SIN(8.*PI*T*DTIME)

*enddo

*do,T,101,TNUM,1

BOTMU(T,1)=0

BOTMU(T,2)=0

BOTMU(T,3)=0

*enddo

*do,T,1,TNUM,1

BOTMF(T) = 1.*(KbT*BOTMU(T,1)+CbT*BOTMU(T,2)+density*Cs*BOTMU(T,2))

*enddo

!****************************
nsel,s,loc,x,-L/2 !选择左边界上的全部节点

*get,NNODE,node,,count !求得已选中节点的数量

*dim,DTIME1,array,NNODE,,,,, !储存入射波从底边界到侧边界任意节点的传播时间

*dim,DTIME2,array,NNODE,,,,, !储存反射波从地表到侧边界任意节点的传播时间

*dim,VERTU1,array,TNUM,NNODE,,,, !储存入射波从底边界传播到侧边界任意节点而引起的位移

*dim,VERTV1,array,TNUM,NNODE,,,, !储存入射波从底边界传播到侧边界任意节点而引起的速度

*dim,VERTU2,array,TNUM,NNODE,,,, !储存反射波从地表传播到侧边界任意节点而引起的位移

*dim,VERTV2,array,TNUM,NNODE,,,, !储存反射波从地表传播到侧边界任意节点而引起的速度

*dim,VERTFN,array,TNUM,NNODE,,,, !储存侧边界的法向等效荷载

*dim,VERTFT,array,TNUM,NNODE,,,, !储存侧边界的切向等效荷载

*do,inum,2,NNODE,1

DTIME1(INUM)=((INUM-1.)*dxyz)/Cs

DTIME2(INUM)=(2.*H-(INUM-1.)*dxyz)/Cs

*enddo

!*
*DO,T,1,TNUM,1

*do,inum,2,NNODE,1

ITIME1 = T*DTIME-DTIME1(INUM)

ITIME2 = T*DTIME-DTIME2(INUM)


*if,ITIME1,LT,0.,THEN

VERTU1(T,inum) = 0.

VERTV1(T,inum) = 0.

*elseif,ITIME1,GE,0.,and,ITIME1,LE,0.5,THEN

VERTU1(T,inum) = SIN(4.*PI*ITIME1)-0.5*SIN(8.*PI*ITIME1)

VERTV1(T,inum) = 4.*PI*COS(4.*PI*ITIME1)-4.*PI*COS(8.*PI*ITIME1)

*else

VERTU1(T,inum) = 0

VERTV1(T,inum) = 0

*endif


*if,ITIME2,LT,0.,THEN

VERTU2(T,inum) = 0.

VERTV2(T,inum) = 0.

*elseif,ITIME2,GE,0.,and,ITIME2,LE,0.5,THEN

VERTU2(T,inum) = SIN(4.*PI*ITIME2)-0.5*SIN(8.*PI*ITIME2)

VERTV2(T,inum) = 4.*PI*COS(4.*PI*ITIME2)-4.*PI*COS(8.*PI*ITIME2)

*else

VERTU2(T,inum) = 0

VERTV2(T,inum) = 0

*endif


*enddo

*ENDDO

!*
*DO,T,1,TNUM,1

*do,inum,2,NNODE,1

VERTFN(T,inum) = 1.*(KbN*VERTU1(T,inum)+CbN*VERTV1(T,inum)+KbN*VERTU2(T,inum)+CbN*VERTV2(T,inum))

VERTFT(T,inum) = 1.*CbT*(VERTV1(T,inum)-VERTV2(T,inum))

*enddo

*ENDDO

!*******************************************************************************
!以下建立底边界法向和切向弹簧阻尼单元

nsel,s,loc,y,0.

*get,np,node,,count !得到选中的结点数,存入np

*get,npmax,node,,num,maxd !得到已经定义的最大结点数,存入npmax

*do,ip,1,np

npnum=node((ip-1)*dxyz-L/2.,0.,0.)

x=nx(npnum)

y=ny(npnum)

z=nz(npnum)

npmax=npmax+1

n,npmax,x,y-dxyz/20,z !定义底边界法向结点以便与边界点形成法向单元

type,3

real,3

e,npnum,npmax

d,npmax,all,0. !约束新生成的点

npmax=npmax+1

n,npmax,x-dxyz/20,y,z !定义底边界切向结点以便与边界点形成切向单元

type,2

real,2

e,npnum,npmax

d,npmax,all,0. !约束新生成的点

*enddo

!以下建立左边界法向和切向弹簧阻尼单元

nsel,s,loc,x,-L/2

*get,np,node,,count !得到选中的结点数,存入np

*get,npmax,node,,num,maxd !得到已经定义的最大结点数,存入npmax

*do,ip,2,np !侧边界最下面一个点按底边界上处理

npnum=node(-L/2,(ip-1)*dxyz,0.)

x=nx(npnum)

y=ny(npnum)

z=nz(npnum)

npmax=npmax+1

n,npmax,x-dxyz/20,y,z !定义左边界法向结点以便与边界点形成法向单元

type,3

real,3

e,npnum,npmax

d,npmax,all,0. !约束新生成的点

npmax=npmax+1

n,npmax,x,y-dxyz/20,z !定义左边界切向结点以便与边界点形成切向单元

type,2

real,2

e,npnum,npmax

d,npmax,all,0. !约束新生成的点

*enddo

!以下建立右边界法向和切向弹簧阻尼单元

nsel,s,loc,x,L/2

*get,np,node,,count !得到选中的结点数,存入np

*get,npmax,node,,num,maxd !得到已经定义的最大结点数,存入npmax

*do,ip,2,np !侧边界最下面一个点按底边界上处理

npnum=node(L/2,(ip-1)*dxyz,0.)

x=nx(npnum)

y=ny(npnum)

z=nz(npnum)

npmax=npmax+1

n,npmax,x+dxyz/20,y,z !定义右边界法向结点以便与边界点形成法向单元

type,3

real,3

e,npnum,npmax

d,npmax,all,0. !约束新生成的点

npmax=npmax+1

n,npmax,x,y-dxyz/20,z !定义右边界切向结点以便与边界点形成切向单元

type,2

real,2

e,npnum,npmax

d,npmax,all,0. !约束新生成的点

*enddo

allsel,all

/pnum,type,1

/number,1

eplot

finish

!*******************************************************************************
/solu

ANTYPE,trans

TRNOPT,FULL

LUMPM,0

*do,T,1,TNUM,1

Time,T*Dtime

!****************************
*do,inum,1,NBOTM,1 !选中需要加等效荷载的底边界点

npnum=node(-L/2+(inum-1)*dxyz,0.,0.)

F,NPNUM,FX,ARNODE(npnum)*BOTMF(T)

*enddo

!****************************
*do,inum,2,NNODE,1 !选中需要加等效荷载的左边界点

npnum=node(-L/2,(inum-1)*dxyz,0.)

F,NPNUM,FX,ARNODE(npnum)*VERTFN(T,inum)

F,NPNUM,FY,ARNODE(npnum)*VERTFT(T,inum)

*enddo

!****************************
*do,inum,2,NNODE,1 !选中需要加等效荷载的右边界点

npnum=node(L/2,(inum-1)*dxyz,0.)

F,NPNUM,FX,ARNODE(npnum)*VERTFN(T,inum)

F,NPNUM,FY,-1.*ARNODE(npnum)*VERTFT(T,inum)

*enddo

allsel,all

SOLVE

*ENDDO
免费打赏
攻城师55606
2015年12月11日 11:17:21
2楼
谢谢楼主,关于人工边界 我的毕业论文做的是土与结构的分析 关于这方面的不怎么懂 能否指导一下了 我的qq771921723
回复

相关推荐

APP内打开