岩土工程数值分析软件PFC5.0讲解概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化PFC4.0简要回顾•离散单元法(DEM)•模型组成单元:颗粒+墙体•边界条件•初始条件•接触模型•计算完整路线墙体模型介质模型边界条件墙体参数介质参数初始条件计算建模接触模型5.0PFC5.0并不是PFC4.0的更新版…而是一次重新架构和设计…基本单元:颗粒接触力—位移原理针对散体和粘结介质独有的粘结模型进行复杂的颗粒流现象模拟概念性保留原有功能仍能实现但语法结构被改变新增概念4.0PFC5.0完整路线4.0完整路线墙体模型介质模型边界条件墙体参数介质参数初始条件计算建模接触模型模型domain命令Fish接触模型ballgenerateballcreateballdistributeball.pos.x(B_PNT)cmat概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化多线程•PFC5.0自动利用计算机自身所有的计算资源•所有与计算相关的部分都是多线程的:•时步计算•运动方程•力—位移原理•接触查询•默认采用Deterministic模式进行建模计算,以保证模型可重复性;如果使用非Deterministic模式,自身性能约有10%的提升•FISH相关的编译功能仍保持单线程0.00E+002.00E+024.00E+026.00E+028.00E+021.00E+031.20E+030400000800000Timefor1000cycles(s)NumberofBallsPFC5PFC42.40E+002.60E+002.80E+003.00E+003.20E+003.40E+003.60E+003.80E+000400000800000PFC4/PFC5NumberofBallsRatio~20,000Balls~700,000Balls70万颗粒,PFC5耗时1.7min,PFC4耗时3.3h(从数据文件读取)PFC4.0/PFC5.0Speed–StaticAssembly•将空间分为等尺寸单元•动态查询单元保证了最优搜索性能•采用了零等待数据结构(多线程环境下)高效的空间搜索概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化•刚性连接的pebble,可以复制和观察•可以导入dxf/stl文件,作为clump的边界面,但文件内的几何模型必须是有向的,边界衔接且封闭的。•惯性参数(体积,惯性矢量)可通过以下方式确定:•用户输入•从pebble的分布计算•从clump的边界面计算Clump模板22Pebbles•内置BubblePack算法:用pebble将clump的边界面内的空间按照目标状态填充(中轴逼近法)BubblePack573Pebbles110Pebbles概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化简单便捷的生成…•在立方体或者六面体内随机生成不重叠颗粒或者clump(根据方向)使用ballgenerate命令生成70万颗粒仅耗时1.7s•根据目标孔隙率和颗粒级配生成颗粒或clump(颗粒间有重叠)balldistribute…匹配颗粒级配生成模型概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化墙面—二维中是直线;三维中是三角形•从dxf/stl文件导入(有方向,边缘相接)•由PFC直接生成简单形状{boxes,circlesin2D;cones,cylinders,spheres,boxes,discs,planesin3D}•墙的两侧默认都是active面(可更改)•凹凸几何形状被自动处理•接触的识别保证了行为的真实性墙面接触概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化•简单而有效地按照标准或者传统的统计分布生成DFNDFN的生成已知裂隙组完整裂隙模型•在粘性颗粒上覆盖裂隙,并插入光滑节理接触模型,以模拟综合岩体(SRM——SyntheticRockMass)DFN+PFC结合形成SRMcross-sectioneffectivegeometryinterfacesmooth-jointcontactparallelbond•测量力学特性和裂隙几何特征DFN+PFC5合成岩体SRM大小不一的裂隙摩擦型节理用以区分可变形块体和破碎型块体概要•PFC5.0和PFC4.0有什么区别•自动多线程和有效的接触探测•Clump模板的新运算/可视化•墙面的新运算•离散裂隙网络(DFN)•生成Ball/Clump的新用法•应用实例•其他变化其他变化•任何模型的数据文件必始于Domain,否则模型无效•名称定义更具体,易识别•F1帮助键•不再区分大小写•@符号约定•宏定义取消•CMAT,默认接触模型为NULL•Localdamp默认为0•Bodiesandpieces•接触类型:ball-ball、ball-facet、ball-pebble、pebble-pebble、pebble-facet;Loopforeach,球、pebble的遍历互不影响•Attribute&property•时步(timestep),更能保证计算的稳定性;•用户界面(可随时编译数据文件,可随时改变视图)•内联fish(InlineFish):直接在comand状态下写fish[ballID]•Local和global变量•Loops•测量圆(球)•不再有manual•Fishtank单独下载domain领域P1041所有组分(球、墙等)都应该在领域内,领域必须在其他组分创建之前建立。domainextent-1010conditiondestroy创建一个X(YZ)方向都为-10到10的领域,超过边界则删除球Conditionssxsysz设置领域边界条件。如果是sx则x方向的两个面都会生效,yz同。如果只指定x方向,则对所有面都有效。stop(默认)组分的图心如果飞出领域外,则速度和角速度会被清零,定在边界上。reflect,速度会变成相反,旋转速度不变。不过这个指令慎用,容易产生不稳定destroy超过领域直接删除periodic周期性。如果超出,则会在另一边重现extentfxlfxufylfyufzlfzu修改领域边界位置,如果只有fx1和fxu则3个边都相同。domain领域几何命令用于创建、导入导出几何数据。这些数据可以与模型多方面相互作用,也可以通过FISH语言的筛选器处理。创建几何图形不需要创建领域,因为它们不是模型的组成部分。可以使用geometyimport命令从stl、dxf或者itasca的几何标准库中导入几何数据。geometry几何P1078geometrygeneratebox-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.0groupmiddleballdistribute根据孔隙比来产生球P246分配球(有重叠)到一个区域。这个步骤当孔隙比达到目标值时将会停止(不算重叠部分)。默认状态下球的位置和半径在整个模型领域内统一分配。因此,球的产生受随机数生成器影响(setrandom)。球的半径还可以通过gauss关键词来生成高斯分布的球。当分配一定量的球的时候,通过半径范围和体积分数,可以定义。生成球时,划定一个可选范围来生成球,保证最后分配的球打到目标标准。当达到以下条件时,这个命令才与ballgenerate产生区别1)球的目标数目已经达到或者2)尝试次数达到标准时,ballgenerate无法产生更多的球,而balldistribute由于可以重叠,所以可以产生更多的球。note(球生成前必须先定义领域domain)note(球会重叠)note(当执行循环时,只能在循环点前生成球)balldistributeradius1.01.6porosity0.30ballgenerate生成无重叠球P255生成没有重叠的球,当球数量达到目标数目或者尝试次数用完时停止。默认状态下球的位置和半径会均匀分布在领域内,因此球的特性受随机数生成器的影响。球也可以通过高斯分布关键词gauss来让球变成高斯分布