PFC3D建模流程和代码解释_第1页
PFC3D建模流程和代码解释_第2页
PFC3D建模流程和代码解释_第3页
PFC3D建模流程和代码解释_第4页
PFC3D建模流程和代码解释_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本示例表示生成球体在一定的空间内进行运动的部分代码以及代码表示意义。新建一个PFC3D模型必要部分生成的整体日志。PFC3D建模需要的部分和代码解释* Logging started at 周三 八月 30 16:50:55 2017* By pfc3d Version 5.00 Release 025* * * Job Title: Pandect example*pfc3d pfc3d; 3-设置模型名称,可有可无。pfc3dtitle Pandect examplepfc3d pfc3d; 4-设定计算区域(必要条件)pfc3d; Set the domain extentpfc3ddomain extent -10.0 10.0 -20 20 ; domain当中有两个关键词是condition和extent,condition指的是边界条件 periodic ;destroy ;stop ;reflect;condition默认值是stop。extent指的是模型区域pfc3d pfc3d; 5-指定随机种子(若不指定,种子随机)pfc3dset random 10001;默认值是一万,且数量级是相同的数量级,也就是该随机数值10000不能过大,不能过小。设置随机种子以后,生成的颗粒的半径和位置都在范围内随机。pfc3d pfc3d; 6-生成及修改模型组件(必要条件),有三种命令是来生成颗粒的,generate,create,distribute。pfc3d; Generate 30 balls in a box,wall就是一个生成颗粒的容器。pfc3dwall generate box -5.0 5.0- The wall boxWallBottom1 with id 1 and 2 facets has been created- The wall boxWallTop2 with id 2 and 2 facets has been created- The wall boxWallLeft3 with id 3 and 2 facets has been created- The wall boxWallRight4 with id 4 and 2 facets has been created- The wall boxWallFront5 with id 5 and 2 facets has been created- The wall boxWallBack6 with id 6 and 2 facets has been createdpfc3d;ball createpfc3dball generate radius 1.0 1.4 box -5.0 5.0 number 1000+ Fewer balls were generated than specified! 34 balls out of 1000 generated in 20000 tries.pfc3d;ball distributepfc3d pfc3d; 7-组件分组,颗粒分组,墙体分组。pfc3d pfc3dball group small_balls range radius 1.0 1.2- Group small_balls assigned to 14 Balls in slot 1.pfc3dball group big_balls range radius 1.2 1.4- Group big_balls assigned to 20 Balls in slot 1.pfc3d pfc3d; 8-施加实体属性(必要条件),实体属性的意思是这些属性是作用在颗粒的中心的。pfc3d; Assign ball density,颗粒的实体属性一般都是由attribute这个属性来添加。fix是来限制颗粒的移动方向和位移。pfc3dball attribute density 100.0- Attribute density initialized in 34 ball(s).pfc3dball fix zvelocity range group big_balls- Fixity conditions changed in 20 balls.pfc3d pfc3dpause keyPress any key to continue - pfc3d pfc3dball attribute radius multiply 1.2;这是半径放大和缩小倍数的,这句话的意思是,生成的半径乘以1.2倍。- Attribute radius initialized in 34 ball(s).pfc3dball attribute damp 0.7; 局部阻尼,PFC3.0-4.0默认值是0.7,在PFC5.0是0.0- Attribute damp initialized in 34 ball(s).pfc3d pfc3dpause keyPress any key to continue - pfc3d pfc3d; 9-指定接触模型(必要条件)pfc3d; Modify the default slots of the Contact Model Assignment Tablepfc3d; Here we choose the linear contact model (with kn=1e6) for all contact typespfc3dcmat default model linear property kn 1.0e6 fric 0.0;定义法向刚度为10的6次方。pfc3d pfc3d; 10-设置表面属性,也就是说这些属性是作用在颗粒表面的。pfc3dball property kn 2e6 ks 1e6 fric 0.0;要通过属性转换才能转到50行的fric- Property kn assigned to 34 ball(s) in range.- Property ks assigned to 34 ball(s) in range.- Property fric assigned to 34 ball(s) in range.pfc3d pfc3d; 11-添加重力场pfc3d; Activate gravitypfc3dset gravity 10.0pfc3d pfc3d; 12-设定时间步长(若不指定,取默认值,默认值为模拟时间步长)pfc3dset timestep maximum 5e-3- maximum timestep set to 0.005 in mechanical process.pfc3d pfc3ddef timestep Def timestep = math.sqrt(m/K) Def time = mech.age;得到模拟时间从而设置时间步长的时候要将时间步长设置的小于该模拟时间,否则该设置的时间步长将会被忽略。 Defendpfc3d pfc3d; 13-记录数据pfc3dwall history id 1 zcontactforce id 1- Created history 1 Z-ContactForce of wall 1pfc3d pfc3dpause 5;现在是数字,指的是暂停五秒,如果是pause key的话,则是摁任意键继续。pfc3d pfc3d; 14-计算求解(必要条件)主要是三个命令,step,cycle,solve time。pfc3d; Solve for a given time and save the modelpfc3d;step 1000,step很少用,几乎用不到。step和cycle后面都是跟的步数。pfc3d;cycle 2002pfc3dsolve time 10.0 Cycle Total Timestep Mech Time Clock- - - - - 2000 2000 5.00000E-03 1.000000e+01 00:00:00:24 1.000000e+01 - Limit time of 1.000000e+01 met in process(es): mech Ball (1.000000e+01),mech Clump (1.000000e+01),mech Wall (1.000000e+01).- Cycling ended at: 2017-08-30 16:51:36pfc3d pfc3d; 15-输出数据pfc3dhistory write 1 file wzcforce ;.csv,如果不加扩展名默认的扩展名是.his,his文件可以用文本打开。- History contents written to file D:/安装程序/PFC/PFC学习版2d+3d+例子/01-模型基本组成/PFC5.0-3D/wzcforce.his.pfc3d pfc3d; 16-保存模型及模型调用,保存模型是以.p3sav为扩展名的一个文件。通过restore来调用模型。pfc3dsave pandect_example- Model saved to file D:/安装程序/PFC/PFC学习版2d+3d+例子/01-模型基本组成/PFC5.0-3D/pandect_example.p3savpfc3d pfc3d;pausepfc3d;cmat命令一个模型当中前后计算设置不同的接触最好不要。pfc3d;ball attribute displacement multiply 0.0,清空颗粒的位移。清空以后都是0.pfc3d pfc3dset log off* Logging ended at 周三 八月 30 16:51:37 2017*建模部分代码-建立尾矿坝的一部分newdomain extent -50 350 -50 350 ball distribute porosity 0.06 radius 0.5 0.75 box 0 300 0 200ball attribute density 2500 damp 0.7geometry import 01.dxfball del rang geometry 01 count 1 notwall import geometry 01geometry import 02.dxfwall import geometry 02porosity=0.04area=7948set random 10001def ball_creat i=50000a=area*(1-porosity)loop while area_sum=a f1 = math.random.uniform f2 = math.random.uniform f3 = math.random.uniform radius_1=0.75+f3*(2-0.75) x_1=2+80*f1 y_1=2+42*f2 command ball create id=i radius=radius_1 x=x_1 y=y_1 endcommand i=i+1area_1=radius_1*radius_1*math.piarea_sum=area_sum+area_1end_loopendball_creatball attribute density 2700cmat default type ball-facet model linear property kn 1e10 cmat default type ball-ball model linearpbond method deform emod 2e8 kratio 2cyc 100000 calm 1000wall delgeometry delgeometry import 02.dxfgeometry import 05.dxfgeometry import 06.dxfball group 1 rang geometry 02 count 1ball group 2 rang geometry 05 count 1ball group 3 rang geometry 06 count 1save model接触模型的部分代码书写例子一; fname: cmat1.p2dat; Illustrate simple usage of the CMAT ; (All default slots filled with the same data) ;=newset random 10001domain extent -1.5e-2 1.5e-2 condition destroy;定义该计算区域wall generate box -1.0e-2 1.0e-2 onewall;生成墙体ball generate number 200 radius 0.4e-3 0.6e-3 box -1.0e-2 1.0e-2 ;生成了200个颗粒,也可能生成不了那么多的颗粒,半径为0.4*10的-3次方,0.6*10的-3次方,颗粒范围为-1.0*10的-2次方即为-0.01,0.01ball attribute density 2500.0;设置密度为2500; set ALL the default slots of the CMATcmat default model linear property kn 1e6 dp_nratio 0.0;指定了接触模型为线性接触模型,法向刚度为10的6次方,法向临界阻尼比为0.0set gravity 9.81;设置了重力加速度为9.81cycle 1000pause key; set ALL the default slots of the CMATcmat default model linear property kn 1e7 dp_nratio 0.2 lin_mode 1;指定了接触模型为线性接触模型,法向刚度为10的7次方,法向临界阻尼比为0.2,控制接触力的法向接触更新模式为1.cmat apply range x 0.0 1.5e-2;接触模型的应用范围为x方向0.0到0.015,cmat apply指的是将新建的模型添加在已有的模型上。solve aratio 1e-4;solve aratio等于平均不平衡力与平均接触力的比值,默认值是10的-5次方。但是不能太小,因为太小了以后会造成模型完成时间过长。用step和cycle也是可以求解的。save cmat1;保存接触模型为1.return;=; eof: cmat1.p2dat例子二; fname: cmat2.p2dat; Illustrate simple usage of the CMAT ; (Default slots filled with the different data) ;=newset random 10001domain extent -1.5e-2 1.5e-2 condition destroywall generate box -1.0e-2 1.0e-2 onewallball generate number 200 radius 0.4e-3 0.6e-3 box -1.0e-2 1.0e-2 ball attribute density 2500.0;生成了和cmat1一样的模型,只是在接触模型上有了变化。; set different contact models for the ball-ball and ball-facet contact types cmat default type ball-ball . model hertz .;赫兹接触模型,颗粒与颗粒之间 property hz_shear 30e9 hz_poiss 0.3 .;赫兹切向模量30的9次方,赫兹泊松比为0.3 fric 0.25 .;摩擦系数0.25 dp_nratio 0.2;法向临界阻尼比为0.2 cmat default type ball-facet . model linear . property kn 1e6 dp_nratio 0.2set gravity 9.81solvesave cmat2return;对两种接触模型分别定义;=; eof: cmat2.p2dat例子三; fname: cmat3.p2dat; Illustrate advanced usage of the CMAT ; (Default and Optional slots filled with different data) ;=newset random 10001domain extent -1.5e-2 1.5e-2 condition destroy;生成了两组颗粒,在ball generate当中用了group命令wall generate box -1.0e-2 1.0e-2 onewallball generate number 100 radius 0.4e-3 0.6e-3 box -1.0e-2 1.0e-2 group glass ;玻璃球ball generate number 100 radius 0.4e-3 0.6e-3 box -1.0e-2 1.0e-2 group steel ;钢球ball attribute density 2500.0 range group glass;定义密度ball attribute density 7500.0 range group steel;contact group left range x -1.5e-2 0;contact group right range x 0 1.5e-2contact groupbehavior and ;contact groupbehavior后面有三个关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论