PFC5.0命令和建模流程.pptx
- 文档编号:30800566
- 上传时间:2023-10-27
- 格式:PPTX
- 页数:103
- 大小:8.84MB
PFC5.0命令和建模流程.pptx
《PFC5.0命令和建模流程.pptx》由会员分享,可在线阅读,更多相关《PFC5.0命令和建模流程.pptx(103页珍藏版)》请在冰豆网上搜索。
颗粒流数值分析软件PFC5.0,对比,颗粒流PFC5.0和颗粒流PFC4.0区别,1、自动多线程和有效的接触探测,2、Clump模板的新运算/可视化,4、墙面的新运算,5、离散裂隙网络(DFN),3、生成Ball/Clump的新用法,7、应用实例,6、其他变化,PFC4.0回顾,DistinctElementMethod模型组成单元:
颗粒+墙体边界条件初始条件接触模型计算,5.0,PFC5.0版本架构和设计,原有功能仍能实现但语法结构被改变,新增概念,4.0,PF5.0路线图,4.0,PFC5.0和4.0区别,自动多线程和有效的接触探测,多线程,PFC5.0自动利用计算机自身所有的计算资源所有与计算相关的部分都是多线程的:
时步计算运动方程力位移原理接触查询默认采用Deterministic模式进行建模计算,以保证模型可重复性;如果使用非Deterministic模式,自身性能约有10%的提升FISH相关的编译功能仍保持单线程,20,000Balls,700,000Balls,70万颗粒,PFC5耗时1.7min,PFC4耗时3.3h(从数据文件读取),颗粒流PFC5.0SpeedStaticAssembly,将空间分为等尺寸单元动态查询单元保证了最优搜索性能采用了零等待数据结构(多线程环境下),高效的空间搜索,PFC5.0和4.0区别,Clump模板的新运算/可视化,生成Ball/Clump的新用法,刚性连接的pebble,可以复制和观察可以导入dxf/stl文件,作为clump的边界面,但文件内的几何模型必须是有向的,边界衔接且封闭的。
惯性参数(体积,惯性矢量)可通过以下方式确定:
用户输入从pebble的分布计算从clump的边界面计算,Clump模板,22Pebbles,内置BubblePack算法:
用pebble将clump的边界面内的空间按照目标状态填充(中轴逼近法),BubblePack,573Pebbles,110Pebbles,PFC5.0和4.0区别,生成Ball/Clump的新用法,应用实例,其他变化,快捷的生成,在立方体或者六面体内随机生成不重叠颗粒或者clump(根据方向),采用ballgenerate命令生成70万颗粒仅用时1.7s,根据目标孔隙率和颗粒级配生成颗粒或clump(颗粒间有重叠),balldistribute,与颗粒级配匹配,PFC5.0和4.0区别,墙面的新运算,墙面二维中是直线;三维中是三角形,从dxf/stl文件导入(有方向,边缘相接)由PFC直接生成简单形状boxes,circlesin2D;cones,cylinders,spheres,boxes,discs,planesin3D,墙的两侧默认都是active面(可更改)凹凸几何形状被自动处理接触的识别保证了行为的真实性,墙面接触,PFC5.0和4.0区别,离散裂隙网络(DFN),应用实例,其他变化,简单而有效地按照标准或者传统的统计分布生成DFN,离散裂隙网络DFN的生成,已知裂隙组,完整裂隙模型,在粘性颗粒上覆盖裂隙,并插入光滑节理接触模型,以模拟综合岩体(SRMSyntheticRockMass),DFN+PFC结合形成SRM,测量力学特性和裂隙几何特征,DFN+PFC5合成岩体SRM,大小不一的裂隙,摩擦型节理用以区分可变形块体和破碎型块体,PFC5.0和4.0区别,离散裂隙网络(DFN),应用实例,其他变化,任何模型的数据文件必始于Domain,否则模型无效名称定义更具体,易识别F1帮助键不再区分大小写符号约定宏定义取消CMAT,默认接触模型为NULLLocaldamp默认为0Bodiesandpieces接触类型:
ball-ball、ball-facet、ball-pebble、pebble-pebble、pebble-facet;Loopforeach,球、pebble的遍历互不影响Attribute&property,时步(timestep),更能保证计算的稳定性;用户界面(可随时编译数据文件,可随时改变视图)内联fish(InlineFish):
直接在comand状态下写fishballIDLocal和global变量Loops测量圆(球)不再有manualFishtank单独下载,domain领域P1041,所有组分(球、墙等)都应该在领域内,领域必须在其他组分创建之前建立。
domainextent-1010conditiondestroy创建一个X(YZ)方向都为-10到10的领域,超过边界则删除球,Conditionssx设置领域边界条件。
如果是sx则x方向的两个面都会生效,yz同。
如果只指定x方向,则对所有面都有效。
stop(默认)组分的图心如果飞出领域外,则速度和角速度会被清零,定在边界上。
reflect,速度会变成相反,旋转速度不变。
不过这个指令慎用,容易产生不稳定destroy超过领域直接删除periodic周期性。
如果超出,则会在另一边重现extentfxlfxu修改领域边界位置,如果只有fx1和fxu则3个边都相同。
domain领域,几何命令用于创建、导入导出几何数据。
这些数据可以与模型多方面相互作用,也可以通过FISH语言的筛选器处理。
创建几何图形不需要创建领域,因为它们不是模型的组成部分。
可以使用geometyimport命令从stl、dxf或者itasca的几何标准库中导入几何数据。
geometry几何P1078,geometrygeneratebox-1010创建一个X(YZ)方向都为-10到10的盒子形几何体,geometry几何命令,geometrycopy复制几何体命令geometrydelete删除几何体命令geometryedge几何边命令gemetryexplode几何分解命令geometryexport几何导出命令geometrygenerate生成几何体命令geometrygroup几何组命令geometryimport几何导入命令geometrylist几何列表命令geometrynode几何点命令geometrypolygon几何多边形命令geometryrotate几何旋转命令geometryset几何集命令geometrytessellate几何镶嵌命令,ball球P232,球是刚体,半径为R,球表面有一系列的参数。
球可以平动和转动,平动速度和角速度,球的运动遵循运动定理,球运动中必须包含以下参数:
质量,荷载情况和速度。
质量参数包括质量、质心位置和惯性距(m,x,I),质量参数由密度p和半径定义。
荷载情况可以由以下几种情况定义:
与其他球或者墙相互作用产生的力和力矩重力自定义的力和力矩速度由Vf定义(2D三个值,3D6个值)球可以通过3种方式产生在领域内:
1、产生一个球(ballcreate);2、产生一系列无重叠的球(ballgenerate);3、分配一些重叠的球到一个特定的范围(balldistribute)ballattribute和ballproperty命令可以用来指定球的属性,使用balllistattribute和balllistproperty命令可以列出球属性和属性值,所有的球必须在domain中产生,ball球指令,ballattribute设置球的属性值(固有属性)ballcreate产生一个特定属性的球balldelete删除球balldistribute根据孔隙比来产生球ballextra设置球的额外变量ballfix固定球的速度ballfree解除球指定速度(与FIX相反)ballgenerate产生无重叠的球ballgroup指定球组名称ballhistory记录一个球历史数据ballinitialize修改球的属性balllist列出球的属性ballproperty指派球的表面属性ballresult修改球逻辑结果balltolerance设置接触响应阀值balltrace记录球的轨迹,Historyball、listball、traceball可以置换顺序,ballcreate产生一个球P241,生成一个特定属性的球:
ballcreate命令是3种产生球命令之一,还有两种命令是ballgenerate和balldistribute。
ballcreate命令可以用于产生单个球。
利用默认参数,生成一个半径为领域1/40,球心为原点的球。
domainextent-10.010.0ballcreatex-5.0ballcreatex5.0radius4.0ballcreateid10x0.0radius1.0groupmiddle,balldistribute根据孔隙比来产生球P246,分配球(有重叠)到一个区域。
这个步骤当孔隙比达到目标值时将会停止(不算重叠部分)。
默认状态下球的位置和半径在整个模型领域内统一分配。
因此,球的产生受随机数生成器影响(setrandom)。
球的半径还可以通过gauss关键词来生成高斯分布的球。
当分配一定量的球的时候,通过半径范围和体积分数,可以定义。
生成球时,划定一个可选范围来生成球,保证最后分配的球打到目标标准。
当达到以下条件时,这个命令才与ballgenerate产生区别1)球的目标数目已经达到或者2)尝试次数达到标准时,ballgenerate无法产生更多的球,而balldistribute由于可以重叠,所以可以产生更多的球。
note(球生成前必须先定义领域domain)note(球会重叠)note(当执行循环时,只能在循环点前生成球),balldistributeradius1.01.6porosity0.30,ballgenerate生成无重叠球P255,生成没有重叠的球,当球数量达到目标数目或者尝试次数用完时停止。
默认状态下球的位置和半径会均匀分布在领域内,因此球的特性受随机数生成器的影响。
球也可以通过高斯分布关键词gauss来让球变成高斯分布,规则排列的方形和六边形可以通过cubic和hexagonal关键词实现。
可选区域内的球会被赋予可选属性,否则不会被赋予该属性。
如果生成球会完全包含在BOX内用这个命令生成的球不会重叠。
默认尝试20000次,ballgenerateradius0.50.7number100box-5.00.0-5.05.0tries2000,ballattribute设置球的属性值P234,ballattribute命令主要用于修改球的固有属性,如半径、位置、密度、速度等参数,应与ballproperty相区分,后者主要用于修改球表面参数。
ballattribute与ballinitialize同义如果球未完全落入领域内,则修改球的几何参数将会失效,domainextent-1010conditiondestroycmatdefaultmodellinearpropertykn1e6dp_nratio0.2setrandom10001wallgeneratebox-55onewallballgenerateid1100box-4.54.50.00.0radius0.5cubicballattributedensity1000.0ballattributevelocity(0.0,0.0,-1.0)rangex-4.50.0ballattributeappliedforce(0.0,0.0,-1.0)rangex-4.50.0notcycle10000,ballproperty设置球的表面属性P269,球属性property是表面属性property,能用于填充接触模型,与ballattribute命令不同,attribute用于定义球的位置或者大小等基本属性,property用于赋予力学属性,在contactmodel中有介绍。
每一个接触模型都有一张property的参数表,包括linear线性,linearcontactbond,linearparallelbond,hertz,hysteretic,smoothjoint和flatjoint等,ballpropertykn1e8rangex-100,wall墙P499,操作墙,wallactiveside指定有效面walladdfacet增加一个facet面wallattribute设置墙的属性wallconveyor将一个旋转速度输送给面wallcreate通过顶点创建一个墙walldelete删除墙或面wallextra设置墙面的额外变量wallgenerate用特定形状来生成墙wallgroup指定墙或面的组名wallhistory增加一个墙的历史wallimport从外部导入一个墙wallinitizlize修改墙属性wallresolution修改接触-分辨率wallresult修改墙的逻辑结果用法wallrotate旋转墙walltolerance设置墙的侦查接触限值,wallcreateP508,wallcreatekeyword.由顶点创建一堵墙,在三维中顶点至少为3个note:
创建墙之前必须先创建领域面必须在领域内执行命令时,墙只能在cycle点0之前生成,wallcreate.nameabcvertices.-0.250.00.0.0.250.00.0.0.00.00.25,wallcreate生成墙P508,wallcreatekeyword.由顶点创建一堵墙,在三维中顶点至少为3个note:
创建墙之前必须先创建领域面必须在领域内执行命令时,墙只能在cycle点0之前生成,wallcreate.nameabcvertices.-0.250.00.0.0.250.00.0.0.00.00.25,wallactiveside墙有效面P500,指定墙的有效面,球和卵石可以穿过无效面,默认状态下facets的两面都是有效面,这个范围是针对facets而言的。
一个墙有两个面。
语法wallactivesidekeywordboth把两面都设置为有效面bottom设置面的法向矢量的对面为有效面neither设置墙的两面都为无效面,没有力会与该墙作用top设置面的法向矢量面为有效面,wallgenerate生成特定墙P513,生成特定形状的的墙,包括箱子,二维中的圆,圆锥,圆柱,圆盘,线,平面,点,多边形,三维中的球,wallgenerate.groupspheres.sphereposition5.00.0-2.0.radius3.0.resolution1,wallimport导入墙P524,wallimport导入墙命令wallimportkeyword.导入一个墙,可以导入dxf和stl等文件,wallimportfilenamegear.stlnothrowid100,wallattribute墙属性P503,wallattributekeyword.设置墙的属性,与wallinitialize同义属性。
可以通过walllist命令来查看各项属性。
改变墙的位置和速度,wallattributexvelocity1.0id1,wallproperty墙表面属性P530,wallproperty墙属性命令wallpropertysa指定面表面的属性,a是值,s是名称。
可以指定多对。
面property是对于表面上的接触属性而言的,对于墙面本身的固有属性应用wallattribute。
对于wallproperty,主要的参数是linear线性,linearcontactbond,linearparallelbond,hertz,hystereic,smoothjoint和flatjoint。
Group组P1176,每一个模型物体都可以使用group关键词,比如ballgroup等。
Group与slot的关系在不同的slot中,group内的物体可以重复设定默认下进入slot1,如果slot1内的group重新指定,则冲突的球会进入其他group,原本group内的物体可能会减少,但是设置不同slot的话就没事了。
ballgroupset1rangeid1,3;将123球放入set1组中(slot1)ballgroupset2rangeid1,6;将1-6的球放入set2中(slot1),此时set1是空的ballgroupset1rangeid4,6;将4-6球放入set1中,此时set1为4-6,set2为1-3ballgroupset3slot2rangeid1,6;将1-6放入set3,由于是slot2,所以对set1和set2没影响,Group组P1176,可以使用add关键词来防止冲突。
ballgroupset1rangeid1,3;将球123放入set1中(slot1)ballgroupset2addrangeid1,6;将球1-6放入set2中,由于add关键词的存在。
123号球与set1中冲突,此时系统会自动将set2划入slot2,通过slot来重复定义分组.ballgroupbottom_layerslot3rangez1100ballgroupmiddle_layerslot3rangez100200ballgrouptop_layerslot3rangez200300;slot3containsthemodeldividedintothirdsballgrouptop_halfslot4rangez150300ballgroupbottom_halfslot4rangez1150;slot4containsthemodeldividedinhalfonthexyplaneballgroupleft_sideslot5rangey1150ballgroupright_sideslot5rangey100300;slot5containsthemodeldivided(butnothalved)onthexzplane;notethefirstlinecreatesahalfgroupbutthesecondline;grabsballsintherangey100-150fromthe;theleft-sidegroupandputsthemintheright-sidegroup,Group组P1176,group与namedrange对比。
group是针对物体的,除非物体被删除或者在同一个slot内被重新定义,否则一直能选中这些物体,而namedrange会随着其他定义改变,比如范围,在模型变化后同一范围的球可能不是之前的球了,这时候就很难在找到之前球的信息了。
group组命令,操作组,为了区别不同set的物体,用组名加以区别。
每一个物体可能属于很多组(slot),最多128组,。
可以通过组名来选取组范围内的物体。
creates创建一个名为s的组,刚创建时,没有物体被指定进入该组list列出组名,与listgroup同义,command命令P773,call调用new建立新项目calm静止pause暂停clean更新接触列表playback回放configure安装配置附加计算quit退出与exit同义continue继续restore提取save文件cycle执行运算return返回程序控制define定义fish功能save保存当前结果echo重复?
set改变全局设置end用于结束fish功能solve执行到特定阀值exit退出step与cycle一样fish创建FISH标记system给磁盘发送命令gui保存当前项目title设置标题heading设置标题undo撤销help帮助list列出信息load载入用户定义dllmail邮件操作,command命令,call调用文件,默认调用dat和p3dat文件,无法递归调用。
return命令返回上一层calm静止模型,将速度回归到0,对fix的单位无效clean初始化接触,与后面与DFN相关cyclei执行i步时间步,按shift+esc可退出运算。
可选的calm语句用于每i2步时间步重置速度。
define定义一个fish程序,用end结束。
具体内容见fishfunctionindexexit退出,如果没有save那所有信息将会丢失。
与quit和stop同义guiprojectsave保存当前的项目,名称是sheadings设置标题,与title命令同义listkeyword列出信息。
command命令,pause如果单纯用pause,则会暂停所有。
如果指定了相应的keyword,则到达相应条件时,会暂停,按任意键除了shift+esc,会继续,如果是shift+esc,则会中止。
如果指定了后面的i,则会暂停i秒后继续。
restores恢复程序状态,读取save文件return返回程序控制saves保存程序状态信息。
保存在文件s中,如果拓展名未指定则为p3sav文件setkeyword改变全局设置。
内容很多在P803solvekeyword将模型执行到一个特定的阀值stepi与cycle一样。
undoi撤销命令,如果可能的话,会撤销之前的i条命令,这个命令并不是每次都管用,对于save,restore等命令都不太管用。
FISH脚本P1373,LINES行FISH程序可以在PFC数据文件中整合。
或者直接进入控制台。
define后面的词,是用来陈述一个FISH的功能。
当出现end时,会停止这个FISH。
一行有效的FISH代码必须是下列形式之一1、行开始是一个陈述,比如if、loop或者其他的(在FISHstatement里面有)2、行内包含一个或者多个由用户定义的FISH功能,由下划线_隔开如fun_1,fun_2,fun_3等3、行内包含赋值语句(等号=左边是被赋值的变量,等号右边是值)4、行内包含一个PFC命令,由commandendcommand两个关键词来划定区域5、空行或者是分号开头的,注意是英文分号;FISH内的变量、功能等名称和陈述必须是被完整拼写的,不能简写,与FPC命令不同。
可以用3个点.来继续下一行。
空格是有意义的。
type(xx)可以将变量的类型找出来,下表对应。
PFC的进阶用法,datatypes数据类型P1376,DATATYPES数据类型1、integer:
整数2、boolean:
布尔值,是或否trueorfalse3、floating-point:
浮点数4、string:
字符串,由单引号或者双引号来区别haveaniceday
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PFC5 命令 建模 流程
![提示](https://static.bdocx.com/images/bang_tan.gif)