版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
PFC3D建模流程和代码解释PFC3D建模流程和代码解释PFC3D建模流程和代码解释资料仅供参考文件编号:2022年4月PFC3D建模流程和代码解释版本号:A修改号:1页次:1.0审核:批准:发布日期:本示例表示生成球体在一定的空间内进行运动的部分代码以及代码表示意义。新建一个PFC3D模型必要部分生成的整体日志。PFC3D建模需要的部分和代码解释***********************************************Loggingstartedat周三八月3016:50:552017*Bypfc3dVersionRelease025***JobTitle:Pandectexample**********************************************pfc3d>pfc3d>;3-设置模型名称,可有可无。pfc3d>title'Pandectexample'pfc3d>pfc3d>;4-设定计算区域(必要条件)pfc3d>;Setthedomainextentpfc3d>domainextent-2020;domain当中有两个关键词是condition和extent,condition指的是边界条件periodic;destroy;stop;reflect;condition默认值是stop。extent指的是模型区域pfc3d>pfc3d>;5-指定随机种子(若不指定,种子随机)pfc3d>setrandom10001;默认值是一万,且数量级是相同的数量级,也就是该随机数值10000不能过大,不能过小。设置随机种子以后,生成的颗粒的半径和位置都在范围内随机。pfc3d>pfc3d>;6-生成及修改模型组件(必要条件),有三种命令是来生成颗粒的,generate,create,distribute。pfc3d>;Generate30ballsinabox,wall就是一个生成颗粒的容器。pfc3d>wallgeneratebox---ThewallboxWallBottom1withid1and2facetshasbeencreated---ThewallboxWallTop2withid2and2facetshasbeencreated---ThewallboxWallLeft3withid3and2facetshasbeencreated---ThewallboxWallRight4withid4and2facetshasbeencreated---ThewallboxWallFront5withid5and2facetshasbeencreated---ThewallboxWallBack6withid6and2facetshasbeencreatedpfc3d>;ballcreatepfc3d>ballgenerateradiusboxnumber1000+++Fewerballsweregeneratedthanspecified!34ballsoutof1000generatedin20000tries.pfc3d>;balldistributepfc3d>pfc3d>;7-组件分组,颗粒分组,墙体分组。pfc3d>pfc3d>ballgroupsmall_ballsrangeradius---Groupsmall_ballsassignedto14Ballsinslot1.pfc3d>ballgroupbig_ballsrangeradius---Groupbig_ballsassignedto20Ballsinslot1.pfc3d>pfc3d>;8-施加实体属性(必要条件),实体属性的意思是这些属性是作用在颗粒的中心的。pfc3d>;Assignballdensity,颗粒的实体属性一般都是由attribute这个属性来添加。fix是来限制颗粒的移动方向和位移。pfc3d>ballattributedensity---Attributedensityinitializedin34ball(s).pfc3d>ballfixzvelocityrangegroupbig_balls---Fixityconditionschangedin20balls.pfc3d>pfc3d>pausekeyPressanykeytocontinue--pfc3d>pfc3d>ballattributeradiusmultiply;这是半径放大和缩小倍数的,这句话的意思是,生成的半径乘以倍。---Attributeradiusinitializedin34ball(s).pfc3d>ballattributedamp;局部阻尼,默认值是,在是---Attributedampinitializedin34ball(s).pfc3d>pfc3d>pausekeyPressanykeytocontinue--pfc3d>pfc3d>;9-指定接触模型(必要条件)pfc3d>;ModifythedefaultslotsoftheContactModelAssignmentTablepfc3d>;Herewechoosethelinearcontactmodel(withkn=1e6)forallcontacttypespfc3d>cmatdefaultmodellinearpropertyknfric;定义法向刚度为10的6次方。pfc3d>pfc3d>;10-设置表面属性,也就是说这些属性是作用在颗粒表面的。pfc3d>ballpropertykn2e6ks1e6fric;要通过属性转换才能转到50行的fric---Propertyknassignedto34ball(s)inrange.---Propertyksassignedto34ball(s)inrange.---Propertyfricassignedto34ball(s)inrange.pfc3d>pfc3d>;11-添加重力场pfc3d>;Activategravitypfc3d>setgravitypfc3d>pfc3d>;12-设定时间步长(若不指定,取默认值,默认值为模拟时间步长)pfc3d>settimestepmaximum5e-3---maximumtimestepsettoinmechanicalprocess.pfc3d>pfc3d>deftimestepDef>timestep=(m/K)Def>time=;得到模拟时间从而设置时间步长的时候要将时间步长设置的小于该模拟时间,否则该设置的时间步长将会被忽略。Def>endpfc3d>pfc3d>;13-记录数据pfc3d>wallhistoryid1zcontactforceid1---Createdhistory1Z-ContactForceofwall1pfc3d>pfc3d>pause5;现在是数字,指的是暂停五秒,如果是pausekey的话,则是摁任意键继续。pfc3d>pfc3d>;14-计算求解(必要条件)主要是三个命令,step,cycle,solvetime。pfc3d>;Solveforagiventimeandsavethemodelpfc3d>;step1000,step很少用,几乎用不到。step和cycle后面都是跟的步数。pfc3d>;cycle2002pfc3d>solvetimeCycleTotalTimestepMechTimeClock-----------------------------------------------------20002000+0100:00:00:24+01---Limittimeof+01metinprocess(es):mechBall+01),mechClump+01),mechWall+01).---Cyclingendedat:2017-08-3016:51:36pfc3d>pfc3d>;15-输出数据pfc3d>historywrite1filewzcforce;.csv,如果不加扩展名默认的扩展名是.his,his文件可以用文本打开。---HistorycontentswrittentofileD:/安装程序/PFC/PFC学习版2d+3d+例子/01-模型基本组成/.pfc3d>pfc3d>;16-保存模型及模型调用,保存模型是以.p3sav为扩展名的一个文件。通过restore来调用模型。pfc3d>savepandect_example---ModelsavedtofileD:/安装程序/PFC/PFC学习版2d+3d+例子/01-模型基本组成/pfc3d>pfc3d>;pausepfc3d>;cmat命令一个模型当中前后计算设置不同的接触最好不要。pfc3d>;ballattributedisplacementmultiply,清空颗粒的位移。清空以后都是0.pfc3d>pfc3d>setlogoff***********************************************Loggingendedat周三八月3016:51:372017**********************************************建模部分代码-建立尾矿坝的一部分newdomainextent-50350-50350balldistributeporosityradiusbox03000200ballattributedensity2500dampgeometryimportballdelranggeometry01count1notwallimportgeometry01geometryimportwallimportgeometry02[porosity=][area=7948]setrandom10001defball_creati=50000a=area*(1-porosity)loopwhilearea_sum<=af1=f2=f3=radius_1=+f3*x_1=2+80*f1y_1=2+42*f2commandballcreateid=@iradius=@radius_1x=@x_1y=@y_1endcommandi=i+1area_1=radius_1*radius_1*area_sum=area_sum+area_1end_loopend@ball_creatballattributedensity2700cmatdefaulttypeball-facetmodellinearpropertykn1e10cmatdefaulttypeball-ballmodellinearpbondmethoddeformemod2e8kratio2cyc100000calm1000walldelgeometrydelgeometryimportgeometryimportgeometryimportballgroup1ranggeometry02count1ballgroup2ranggeometry05count1ballgroup3ranggeometry06count1savemodel接触模型的部分代码书写例子一;fname:;;IllustratesimpleusageoftheCMAT;(Alldefaultslotsfilledwiththesamedata);==============================================================================newsetrandom10001domainextentconditiondestroy;定义该计算区域wallgenerateboxonewall;生成墙体ballgeneratenumber200radiusbox;生成了200个颗粒,也可能生成不了那么多的颗粒,半径为*10的-3次方,*10的-3次方,颗粒范围为*10的-2次方即为,ballattributedensity;设置密度为2500;setALLthedefaultslotsoftheCMATcmatdefaultmodellinearpropertykn1e6dp_nratio;指定了接触模型为线性接触模型,法向刚度为10的6次方,法向临界阻尼比为setgravity;设置了重力加速度为cycle1000pausekey;setALLthedefaultslotsoftheCMATcmatdefaultmodellinearpropertykn1e7dp_nratiolin_mode1;指定了接触模型为线性接触模型,法向刚度为10的7次方,法向临界阻尼比为,控制接触力的法向接触更新模式为1.cmatapplyrangex;接触模型的应用范围为x方向到,cmatapply指的是将新建的模型添加在已有的模型上。solvearatio1e-4;solvearatio等于平均不平衡力与平均接触力的比值,默认值是10的-5次方。但是不能太小,因为太小了以后会造成模型完成时间过长。用step和cycle也是可以求解的。savecmat1;保存接触模型为1.return;==============================================================================;eof:例子二;fname:;;IllustratesimpleusageoftheCMAT;(Defaultslotsfilledwiththedifferentdata);==============================================================================newsetrandom10001domainextentconditiondestroywallgenerateboxonewallballgeneratenumber200radiusboxballattributedensity;生成了和cmat1一样的模型,只是在接触模型上有了变化。;setdifferentcontactmodelsfortheball-ballandball-facetcontacttypescmatdefaulttypeball-ball...modelhertz...;赫兹接触模型,颗粒与颗粒之间propertyhz_shear30e9hz_poiss...;赫兹切向模量30的9次方,赫兹泊松比为fric...;摩擦系数dp_nratio;法向临界阻尼比为pertykn1e6dp_nratiosetgravitysolvesavecmat2return;对两种接触模型分别定义;==============================================================================;eof:例子三;fname:;;IllustrateadvancedusageoftheCMAT;(DefaultandOptionalslotsfilledwithdifferentdata);==============================================================================newsetrandom10001domainextentconditiondestroy;生成了两组颗粒,在ballgenerate当中用了group命令wallgenerateboxonewallballgeneratenumber100radiusboxgroupglass;玻璃球ballgeneratenumber100radiusboxgroupsteel;钢球ballattributedensityrangegroupglass;定义密度ballattributedensityrangegroupsteel;contactgroupleftrangex0;contactgrouprightrangex0contactgroupbehaviorand;contactgroupbehavior后面有三个关键词,and,or,contact。and关键词指的是颗粒与颗粒之间的接触是cmatadd定义的模型作用的范围只限于该组内部的接触,而对于另外组的接触则不定义。如果说是选的关键词是or定义的范围只要颗粒属于这个组,则定义的模型范围是所有与这个组相接触。contact关键词是用来根据颗粒的分组来判断接触的。通过对接触分组来对某个范围内的颗粒定义接触。;不论cmatadd1modelhertz,cmatadd2modelhertz,cmatdefaulttypeball-ball,cmatdefaulttypeball-facet这四个的顺序怎么样,总是按照这个顺序来执行pertyhz_shear30e9hz_poiss...;30Gpa的切向模量,的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 线上教育的利弊分析
- 结构毕业设计
- 安徽省滁州市2025-2026学年高一生物下学期期中试题 (一)【含答案】
- 2026偏执型精神分裂症患者护理查房解读
- 2026压力性损伤的预防与护理解读
- 教育机器人应用与发展研究
- 夏天运动健康活动中班实施指南
- 别墅施工图设计技术体系
- 景观桥梁设计分享
- 党建活动经费使用规范与管理要点
- 辽宁省点石联考2025-2026学年高一上学期11月期中测试化学试卷(含答案)
- 村级三资监督范围课件
- 2025中国银发经济市场与投资赛道66条
- 2025年青海省初二生地会考试题(省卷非市卷)及答案
- 2025年-《中华民族共同体概论》课程教学大纲-中南民族大学-新版
- 音乐交流会课件
- 地下排水管网探测与测绘技术方案
- 水厂运行管理规程及检测报告模板
- 碎石生产线设备维护与保养方案
- 水库护坡除草方案(3篇)
- 矿水厂合作合同协议书模板
评论
0/150
提交评论