您的当前位置:首页正文

采用ANSYS软件建立混凝土试件三维随机骨料模型

2021-02-13 来源:步旅网


ANSYS模拟仿真软件apdl语言命令流-

——混凝土试件的三维随机骨料建模

FINISH

/clear,nostart

!-----------三维混凝土150试件,单轴拉伸模拟

!-------映射剖分,以最小骨料半径剖分网格,判断属性,不细分

!=================================================

xmin=1$xmax=149$ymin=1$ymax=149$zmin=1$zmax=149 !定义坐标范围

anum=120$bnum=230$cnum=510 !定义三种组分骨料个数

num=anum+bnum+cnum

rmin=8$rmax=10$brmin=5$brmax=8$crmin=2.5$crmax=5 !定义骨料半径范围

*dim,agv,array,num,4 !存放骨料位置及半径的数组

cum=0

icum=0

*do,i,1,20000

*if,cum,eq,num,then

*exit

*endif

*if,icum,eq,anum,then

rmin=brmin$rmax=brmax

*elseif,icum,eq,(anum+bnum),then

rmin=crmin$rmax=crmax

*endif

x=rand(xmin,xmax)$y=rand(ymin,ymax)$z=rand(zmin,zmax)$r=rand(rmin,rmax)

*if,x-r,gt,xmin,and,x+r,lt,xmax,then

*if,y-r,gt,ymin,and,y+r,lt,ymax,then

*if,z-r,gt,zmin,and,z+r,lt,zmax,then

*if,cum,eq,0,then

cum=cum+1

icum=icum+1

agv(cum,1)=x$agv(cum,2)=y$agv(cum,3)=z$agv(cum,4)=r

*else

sum=0

*do,j,1,cum

dist=sqrt((agv(j,1)-x)**2+(agv(j,2)-y)**2+(agv(j,3)-z)**2)!1.05为 骨料影响范围系数

*if,dist,lt,1.1*(agv(j,4)+r),then

*exit

*else

sum=sum+1

*endif

*enddo

*if,sum,eq,cum,then

cum=cum+1

icum=icum+1

agv(cum,1)=x$agv(cum,2)=y$agv(cum,3)=z$agv(cum,4)=r

*endif

*endif

*endif

*endif

*endif

*enddo

!/TRLCY,volu,1,221

!/TRLCY,area,1,221

!=====================先划分网格,然后每个单元分给一个材料号====================

!=====================按weibull概率====================

/prep7

ET,1,SOLID45

BLOCK,0,150,0,150,0,150 !生成投放区域

LSEL,ALL

LESIZE,ALL,,,100

VSEL,ALL

mshape,0,3d$mshkey,1 !自由网格,划分砂浆 vmesh,all

分布 赋予 属性

EMODIF,ALL,MAT,2,

GULIAO=0

JIEDIANX=0$JIEDIANY=0$JIEDIANZ=0 !判断骨料砂浆属性

!和所有的骨料比较

*DO,i,1,NUM

ALLSEL,ALL

NSEL,S,LOC,X,agv(i,1)-agv(i,4),agv(i,1)+agv(i,4)

NSEL,R,LOC,Y,agv(i,2)-agv(i,4),agv(i,2)+agv(i,4)

NSEL,R,LOC,Z,agv(i,3)-agv(i,4),agv(i,3)+agv(i,4)

ESLN,S

!选择集

*GET,ENUM,ELEM,0,COUNT

*GET,EMIN1,ELEM,0,NUM,MIN

*DIM,ELEM,ARRAY,ENUM

ES=EMIN1-1

*DO,J,1,ENUM

ES=ELNEXT(ES)

ELEM(J)=ES !单元的编号

*ENDDO

!遍历单元

*DO,K,1,ENUM

GULIAO=0

*IF,ELMIQR(ELEM(K),-1),EQ,2,THEN !循环比较8个节点

*DO,L,1,6

JIEDIANX=NX(NELEM(ELEM(K),L))

!

JIEDIANY=NY(NELEM(ELEM(K),L))

JIEDIANZ=NZ(NELEM(ELEM(K),L))

distA=sqrt((agv(i,1)-JIEDIANX)**2+(agv(i,2)-JIEDIANY)**2+(agv(i,3)-JIEDIANZ)**2)

*IF,distA,LT,AGV(i,4),THEN

GULIAO=GULIAO+1

*ENDIF

*ENDDO

*IF,GULIAO,EQ,6,THEN

EMODIF,ELEM(K),MAT,1

*ELSEIF,GULIAO,LT,6,AND,GULIAO,GT,0,THEN

EMODIF,ELEM(K),MAT,3

*ENDIF

*ENDIF

*ENDDO

*SET,ELEM(1),

*ENDDO

!==========================建模完成

====================

因篇幅问题不能全部显示,请点此查看更多更全内容