PFC数值软件基础PPT精品文档.ppt
50页PFCPFC2D2D颗粒流软件培训颗粒流软件培训中仿科技有限公司中仿科技有限公司1主要内容主要内容第一部分第一部分 PFC2D颗粒流程序简介颗粒流程序简介 第二部分第二部分 有限差分法基础介绍有限差分法基础介绍第三部分第三部分 离散元法基础介绍离散元法基础介绍第四部分第四部分 PFC2D的使用的使用2第一部分第一部分 PFCPFC2D2D颗粒流程序简介颗粒流程序简介ü1 1 、理论背景、理论背景ü2 2、颗粒流方法的基本假设、颗粒流方法的基本假设ü3 3、颗粒流方法的特点、颗粒流方法的特点ü4 4、可选特性、可选特性ü5 5、应用领域、应用领域ü6 6、求解步骤、求解步骤3 作为离散元的一种,二维颗粒流程序作为离散元的一种,二维颗粒流程序(Particle (Particle Follow Code PFC2D)Follow Code PFC2D)数值模拟新技术,其理论基础是数值模拟新技术,其理论基础是Cundall [1979]Cundall [1979]提出的离散单元法,用于颗粒材料力提出的离散单元法,用于颗粒材料力学性态分析,如颗粒团粒体的稳定、变形及本构关系,学性态分析,如颗粒团粒体的稳定、变形及本构关系,专门用于模拟固体力学大变形问题。
它通过圆形专门用于模拟固体力学大变形问题它通过圆形( (或异或异型型) )离散单元来模拟颗粒介质的运动及其相互作用由离散单元来模拟颗粒介质的运动及其相互作用由平面内的平动和转动运动方程来确定每一时刻颗粒的平面内的平动和转动运动方程来确定每一时刻颗粒的位置和速度作为研究颗粒介质特性的一种工具,它位置和速度作为研究颗粒介质特性的一种工具,它采用有代表性的数百个至上万个颗粒单元,通过数值采用有代表性的数百个至上万个颗粒单元,通过数值模拟实验可以得到颗粒介质本构模型模拟实验可以得到颗粒介质本构模型1.1.理论背景理论背景4 PFC2D (Particle Follow Code 2 Dimension)PFC2D (Particle Follow Code 2 Dimension)即即二维颗粒流程序,是通过离散单元方法来模拟圆形颗二维颗粒流程序,是通过离散单元方法来模拟圆形颗粒介质的运动及其相互作用最初,这种方法是研究粒介质的运动及其相互作用最初,这种方法是研究颗粒介质特性的一种工具,它采用数值方法将物体分颗粒介质特性的一种工具,它采用数值方法将物体分为有代表性的数百个颗粒单元,期望利用这种局部的为有代表性的数百个颗粒单元,期望利用这种局部的模拟结果来研究边值间题连续计算的本构模型。
以下模拟结果来研究边值间题连续计算的本构模型以下两种因素促使两种因素促使PFC2DPFC2D方法产生变革与发展方法产生变革与发展:(1):(1)通过现通过现场实验来得到颗粒介质本构模型相当困难场实验来得到颗粒介质本构模型相当困难:(2):(2)随着微随着微机功能的逐步增强,用颗粒模型模拟整个问题成为可机功能的逐步增强,用颗粒模型模拟整个问题成为可能,一些本构特性可以在模型中自动形成因此,能,一些本构特性可以在模型中自动形成因此,PFC2DPFC2D便成为用来模拟固体力学和颗粒流问题的一种便成为用来模拟固体力学和颗粒流问题的一种有效手段有效手段 52 2、颗粒流方法的基本假设、颗粒流方法的基本假设 颗粒流方法在模拟过程中作了如下假设颗粒流方法在模拟过程中作了如下假设: :1)1)颗粒单元为刚性体颗粒单元为刚性体; ;2)2)接触发生在很小的范围内,即点接触接触发生在很小的范围内,即点接触; ;3)3)接触特性为柔性接触,接触处允许有一定的接触特性为柔性接触,接触处允许有一定的““重重叠叠””量量; ;4) “4) “重叠重叠””量的大小与接触力有关,与颗粒大小相量的大小与接触力有关,与颗粒大小相比,比,““重叠重叠””量很小量很小; ;5)5)接触处有特殊的连接强度接触处有特殊的连接强度; ;6)6)颗粒单元为圆盘形颗粒单元为圆盘形( (或球形或球形) )。
6 其中,颗粒为刚性体的假设,对于模拟介质运其中,颗粒为刚性体的假设,对于模拟介质运动为只沿相互接触面的表面发生的问题非常重要,动为只沿相互接触面的表面发生的问题非常重要,比如象砂土或粮食这种颗粒组合体材料,利用这比如象砂土或粮食这种颗粒组合体材料,利用这种假设在总体上来讲是比较恰当的,因为这种材种假设在总体上来讲是比较恰当的,因为这种材料的变形是来自于颗粒刚性体间的滑动和转动以料的变形是来自于颗粒刚性体间的滑动和转动以及接触面处的张开和闭锁,而不是来自于每个刚及接触面处的张开和闭锁,而不是来自于每个刚性颗粒本身的变形,对于这种特殊材料,没有必性颗粒本身的变形,对于这种特殊材料,没有必要采用非常精确的数值模型,来得到对材料特性要采用非常精确的数值模型,来得到对材料特性的近似73 3、颗粒流方法的特点、颗粒流方法的特点 PFC2DPFC2D可以直接模拟圆形颗粒的运动和相互作用问可以直接模拟圆形颗粒的运动和相互作用问题颗料可以代表材料中的个别颗粒,例如砂粒,题颗料可以代表材料中的个别颗粒,例如砂粒,也可以代表粘结在一起的固体材料,例如混凝土或也可以代表粘结在一起的固体材料,例如混凝土或岩石。
当粘结以渐进的方式破坏时,它能够破裂当粘结以渐进的方式破坏时,它能够破裂粘结在一起的集合体可以是各向同性,也可以被分粘结在一起的集合体可以是各向同性,也可以被分成一些离散的区域或块体这类物理系统可以用处成一些离散的区域或块体这类物理系统可以用处理角状块体的离散单元程序理角状块体的离散单元程序UDECUDEC和和3DEC3DEC来模拟8 PFC2DPFC2D有三个优点:有三个优点: 第一、它有潜在的高效率因为圆形物体间的接第一、它有潜在的高效率因为圆形物体间的接触探测比角状物体间的更简单触探测比角状物体间的更简单 第二、对可以模拟的位移大小实质上没有限制第二、对可以模拟的位移大小实质上没有限制 第三、由于它们是由粘结的粒子组成,块体可以第三、由于它们是由粘结的粒子组成,块体可以破裂,不象破裂,不象UDECUDEC和和3DEC3DEC模拟的块体不能破裂模拟的块体不能破裂 用用PFC2DPFC2D模拟块体化系统的缺点是,块体的边模拟块体化系统的缺点是,块体的边界不是平的,用户必须接受不平的边界以换取界不是平的,用户必须接受不平的边界以换取PFC2DPFC2D提供的优点。
提供的优点9 PFC2D PFC2D中几何特征、物理特性和解题条件的说明中几何特征、物理特性和解题条件的说明不如不如FLACFLAC和和UDECUDEC程序那样直截了当程序那样直截了当 例如用连续介质程序,创建网格、设置初始压力、例如用连续介质程序,创建网格、设置初始压力、设置固定或自由边界在象设置固定或自由边界在象PFC2DPFC2D这样的颗粒程序这样的颗粒程序中,由于没有唯一的方法在一个指定的空间内组合中,由于没有唯一的方法在一个指定的空间内组合大量的粒子,粒子紧密结合的状态一般不能预先指大量的粒子,粒子紧密结合的状态一般不能预先指定必须跟踪类似于物体压实的过程,直到获得要定必须跟踪类似于物体压实的过程,直到获得要求的孔隙率求的孔隙率 由于颗粒相对位置变化产生接触力,初始应力状由于颗粒相对位置变化产生接触力,初始应力状态的确定与初始压密有关由于边界不是由平面组态的确定与初始压密有关由于边界不是由平面组成,边界条件的设定比连续介质程序更复杂成,边界条件的设定比连续介质程序更复杂10 当要求满足有实验室实际测试的模拟物体的力当要求满足有实验室实际测试的模拟物体的力学特性时,出现了更大的困难。
在某种程度上,这学特性时,出现了更大的困难在某种程度上,这是一个反复试验的过程,因为目前还没有完善的理是一个反复试验的过程,因为目前还没有完善的理论可以根据微观特性来预见宏观特性论可以根据微观特性来预见宏观特性 然而,给出一些准则应该有助于模型与原型的然而,给出一些准则应该有助于模型与原型的匹配,如哪些因素对力学行为的某些方面产生影响,匹配,如哪些因素对力学行为的某些方面产生影响,哪些将不产生影响应该意识到,由于受现有知识哪些将不产生影响应该意识到,由于受现有知识的限制,这样的模拟很难然而,用的限制,这样的模拟很难然而,用PFC2DPFC2D进行试进行试验,对固体力学,特别是对断裂力学和损伤力学,验,对固体力学,特别是对断裂力学和损伤力学,可以获得一些基本认识可以获得一些基本认识 11 PFC2D PFC2D能模拟任意大小圆形粒子集合体的动态力学能模拟任意大小圆形粒子集合体的动态力学行为 粒子生成器根据粒子的指定分布规律自动概粒子生成器根据粒子的指定分布规律自动概率地生成粒子半径按均匀分布或按高斯分布规率地生成粒子半径按均匀分布或按高斯分布规律分布。
律分布 初始孔隙度一般比较高,但通过控制粒子半初始孔隙度一般比较高,但通过控制粒子半径的扩大可以获得密度压实在任何阶段任何因径的扩大可以获得密度压实在任何阶段任何因素都可以改变半径所以不需反复试验就可以获素都可以改变半径所以不需反复试验就可以获得指定孔隙度的压实状态得指定孔隙度的压实状态 12 属性与各个粒子或接触有关,而不是与属性与各个粒子或接触有关,而不是与“类型号类型号”有关 因此,可以指定属性和半径的连续变化梯度因此,可以指定属性和半径的连续变化梯度节节理生成器理生成器”用来修改沿指定轨迹线的接触特性假定用来修改沿指定轨迹线的接触特性假定这些线叠加在颗粒集合体上用这种方法,模型可以这些线叠加在颗粒集合体上用这种方法,模型可以被成组的弱面,如岩石节理切割被成组的弱面,如岩石节理切割 粒子颜色也是一种属性,用户可以指定各种标记方粒子颜色也是一种属性,用户可以指定各种标记方案13 PFC2DPFC2D模型中为了保证数据长期不漂移,用双精度模型中为了保证数据长期不漂移,用双精度数据存储坐标和半径接触的相对位移直接根据坐标数据存储坐标和半径。
接触的相对位移直接根据坐标而不是位移增量计算接触性质由下列单元组成:而不是位移增量计算接触性质由下列单元组成: 1 1)线性弹簧或简化的)线性弹簧或简化的Hertz-MindlinHertz-Mindlin准则;准则; 2 2)库仑滑块;)库仑滑块; 3 3)粘结类型:粘结接触可承受拉力,粘结存在)粘结类型:粘结接触可承受拉力,粘结存在有限的抗拉和抗剪强度有限的抗拉和抗剪强度 可设定两种类型的粘结,接触粘结和平行粘结可设定两种类型的粘结,接触粘结和平行粘结这两种类型粘结对应两种可能的物理接触:这两种类型粘结对应两种可能的物理接触:①①接触粘接触粘结再现了作用在接触点一个很小区域上的附着作用;结再现了作用在接触点一个很小区域上的附着作用;②②平行粘结再现了粒子接触后浇注其它材料的作用平行粘结再现了粒子接触后浇注其它材料的作用(如水泥灌浆)平行粘结中附加材料的有效刚度具(如水泥灌浆)平行粘结中附加材料的有效刚度具有接触点的刚度有接触点的刚度 14 块体逻辑支持附属粒子组或块体的创建,促进了程块体逻辑支持附属粒子组或块体的创建,促进了程序的推广普及。
块体内粒子可以任意程度的重叠,作序的推广普及块体内粒子可以任意程度的重叠,作为刚性体具有可变形边界的每一个块体,可作为一般为刚性体具有可变形边界的每一个块体,可作为一般形状的超级粒子通过指定墙的速度、混合的粒子速形状的超级粒子通过指定墙的速度、混合的粒子速度、施加外力和重力来给系统加载度、施加外力和重力来给系统加载扩展的扩展的FISHFISH库库””提供了在集合体内设置指定应力场或施加应力边界提供了在集合体内设置指定应力场或施加应力边界条件的函数时步计算是自动的,包括因为条件的函数时步计算是自动的,包括因为HertzHertz接触接触模型刚度变化的影响模拟过程中,根据每个粒子周模型刚度变化的影响模拟过程中,根据每个粒子周围接触数目和瞬间刚度值,时步也在变化基于估计围接触数目和瞬间刚度值,时步也在变化基于估计的粒子数,单元映射策略采用最佳的单元数目,自动的粒子数,单元映射策略采用最佳的单元数目,自动调整单元的外部尺寸来适应粒子缺失和指定的新对象调整单元的外部尺寸来适应粒子缺失和指定的新对象单元映射方案支持接触探测算法以保证求解时间随粒单元映射方案支持接触探测算法以保证求解时间随粒子数目线性增加,而不是二次方增加。
子数目线性增加,而不是二次方增加15 类似于类似于FLACFLAC,,PFCPFC提供了局部无粘性阻尼这种提供了局部无粘性阻尼这种阻尼形式有以下优点:阻尼形式有以下优点: 1 1)对于匀速运动,体力接近于零,只有加速运)对于匀速运动,体力接近于零,只有加速运动时才有阻尼;动时才有阻尼; 2 2)阻尼系数是无因次的;)阻尼系数是无因次的; 3 3)因阻尼系数不随频率变化,集合体中具有不)因阻尼系数不随频率变化,集合体中具有不同自然周期的区域被同等阻尼,采用同样的阻尼系同自然周期的区域被同等阻尼,采用同样的阻尼系数 PFC2DPFC2D可以在半静态模式下运行以保证迅速收敛可以在半静态模式下运行以保证迅速收敛到静态解,或者在完全动态模式下运行到静态解,或者在完全动态模式下运行 PFC2DPFC2D包含功能强大的内嵌式程序语言包含功能强大的内嵌式程序语言FISHFISH,允,允许用户定义新的变量和函数使数值模型适合用户的许用户定义新的变量和函数使数值模型适合用户的特殊需求例如,用户可以定义特殊材料的模型和特殊需求。
例如,用户可以定义特殊材料的模型和性质、加载方式、实验条件的伺服控制、模拟的顺性质、加载方式、实验条件的伺服控制、模拟的顺序以及绘图和打印用户定义的变量等序以及绘图和打印用户定义的变量等 164 4、可选特性、可选特性 1 1)热学分析)热学分析2 2)并行处理技术)并行处理技术3 3)能写用户定义接触模型)能写用户定义接触模型4 4)用户写)用户写C++C++程序的程序的C++C++编程 17 热学选项热学选项用来模拟材料内热量的瞬间流动和热诱用来模拟材料内热量的瞬间流动和热诱导位移和力的顺序发展热学模型可以独立运行或导位移和力的顺序发展热学模型可以独立运行或耦合到力学模型通过修改粒子半径和平行粘结承耦合到力学模型通过修改粒子半径和平行粘结承受的力,产生热应变来解释粒子和粘结材料的受热受的力,产生热应变来解释粒子和粘结材料的受热 用户定义的接触本构模型用户定义的接触本构模型可以用可以用C++C++语言来编写,语言来编写,并编译成动态链接库文件,一旦需要就可以加载并编译成动态链接库文件,一旦需要就可以加载 用户写的用户写的C++C++程序程序选项允许用户用选项允许用户用C++C++语言写自己语言写自己的程序,创建可执行的的程序,创建可执行的PFC2DPFC2D个人版本。
这个选项可个人版本这个选项可以用来代替以用来代替FISHFISH函数,大大提高运行的速度函数,大大提高运行的速度 并行处理技术并行处理技术允许将一个允许将一个PFC2DPFC2D模型分成几个部模型分成几个部分,每个部分可以在单独的处理器上平行运行与分,每个部分可以在单独的处理器上平行运行与一个一个PFC2DPFC2D模型在一个处理器上运行相比,平行处理模型在一个处理器上运行相比,平行处理在内存容量和计算速度方面得到大大提高在内存容量和计算速度方面得到大大提高185 5、应用领域、应用领域 PFC2D PFC2D既可解决静态问题也可解决动态问题,既既可解决静态问题也可解决动态问题,既可用于参数预测,也可用于在原始资料详细情况下可用于参数预测,也可用于在原始资料详细情况下的实际模拟的实际模拟PFC2D PFC2D 模拟试验可以代替室内试验模拟试验可以代替室内试验在岩石与土体中开挖问题的研究与设计方面,实测在岩石与土体中开挖问题的研究与设计方面,实测资料相对较少,关于初始应力、不连续性等问题也资料相对较少,关于初始应力、不连续性等问题也只能部分了解而在松散介质流动问题中,影响流只能部分了解。
而在松散介质流动问题中,影响流动介质不规律分布的影响因素很难定量描述因此,动介质不规律分布的影响因素很难定量描述因此,应用应用PFC2D PFC2D 初步研究影响整个系统的一些参数的特初步研究影响整个系统的一些参数的特性,对整个系统的特性有所了解后,就可以方便地性,对整个系统的特性有所了解后,就可以方便地设计模型模拟整个过程设计模型模拟整个过程 19 PFC2DPFC2D可以模拟颗粒间的相互作用问题、大变形问可以模拟颗粒间的相互作用问题、大变形问题、断裂问题等,适用于以下领域:题、断裂问题等,适用于以下领域: ((1 1)在槽、管、料斗、筒仓中松散物体的流动问)在槽、管、料斗、筒仓中松散物体的流动问题;题; ((2 2)矿山冒落法开采中的岩体断裂、坍塌、破碎)矿山冒落法开采中的岩体断裂、坍塌、破碎和岩块的流动问题;和岩块的流动问题; ((3 3)铸模中粉料的压实问题;)铸模中粉料的压实问题; ((4 4)由粘结粒子组成物体的碰撞及其动态破坏;)由粘结粒子组成物体的碰撞及其动态破坏; ((5 5)梁结构的地震响应及垮塌;)梁结构的地震响应及垮塌; ((6 6)颗粒材料的基本特性研究,如屈服、流动、)颗粒材料的基本特性研究,如屈服、流动、体积变化等;体积变化等; ((7 7)固体的基本特性研究,如累积破坏、断裂。
固体的基本特性研究,如累积破坏、断裂 206 6、求解步骤、求解步骤 1) 1)定义模拟对象定义模拟对象 根据模拟意图定义模型的详细程序,假如只对某根据模拟意图定义模型的详细程序,假如只对某一力学机制的不同解释作出判断时,可以建立一个一力学机制的不同解释作出判断时,可以建立一个比较粗略的模型,只要在模型中能体现要解释的机比较粗略的模型,只要在模型中能体现要解释的机制即可,对所模拟问题影响不大的特性可以忽略制即可,对所模拟问题影响不大的特性可以忽略212)2)建立力学模型的基本概念建立力学模型的基本概念 首先对分析对象在一定初始特性形成初步概念首先对分析对象在一定初始特性形成初步概念为此,应先提出一些问题,如系统是否将变为不稳为此,应先提出一些问题,如系统是否将变为不稳定系统、问题变形的大小、主要力学特性是否非线定系统、问题变形的大小、主要力学特性是否非线性、是否需要定义介质的不连续性、系统边界是实性、是否需要定义介质的不连续性、系统边界是实际边界还是无限边界、系统结构有无对称性等际边界还是无限边界、系统结构有无对称性等 综合以上内容来描述模型的大致特征,包括颗综合以上内容来描述模型的大致特征,包括颗粒单元的设计、接触类型的选择、边界条件的确定粒单元的设计、接触类型的选择、边界条件的确定以及初始平衡状态的分析。
以及初始平衡状态的分析22 3) 3)构造并运行简化模型构造并运行简化模型 在建立实际工程模型之前,先构造并运行一在建立实际工程模型之前,先构造并运行一系列简化的测试模型,可以提高解题效率通过系列简化的测试模型,可以提高解题效率通过这种前期简化模型的运行,可对力学系统的概念这种前期简化模型的运行,可对力学系统的概念有更深入的了解,有时在分析简化模型的结果后有更深入的了解,有时在分析简化模型的结果后( (例如所选的接触类型是否有代表性、边界条件对例如所选的接触类型是否有代表性、边界条件对模型结果的影响程度等模型结果的影响程度等) ),还需将第二步加以修改还需将第二步加以修改23 4) 4)补充模拟问题的数据资料补充模拟问题的数据资料 模拟实际工程问题需要大量简化模型运行的结模拟实际工程问题需要大量简化模型运行的结果,对于地质力学来说包括果,对于地质力学来说包括: : a) a)几何特性,如地下开挖酮室的形状、地形地貌、几何特性,如地下开挖酮室的形状、地形地貌、坝体形状、岩土结构等;坝体形状、岩土结构等; b)b)地质构造位置,如断层、节理、层面等;地质构造位置,如断层、节理、层面等; c)c)材料特性,如弹材料特性,如弹/ /塑性、后破坏特性等;塑性、后破坏特性等; d)d)初始条件,如原位应力状态、孔隙压力、饱和初始条件,如原位应力状态、孔隙压力、饱和度等;度等; e)e)外荷载,如冲击荷载、开挖应力等。
外荷载,如冲击荷载、开挖应力等 因为一些实际工程性质的不确定性因为一些实际工程性质的不确定性( (特别是应力特别是应力状态、变形和强度特性状态、变形和强度特性) ),所以必须选择合理的参,所以必须选择合理的参数研究范围第三步简化模型的运行有助于这项选数研究范围第三步简化模型的运行有助于这项选择,从而为更进一步的试验提供资料择,从而为更进一步的试验提供资料24 5) 5)模拟运行的进一步准备模拟运行的进一步准备 a)a)合理确定每一时步所需时间,若运行时间过合理确定每一时步所需时间,若运行时间过长,很难得到有意义的结论,所以应该考虑在多台长,很难得到有意义的结论,所以应该考虑在多台计算机上同时运行计算机上同时运行 b)b)模型的运行状态应及时保存,以便在后续运模型的运行状态应及时保存,以便在后续运行中调用其结果例如如果分析中有多次加卸荷过行中调用其结果例如如果分析中有多次加卸荷过程,要能方便地退回到每一过程,并改变参数后可程,要能方便地退回到每一过程,并改变参数后可以继续运行以继续运行 c)c)在程序中应设有足够的监控点在程序中应设有足够的监控点( (如参数变化如参数变化 处、不平衡等处、不平衡等) ),对中间模拟结果随时作出比较分,对中间模拟结果随时作出比较分析,并分析颗粒流动状态。
析,并分析颗粒流动状态25 6) 6)运行计算模型运行计算模型 在模型正式运行之前先运行一些检验模型,然在模型正式运行之前先运行一些检验模型,然后暂停,根据一些特性参数的试验或理论计算结果后暂停,根据一些特性参数的试验或理论计算结果来检查模拟结果是否合理,当确定模型运行正确无来检查模拟结果是否合理,当确定模型运行正确无误时,连接所有的数据文件进行计算误时,连接所有的数据文件进行计算 7)7)解释结果解释结果 计算结果与实测结果进行分析比较图形应集中计算结果与实测结果进行分析比较图形应集中反应要分析的区域如应力集中区,各种计算结果应反应要分析的区域如应力集中区,各种计算结果应能方便地输出分析能方便地输出分析26第二部分第二部分 有限差分法基础介绍有限差分法基础介绍 连续介质三维快速拉格朗日有限差分计算方法连续介质三维快速拉格朗日有限差分计算方法( ( FLACFLAC3D3D) ) 是近是近2020年来逐步成熟完善起来的一种新型数年来逐步成熟完善起来的一种新型数值计算方法值计算方法, ,它基于显式差分法来求解运动方程和动它基于显式差分法来求解运动方程和动力方程力方程, ,可模拟岩土或其他材料的三维力学行为。
其可模拟岩土或其他材料的三维力学行为其求解时首先将计算区域离散化求解时首先将计算区域离散化, ,分成若干三维单元分成若干三维单元, ,单单元之间由节点联结元之间由节点联结, ,节点受荷载作用后节点受荷载作用后, ,其平衡方程其平衡方程( (运动方程运动方程) ) 可以写成时间步长为可以写成时间步长为Δt Δt 的有限差分形的有限差分形式式, ,由于采用动态应力松弛显式差分求解技术由于采用动态应力松弛显式差分求解技术, , 在某在某一微小的时段内一微小的时段内, , 作用于该节点的荷载只对周围若干作用于该节点的荷载只对周围若干节点有影响节点有影响27 根据单元节点的速度变化和时段根据单元节点的速度变化和时段Δt ,Δt ,可求出单可求出单元之间的相对位移元之间的相对位移, ,进而求出单元应变进而求出单元应变, ,利用单元材料利用单元材料的本构关系即可求出单元应力在此基础上的本构关系即可求出单元应力在此基础上, ,求出单求出单元之间的不平衡力元之间的不平衡力, ,将此不平衡力重新作用到节点上将此不平衡力重新作用到节点上, ,再进行下一步的迭代过程再进行下一步的迭代过程, ,直到整个系统不平衡力足直到整个系统不平衡力足够小或节点位移趋于平衡为止。
够小或节点位移趋于平衡为止 FLACFLAC3D3D可以解决诸多的有限元程序难以模拟的复可以解决诸多的有限元程序难以模拟的复杂的工程问题,例如分布开挖、大变形、非线性及非杂的工程问题,例如分布开挖、大变形、非线性及非稳定系统(甚至大面积屈服稳定系统(甚至大面积屈服/ /失稳或完全塌方)失稳或完全塌方)28第三部分第三部分 离散元法基础介绍离散元法基础介绍 离散单元法是一种模拟非连续介质的计算方法,离散单元法是一种模拟非连续介质的计算方法,自自CundallCundall在在7070年代提出以来,在岩石力学、土力学、年代提出以来,在岩石力学、土力学、结构分析等领域的数值模拟中得到广泛应用,是一种结构分析等领域的数值模拟中得到广泛应用,是一种新兴的非连续体分析方法离散单元法允许单元间的新兴的非连续体分析方法离散单元法允许单元间的相对运动,不一定满足位移连续和变形协调条件,计相对运动,不一定满足位移连续和变形协调条件,计算速度快,所需存储空间小,特别适用于节理岩体的算速度快,所需存储空间小,特别适用于节理岩体的大位移,大变形分析大位移,大变形分析 离散单元法自问世以来有了长足的发展,已经成离散单元法自问世以来有了长足的发展,已经成为解决岩石力学问题的一种重要的数值方法,因为工为解决岩石力学问题的一种重要的数值方法,因为工程中所见到的岩体其形态呈非连续结构,所形成的岩程中所见到的岩体其形态呈非连续结构,所形成的岩石块体运动和受力情况多是几乎或材料非线性问题,石块体运动和受力情况多是几乎或材料非线性问题,所以很难用解决连续介质力学问题的有限单元法或边所以很难用解决连续介质力学问题的有限单元法或边界单元法等。
界单元法等29 数值方法来进行求解,而离散单元法正是充分数值方法来进行求解,而离散单元法正是充分考虑到岩体结构的不连续性,适用于解决节理岩石力考虑到岩体结构的不连续性,适用于解决节理岩石力学问题 近年来,离散元法的应用领域又扩展到求解连近年来,离散元法的应用领域又扩展到求解连续介质向非连续介质转化的力学问题混凝土等脆性续介质向非连续介质转化的力学问题混凝土等脆性材料在冲击、侵彻等动荷载作用下产生的损伤和破坏,材料在冲击、侵彻等动荷载作用下产生的损伤和破坏,其实质是力学模型从连续体到非连续体的转变过程其实质是力学模型从连续体到非连续体的转变过程建立在传统的连续介质力学基础上的有限元法等数值建立在传统的连续介质力学基础上的有限元法等数值计算方法难以直接用于计算和模拟材料具体的破坏形计算方法难以直接用于计算和模拟材料具体的破坏形式和破坏的整个过程,而离散元法在这一方面显示出式和破坏的整个过程,而离散元法在这一方面显示出巨大的生命力巨大的生命力30第四部分第四部分 PFCPFC2D2D的使用的使用Ø1.1.对对PFCPFC软件的使用界面、菜单功能及作用进行介绍;软件的使用界面、菜单功能及作用进行介绍;Ø2.FISH2.FISH语言简介语言简介Ø3.PFC2D3.PFC2D分析模型的生成方法分析模型的生成方法Ø4.4.边界条件的设置方法边界条件的设置方法Ø5.5.初始条件的设置初始条件的设置Ø6.6.接触本构模型:接触本构模型:①①接触刚度模型接触刚度模型②②滑动模型滑动模型③③连连接模型接模型Ø7.7.赋予材料属性:相关命令的使用方法介绍赋予材料属性:相关命令的使用方法介绍31第四部分第四部分 PFCPFC2D2D的使用的使用Ø8.8.节理面的生成及属性设置节理面的生成及属性设置Ø9.9.加载方法:主动荷载和被动荷载加载方法:主动荷载和被动荷载; ;Ø10.10.求解过程:静力求解、动力求解求解过程:静力求解、动力求解; ;Ø11.11.流体与热分析简介流体与热分析简介; ;Ø12.12.介绍介绍PFCPFC2D2D软件的用户自定义本构模块的相关功软件的用户自定义本构模块的相关功能、操作等能、操作等; ;Ø13.13.常用命令使用方法及相关的重要概念常用命令使用方法及相关的重要概念; ;Ø14.14.讲述讲述PFCPFC2D2D工程应用的实例工程应用的实例321.使用界面、菜单功能介绍33342.FISH语言简介 FISHFISH是一种内置于是一种内置于ItascaItasca软件内的编程语言,使用软件内的编程语言,使用FISH FISH 用户可以定义新的变量和函数,从而使得这些函数被用来扩展用户可以定义新的变量和函数,从而使得这些函数被用来扩展ItascaItasca软件的用法或者增加用户自定义的特性。
例如,用户可软件的用法或者增加用户自定义的特性例如,用户可以绘制以绘制(PLOT)(PLOT)或打印或打印(PRINT)(PRINT)新的变量,也能够改进特殊的颗新的变量,也能够改进特殊的颗粒体模型粒体模型( (网格网格) )生成器,可以对数值试验进行伺服控制,可以生成器,可以对数值试验进行伺服控制,可以设定一些性质的特殊分布以及自动化参数研究设定一些性质的特殊分布以及自动化参数研究 ItascaItasca已经写了一些简单但非常有用的已经写了一些简单但非常有用的FISHFISH函数作为库文函数作为库文件包含在各个具体的软件中,这些件包含在各个具体的软件中,这些FISHFISH函数一方面方便了一些函数一方面方便了一些没有编程经验的用户写一些简单的没有编程经验的用户写一些简单的FISHFISH函数,另一方面也能使函数,另一方面也能使用户在这些提供的简单函数的基础上作进一步的改进不过,用户在这些提供的简单函数的基础上作进一步的改进不过,FISHFISH语言象其它编程语言一样,也可以编制出非常复杂的程序语言象其它编程语言一样,也可以编制出非常复杂的程序 35 利用FISH语言进行编程,应该首先编一些简单的函数,然后仔细检查函数的功能,测试是否有错误。
如果没有发现错误,再逐渐增加其功能,增加一项功能检查一下,直至发展到最后比较复杂的程序这是因为虽然FISH是一种编译型语言,但它没有自己独立的编译器,不象VC++或VB能够实时全面地检查错误,FISH检查错误的能力很差,因此在使用他们到真实的应用之前,一定要用一些简单的数据(假如可能的话)来检查所有定义的函数 36 FISH函数内置于标准的Itasca软件的数据文件中,函数的格式必须以DEFINE开始,以END结束函 数可以嵌套调用,但定义函数的次序没有关系,只要在使用之前全部定义就行由于FISH函数的编译格式储存在Itasca软件的内存中,因此可以用SAVE命令保存函数以及相关变量的当前值 FISH也可以用来改进用户写的本构模型,如例1: DEF abc abc=22*3+5 END Print abc 37对上例子稍作改进(例2): new def abc hh=22 abc=hh*3+5 end1).稍有编程常识的人可以看出,执行上面的例子(PRINT abc),其结果与例1相同:abc=71.在这个函数中,我们首先把22赋值给变量hh,然后把这个变量带入abc的表达式中,因此二者的结果相同。
382).FISH的执行过程如下:当在程序命令中使用一个FISH符号名时(例如执行PRINT 符号名),如果符号名也是一个函数名,那么执行这个函数(例如abc);如果符号名不是函数名,那么使用符号目前的值(例如hh)3).在输入完例2的各行后,如果我们执行命令:PRINT hh,此时hh=0,因为在这个时候没有执行FISH函数,因此hh的初始值为0;我们接着执行PRINT abc,结果显示abc=71;再次执行PRINT hh,此时结果为hh=22,这是因为我们首先运行了abc函数,在这个过程中hh已被赋值394). 下面的试验将进一步解释函数与变量之间的差别注意:Itasca软件的SET命令可以用来设置任何用户定义的FISH符号的值,与在FISH中使用的符号无关下面的例3建立在例2的基础之上,我们不使用NEW命令来清除内存中的值,因为我们想继续使用那些值: set abc=0 hh=0print hh print abcprint hh405).在这个例子中,我们首先把abc和hh都赋值为0,由于hh是一个变量,第一个Print命令显示当前hh的值,hh=0;第二个Print命令由于abc是一个函数名,因此执行abc函数,先前定义的abc=0不起作用,重新计算了hh和abc的值,因此第三个Print命令显示的值是它在abc函数内指定的值,即hh=22,例4是这个试验完整的命令。
41 现在我们总结一下:Itasca软件的三个重要的命令PRINT,SET,HISTORY可以直接操作简单的FISH变量或函数如下图所示,其中var代表变量名或函数名 HISTORY命令的用法在这不作重复介绍,即定义了FISH函数后,对其中的变量可以进行跟踪,即HISTTORY Var 42 象其它高级编程语言一样,FISH有执行循环命令的功能,标准的格式如下: LOOP var(expr1,expr2) END_LOOP 其中LOOP和END_LOOP是FISH语句,符号var代表循环变量,expr1和pxpr2代表表达式或者单个变量,下面的例子用循环命令计算从1到10的和以及乘积,见下例:43 new def abc sum = 0 prod = 1 loop n (1,10) sum = sum + n prod = prod * n end_loop end abc print sum, prod 在这个例子中,首先给两个变量赋于初始值,sum用来保存和的结果,prod用来保存积的结果,然后执行循环,最后分别打印出这两个变量的最后结果。
循环变量n(1,10)表示从1开始,连续计算到10结束44关于LOOP的注意事项:1).FISH接受END_LOOP和ENDLOOP的写法,但不接受END LOOP这样中间有空格的写法,其它类似的命令有着同样的规则,如END_IF,END_COMMAND等命令;2).在上面的例子中,如果执行Print n或Print fish命令,你会看到n=11而不是10,注意:这不是FISH的错误,这是一个基本的计算机指令存储规则,当循环结束后,计数器的值保存的是n+1而不是n,所有的高级编程语言有着相同的规则451.DEFINE function END2.CASEOF expr Case n endcase3. IF expr1 test expr2 THEN ELSE ENDIF4. LOOP var (expr1, expr2) ENDLOOP465. LOOP WHILE expr1 test expr2ENDLOOP6. COMMAND ENDCOMMAND7. HISTORY var PRINT var SET var value PLOT add .sh fname47 另外,在FISH中还有许多其它的预定义对象,其中一类是尺度变量(scalar variables),它们是单个的数字,下面是总的尺度变量: clock----时钟时间,单位是秒的100倍. unbal----最大不平衡力 pi----圆周率 step----目前的时步数目 urand----0.0-1.0之间均匀分布的随机变量 这仅是其中的一小部分,完全的列表以后再述。
48 另一类非常有用的内置对象是固有函数(intrinsic functions),这些函数能在FISH内进行一些比较高级的数学运算,完整的列表见FISH 手册,下面给出其中的一部分: abs(a)----a的绝对值 cos(a)----a的余玄(a为弧度) log(a)----a的底数为10的对数 max(a,b)----返回a,b中的最大值 sqrt(a)----a的平方根493.PFC2D计算模型的生成方法 有两个命令可用于生成颗粒流模型:BALL和GENER-ATE,其中,BALL命令是生成单个的颗粒,该命令生成的颗粒可与已存在的颗粒重叠,而GENERATE 可生成一系列指定数目的颗粒流,该命令生成的颗粒是不允许重叠的PFC2D里主要有两种类型的颗粒流:规则排列的和无规则排列的一系列规则排列的颗粒流可以用来模拟模拟结构部分,如梁,而不规则排列的颗粒流可用来模拟实体或内部结构无规则的颗粒材料,如岩石内部所包含的胶结颗粒。





