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
!==========================建模完成
====================
因篇幅问题不能全部显示,请点此查看更多更全内容