Getting started
1 导言
1.1 背景与概述
PFC2D 是利用离散单元法(DEM:1979年由Cundall和Strack提出)模拟球形颗粒的运动和相互作用的软件。它最早是被用来模拟颗粒状材料的行为;对包含有几百个颗粒的代表单元做过数值测试。颗粒模型被用来代表单元的行为(条件是统一的),而连续的方法则被用来解决真实的具有复杂变形模式的问题(其中单元行为取决于颗粒模型测试)。两个事实给这种近似带来了变化。首先,对于particle assemblies而言,从测试结果中得到本构关系定律是非常困难的;再则,随着电子计算机运算速度及存储量的飞速发展,使得利用大量颗粒模拟整个问题成为可能;本构关系则自动在模型中体现出来了。PFC2D旨在成为可以解决固体力学和颗粒流的一种行之有效的工具。 一个与圆形颗粒的移动和相互作用有关的物理问题也许可以直接用PFC2D进行模拟。利用两个或更多的颗粒来组成一个任意形状的物体也是可能的,因此这样捏合起来的每组颗粒则可以代表各自的物体(可利用clump logic,理论与背景,section 4). PFC2D也可以用来模拟易碎的“固体”,即把每个颗粒与他周围的颗粒粘结(bond)起来;得到的assembly就可以被看作“固体”,它具有弹性而且当键(bond)在加工过程中被损坏时能够“fractuing”。 PFC2D包括大量的logic供用户使用,它们可被当作是bonded particles的一个大软件包来模拟“固体”(其中很多的logic在augmented FishTank 中被执行过,FishTank是由FISH编写的一套公式,FISH是PFC2D的一种嵌入式语言,见section3 in the fish volume);“固体”可以使各项同性的,也可能被分割成不同的区域或块。这种系统也可由离散元程序UDEC(Itasca2004)和3DEC(Itasca2003)模拟,但是它们多用来模拟angular block。然而,PFC2D拥有以下三个优势。1.它具有潜在的便捷性,因为判断圆形物体是否接触比判断带角物体的接触容易的多;2.本质上,PFC2D对物体的位移没有限制,即其可以任意大位移移动;3.不像UDEC(Itasca2004)和3DEC(Itasca2003)中那样,在PFC2D中,block可以破裂(因为它们之间是由键粘合而成的)。PFC2D在模拟blocky系统中的缺点是block的边界不平坦(planar);
1
那么以PFC2D的优点作为交换,用户只能接受“颠簸(bumpy)”的边界啦。
PFC2D中对于几何形状、性质和求解条件的说明不可能像FLAC(Itasca2002)或UDEC中那样直接明了。例如,在一个连续的程序中,网格被生成,初始应力被安置,边界条件被固定或不固定。在像PFC2D这样的颗粒代码中,是不可能有一个简洁、一般而言的陈述的,因为想在一个给定的空间中pack一定数量的颗粒就有很多种方法。生成颗粒后必须有一个压紧的过程,直到满足要求的孔隙率。对于初始的应力也不可能有一个详细、独立的说明,因为接触力完全取决于颗粒之间的相互位置。最后,边界条件的设定也比连续的程序中复杂的多,只因为PFC2D中的边界并不是平坦的曲面。这些问题本手册中都会提及,建议亲自动手实现手册中的练习程序去模拟真实的问题。一个深层的困难是必须使模拟取得的数据与实验室中的数据吻合。某种程度上说,这是一个反复的过程,因为想要从微观的性质预测宏观的肉眼可见的物理行为,目前还没有一个完整的理论。然而,本手册给出了指导方针,它会在用户吻合数据的过程中对用户提供帮助(举例来说,某参数的变动会影响某个行为,或者不会)。需要认识到的是,这些模拟将会是非常艰难的,因为它会不断挑战你的知识储备的极限。然而,通过执行PFC2D的测试,我们可以对固体的力学得到一些基本的认识(特别是断裂力学和损伤力学)。
DEM属显示的时间推进模式方法,理论与背景中section3中会有详细介绍。这种模式有以下一些优势,1.它对于系统表现出不稳定的情形将会非常的容易;2.模拟的规模只取决于计算机的容量,因为根本无需储存矩阵的信息;3. PFC2D可能被用来模拟静态或力学问题,而要求解完整的力学运动方程几乎只需我们知道静态解;这是为了遵从现实生活中的材料表现出的‘flow’和失灵现象;4.无需调用一些非物理的算法。一次PFC2D模拟一般需要上千次时间步长的迭代,每一步长中应用两次牛顿定律来更新颗粒的速度和新位置,并更新作用在颗粒上的作用力。以这些新的颗粒位置为基础,作用力取决于每对颗粒的相对位移。
该版本的PFC2D可在windows98和更高的系统下运行。在100mb内存时,可同时模拟100000个颗粒。用户还可以使用并行选项,几台计算机联网分流运算。详细内容见optional features中section4. PFC2D中的其他选项还有:热力学分析及耦合;C++程序模块;流体项耦合;用户自定义接触模型。
2
PFC2D的执行默认为命令驱动模式;还有为文件管理,绘图和打印改道等准备的绘图及菜单驱动模式。在任一选项中,都可以迅速生成high-resolution,color-renderd绘图。图形显示功能允许用户在创建或程序运行过程中的任一步骤都可以观测到模型的状态。显示的图形有可能是颗粒、墙、接触、力、位移、速度或其他数值。所有的绘图输出可以直接以黑白或者彩色的形式考入windows剪贴板或者一个单独文件。
1.2 主要特征
PFC2D可模拟任何尺寸的圆形颗粒的assembles。一个颗粒生成器可以自动生成指定分布的颗粒群。颗粒半径可以是统一的,也可以服从高斯分布。特别地,初始的孔隙率很高,但是通过控制颗粒半径的扩张也可以得到密集。用户可以在任一步骤改变原有的半径,因此用户无需反复试验就可以得到指定的孔隙率了。
性质与单个颗粒或接触息息相关,而不是“type number”。因此,用户要指定连续顺序的性质或半径。“joint generator”用来修改沿着指定线的接触的性质,当然假定他们在particle assembly上是有层次的。这样,模型可能会被weak plane的设置traversed。颗粒的颜色也被看作是一种性质,所以用户可以自行指定各种记号。
在PFC2D模型中,为确保在数值漂流中长时间自由,坐标和半径都以二进制储存。相关的接触位移直接按坐标轴计算得到,而不是通过位移的增量算得。关于接触:
● 线性弹簧,或者简化hertz-mindlin 定律; ● 库仑sliding; ● 键的选择。(键连接可以承载一定的张力,而键对张力和剪切力的承受能力是有一定限度的。键一共分两种,即接触键和平行键,它们可以安装到颗粒与颗粒的接触当中。这两种键分别对应两种物理性质:1.接触键是用来表示在一个非常小的区域上的支持作用;2.而平行键则用来表示在小球与小球接触后的附加材料(material)的堆积(deposited)作用。这种附加材料的有效硬度与接触点硬度平行,因而得名平行键。)
Clump logic使此代码的一般性得到延展,它支持被slaved的颗粒及clump的群的创建。Clump中的小球可以重叠,且每个clump的行为犹如带有可变形边界的刚体,因此,它可以看作是驾驭颗粒之上的一
3
种一般的几何形状。Assembly通过墙的速度,颗粒速度和应用外力的混合物来加载。Augmented fish tank 为在assembly中安装一指定的应力区域提供了一些方程,或者对assembly使用应力边界条件。时间步长的运算是自动进行的,而且包括由hertz接触模型引起的硬度变化的作用。时间步长也可以根据每个颗粒周围的接触的数量和瞬时的硬度值而改变。有一种模式叫单元映射模式(cell-mapping scheme),他是以颗粒计数为基础,利用最优的cell数;它可以自动调整单元空间的外部尺寸来提供逃逸颗粒和/或新进入的颗粒,就像被指定过一样。这种单元映射模式支持判断接触算法,以确保求解时间根据颗粒数线性增长而不是二次或高次。PFC2D中任意的线段都可以被指定为墙,拥有各自的接触性质。在墙的拐角处需要设置特殊的接触条件,它是与墙的有效面有关的曲线,以保证当颗粒沿峰滚动时接触力的单值性。除平面墙外,圆形片段,点墙和线状的墙都是可用的。可以给墙指定一个速度(平动转动都可),而墙上的力和力矩都可以被追踪(monitored)。
在模拟的任一个阶段,颗粒和墙都可以被创建或删除(当然他们的性质也可以改变)。
PFC2D模型可以在一个矩形的周期空间被创建或执行,其实就是无限空间的问题我们可以使用周期边界。
Adaptive 连续/非连续(AC/DC) logic 被用来handle bounded material 的大模型。Pbrick则源自周期空间中创建的compacted assembly。Pbricks可以被储存,也可以被复制来构建一个大模型。被选中的pbrick可以表示为矩阵的形式,因此节省了计算时间和内存。Pbricks也可以被任意分布在一组处理器当中,利用MPI(见section1.4.1.5).AC/DC只用来模拟变形比较小的情形,例如易碎的岩石。AC/DC的描述见section4 in FISH volume。 PFC2D还提供了局部非粘性阻尼(用于消耗动能),此种阻尼具有以下优点:
● 当运动是稳定的时候体力趋近于零(即只有减速时才有阻尼)。 ● 阻尼常量是无量纲的;
● 带有不同自然周期的assembly区域平等的阻尼,即利用相同的阻尼常数,因为阻尼是frequency-independent的。
粘性接触阻尼也可以使用,其中利用接触弹簧元素进行平行的缓冲。这种阻尼在模型impact和free flight的情况下是合适的,而此时利用默认的阻尼是不现实的。
4
密度缩放可以用来增加时间步长和优化求解效率。重力不受密度尺度缩放的影响。
追踪能量。以下能量可以被追踪:
● 体的工作量(assembly中的所有颗粒体)
● 粘结能量(总的assembly的张力能量储存在平行键之中); ● 边界的工作量(assembly中的所有墙) ● 摩擦(所有接触的摩擦能量消耗); ● 动力学能量(所有粒子的动力学能量)
● 张力能量(整个assembly的所有接触的张力能量)
assembly中测量任意圆形区域数是很便利的: ● 平均应力张量的所有成分; ● 平均张力张量的所有成分; ● 孔隙率;
● The coordination number(每个颗粒的平均解除数); ● 接触分数。
任何数据都可以追踪而且储存为history。储存的history也可以绘成图,显示在屏幕上,或者储存在一个文件里面可以被其他程序调用。 PFC2D可在半静态模式或全动力模式下执行。
PFC2D中所有数据都可以被储存,并汇成history。
PFC2D拥有强大的built-in程序FISH,用户可以定义新的变量和方程。FISH提供给用户一个唯一的能力去根据用户自己的需要裁剪程序。例如,FISH方程可以做以下的事情: ● 详细说明用户指定的性质变化; ● 绘制和打印用户自定义的变量; ● Servo-control数值测试; ● 自动参数学习;
● 根据用户的需要创建或删除颗粒; ● 按照某种方式创建颗粒group; ● 读写ASC2或2进制文件;
● 利用TCP/IP信息从/向其他Itasca程序发送和接收数据。
1.3 可选择特性
可选择的特性(热量分析,流体分析,并行处理和C++编程,用户可以通过C++程序创建自己需要的基础模型)此可以作为PFC2D的
5
额外价值。 热力分析选项:可以模拟材料中短暂的热流和随后位移和力的发展趋势。热力模型可以独立运行也可以耦合在力学模型之中。热力张力通过改变颗粒的半径得到,平行键上承载的力来说明颗粒和结合键的热量。热力学分析选项的描述见section 1 in optional features。
流体分析选项:允许用户模拟流固耦合问题。该模式在欧拉坐标系下数值求解连续和动量方程,然后得到考虑单元内小球存在时的压力和速度。由流体产生的驱动力在施加于小球之上。关于流体选项的描述见section2 in optional features。
用户自行编写的C++选项:允许用户自己编写程序,从而创建私人版本的PFC2D。该选项可以用来取代FISH方程。The Microsoft Visual C++ Version 7.1 编译器可以被使用做这项工作。用户自行编写的C++选项的描述见section3 in Optinal Features。
并行处理版本:的PFC2D也是一个可供选择的选项。并行版本允许用户把一个PFC2D模型分解成几部分,而分别在各自的处理器上运算。这实质提高了存储能力和计算速度比单个处理器快的多。在并行处理选项中,MPI(message passing interface)也可以被执行,它允许与AC/DC logic或者用户自己编写的C++程序进行通讯。并行版本与并行计算程序的描述见section4 in optional features
用户定义接触构建模型可以用C++编写,并像DLL文件一样编译,任何需要的时候用户都可以调用它。The microsoft visual C++ version 7.1 用来编译DLL文件。编写新接触模型和创建DLL的描述见section5 in optional featrues.
1.4 Summary of updateds from version 3.0
以下特征被加入到3.1版本。下一节是对新特征的概括。(注意PFC2D 3.1可以储存3.0版本保存的文件,但是2.0或更旧的版本就不能储存了)。
1.4.1 3.1版本的新特征 1.4.1.1 新的广义墙 点墙(2D)和线墙(3D)作为新的广义墙被加入,详细的描述见section 5 in 理论与背景。 1.4.1.2 流体分析选项
现在,流体分析在PFC2D中是可用的选项。流体选项允许用户模拟
6
流体耦合问题如小球与流体作用的问题。流体选项的描述见section 2 in 选项特征。
1.4.1.3 AC/DC logic
AC/DC是一种处理大的粘结材料模型的方法。Pbrick来自在周期空间中创建的compacted assembly。Pbricks可以被储存,也可以被复制来构建一个大模型。被选中的pbrick可以表示为矩阵的形式,因此节省了计算时间和内存。Pbricks也可以被任意分布在一组处理器当中,利用MPI(见section1.4.1.5).AC/DC只用来模拟变形比较小的情形,例如易碎的岩石。AC/DC的描述见section4 in FISH volume。 1.4.1.4 周期边界
周期边界在处理空间无限大问题是非常好用。作为简单的例子,见section 3.8.1.4 in FISH volume。 1.4.1.5 新的并行处理选项(MPI) MPI(message passing interface)也可以被执行,它允许与AC/DC logic或者用户自己编写的C++程序进行通讯。并行版本与并行计算程序的描述见section4 in optional features 1.4.1.6 影片选项
PFC2D 3.1 可以生成两种工业标准格式的影片文件:AVI和PCX。影片可以看作是AVI和PCX图像的集合,并能重复播放出来。MOVIE和SET plot命令可用来调用影片特征。 1.4.1.7 网络key
PFC2D 3.1 的网络版本是可用的,它允许在服务器上安装一个独立的硬件用来使用网络。PFC2D也许可以在互联网中的任一台计算机中运行。网络key需要一些特殊的许可证安排和安装。
1.5 应用领域
PFC2D可能应用到的领域如下。这些应用拓宽了程序本身的应用范围,可以模拟多离散体,大张力载荷或处理特征过程的能力的作用 ● 在斜道,管道,箱体和地窖中材料的块体流 ● 块体处理过程:混合和传输
● 矿质开采:易碎,易塌,易裂和岩石块的流动 ● Compction of powder in molds
● 粘结颗粒组成的物体的碰撞:力学破损 ● 地震反应和由颗粒排列的梁结构的坍塌
7
● 颗粒原料的基础性研究:生产,流动及体积变化等。
● 由结合的颗粒集组成的固体的基本研究:损坏堆积,易碎和声响
发射。
更多的PFC2D的应用见section 3.2 in FISH volume
1.6 PFC2D手册向导
PFC2D 3.1版本手册包括七个文档。本文档,即用户向导,是用户使用PFC2D的主要向导,它包含了对特性和针对具体问题的最佳程序的推荐的描述。其他帮助信息则在剩下的六章中给出。 以下是这七个文档的结构和各章节目录的主要概括。
用户指南
Section 1 绪论
这一节给出了PFC2D的基本性能,特征和应用的介绍。还
有PFC2D最新的一些功能。
Section 2 开始
初学者应参看此节内容,一对PFC2D的操作有一个了解。
其中对安装和操作都有十分简要的介绍,对初学者的研究有益。
Section 3 利用PFC2D解决问题
本节给出了利用PFC2D解决问题的一些一般的指导。讨论
部分是具想到行作用的,但只是很泛泛的讨论。典型的PFC2D的每一步都会详细说明,在介绍创建,解决和解释PFC2D模拟的过程中还会给出一些很好的建议。看过此节,用户就会对PFC2D的操作有所熟悉。
Section 4 FISH 初学者指南
本节介绍FISH语言。它包括如何使用FISH语言。注意手
册假设用户没有任何编程经验。它会对FISH以及其应用做非常详细完整的叙述。
Section 5 杂
对PFC2D感兴趣的用户可以参看此节,其中包括PFC2D在
不同计算机上的运行时间的基准,报错程序和要求的技术辅助。
8
Section 6 参考书目
本节给出了一些参考书目及类似的离散元程序。
参考命令
Section 1 参考命令
本章包括对PFC2D所有命令的详细说明(不包括FISH)。
PFC2D中的FISH
Section 1 FISH的初学者指南
本节提供用户FISH指南。也会帮助用户熟悉FISH. Section 2 FISH参考目录
本节包括比较全面的FISH语言的目录。对FISH语言的规
则和语法作出了解释,叙述了FISH和PFC2D的联系,给出了FISH的所有预先变量和方程。
Section 3 not clear
Section 4 AC/DC(ADAPTIVE CONTINUUM/DISCONTINUUM) 本节叙述AC/DC logic的内容。这些logic使用户通过一些
变化来解决很大规模的问题,需要注意的是,这个选项只适用于较小变形的情形。
理论与背景
Section 1 一般表达
介绍离散单元法本身及主要的控制方程。 Section 2 接触构造模型
Built-in基础构造模型的表达和执行在本节介绍。其中接触
模型被分为三种:硬模型,滑动模型和结合(键)模型。两种键可用:即接触键和平行键。2.4中还介绍了更为复杂的模型。注意,用户自定义接触模型在section 5 中也有介绍。
Section 3 执行问题
与执行有关的细节问题。讨论的话题主要包括:墙LOGIC;
追踪的意义及基础的发展;能量可以被追踪;以及测量logic。
Section 4 广义墙logic
广义墙是对原始墙的沿拓,如2D的圆形墙及3D的球型墙。
这些广义墙比如果用原始墙的简单堆积方便的多。
选项特征
9
Section 1 热力选项
介绍了热力选项,并且给出了一些实际问题的解决方案。 Section 2 固定粗网格流体模式
颗粒与流体之间的作用力。 Section 3 C++ Section 4 并行处理
Section 5 编写新的接触模型 例证问题和例子应用
本章包括了一系列用PFC2D解决的例证问题和例子应用。
例证问题中,对PFC2D的解与解析解做了比较。这些例子说明利用PFC2D可以解决很多问题。
命令及FISH参考书目 Section 1 命令概要
本节提供PFC2D中使用的所有命令的概要。 Section 2 命令陈述概要
本节提供了FISH语言的概要。本概要包括FISH语言的陈
述和所有预变量和方程。
2 入门
本节为第一次使用的用户介绍了PFC2D。入门包含程序的安装及命令和怎样在计算机上运行。本节还概述了PFC2D程序在地质工程问题中的应用,包括简单的例子,及这个程序每一步的演示。
如果只是熟悉该计划,偶尔使用它,会发现这一节(中尤其是,第2.7节)帮助你耳目一新的记忆运行PFC2D。更全面的信息问题解决在第3节。
PFC2D可以在命令驱动或图形模式下运行,本手册中有菜单驱动模式的大部分
例子,输入和结果被认为使用命令驱动的模式。我们认为,这是最明显的方法,可以让你了解PFC2D程序的操作。命令驱动结构使PFC2D是一个非常灵活的用于工程分析的工具。然而,这种结构会给新手或偶尔使用的用户带来困难。为了使代码运行,通过交互键盘或远程数据文件将命令输入PFC2D命令行中。
10
入门包含以下信息
(1) 第2.1节给出了每步程序的安装和PFC2D启动过程。这包括PFC2D对系统的要
求,说明的组成部分, PFC2D程序和相关文件,内存分配,实用软件和图形芯片,启动和运行程序,程序初始化,确定版本编号和安装测试。 (2) 第2.2节是一个简单的教程,以帮助您熟悉常见的输入命令。
(3) 在创建和运行PFC2D模型之前,需要了解PFC2D术语。第2.3节对术语的使用
进行了描述。第2.4节给出了PFC2D模型的定义组成部分。第2.5节介绍了PFC2D 输入语言的语法。
(4) 第2.6节介绍了PFC2D的特色:在模型中创建、命名和使用对象的功能。可以方
便的解决问题。
(5) 第2.7节介绍了单独运行PFC2D模型的步骤,每一个步骤是分别用简单的例子来
讨论。
(6) 符号规约和系统的单位使用的程序分别在第2.8 和2.9节介绍。 (7) 2.10描述了不同类型的文档在PFC2D中使用和创造。 (8) 2.11介绍了图形用户界面。
2.1 安装和启动程序 2.1.2 系统要求 2.1.2 安装程序
11
PFC2D从CD - ROM安装。可在Windows 98 ,XP2000运行。早期版本的Windows或其他作业系统将不会执行安装。 默认安装的PFC2D将从CD - ROM安装程序,它包括样板文件,完整的PFC2D手册。 Adobe Acrobat Reader软件是必要的。
2.1.3 PFC2D的组成(略) 2.1.4 版本鉴定 2.1.5 程序启动
在用户的“开始” 菜单的默认安装中将创建一个“艾塔斯卡代码”组下的“程序”。该“艾塔斯卡代码”组包含一个PFC2D捷径可用于启动代码。
打开PFC2D创建窗口,主窗口还设立了一个命令窗口,可根据提示直接输入PFC2D命令。
打开后,PFC2D动态分配内存(即内存使用量因为该模型建造增加)。作为一个经验法则,建议4至6 MB内存可生成一个完整的PFC2D模型,否则Windows将开始交换到虚拟内存,这种交换可能会造成巨大的性能损失。此外,如果同时运行其他应用程序,会减少PFC2D的内存。( 分配制度可控制的集记忆命令。)
打开PFC2D后,键入print memory(打印内存),此命令将显示PFC2D正在利用的内存总额。
PFC2D可以从命令行运行,根据可执行名称支持命令行参数。如果这些情况都出现,每个都将作为保存文件或数据文件来解释。如果该文件不是有效的保存文件,那么它就是假定数据文件。自动执行还原命令保存文件,对于数据文件,自动执行提取命令。多个文件按指定的顺序提取或恢复。此外,为了能够更容易使用的批量文件处理多个数据文件,可以给从命令行给出退出的关键字,可以使代码执行停止和完全退出。
2.1.6 程序初始化
关于启动,PFC2D将在当前文件夹中查找到文件名为“ PFC2D.INI”文件,如果没找到,可在“ C : \\ Program Files文件\\艾塔斯卡”文件夹找到该文件。“ PFC2D.INI ”文件可包含任何PFC2D 命令,预设属性计画,每次可套用PFC2D使用。 如果文件“PFC2D.INI ”并不存在,继续运行PFC2D没有错误,但有些命令可能会导致错误讯息。
12
2.1.7 实用软件和图形芯片
在运行PFC2D时,几种类型的实用软件和图形设备可提供以极大的帮助。
文字编辑器可用来创建PFC2D输入数据文件。任何文本编辑器,产生标准ASCII文本文件都能使用。必须注意,使用文字处理软件(例如, 的WordPerfect , Word )时,这些软件通常将编码格式描述成标准输出格式,这说明不会被PFC2D识别 ,将导致错误。 PFC2D输入文件必须是标准ASCII格式。
PFC2D图形输出支持几种不同类型的图形设备。默认情况下,Windows将图形的产生与这些图形打印的命令(或PFC2D主窗口视图菜单的文件打印)传给打印机。(请注意,可在我的电脑文档中使用Printers文件夹改变打印机的默认设置)Windows 打印机输出也是选择SET命令窗口图形。
该命令集图形剪贴板指示所有图形输出到Windows剪贴板(无档案产生) 。该图像是增强型图元文件格式,它随后可以以这种格式粘贴到另一个Windows应用程序。
图形集SET命令指示输出到增强型图元文件格式的磁盘上,在那里可以保存以供参考或更新嵌入Windows文件。输出的SET命令应该用“emf”扩展名设置输出文件名。
请注意,可以从PFC2D主窗口菜单选择不同的图形文件输出类型。
2.1.8 运行PFC2D
PFC2D可以以交互模式或从输入命令驱动的模式运行。如果要以PFC2D代码运行,只要在开始命令窗口输入命令。 按回车键,PFC2D会执行每个命令。如果出现错误,屏幕上将显示错误信息。
作为一种替代办法,,可使用文字编辑器(见第2.1.7 )创建输入的数据文件。此文件包含了一套命令可以使其进入交互模式。该数据文件可能以任意何命名,一般都用扩展名(例如,“DAT ” )将其与其他PFC2D文件区分开(见第2.10 )。
在窗口的命令行中输入以下命令可将数据文件读入PFC2D
call file.dat
其中“ FILE.DAT ”是用户指定的数据文件名称。可以看到PFC2D内容的每一行数据条目在屏幕上滚动。
如果调用的文件位于同一文件夹中,其中“ PFC2D.EXE ”正在运行,要输入档案名称的调用命令。否则,该文件只有通过完整路径(例如: C : \\ myfolder \\ file.dat )才能调用 。另外,可以从菜单文件目录调用(见第2.11 )。
13
2.1.9 安装测试
三个简单的数据文件, “ TEST1.DAT ” , “ TEST2.DAT ”和“ TEST3.DAT ”被列入“ \\ PFC2D310 ”目录,这样可以确保PFC2D是正确安装。这些文件为计算机测试计算内核,屏幕上的图形绘制和印刷图形设备。为了运行第三次试验,计算机必须连接Windows打印机。
如果要执行这些测试,通过调用菜单(File Call)从“ \\ PFC2D310 ”目录进入文档“ TEST1.DAT ”,或在Pfc2D 提示栏中键入 call test1.dat 按回车。
有几个数据条目会在屏幕上滚动,一个简单的模型将执行100 次计算。例如2.1,成功的运行“ TEST1.DAT ”。
现在,从“ \\ PFC2D310 ”目录调用文件“ TEST2.DAT ”,或输入命令
屏幕上将会出现这一模式的图形。图形一个盒子里装一个色彩渲染的球。 按下回车键返回到Pfc2D 提示界面。
如果电脑连接到Windows打印机,调用文件“ TEST3.DAT ” ,从“ \\ PFC2D310 ”目录打开,或输入
14
如图2.1所示图形应发送到的印表机,如果没有打印机相连,该程序退出,不加载“ TEST3.DAT ” ,输入quit退出PFC2D。
如果按上述步骤不能成功地进行这三项测试,应该检查该系统是否满足要求和安装步骤第是否正确。如果仍然有困难,我们建议您联系艾塔斯卡,并描述您遇到的的问题类型和所用的计算机配置。(见第5.2节程序的错误报告)
2.2 简单教程――常用命令的使用
在本节中给新手用户提供了一个简单的例子,可以通过它试着操作PFC2D。
此范例测定一个搁置在一组圆形颗粒上的粗条形基础的承载能力。对于本教程,我们以一垂直不变的速度使基础逐渐嵌入球颗粒中(图 2.7),并监测其产生的应力,一直进行到确定其破坏荷载。
只是为了达到演示目的, 该模型非常粗糙(只产生500球),并且假设模型关于x=0平面
15
对称。这样只要求解一半的问题。(Pfc2d \\指南\\启动”目录,数据文件“footing.DAT ” ,包含所有的命令,可进入交互模式。 )
可以这样操作这个问题(即,从键盘键入命令,每行命令结束时敲回车,可直接看到结果) 。在艾塔斯卡码组里点击PFC2D图标,出现PFC2D主窗口,其中包含命令窗口,通过命令行开始操作Pfc2D。
我们首先指定粒子为单位厚度的圆盘,键入
然后,我们确定模型的边界(即墙壁包含的粒子)。通过键入如下边界墙的命令,
这些命令将创建一个方块型的四面墙壁。每个墙给定一个单独的识别(身份证)号码。每一个墙的位置是由两个顶点确定,每个顶点是关键字X和Y坐标的节点。顶点的次序确定了墙的主动性(即将和球接触的一面)。当我们从第一个顶点到第二个顶点时墙的左边为主动的一面。(详细命令介绍见墙的节壁几何体)。
下一步,我们填充圆块(下面均称球)。通过输入命令
在此命令中,我们指定球要产生的区域,球的尺寸范围和总数。每个球用数字从1至500 标记,于是500个球就生成了。装球的盒子由半径在
确定,球的
0.08米和0.13米之间随机选取,如果该盒子尺寸过小或球的半径过大而容
纳不下500个,系统将会减少球的数目,并显示实际数量。
该模型可以通过PFC2D图形模式观察到。键入命令
出现
提示,在
提示下键入的任何命令都将与图形命令联系,
,
提示一般是与当前图形的名称有关。在这里,如果没有创建图形,将会显示不管其他图形有没有创建,创建了多少,这始终是成立的。 为了建立一个附带图形的模型,沿着模型轴,输入如下图形命令
16
这样就创建了一个名为基础的图形窗口,在图中显示了黄色的球,黑色的墙,棕色的轴线。可以看到此时提示栏显示
,关键字显示当前的视图。图形与图2.2相似。
这一图形窗口是活动的,可用
在这里,我们介绍一些绘图功能,以提高效率。命令:
它作为所有图块的总名,表示在这一章开始运行的一系列图块。对个别图块,用以下命令
将把标题串起来,例如:
创建的标题显见图2.2 。这些标题可以定位在图形的顶部或底部, 或者完全关闭。(在命令参考中列出了图形标题设置命令的所有选择)。
17
注意,我们可以直接指定图形格式的命令。在图2.2的标题中,给出了视图的尺寸。因此,建立了视图后可以进行交互操作,把数据转移到自己的数据文件夹中以减少区分两个相似视图的麻烦。(通过视图输出命令可将当前的视图输到文本文件中)
我们可以在例二的基础上建立其他的视图,新的命令在例三中以黑体字表示。(假定
提示仍然可以使用;否则在输入例2.3的命令前先输入
,按回车键即可。)
比较基础1和基础2的视图,可以很明显地看到它们的不同之处。 为了使图形可以输出并打印,返回到和击鼠标或按回车键,然后输入
可将图形传送给打印机,输出类型可根据需要改变,这在2.1.7节中将会介绍。 键入
关闭
,此时只显示
,
,在命令窗口移动
关闭一个视图只是不再显示它,而不会将它从项目中删除。
如图2.2所示该模型是在10米×5m的方块中填充了500个球。从图中可以看出盒子中有很多空隙,可以生成更多的球来填充盒子。另外,可在开始时用更少的球,
并增加其半径来实现最初的压缩状态模型。这种做法比较容易执行,接着会发现可以在初始孔隙的基础上得到更好的粒子压缩系统。(这种方法在3.3节中有详细介绍)
在增加球的半径前,必须确定球和墙壁的刚度,下面的命令给定了四块墙的刚度:
Kn和ks分别表示每块墙的抗拉和抗剪刚度,这里均以球的刚度通过下面命令给出。
18
为单位。
Kn和ks分别表示每个球的抗拉和抗剪刚度。要指定一个球的密度,关键字density是用来把密度初始化为1000 kg/m3。
可以将原来的半径乘以一个大于1+的系数加以扩大,这一步的操作命令是multiply,
此时可以从视图中看出,所有球的半径都会扩大1.51倍。
通过键入以下命令,可以监测球体的运动,以及颗粒堆在不平衡力下的变动。
通过这些命令,可以监测每5个计算时步的变化。(默认值是每10个时步)每5个时步就将得到的数据储存在一个阵列中。主要监测两个变量, 一个是在输入history命令时球体质心
Y方向的速度(yvel),此例中是第130个球。另一个是系统平均不平衡力
的诊断
。监测模型中的不平衡力往往是个不错的方法,尤其是在静态分析中,如果
不平衡力到了一个极小的值,就表明系统已达到了一个平衡状态。(查看3.9.1节)
现在,准备压实方盒内的小球。在给定的半径和刚度参数下,以及零摩擦力的情况下,当球体达到力学平衡时,对其运动状态进行一些计算。通过监测不平衡力下球体的速度,可以测出达到平衡状态时所需的时步。键入命令:
由于这是一个静态分析,我们使用密度缩放选项
来提高求解效率。
统一设定时间步长,调整惯性质量使其在求解静态问题时得到最快的收敛速度。要注意到重力作用在这里不产生影响。
键入cycle命令后计算过程便开始了,屏幕上会显示循环次数,时间步长,总时间,平均不平衡力,最小不平衡力。每五次循环便更新一次。总时间是计算时间而不
是实际时间。同时视图
的时间间隔可通过命令
更改。
会每二十次循环更新一次。(更新
根据假设,运动方程中应用阻尼来吸收振动能量使其尽快达到力学平衡,这种阻尼形
式在3.8.2.1将会介绍。
可以通过查看4000次循环后第130个球体的y方向的速度和不平衡力来判断其平衡状态。键入
19
从图2.3可以看出y方向速度的历史记录。注意到键入
设置当前的视图为能将当前的视图转到车键返回命令窗口,键入
不平衡力的历史记录见图2.4。速度和不平衡力都达到零时意味着系统达到平衡状态。如刚才所提到的hist2命令将当前视图替代为与hist2相关的信息。
因为
视图是始终可用的,它是一个有用的临时显示信息平台,作为存储项
,hist 1命令将擦掉当前的视图,以历史名代替。如果不,hist 1命令将会覆盖当前的
视图。按回
目。要注意所有的图形命令都会对当前视图产生影响。可以通过以下命令测定当前视图,在图形提示栏里键入
或在pfc2d命令行中直接键入
最后两个图块将显示在pfc2d的
中。
注意,每个过程都是通过history命令按顺序从一开始编号。
返回pfc2d命令行,键入
得到与每个过程对应的顺序号的清单。
20
现在,使模型进入一个初始的应力状态,它是具有代表性的物理应力。假设只有重力作用的情况下,键入命令
在沿y轴负方向便产生了一个大小为9.81m/s2的加速度。
在这规定所有球的摩擦力为
每个球表面的摩擦系数为1.0,在重力作用下继续循环。
1000次循环后,模型在重力体力的作用下达到平衡状态。(在
视图中重复
图形历史的操作检查是否达到平衡)在加上重力后,模型上产生一个重力梯度,通过以下命令把接触力在图形上表示出来
21
通过这串命令可创建一个触点压力的视图,并将它作为当前视图。球与球之间产生的触点压力将以线条表示,线条的粗细与应力的大小成比例。如图2.5所示,墙和球的触点压力就表示出来了,沿y轴负方向力的变化可通过线条的粗细变化体现出来。
最好是将它保存起来,以便以后调用它进行参数的研究。返回PFC2D提示栏,键入
这样就以foot1的文件名称保存起来了,一般用sav扩展名来和其它文件区分开来。
现在的模型有一系列的视图,如前所述,键入命令
将会显示视图清单,有箭头的视图表示可以进行进一步的操作。键入命令
便会对当前视图进行详细描述,包括所有的设置。键入下面的命令可查看图形条目
通过键入下面的命令可将接触压力视图转换成基础视图
任何已产生的视图可被直接绘制,而不需提到当前。其命令为
这里的viewname是被选定的要绘制的视图名。(注意到这个命令没有使它成为当前视图)
在这一阶段的分析中,将顶部的墙(第3块墙)移去,加上基础荷载。其命令为
3号墙被删除,用10号墙来表示基础,表示基础的墙放置在模型的中间,宽度为两米
22
的一半,使基础以的速度沿y轴负方向运动。(在密度尺度上单位是
米每步,如果要进行一个完整的动态分析,单位就会是长度/时间)
在所有接触点设定一个正应力和剪应力,用来模拟在加以基础荷载前产生的原始粘合凝聚力,其命令为
设定正向和切向的接触粘合强度为
,这个粘聚力在球之间的摩擦力之
上,即球之间不发生滑动。如果超过这个强度,接触点破坏,不再存在粘聚力,这时摩擦力才起作用。
为了监测当基础被压入球中时应力的变化,输入history命令
10号墙上所有的应力将会每隔5步变动一次并记录下来,继续再循环2000次,时步为1.0,速度为0.0005,基础将沿y轴负方向移动一米。
循环停止后,基础的y方向的应力历史将在视图中表示出来。
如图2.6所示,墙中最大应力约为位厚度),承载能力约为6MPa。
。因此,半宽(1米)的条形基础(单
我们也可以查看模型中基础荷载对接触力的影响。按顺序键入命令:
23
可以得到如图2.7所示的图形。为了得到类似的图形,我们复制了以前的视图。我们可以复制视图的内容或视图设置,或同时从一个视图到另外一个,产生一系列类似的视图。每个相同或不同的变量以绘图条目的形式展示出来。
初始教程先介绍到这里。在接下来的Getting Started部分,将介绍在这个例子中加入更复杂的东西,包括在基础下面开挖球体,以及如何稳定开挖。建议初学读者阅读其余Getting Started的指南。当熟悉代码后,再参看Section3。
2.3 术语
PFC2D中的术语。如图2.8。
PFC2D模型:由用户建立模拟物理问题。
BALL:ball可以是球体,也可以是指定厚度的圆盘。Ball的另一名称即颗粒。
Wall:有两种墙,标准墙和一般墙。一般墙在几何形状上和标准墙不同,且一般墙的两边都是激活的。标准墙是一条或多条线段,并在与颗粒的交界面上任意定义接触特性。墙与相互作用的颗粒之间,有一个活跃边。
Contact:球与球或球与墙之间通过点接触相互作用。接触通过球与球或球与墙的重叠来创建,该重叠与物理变形相对应。
Model boundary:模型边界。墙可以用来定义模型边界,或者规定一组球的速度。
CLUSTER:簇,簇内颗粒是粘结在一起的,用来模拟角或块体。簇与簇之间可以相互作用并近似模拟块体系统的行为。簇可以表示自然结构,例如块状岩体或任意结构(隧道线或钢筋等)。簇内颗粒间的粘结可以发生破坏而分离。
24
聚粒(超级颗粒):组成聚粒的颗粒彼此间保持固定距离,且不能分开,像一个具有柔性边界的刚体。
DISCONTINUITY:一个间断由块体系统中相互分离的颗粒簇的一个或多个接触组成,并具有不同于颗粒簇内部的接触特性。间断可以表示岩体中的节理、断层或基岩等。
BOUNDARY CONDITION:边界条件。模型边界的限制和控制条件。例如,可以给一个墙指定速度,或给多个墙指定速度和外力。
INITIAL CONTINUITY:初始条件。
ID NUMBER:具有ID号的模型单元有,balls,walls,measurement circles,histories,tables,clumps and plot items 使用PRINT命令可以得到ID号。ID号可以由用户指定,也可以有程序自动分配。
RANG:范围,即一个变量的边界。
GROUP:一组同名的球。组可以用来限制一些命令仅作用在组内成员上。 CYCLE OR STEP:得到静态解的平衡状态需要经历的计算步数。 Unbalanced force:不平衡力。在数值计算中最大的不平衡力不可能完全为零。当最大(或平均)不平衡力与组装的颗粒之间的最大(或平均)接触力相比很小时,认为模型达到平衡状态。如果不平衡力为一个非零的常数,那么很可能模型中发生错误和颗粒流。
STATIC SOLUTION:静力求解。当模型中动能的变化率可以忽略时,达到静态或准静态解。这是通过阻尼方程来实现的。
Dynamic solution:动力求解。动力求解涉及到高频和短期作用的荷载。 CONTACT MODEL:接触模型。
BOND/BONDING:颗粒可以通过接触粘结。有两种粘结模型:接触粘结模型和平行粘结模型。两种模型都可以认为两个颗粒间由胶水粘结。接触粘结模型只能传递力,平行粘结模型可以传递力和力矩。
Measurement circle:用户可以定义一个测量圆的位置和大小,以测量圆形区域内的孔隙比、应力、应变率、坐标及滑动摩擦。
Porosity:颗粒间的空隙所占区域与整个模型所给定的区域之比。孔隙比可以由测量圆测得。计算孔隙比时,球之间的重叠也被计算在内。
Stress:为测量圆内所有球的平均应力张量,其计算受到孔隙比的影响。 STRAIN RATE:应变率计算是基于测量圆内所有球的速度向量。应变可以通过FISH函数计算,应变除以时间,就得到应变率。
COORDINATION NUMBER:坐标的数量是球接触的平均数。
SLIDING FRACTION:滑动摩擦是测量圆内物理接触的摩擦,这些接触受到剪力,其值为极限剪力的0.1%。认为粘结模型是不能滑动的,不考虑剪力的大小。
25
2.4 模型组成部分
PFC2D模型由圆形颗粒(或球)组成。最小的模型为一个颗粒组成。对大多数问题都需要界定上百或上千颗粒。
若两个颗粒移动后相接触,就形成点接触。一个颗粒可以和多个颗粒相接触。在计算中随着颗粒的移动,接触的数量会改变。
墙用来定义模型的边界并辅助生成颗粒和挤压颗粒。墙在不同的位置形成颗粒群,当颗粒群完全形成后将其移除。墙的速度也可以指定。
颗粒在空间的位置由整体坐标确定。所有颗粒的质心和接触点由它们的(x,y)坐标确定。墙由整体坐标中的线段组成。每个颗粒和墙都可以编号。编号命令如下:
模型中有关颗粒和接触的数量信息可以通过键入命令查看:
PFC2D模型由组装在一起的颗粒组成,经常涉及到接近包装状态的压缩。
26
颗粒的生成和压缩步骤参看Section 3.
2.5 命令语法
PFC2D中所有的输入命令都是面向文字的,并通过带有一个或多个关键字和值的主要命令文字组成。有些命令是可以转换的——也就是修改命令的关键字。每行命令的形式如下:
其中,可选参数由<>标记,省略号表示给定参数的任意编号。可以直接在命令行输入命令。你会注意到前几个字母是粗体。程序允许这样的字母,只要输入可以被识别的命令。命令输入不区分大小写。可以输入整个字的命令和关键字。
许多关键字后面是一系列值。实数可能会漏掉小数,而整数不会。命令、关键字和数值可以由()、逗号、等号、或空格隔开。
分号用于注释之前;在某行分号之后输入的任何东西都是无效的。在数据文件中注释,用分号很有用。输入文件和输出文件都是采用这种方式。可以保证分析质量。
单独的一行,包括注释最多可容纳80个字符。如果一行写不下,就要换行,只要在该行末尾加&即可。
2.6 指定对象
PFC2D为用户提供创建、命名和使用对象的功能。例如如果创建了很多图形,它们会被命名为像“TopView”或者“Velocity Vectors”这样描述性的名字。在例2.2中我们创建了一个新的视图,命名为“Footing”。模型的一部分可以命名为“Excavate 1”,这样可以分清按开挖顺序移除的体积。虽然代码不使用对象名可以运行,但是整个建模和报告的过程由于使用了对象名变得相当简便。这一部分将介绍命名使用对象的一些方法。并说明PFC2D中对象类型的区别。
指定对象有两类:第一,宏对象。它是在被PFC2D命令处理器识别之前的说明。第二,模型对象。它是在PFC2D命令处理器中的说明。任何一个命令,用户输入后,首先要通过命令处理器。在命令处理器中对象属于扩大的第一类。预处理器创建一个字串,然后传送到命令解释器。在这点上看,对象属于解释了的第二类。注意宏对象和模型对象是区分大小写的。
2.6.1 宏对象
用户可以通过MACRO命令在命令预处理器中创建扩大的宏对象。通常情况下,这样的对象包含一个长而复杂的字符串,这些字符串在模型中可以重复使用。预处理器把一连串的命令看作定义了的宏,并取代与完全扩大内容匹配的任何宏对象。该进程继续下去,包括对扩大XX的检查,直到整个字符串被检查完。例2.4显示了如何使用宏。注意:宏的嵌套使用。
27
当重新定义一个宏时,如例2.4中最后一个宏命令的使用,我们在宏名中加上单引号(如图所示)。否则,预处理器将扩大名称,因为它已被定义——得不到我们所要的结果。预处理器跳过引号中字符串,将其留给命令解释器。
前处理有两个作用:
(1)宏对象可以嵌套(不是递归);
(2)宏对象的名称可以从命令字符串中移除。 第二个作用意味着,如果宏对象与模型对象或代码命令有着相同的名称,该对象或命令将不会出现在命令解释器中。这样通常是不可取的。
有一种特殊的宏对象,符号(&),表明该行的继续。在许多情况下,某个命令不能在一行中写完。如例2.5。一行写不下分多行写。符号(&)把两边的字符串连接起来,整个长字符串将送到命令解释器。
宏不能包含多行参数。如果一个符号(&)用在宏对象中,命令预处理器将标记宏对象定义没有完,后面还有。宏对象后面的每一行都作为当前命令部分。这可能造成困难,应当避免。如果需要多行,可以调用FISH函数。
2.6.2 模型对象
模型对象,如模型中的空间范围,粒子组,或绘图窗口,可以由用户来命名。这些对象可以与它们自身的名字相关,在某个地方用到时,代码就可以识别。当用到它们的名字时可以直接由代码处理。常用的GROUP命令可以定义建模过程中某个阶段被挖掉的颗粒。DELETE命令可以方便的用于指定组名的颗粒中。定义一个组GROUP,输入DELETE命令就把整个组删除。例2.6说明了这一点。
28
命名范围和命名组是两个非常不同的模型对象。范围涉及到指定的空间体积(或范围的大小),而组由模型中聚集的颗粒组成。例如(地质工程涉及挖洞),地球可以被看作是一个范围(RANGE Earth...),在这个范围内我们可以建立一个结构(GROUP Shaft...),这就是我们模型中的组。不管组Shaft位于命名为Earth的哪个范围内,范围都保持其几何属性。在例2.7中,我们创建了一个简单的2层地质,其范围命名为“Layer1”和“Layer2”。我们创建两个宏,“砂”和“土”,来定义土壤特性。模型包含两个组:“Tunnel”,组的某些部位会开挖;“Matrix”,它代表开挖后模型中剩余部分。宏用来明确确定我们分配给地层土壤的类型,组使颗粒呈现出与其对应的属性。不必担心这里命令的使用细节。他们将会在本节稍后和第三节涉及到。为方便辨认命名对象用粗体。
2.6.3 一般建议
建议用户将取有名字的实体看作名词直接调用而不是动词。举例来说,如
29
2.8为例,如果GENERATE命令被列入myball的宏定义中,很可能myball在某处为名词,在另外的地方为动词。
新的命令(即动词)可以创建宏。例如,PLOT add可以简写为PA,如例2.9。注意在这个定义中我们没有用任何名词。
对象命名中混合大写和小写可以防止意外使用PFC2D命令或关键字。记住,宏名在范围名称和命令之前。
可以用范围,组或宏对象,实现同样的结果。例如2.10说明这些命令可以用来识别指定属性模型的一个部分。
注意GROUP命令使用了一系列的关键字来创建组对象“Brick”。RANGE命令和一系列关键字之间唯一的区别是,命令可以从当前所在的行出发,允许用户直接创建范围内一定数量的实体;此外,一系列关键字可以作为命令的一部分并可以一起同时命名。例2.11说明了二者的区别。
30
指定范围在绘图中是特别有用。指定组用在当某一特定收集的粒子需要加以处理时。不管他们是否在整个建模过程留在原来的坐标。把模型的组成部分看作组,占有的空间看作范围。
2.7 PFC2D使用方法
PFC2D采用了命令驱动格式。文字命令控制程序的运作。本节介绍了进行简单的PFC2D计算所需的基本命令。如教程第2.2节的例子。
为了建立一个模型来模拟运行PFC2D,必须指定三个基本条件: (1)颗粒组装;
(2)接触行为和材料性能; (3)边界和初始条件。
颗粒组装由颗粒的位置和尺寸分布组成。接触行为和相关的材料特性决定了这类会产生扰动(因挖掘的变形响应)。边界和初始条件确定原位状态。(即在改变现在的状态或扰动之前)
给定这些条件以后,模型具有初始的平衡状态。计算程序图2.9。
31
2.7.1 简单的模型生成
2.7.1.1 颗粒生成
本节描述了用BALL和GENERATE命令生成颗粒。使用pfc2d时GENERATE命令通常可以生成许多颗粒。也可以用BALL命令生成一个颗粒。用BALL命令的形式如例2.12。
32
生成指定半径颗粒的参数的命令是radius。如果球的编号省略(编号未指定),那么选择的新编号是大于当前最大编号的号码。然而,任意编号可指定新的球,只要它与现有的球编号不一样,并且不为零。如果没有具体的说明,新颗粒的坐标默认为(0,0);此外关键字x和y可以给定坐标。BALL命令允许用户生成相互重叠的颗粒。不象GENERATE命令,它不能识别已存在的球。当使用循环命令时,重叠的颗粒将会产生很大的斥力(如果给定合理的接触刚度)。这两个重叠的颗粒将会快速彼此分离,直到它们到达指定位置。BALL命令可以定义无属性。在给指定范围和组的颗粒设定属性时用PROPERTY命令。可选择的关键字hertz,可以放在某行中的任意位置,使生成的颗粒服从Hertz-Mindlin接触法则而不是默认的线性法则。在这种情况下,颗粒材料的弹性性质可以由PROPERTY给定。
大多数PFC2D模拟的起点都是给定区域并出于平衡的密集颗粒。然而,没有专门的方法来填补多孔性颗粒的多角空间,唯一的办法就是用填料。通常我们用随机分布的固体材料或颗粒状材料来表示。在现有的一些方法中,新的颗粒与现有的颗粒用一定规则相联系,以确保颗粒被压密。这种方法有两个缺点:第一,给密集颗粒加载时,初始的平衡得不到保证;第二,不能保证密集颗粒是否各向同性和均匀分布。
在PFC2D中,颗粒发生器并不试图建立一个紧密的包装。这将在后面讲述。通过扩大半径或者改变边界条件。当GENERATE命令生成一种新的颗粒,它会在指定区域选择一个随机的半径和位置。如果颗粒不合适(例如和现有的颗粒重合),半径不变位置随机。发生器就有所限制。用户可以通过GENERATE命令在tries设置参数(默认值是20,000)。如果生成的颗粒都不满足要求,将会有信息提示。一般情况下,用户可以改变参数(如减小半径或增大试验次数)重新生成。如果生成成功,由此产生的颗粒将占有很大空间。那么半径可能会增大以减小空隙率。PFC2D循环可以使颗粒在低摩擦下达到机械平衡。由此产生的颗粒为各向同性和均匀分布。通过调试半径会增大,直到压缩完成。更为系统的方法见3.3.2,使用FISH函数。现在,我们用经验法来说明生成过程的某些方面。
GENERATE命令生成N个颗粒,
其中
分别为第一个和最后一个颗粒的编号。给定范围内的编
号要与现有的编号不同。否则选择的数量就没有限制——它们不需要按顺序排在现有的编号之后。事实上,往往是在方便选择的范围内选择。接下来的命令如PROPERTY,将涉及到一系列指定的颗粒。除了编号参数,半径范围和空间范围必须通过GENERATE命令指定。空间范围可以采取以下方式或是一个简单的矩形区域,或两个同心圆之间的区域。几个GENERATE命令可以考虑重叠区域(颗粒才适合)。例2.13创建了两个混合微粒尺寸。宏名使文件更可读。
33
注意在这种情况下,给定半径的上下限限制相同,就生成单颗粒。如果半径限制不同,那么半径由随机数数发生器产生。默认情况下,颗粒是取自指定上下限均匀分布的半径。
如果关键字gauss位于范围参数之前,那么半径是从一个正态(高斯)分布得到,(R2+R1)/2的平均值和(R2-R1)/2的标准差,其中R1和R2是生成时输入的半径的下限和上限。原则上,高斯分布可能会导致对粒子产生零增长或负半径,因为“尾巴”的分布范围无限大。为了避免这种情况,将产生的半径小于R1/10的粒子半径取为R1/10。使用者可以覆盖此默认通过提供一个新的临界值,这个临界值通过关键词min来改变。
可以用墙来修改创建颗粒的区域;关键字no-shadow使已有墙壁的生成命令变得敏感。如果这个关键字出现(在range之前),就不会有粒子在已有墙壁后
34
面产生。试想,例如,太阳是面向活动墙面的垂直方向;禁区的粒子在墙的影子区域(即,该地区被一套线封闭,这些线从墙的正常方向外围所有点得到,远离不活动的一侧墙)。为了用子粒填充复杂形状,墙壁得放置在适当的地方,如果不是后来需要的边界条件就可以删除。例2.14的数据集用来说明粒子是如何局限于一个角度区域。最初的墙被删除,然后当节点逆转的时候重新创建,再用不同半径的球来填充剩余的空间。
Example 2.14在一个非矩形区域中限制粒子
由此产生的粒子集合见图2.11
图2.11在非矩形区域的被约束粒子
迄今为止给出的例子都用了各种规格的矩形。关键词annulus可以用来生成带或不带中心孔的圆形区域粒子。如果两种形式都被使用,则生成的区域是两种
35
形式的交集。举个例子,我们生成一个半圆形区域粒子如例2.15所示(图形如2.12所示)。
例2.15半圆形区域粒子的生成
图2.12半圆形区域粒子
剩下的唯一的关键字是hertz。这会导致产生的所有粒子服从赫兹-明德林在接触点的本构模型(见第3.6节)。
最后,应该指出的是,即使是输入NEW命令,种子的随机数发生器是不会被默认情况重置的。因此,在NEW命令之后的数据文件将产生一个与提交NEW命令之前的数据文件结果相比较不同的颗粒分布。在对几个情况相同的数据集(但有统计差异)的处理中,采用Monte Carlo法是很有用的。但是,如果需要对相同集合的粒子进行几次运行,那么PFC2D每次都会从头开始,除非在每个NEW命令之后都输入SET random命令。这个意见只与当引用GENERATE命令的时候有关;在生成之后用SAVE命令有可能返回同样的粒子集合。当RESTORE命令被引用时每次都会带回相同的集合。
36
2.7.1.2生成集合的压实 在上一节中,我们看到如何用粒子的松散集合填充简单的形状;在这一阶段,颗粒不一定相接触。在我们可以用PFC2D进行模拟之前,有必要让粒子相互接触,并给定一个初始的应力状态。虽然材料模型、初始条件和边界条件的处理在第2.7.2和2.7.3中阐述了,但是,我们预先用一些结论来说明如何实现压实。生成压实集合最简单和最有力的方式是扩大所有粒子的半径,而且使它们能够自由的移动,直到在墙中达到平衡。这种状况将和应变能量函数的最低限度相符合。由于所有的粒子是按照相同的系数放大的,就使得整个集合的条件都是相似的,即满足各向同性和均匀性条件。为了得到第一个近似值,个别需要调整的粒子要进行局部调整,因为所有的粒子都会受到影响。达到平衡所需要的时间比通过墙壁向内移动压实的方案需要的少得多(这需要信息的传播从边界到中心)。此外,通过墙壁移动方案的最终几何形状是不确定的,但是半径扩大方案保持了边界形状。半径扩展方案的唯一缺点是粒子的最终半径与原始的规格不同了。但是这是可以预见的。例如:最终的半径在R1至R2范围内,而半径的乘数是m,则初始的半径范围就是R1/m至R2/m.这个过程和计算需要达到某个自动给定的最终状态,就像3.3节所讲的一样。现在,我们给出生成密实集合的最简单的方法。
例2.16是一个通过改变系数来扩大球的半径而生成密实集合的数据集。 例2.16通过扩大半径来创建一个密实集合
集合包含在四面墙壁之内,而且球和墙都是刚性的,因此,在球和球之间和墙和球之间就会有相互作用力。CYCLE命令,参数值设为8000,就要执行8000个时步。使其有足够的时间使粒子达到平衡。除了2.2节讨论的之外,我们增加了两个新命令。MEASURE命令定义一个圆圈(在这里,半径为2.4,中心在(2.5,2.5)尺度由不同的量来表示,例如应力和孔隙度。PRINT measure 1命令要求这些测量是为了circle number 1的测量。在我们的例子中,实测的空隙度是0.127而且应力张量直接分量(σ11,σ22)是(?7.619×105,?7.564×105).*如果我们用半径乘数1.66替代1.60来重新运行的话,我们得到孔隙度为0.089,而直接应力分量为(?2.43×106, ?2.51×106)。空隙率减少了30%,但是平均应力却增加了近3倍。半径乘数m与最终空隙率和应力之间的关系取决于连接刚度
37
和粒径分布。这是3.3节阐述的,但是简单的,实验中取不同的m值进行若干模拟。给定初始应力状态后的m值通过m值与平均应力的关系图用插值法2求得。
一般来说初始的孔隙率和平均应力不是独立的参数,如果材料参数是固定的,两者很可能不能同时达到期望值。然而,如果初始的交变应力的条件是多样的,则变应力独立的空隙率也有一些范围。例如,如果存在摩擦力,则粒子会先趋于“锁定”,然后在较高空隙率和应力水平下达到平衡。如果上面例子中粒子的摩擦系数是0.25,则最终的空隙率增加到0.136,而且直接应力分量为(?13.7 × 105, ?14.4 × 105)。这些值可以与最初的那些在默认状态下摩擦系数为零的情况相比较。
例2.17增加摩擦力的密实集合
再次,用实验的方法,即进行若干实验(为了节省时间用少量的粒子)来建立在某些理想状态下的条件。这些条件可以为大量的生成运行而不断重复操作。
*在你自己的机器上计算的实际应力有些可能与上述给出的不同。这个方面将在3.10.2中讲到,但现在,我们仅仅只关注以一个方程的乘数体现的实测值的趋势。
2.7.2 指定接触模型
2.7.2.1 接触模型及其性能
接触模型描述接触面上的物理性状。虽然粒子组合可能会出现复杂的非线性本构行为,但是这种本构行为可以通过使用相对简单的接触模型来形成。每个接触模型最多包括三部分构成:(1)接触——刚度模型:(2)滑动和分离模型(独立状态) (3)粘结模式。这些将在PFC2D中建立的接触关系如下描述。另外,任何形式的接触关系能够被纳入一个用户编写的接触规则中,并被汇编为一个能在PFC2D中使用的DLL(动态链接库)(见“可选功能中第五章节”。)
PFC2D将两种不同的刚度模型(线性弹簧和简化的赫兹-明德林)内置为代码,一个滑移模型(摩擦滑移)和两个不同的连接模型(接触连接和平行连接)。3.6章节中描述了模型的一般表现(组织方式),同时“理论和背景”中的第二章节给出了相应的数学公式。
默认的刚度模型是线性弹簧模型,它对大多数的分析一般是充足适用的。当粒子的特性指令和围护结构的围护指令指定两个刚度特性(弹簧垂直刚度和剪切刚度)时,系统自动调用这种模型。模型中的每个粒子和围护结构都被赋予刚度特性。依据特性和围护命令,kn关键词分配到垂直刚度值,ks关键词分配到剪切刚度值。当两个粒子(或粒子与围护结构)相接触时,通过假设弹簧是连续作用来计算有效接触刚度。粒子刚度的单位是[力/位移](例如,牛顿/米)。如果刚度值没指定,则设置默认为零。
就限制接触面上剪力的摩擦系数而言,就规定了两个粒子或粒子和围护结构之间的滑移。在输入粒子特性指令和围护结构的围护指令后,摩擦关键词就指定了摩擦系数。模型中的每个粒子和维护结构都被赋予摩擦系数。当两个粒子(或一个粒子与一个围护结构)接触时,滑移计算用到的摩擦系数取两者中的较小者,注意:如果在围护指令中指定最大摩擦关键词,则在粒子与围护结构接触模型中取最大摩擦系数。摩擦系数默认值为零。
38
在接触模型中,粒子也可以是连接形成的。只有粒子能连接,粒子不能连接为围护结构。初始状态,所有的粒子都是未连接的。PFC2D默认情况下提供两种连接方式:
(1) 接触连接,就是复制作用在接触点周围极小范围上的粘结作用产生的影响, 也名为接触“点”连接(或简单接触连接)
(2) 平行连接,就是复制粒子接触后增加的已有的材料特性效应。这种增加的材料特性的有效刚度与接触点刚度平行,即名为平行连接。
接触连接是安装(建立)在已有的接触模型中和所有的相邻粒子之间(这些粒子之间距离为d,d等于两粒子平均半径的 倍)此时,接触连接特性被特性命令指定。通过特性指令指定下列两个特性,就定义一个接触连接
n-bond 接触连接垂直强度[力] s-bond 接触连接剪切强度[力]
如果垂直接触拉力和剪切接触力超过了相对强度,连接就会破坏。注意接触连接吸附的粒子之间仍会发生滚动。
平行连接提供了两个粒子间的连接,该粒子抵抗连接建立后作用在粒子上的作用力和弯矩。它就像“理论与背景”中的图2.2描绘的一块弹性胶,连接两个粒子。平行连接是安装(建立)在已有的接触模型中和所有的相邻粒子之间(这些粒子之间距离为d,d等于两粒子平均半径的 倍)此时,平行连接特性被特性命令指定。通过特性指令指定下列五个特性,就定义一个平行连接:
pb-radius 即半径乘数,即平行连接半径等于两个连接粒子较小半径的该乘数倍
pb-kn 即平行连接垂直刚度[压力/位移] pb-ks 即平行连接剪切刚度[压力/位移] pb-nstrength 即平行连接垂直强度[压力] pb-sstrength 即平行连接剪切强度[压力] 当连接安装(建立)后作用在粒子上的力和弯矩在弹性连接内产生正应力和剪应力。如果这些应力超过了相对强度,连接就会破坏。注意接触连接吸附的粒子之间仍会发生滚动。
2.7.2.2尺度问题性质的比较
为一个实际应用问题的合适接触模型和性能的选择需要模拟接触参数,这样粒子集合的响应才能像实际问题中的材料一样。用来模拟具体应用中的接触模型和性能的推荐程序将在3.7节中讲到。一个简单的例子来说明contact properties与problem-scale properties之间的联系。
在土力学中,安息角被定义为当物质为稳定时的最大倾角。对于处于松散状态的干颗粒材料安息角通常被认为等于材料的摩擦角的峰值(例如见Lambe and Whitman 1969)。请注意松散材料的摩擦角不等于粒子之间的接触摩擦角。Skinner(1969)通过实验测试显示摩擦角的峰值不随颗粒摩擦系数方程呈线性增加。
1. 用来测静止角的斜坡通常是通过逐步增加材料到顶峰而做的。失败
通常是因为表面塌落,而不是与松散摩擦角有更多联系的深层旋转导致的。因此,观察到的失败与宏观摩擦角没有很好的相关性。
2. 桩的颗粒物质涉及很低的内部应力,并且有可能被横向应力锁定
(对粗糙地基的抵抗)。任何地质材料的破坏包络线在原始应力空间附近很可能是非线性的。这一事实,在加上不确定的禁锢应力,
39
这意味着桩的表面摩擦角很可能是十分不确定的。
3. 松散材料的重力式沉积桩的孔隙率十分不确定,而且依赖于材料沉
积的精确方式。大部分物质的摩擦依赖于孔隙率,因此是不确定的。
4. 如果粒子是有棱角的,有很多未知的方式组合成桩使得材料可能很
坚硬也可能很脆弱(例如,一堆矩形砖谨慎的安排可以维持垂直的状态,但是一堆相同的砖随机的安排就会呈现一个有限的斜角)。虽然真正的桩不会是病态的,但是同样的效果出现了(以一个较低的规模),并增加了不确定性和变异性的结果。
尽管有这些问题,粒子的摩擦系数和材料集合的摩擦角峰值之间的关系可以通过进行数值实验来说明,也可以测定出斜面的静止角。
在例2.18中建立一个简单的模型来表示坡度的数值试验求法。斜坡材料由1000个摩擦球的集合组成,并且斜坡是通过把球投到一个有横向底部的盒子的一个角落形成的。盒子的两面墙的摩擦系数是1.0。例2.18编码产生球有不同摩擦系数的两种运行,每个需要在2.66GHz的奔腾4电脑上运行大约4分钟。
例2.18斜坡静止角的数值实验方法
图2.13显示了由这个试验形成的斜坡。如果我们改摩擦系数为0.577在一次运行上面的例子,结果如图2.14所示。第一个斜坡是比较陡的,在图2.13中的一小块区域测得静止角大概是40°。在图2.14中测得的角度大约是30°。虽然这个例子太小而无法给出粒子的摩擦系数和材料摩擦角之间的关系的准确结论,但是它说明了尺度问题与接触参数有关。
*获得粒子摩擦系数和材料摩擦角之间的关系的很好方法是以施加不同的禁锢力进行一系列三维测试。这个可以在Augmented FishTank(见第一节的Examples volume.)的三维测试环境中完成。Pierce et al. (2002)给出了在各种形状的粒子组成的集合上进行的三维测试的结果。
40
图2.13摩擦系数为1.0时生成的斜坡
图2.14摩擦系数为0.577时生成的斜坡
41
2.7.3应用边界和初始条件
在粒子组装生成和压缩后,应用边界和初始条件就可实现理想的初始平衡状态。这个过程在Section 2.7.1.2,中介绍了,这被看作最初的孔隙度和初始应力状态都受压实和最初的加载条件的影响。用来指定边界和初始条件各种不同的命令都总结在这里。表2.2提供了命令的简短的清单;Sections 3.4 and 3.5提供了更深入的讨论。
PFC2D中的边界条件由场变量值组成,这些场变量在模型的边界中规定了。请注意,当PFC2D正在求解时,使用边界条件命令,强加的条件或约束是不会改变的(除非用户特意改变)。边界可以真实的或人为的——真实的边界存在于被模拟的物理对象中,而人为边界的引入是为了包围一些选择的粒子。
人为边界分为两类:线对称和线截断。对称线充分利用了在一个系统中几何形状和荷载是关于一条或多条线对称的。切断线就是离感兴趣的区域足够远的边界,在那区域内的行为都不会受到很大的影响。要知道将这些边界设在多远和在感兴趣的领域力和位移的计算中预计可能发生的错误是很重要的。边界条件可以应用到墙或球体上。球体可以在空间中固定或移动。默认情况下,当墙被创建,它就为球体提供了一个固定的边界。这堵墙可以通过WALL命令获得平移和/或角速度。关键字xvelocity和yvelocity 分别在X和Y方向上指定速度分量。同样,关键字spin指定墙的旋转中心的旋转角速度。该旋转中心由关键词X和Y确定 。
42
备注:
1 。CHANGE or PROPERTY可以用来代替INITIAL 。 2 。该FREE命令是用来解除FIX命令所规定的约束。
3 。为了指定一个球的固定的边界条件,只需要FIX x and/or FIX y命令,假定选定的球的速度是零。
在教程例子中,所模拟的是作为一个墙的边界条件的基础,它以速度为0.5 × 10-3米/步沿Y轴负方向移动。应用这一条件于编号为10的墙壁的命令就记为wall id 10 yvel -0.5e-3
转动也可以适用于指定的基础角速度-例如, wall id 10 spin 1e-3 x=2 y=2 是指标识号为10的墙将以x = 2, y = 2为转动中心旋转 。角速度是1.0 × 10-3弧度/步逆时针旋转。如果这两个命令都给定,那么这堵墙既可平移又可旋转。
球体也可以通过施加平移速度和角速度运动。这样做是通过INITIAL(or CHANGE or PROPERTY)的命令。球体的速度关键字是和墙壁一样的。 xvelocity and yvelocity指定X和Y方向的速度,spin指定球心的角速度。这些速度只被INITIAL命令初始化。为了给号码为44的球指定一个恒定的速度 ,这个速度必须通过FIX 命令固定——例如
ini xvel = -5.0e-3 spin 1.0e-3 range id 44 fix x spin range id 44
将在X方向施加-5.0 × 10-3米/步的恒定平均速度和1.0 × 10-3弧度/步的恒定角速度。 (FREE命令将解除FIX命令设置的约束。)
在球上也可以施加力的作用。以下的INITIAL命令关键字xforce and yforce 就是在X和Y方向上施加力。请注意,与球的速度不同,当一个力施加给球体,这个力就保持不变,直到用户更改;而且这个力并不需要固定。
力不能作用于墙壁。如果我们想给教程例子中的基础施加一个荷载, 墙可能被球上的一个“筏”取而代之。在2.19为例,我们把基础模拟成为一个由4个球组成的筏。球的行为作为一个刚性的基础,因为它们被并行的高强度,高刚度的约束连接。用INITIAL yforce命令在Y的负方向将一2.0 × 105 N的力施加到组成木筏的每一个球上。约束木筏在X方向的运动通过初始化速度为零和施加FIX x.。
The range keyword用在结束时的命令行来指定INITIAL, PROPERTY and FIX commands作用范围。顺便说一句,使用宏命令定义组成木筏的球,以方便应用边界条件。
43
线性梯度变化可用于球限制,gradient坡度这个关键字也是以下的INITIAL (or CHANGE, or PROPERTY) command。例如,命令
initial yforce = -1.167e5 grad 6.67e4, 0 range Raft
我们可以对一木筏球施加线性变化的Y分量力。 Y分量力将从yforce = -1.0 × 105 at x = 0.25 (球心的此x坐标离木筏的x=0处最近) 到 yforce = 0.0 at x = 1.75(球心的此x坐标离木筏的x=0处最远)线性的变化。当梯度被使用,值就随着下列关系式而改变
value = value at origin + gx × x + gy ×y (2.2)
gx and gy以下the gradient keyword的两个数字。
位移不能直接控制在PFC2D ;事实上,他们在计算过程中没有起任何作用。为了将某一特定位移施加给边界,有必要指定墙或球在一些过程中的速度。如果所需的位移是D ,速度v超过? 步骤(其中N = D / V )可被利用.*在实践中,为了尽量减少对系统模型的冲击,速度应该保持小,N应该大。The FIX and INITIAL commands用来指定速度;梯度也可指定。
在地质材料中,在任何挖掘或建设启动之前,地面有一个原位应力状态。通过对PFC2D模型设置初始条件,试图重现此原位状态,因为它会影响模型以后的行为。 (此影响力有更详细的讨论在第3节。)但初始应力并没有在PFC2D模型中直接规定 。理想的应力状态必须源于指定的组装球体在压实状态下的初始条件。例如2.16 ,以前所讨论的,为制定不同的初始应力状态表明途径。一个更严格的制定初始应力状态的程序在第3.5节说明。
如果最初的应力状态受到重力负荷,这可能是通过命令施加重力—例如, 设置重力= 0 , -9.81 其中重力加速度为9.81 m/s2,沿Y的负方向。从球体的矢量和质量密度计算重力。 *这关系只适用于密度缩放(SET dt dscale) ,其中时间步是统一的,速度是每
44
个时间步位移的统一体。
2.7.4 初始平衡的分步 正如在前面几节,在规定的边界和初始条件下的初步压实并初步平衡状态下,有必要循环模式。这在STEP or CYCLE command命令中完成。用户用这两个命令中的任何一个命令,通过指定计算步骤(或周期)来执行,以使该模型平衡。当在每个粒子质心的净力向量是零时,该模型达到完美的平衡。最大净力向量被称为最大的“失去平衡”或“不平衡”力。当应用STEP or CYCLE command模型上的平均和最大的不平衡力在PFC2D上监测并印刷到屏幕上。通过这种方式,达到平衡时用户就可以进行推断。
对于数值分析,失去平衡的力将永远不能精确到零。当最大(或平均)不平衡的力与模型中粒子集合的最大的(或平均)接触力相比很小,就可以认为该模型是平衡的。例如,如果最大不平衡力是100 N而最大接触力是1MN,那么该模型可以被视为在最大接触力0.01 %内的平衡。
如果组合的粒子不紧凑,那么模型中的接触力可能被视为零或忽略。在这种情况下,就不能通过不均衡力和接触力的比较来测试是否平衡;而是应该通过监测粒子的运动,以评估是否达到平衡。
对平衡状态的评估是解决 PFC2D数值问题的一个重要方面。用户必须决定何时该模型已达到平衡。有几个诊断功能内置到PFC2D 中,以协助这一决定。原来的平均不平衡力可能被记录在以下命令:
hist diag muf
原来的平均接触力可能被记录在以下命令:
hist diag mcf
平均不平衡力与平均接触力的比,最大不平衡力与最大接触力的比,可以在任何计算步骤中打印出来用命令print info
此外,原来所选变量(例如,速度或球心的位置)都可能被记录。例如下面的命令:
hist ball xvel id 442 hist ball xpos 3,3
历史上第一次记录的是ID number 442的球的x方向的速度;第二次记录的是在HISTORY command下球心位置最接近坐标(x = 3, y = 3)的球的x方向的位置(In this case, that ball is the one with an ID of 392.)。
在运行了几百次(或几千次)计算步骤后,得到的这些数据可以用来说明平衡状态。The data file in Example 2.20 illustrates this process.
45
该模型分两阶段达到平衡。首先,没有摩擦力情况下循环模型,是为了达到统一的应力状态。然后,加上摩擦力,并且模型受到重力荷载迭代达到平衡。
The PRINT info command指出平均不平衡力和平均接触力的比为3.57 × 10?4 (under the heading “Av. ratios:”), 最大不平衡力和最大接触力的比为 6.75 × 10?4 (under the heading “Max ratios:”).通过测绘第一个原始数据,可以看出平均不平衡力趋近于零。The following commands produce the plot in Figure 2.15:
46
当重力荷载和球摩擦力被加上时,接触力就增加了。对不平衡力和接触力的影响如下图Figure 2.16所示, produced by the command
plot hist 1 2 begin 3000
47
速度也接近零,并且历史位置变为常数;这两个量都是达到平衡状态的指标。The y-velocity plot in Figure 2.17 and the y-position history plot in Figure 2.18 are produced with the commands:
plot hist 3 plot hist 4
48
如果用户希望当不平衡力和接触力的比例下降到低于规定限额时PFC2D能自动停止时,SOLVE command能被用来代替STEP or CYCLE。在Example 2.20
49
中用SOLVE command 代替CYCLE 2500 command,如果重新绘图,本质上,在Figures 2.15到2.18所示的结果都一样,但是有更少的总周期将被执行—注意到平均接触力还没有达到一个常量。
当最初压实模型时,在Example 2.20中, SOLVE不能用在第一阶段。此外,选定的半径乘数为1.50的粒子的接触力正在接近零。在最初的3500次循环证实了这些后敲入PLOT hist 2 or PRINT info。SOLVE只能用于包装组合的粒子,在这种包装组合下有限的接触力才能提高。
The SOLVE command检查平均不平衡力和平均接触力的比例和最大不平衡力和最大接触力的比例。在默认情况下,这两个比例值都设置为0.01 (i.e., 1%)。在计算时任一个比例值低于0.01时,运行将会停止。这两个比例限制可以通过使用the SOLVE command后可选的关键字改变。例如,命令
solve average = 0.02 maximum = 0.025
将设置平均不平衡力和平均接触力的比例为0.02,最大不平衡力和最大接触力的比例为0.025.。当任一比率下降到低于指定的限制,将停止运行。替代率也可被利用(see the SOLVE ratio command)。
SOLVE command.还有其他的可选用的可选关键字。有一个运行时间的限制,在几分钟内,一个步骤的限制和总时间的限制,即总时间步。
在一个分析中,模型在改动之前处于平衡是非常重要的。 一些历史记录应贯穿整个模型,以确保庞大的力失衡不存在。如果采取的步骤多于达到平衡所需要的步骤,它不会对分析产生不利影响。但是,如果采取的步骤不够,它就会影响分析。
通过按
PFC2D允许在求解过程中的任何时刻改变模型条件。
WALL and BALL命令分别把墙壁和球体随时加进去。DELETE wall and DELETE ball.命令将它们删除。个别球,群体球或者一定范围内的球都可以删除。墙体必须单独删除。
除了球荷载和固定速度外,对球或墙施加约束的命令都汇总于Table 2.2.。用WALL command墙的刚度和摩擦性能进行修改,而球体类似的性能用CHANGE (or INITIAL orPROPERTY) command.修改。
Example 2.21显示了对Example 2.20.中模型平衡状态所做的变动。该球是通过接触镣铰黏合的,把在Example 2.19中创造的球体基础筏加到模型的顶端,这样就应用了基础荷载。此外,停止密度缩放,执行动态分析——现在的速度单位
50