ANSYS 您所在的位置:网站首页 ansys怎么清除前面的命令流 ANSYS

ANSYS

2023-09-03 11:33| 来源: 网络整理| 查看: 265

生死单元法

文章目录 生死单元法前言一、单元杀死过程二、单元生成三、完整命令总结

前言

通过生成和杀死单元,可以模拟那些单元数随着载荷步的进行不断增加,对按照要求排序后生成和杀死的单元施加载荷和约束,进行循环求解,达到特殊求解要求。如焊接等。

一、单元杀死过程

有限元模型 在这里插入图片描述 单元杀死过程

...... !前面步骤参考前面笔记 *do,I,1,nse !对中间区域单元进行循环 ekill,neorder(i) !杀死排序后的单元 esel,s,live !单元选择 eplot !单元显示 *enddo

在这里插入图片描述

二、单元生成 ......... !前面步骤参考前面笔记 allsel,all /seg,multi,ealive,0.2 !将生成单元动画显示,间隔0.2秒 *do,I,1,nse !对中间区域单元循环 ealive,neorder(i) !生成排序后的单元 esel,s,live !选择没有杀死的单元 eplot !单元显示 esel,all *do,j,1,4 d,nelem(neorder(i),j),temp,max_tem !对单元节点约束 *enddo *enddo /seg,off,ealive,0.2 !结束单元动画生成 anim,1,1

在这里插入图片描述

三、完整命令 finish /clear,start /filname,lell /title,fff /prep7 /unit,si et,1,13,4 et,2,13,4 !==================== mptemp,1,20,500,800,1200,1500 mpdata,ex,1,1,2.09e11,1.72e11,1.33e11,0.84e11,0.45e11 mpdata,ex,2,1,2.16e11,1.78e11,1.42e11,1.04e11,0.68e11 mpdata,ex,3,1,2.12e11,1.75e11,1.39e11,1.07e11,0.83e11 tb,bkin,1,5 tbtemp,20,1 tbdata,1,315e6,2.09e10 tbtemp,500,2 tbdata,1,212e6,1.72e10 tbtemp,800,3 tbdata,1,153e6,1.33e10 tbtemp,1200,4 tbdata,1,93e6,0.84e10 tbtemp,1500,5 tbdata,1,33e6,0.45e10 !材料1 !======================= tb,bkin,2,5 tbtemp,20,1 tbdata,1,330e6,2.12e10 tbtemp,500,2 tbdata,1,213e6,1.75e10 tbtemp,800,3 tbdata,1,153e6,1.39e10 tbtemp,1200,4 tbdata,1,73e6,1.07e10 tbtemp,1500,5 tbdata,1,13e6,0.83e10 !材料2 !========================== tb,bkin,3,5 tbtemp,20,1 tbdata,1,314e6,2.16e10 tbtemp,500,2 tbdata,1,203e6,1.78e10 tbtemp,800,3 tbdata,1,143e6,1.42e10 tbtemp,1200,4 tbdata,1,63e6,1.04e10 tbtemp,1500,5 tbdata,1,13e6,0.68e10! !材料3 !============================= mp,dens,1,7850 mp,dens,2,7770 mp,dens,3,7860 !密度 mp,alpx,1,1.23e-5 mp,alpx,2,1.38e-5 mp,alpx,3,1.48e-5 !线膨胀系数 mp,nuxy,1,0.3 mp,nuxy,2,0.29 mp,nuxy,3,0.29 !泊松比 mp,kxx,1,33 mp,kxx,2,32 mp,kxx,3,34 !导热系数 mp,c,1,561 mp,c,2,683 mp,c,3,983 !比热容 mp,murx,1,1 mp,murx.2.1 mp,murx,3,1 !相对磁导率 mp,reft,1,20 mp,reft,2,1500 mp,reft,3,20 !参考温度 !================================== !================================== *AFUN,DEG csys,0 width=1 beight=0.3 ar=0.14*tan(30) ex=0.01*tan(60) df=ar+ex cf=df/cos(60) !============================ k,1,0,0,0 k,2,width/2-0.01-ar,0,0 k,3,width/2+0.01+ar,0,0 k,4,width,0,0 k,5,width/2-0.01,beight/2-0.01,0 k,6,width/2+0.01,beight/2-0.01,0 k,7,width/2-0.01,beight/2+0.01,0 k,8,width/2+0.01,beight/2+0.01,0 k,9,0,beight,0 k,10,width/2-0.01-ar,beight,0 k,11,width/2+0.01+ar,beight,0 k,12,width,beight,0 !============================= n,1,width/2+0.01+ar,beight,0 !模型中的A点 n,2,width,beight,0 !B点 n,3,width/2+0.01+ar,0,0 !C点 larc,10,11,7,cf larc,2,3,5,cf a,1,2,5,7,10,9 a,10,7,5,2,3,6,8,11 a,3,4,12,11,8,6 /traid,off !关掉坐标的三角符号显示 /plots,info,0 !关掉图形屏幕中信息的显示 /devices,vector,1 !采用向量标示 esize,0.03 type,2 mat,2 amesh,2 esize,0.03 type,1 mat,1 amesh,1 mat,3 amesh,3 nummrg,all numcmp,all /image,save,vmesh,bmp /devices,vector,0 !采用光栅显示模式 finish !=================================== /solu *get,minx,node,,mnloc,x nsel,s,loc,x,minx d,all,ux,0 d,all,temp,20 *get,miny,node,,mnloc,y nsel,s,loc,y,miny d,all,uy,0 nsel,all *get,maxx,node,,mxloc,x nsel,s,loc,x,maxx d,all,temp,20 !====================== *set,nna,2 esel,all *get,emax,elem,,num,max asel,s,area,,nna esla *get,nse,elem,,count *dim,ne,,nse *dim,n1,,nse *dim,n2,,nse *dim,nex,,nse *dim,ney,,nse *dim,neorder,,nse ii=0 *do,I,1,emax *if,esel(i),eq,1,then ii=ii+1 ne(ii)=i *endif *enddo !将焊缝处单元编号存于数组中 *do,I,1,nse *get,ney(i),elem,ne(i),cent,y *get,nex(i),elem,ne(i),cent,x *enddo !将焊缝区单元质心x,y坐标分别放入nex,ney数组中 d=0 *do,I,1,nse *if,ney(i),ge,beight/2,then d=d+1 n2(d)=ne(i) *endif *enddo c=0 *do,I,1,nse *if,ney(i),lt,beight/2,then c=c+1 n1(c)=ne(i) *endif *enddo !将焊缝上面单元存于n2中,下面存于n1中 esel,none *do,I,1,d esel,a,elem,,n2(i) *enddo !选取焊缝上边单元 eplot *create,shanghanf,mac mine=0 *dim,ne2,,d *dim,nex2,,d *dim,ney2,,d *do,i1,1,d esel,u,elem,,mine *get,nse2,elem,,count ii=0 *do,I,1,emax *if,esel(i),eq,1,then ii=ii+1 ne2(ii)=i *endif *enddo *do,I,1,nse2 *get,ney2(i),elem,ne2(i),cent,y *get,nex2(i),elem,ne2(i),cent,x *enddo miny=1e10 minx=1e10 *do,I,1,nse2 *if,ney2(i),lt,miny,then miny=ney2(i) minx=nex2(i) mine=ne2(i) *else *if,ney2(i),eq,miny,then *if,nex2(i),lt,minx,then miny=ney2(i) minx=nex2(i) mine=ne2(i) *endif *endif *endif *enddo neorder(i1)=mine *enddo !对上半部分单元按y轴进行排序 *end *create,xiahanf,mac maxe=0 esel,none *do,I,1,c esel,a,elem,,n1(i) *enddo *dim,ne1,,c *dim,nex1,,c *dim,ney1,,c *do,i1,1,c esel,u,elem,,maxe *get,nse3,elem,,count ii=0 *do,I,1,emax *if,esel(i),eq,1,then ii=ii+1 ne1(ii)=i *endif *enddo *do,I,1,nse3 *get,ney1(i),elem,ne1(i),cent,y *get,nex1(i),elem,ne1(i),cent,x *enddo maxy=-1e10 maxx=-1e10 *do,I,1,nse3 *if,ney1(i),gt,maxy,then maxy=ney1(i) maxx=nex1(i) maxe=ne1(i) *else *if,ney1(i),eq,maxy,then *if,nex1(i),lt,maxx,then maxy=ney1(i) maxx=nex1(i) maxe=ne1(i) *endif *endif *endif *enddo neorder(i1+d)=maxe *enddo *end shanghanf xiahanf !=================== max_tem=1500 dt1=1e-3 dt=5 t=0 esel,all eplot /auto,1 /replot *do,I,1,nse ekill,neorder(i) esel,s,live eplot *enddo eplot allsel,all /seg,multi,ealive,0.2 *do,I,1,nse ealive,neorder(i) esel,s,live eplot esel,all *do,j,1,4 d,nelem(neorder(i),j),temp,max_tem *enddo *enddo /seg,off,ealive,0.2 anim,1, 总结

生死单元法可以对按照某种条件排序后的单元,进行生成和杀死,在这个过程中单元上的载荷及约束也会跟着生成和杀死,这可以很容易的对那些动态单元进行模拟。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

      专题文章
        CopyRight 2018-2019 实验室设备网 版权所有