PFC的一些整理资料

上传人:woxinch****an2018 文档编号:38980567 上传时间:2018-05-10 格式:DOC 页数:24 大小:240.34KB
返回 下载 相关 举报
PFC的一些整理资料_第1页
第1页 / 共24页
PFC的一些整理资料_第2页
第2页 / 共24页
PFC的一些整理资料_第3页
第3页 / 共24页
PFC的一些整理资料_第4页
第4页 / 共24页
PFC的一些整理资料_第5页
第5页 / 共24页
点击查看更多>>
资源描述

《PFC的一些整理资料》由会员分享,可在线阅读,更多相关《PFC的一些整理资料(24页珍藏版)》请在金锄头文库上搜索。

1、 PFC2D (Particle Follow Code 2 Dimension)即二维颗粒流程序,是通过离散单元方法来模 拟圆形颗粒介质的运动及其相互作用。最初,这种方法是研究颗粒介质特性的一种工具, 它采用数值方法将物体分为有代表性的数百个颗粒单元,期望利用这种局部的模拟结果来 研究边值间题连续计算的本构模型。以下两种因素促使 PFC2D 方法产生变革与发展:(1)通 过现场实验来得到颗粒介质本构模型相当困难:(2)随着微机功能的逐步增强,用颗粒模型模 拟整个问题成为可能,一些本构特性可以在模型中自动形成。因此,PFC2D 便成为用来模 拟固体力学和颗粒流问题的一种有效手段。 2、颗粒流方

2、法的基本假设 :颗粒流方法在模拟过程中作了如下假设: 1)颗粒单元为刚性体; 2)接触发生在很小的范围内,即点接触; 3)接触特性为柔性接触,接触处允许有一定的“重叠”量;4) “重叠”量的大小与接触力有关,与颗粒大小相比, “重叠”量很小; 5)接触处有特殊的连接强度; 6)颗粒单元为圆盘形(或球形)。 3、颗粒流方法的特点:PFC2D 可以直接模拟圆形颗粒的运动和相互作用问题。颗料可以代表材料中的个别 颗粒,例如砂粒,也可以代表粘结在一起的固体材料,例如混凝土或岩石。当粘结以渐进 的方式破坏时,它能够破裂。粘结在一起的集合体可以是各向同性,也可以被分成一些离 散的区域或块体。这类物理系统可

3、以用处理角状块体的离散单元程序 UDEC 和 3DEC 来模 拟。 PFC2D 有三个优点:第一、它有潜在的高效率。因为圆形物体间的接触探测比角状物体间的更简单。第二、对可以模拟的位移大小实质上没有限制。第三、由于它们是由粘结的粒子组成,块体可以破裂,不象 UDEC 和 3DEC 模拟的块 体不能破裂。用 PFC2D 模拟块体化系统的缺点是,块体的边界不是平的,用户必须接受不平的边 界以换取 PFC2D 提供的优点。PFC2D 能模拟任意大小圆形粒子集合体的动态力学行为。粒子生成器根据粒子的指定分布规律自动概率地生成。粒子半径按均匀分布或按高 斯分布规律分布。初始孔隙度一般比较高,但通过控制粒

4、子半径的扩大可以获得密度压实。在任何阶 段任何因素都可以改变半径。所以不需反复试验就可以获得指定孔隙度的压实状态。 属性与各个粒子或接触有关,而不是与“类型号”有关。因此,可以指定属性和半径的连续变化梯度。 “节理生成器”用来修改沿指定轨迹线的接触特性。假定这些线叠加在颗粒集合体上。用这种方法,模型可以被成组的弱面,如 岩石节理切割。粒子颜色也是一种属性,用户可以指定各种标记方案。PFC2D 模型中为了保证数据长期不漂移,用双精度数据存储坐标和半径。接触的相对位 移直接根据坐标而不是位移增量计算。接触性质由下列单元组成: 1)线性弹簧或简化的 Hertz-Mindlin 准则; 2)库仑滑块;

5、 3)粘结类型:粘结接触可承受拉力,粘结存在有限的抗拉和抗剪强度。可设定两种类型的粘结,接触粘结和平行粘结。这两种类型粘结对应两种可能的物 理接触:接触粘结再现了作用在接触点一个很小区域上的附着作用;平行粘结再现了 粒子接触后浇注其它材料的作用(如水泥灌浆) 。平行粘结中附加材料的有效刚度具有接触 点的刚度。 块体逻辑支持附属粒子组或块体的创建,促进了程序的推广普及。块体内粒子可以任意程 度的重叠,作为刚性体具有可变形边界的每一个块体,可作为一般形状的超级粒子。通过 指定墙的速度、混合的粒子速度、施加外力和重力来给系统加载。 “扩展的 FISH 库”提供 了在集合体内设置指定应力场或施加应力边

6、界条件的函数。时步计算是自动的,包括因为 Hertz 接触模型刚度变化的影响。模拟过程中,根据每个粒子周围接触数目和瞬间刚度值, 时步也在变化。基于估计的粒子数,单元映射策略采用最佳的单元数目,自动调整单元的 外部尺寸来适应粒子缺失和指定的新对象。单元映射方案支持接触探测算法以保证求解时 间随粒子数目线性增加,而不是二次方增加。类似于 FLAC,PFC 提供了局部无粘性阻尼。这种阻尼形式有以下优点: 1)对于匀速运动,体力接近于零,只有加速运动时才有阻尼; 2)阻尼系数是无因次的; 3)因阻尼系数不随频率变化,集合体中具有不同自然周期的区域被同等阻尼,采用同 样的阻尼系数。PFC2D 可以在半

7、静态模式下运行以保证迅速收敛到静态解,或者在完全动态模式下 运行。 PFC2D 包含功能强大的内嵌式程序语言 FISH,允许用户定义新的变量和函数使数值模 型适合用户的特殊需求。例如,用户可以定义特殊材料的模型和性质、加载方式、实验条 件的伺服控制、模拟的顺序以及绘图和打印用户定义的变量等。2.FISH 语言简介FISH 是一种内置于 Itasca 软件内的编程语言,使用 FISH 用户可以定义新的变量和 函数,从而使得这些函数被用来扩展 Itasca 软件的用法或者增加用户自定义的特性。例如, 用户可以绘制(PLOT)或打印(PRINT)新的变量,也能够改进特殊的颗粒体模型(网格)生成器,

8、可以对数值试验进行伺服控制,可以设定一些性质的特殊分布以及自动化参数研究。Itasca 已经写了一些简单但非常有用的 FISH 函数作为库文件包含在各个具体的软件 中,这些 FISH 函数一方面方便了一些没有编程经验的用户写一些简单的 FISH 函数,另一 方面也能使用户在这些提供的简单函数的基础上作进一步的改进。不过,FISH 语言象其它 编程语言一样,也可以编制出非常复杂的程序利用 FISH 语言进行编程,应该首先编一些简单的函数,然后仔细检查函数的功能,测 试是否有错误。如果没有发现错误,再逐渐增加其功能,增加一项功能检查一下,直至发 展到最后比较复杂的程序。这是因为虽然 FISH 是一

9、种编译型语言,但它没有自己独立的编译器,不象 VC+或 VB 能够实时全面地检查错误,FISH 检查错误的能力很差,因此在 使用他们到真实的应用之前,一定要用一些简单的数据(假如可能的话)来检查所有定义 的函数。 FISH 函数内置于标准的 Itasca 软件的数据文件中,函数的格式必须以 DEFINE 开始,以 END 结束。函 数可以嵌套调用,但定义函数的次序没有关系,只要在使用之前全部定义 就行。由于 FISH 函数的编译格式储存在 Itasca 软件的内存中,因此可以用 SAVE 命令保 存函数以及相关变量的当前值。FISH 也可以用来改进用户写的本构模型,如例 1: DEF abca

10、bc=22*3+5ENDPrint abc 对上例子稍作改进(例 2):newdef abchh=22abc=hh*3+5end 1).稍有编程常识的人可以看出,执行上面的例子(PRINT abc) ,其结果与例 1 相同: abc=71.在这个函数中,我们首先把 22 赋值给变量 hh,然后把这个变量带入 abc 的表达式 中,因此二者的结果相同。 2).FISH 的执行过程如下:当在程序命令中使用一个 FISH 符号名时(例如执行 PRINT 符 号名) ,如果符号名也是一个函数名,那么执行这个函数(例如 abc) ;如果符号名不是函 数名,那么使用符号目前的值(例如 hh)。 3).在输

11、入完例 2 的各行后,如果我们执行命令:PRINT hh,此时 hh=0,因为在这个时候没 有执行 FISH 函数,因此 hh 的初始值为 0;我们接着执行 PRINT abc,结果显示 abc=71;再 次执行 PRINT hh,此时结果为 hh=22,这是因为我们首先运行了 abc 函数,在这个过程中 hh 已被赋值。 4). 下面的试验将进一步解释函数与变量之间的差别。注意:Itasca 软件的 SET 命令可以用 来设置任何用户定义的 FISH 符号的值,与在 FISH 中使用的符号无关。下面的例 3 建立在 例 2 的基础之上,我们不使用 NEW 命令来清除内存中的值,因为我们想继续

12、使用那些值:set abc=0 hh=0print hhprint abcprint hh 5).在这个例子中,我们首先把 abc 和 hh 都赋值为 0,由于 hh 是一个变量,第一个 Print 命 令显示当前 hh 的值,hh=0;第二个 Print 命令由于 abc 是一个函数名,因此执行 abc 函数, 先前定义的 abc=0 不起作用,重新计算了 hh 和 abc 的值,因此第三个 Print 命令显示的值 是它在 abc 函数内指定的值,即 hh=22,例 4 是这个试验完整的命令。象其它高级编程语言一样,FISH 有执行循环命令的功能,标准的格式如下:LOOP var(expr

13、1,expr2)END_LOOP 其中 LOOP 和 END_LOOP 是 FISH 语句,符号 var 代表循环变量,expr1 和 pxpr2 代 表表达式或者单个变量,下面的例子用循环命令计算从 1 到 10 的和以及乘积,见下例:newdef abcsum = 0prod = 1loop n (1,10)sum = sum + nprod = prod * nend_loopendabcprint sum, prod在这个例子中,首先给两个变量赋于初始值,sum 用来保存和的结果,prod 用来保存 积的结果,然后执行循环,最后分别打印出这两个变量的最后结果。循环变量 n(1,10)表

14、示 从 1 开始,连续计算到 10 结束。 关于 LOOP 的注意事项: 1).FISH 接受 END_LOOP 和 ENDLOOP 的写法,但不接受 END LOOP 这样中间有空格的 写法,其它类似的命令有着同样的规则,如 END_IF,END_COMMAND 等命令; 2).在上面的例子中,如果执行 Print n 或 Print fish 命令,你会看到 n=11 而不是 10,注意: 这不是 FISH 的错误,这是一个基本的计算机指令存储规则,当循环结束后,计数器的值 保存的是 n+1 而不是 n,所有的高级编程语言有着相同的规则。 1.DEFINE functionEND 2.CA

15、SEOF expr Case nendcase 3. IF expr1 test expr2 THENELSEENDIF 4. LOOP var (expr1, expr2)ENDLOOP 5. LOOP WHILE expr1 test expr2 ENDLOOP 6. COMMANDENDCOMMAND 7. HISTORY varPRINT varSET var valuePLOT add .sh fname 另外,在 FISH 中还有许多其它的预定义对象,其中一类是尺度变量(scalar variables),它们是 单个的数字,下面是总的尺度变量:clock-时钟时间,单位是秒的 1

16、00 倍.unbal-最大不平衡力pi-圆周率step-目前的时步数目urand-0.0-1.0 之间均匀分布的随机变量这仅是其中的一小部分,完全的列表以后再述另一类非常有用的内置对象是固有函数(intrinsic functions),这些函数能在 FISH 内进行一些 比较高级的数学运算,完整的列表见 FISH 手册,下面给出其中的一部分:abs(a)-a 的绝对值cos(a)-a 的余玄(a 为弧度)log(a)-a 的底数为 10 的对数max(a,b)-返回 a,b 中的最大值sqrt(a)-a 的平方根 3.PFC2D 计算模型的生成方法 有两个命令可用于生成颗粒流模型:BALL 和 GENER-ATE,其中,BALL 命令是生成 单个的颗粒,该命令生成的颗粒可与已存在的颗粒重叠,而 GENERATE 可生成一系列指 定数目的颗粒流,该命令生成的颗粒是不允许重叠的。PFC2D 里主要有两种类型的颗粒流: 规则排列的和无规则排列的。一系列规则排列的颗粒流可以用来模拟模拟结构

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号