PFC5.0 软件基本操作教程
PFC5.0 软件基本操作教程
0 前言
对于大多数 PFC 颗粒流软件的初学者而言,其所面临的第一个难题就是国
内缺乏相关配套教材和软件说明书,这也是使初入研究领域的学生望而却步的重
要因素之一。其次,从经典的 PFC2D/3D 的 3.10 版本发展到最新的 PFC5.00.27,
ITASCA 公司虽然对软件的运行框架和界面进行了优化,但是仍然没有放弃以命
令行为主的操作方式。当然,采用命令行的形式可使程序具有较高的灵活性,有
助于使用者进行高阶的二次开发,但是在未入门的同学眼中其可操作性和便利性
几乎为零,有种完全无从下手或软件太过“高端”的感觉。
因此,就上述两个初学者的难题,已经有许多大神和学者尝试去编写资料并
无私为初学者提供解答,目前网上也陆续出现了一些相关翻译和使用教材,这些
资料和教程之于两年前的我,犹如黑夜灯塔的指引,激励我不断学习。这里我要
推荐几本大牛编写的书籍,陈俊和黄晓明的《颗粒流软件(PFC)在道路工程中
的应用》、周长红的《沥青混合料性能分析的 PFC 实践》、石崇的《颗粒流数值模
拟技巧与实践》,以及周健的《土工细观模型试验与数值模拟》,四本书中的内容
各有特点,其中对 3.1 版本的软件使用介绍也非常详尽,同时还附有专业领域的
工程实例,相关专业的初学者可以去网上购买和学习参考。图 0-1 为《沥青混合
料性能分析的 PFC 实践》的封面。
图 0-1 《沥青混合料性能分析的 PFC 实践》
为了让初学者更快的掌握 5.0 版本的基本命令行操作,本文档主要介绍了
1 / 13
by John.Lee 邮箱:lijue1207@126.com
PFC5.0 软件的基本操作以及 Help 文件相关内容。通过将 PFC 基本界面布局进行
分部注释,并对帮助文件目录以及 PFC 命令(FISH 函数)的检索操作过程进行
概述,作者试图采用一种简明的方式,让读者在学习本文档的过程中,对 PFC5.0
的大体框架和相关概念有个初步的认识。
1 程序语言和 PFC 命令
PFC 系列软件的全称是 Particle Flow Code,直译就是颗粒流代码,从广义上
说,就是建立在颗粒流运动法则和接触本构关系基础上的程序开发平台。因此,
该软件的命令行语法逻辑与通常的 Java、VC++等程序语言存在相似的地方。而
其软件自带的 FISH 语言本身就是一种伪代码程序,这说明但凡在大学阶段接触
过计算机语言的学习者都应该能较快的掌握 PFC 软件。如图 1-1 所示,为 PFC
软件的命令输入窗口。
图 1-1 PFC 软件的命令输入窗口
作为一个初学者,若打算编写一个新的 PFC 模型,就必须先了解在软件中
存在的两套不同体系的代码形式:PFC 命令和 FISH 语言。PFC 命令,顾名思义,
就是可以直接在 PFC 命令窗口运行的代码,例如:new(清空)、pause(暂停)、
quit(跳出)、call(调用文件)、save(保存文件)等,它们可通过组合或单独成
行的方式运行;而 FISH 语言则不能直接在窗口中运行,而是需要以自定义函数
的方式进行调用,其函数的名字跟在 define 声明后面,并以 end 声明结尾,自定
义函数分为有无返回值和有无输出参数等类型,其具体的案例如下。
案例:FISH 自定义函数的表达形式
New ; 可直接在命令行中运行
; 下面为几种自定义函数的表达形式
; FISH 函数只能通过 def 和 end 来进行声明
; 不能跟随命令行运行,只有调用后才能进行计算
def fred ; 在函数内部出现函数名称,有返回值
fred = 3.0
end
2 / 13
PFC5.0 软件基本操作教程
def george
; argument 为输入参数声明,one 和 two 为输入参数
argument one
argument two
george = one * two
end
list @george(3.0,2.0) @fred ; 列出函数的返回值
; george 函数的输出参数 2.0 和 3.0
def fun_1
fun_1 = 1.0
ii = io.out('fun_1')
end
def fun_2(arg1)
; 可直接在函数名称后面直接声明输入参数
fun_2 = 2.0
ii = io.out('fun_2') ; 这里是打印字符串,不能递归调用函数
ii = io.out(string(arg1))
end
def execute
; 在函数内部也可以调用其他函数
fun_1 fun_2(1.0)
end
@execute ; 函数无返回值
需要注意的是,在 PFC5.0 版本中,简单的 FISH 关系式可在“[”和“]”符
号内直接进行运算;同时,PFC 命令也可出现在 FISH 自定义函数中,采用
command 和 endcommand 命令执行逻辑结构来实现这一功能。
与 C 语言这样严谨的计算机语言相比,PFC 的命令行逻辑更偏向于 Fortran
语言和 Matlab 的形式,并不需要提前进行函数库调用或对不同类型的参数进行
声明,除了接触模型调用外,PFC 软件可实现每条程序行都对应一项操作,使用
方法相对简单,命令和内置函数的意义和用法均可通过 Help 文件查询得到。因
此,在没有可供参考的中文工具书的条件下,合理而高效的使用 Help 文件是任
何 PFC 软件使用者必备的技能之一。
2 初识 PFC5.0 和界面操作概述
假设你刚刚安装上 PFC5.0 软件,你一定会对它的一切感到新奇,下面让我
们来一起打开软件,开始认识下我们将要使用的软件工具。如图 2-1 所示,为
PFC5.0.27 版本的软件操作界面。
3 / 13
by John.Lee 邮箱:lijue1207@126.com
项
目
文
件
工具栏
菜单栏
视图和代码编辑
初始化选项
控制台状态记录
控
制
面
板
图 2-1 PFC5.0 软件操作界面(Wide 布局)
第一次打开 PFC3D 或 PFC2D 后,程序会弹出设置工程文件保存的地址,一
般默认路径为:盘符:用户->我的文档->Itasca->pfc3d500(or pfc2d500)。在设置
好保存路径后,即出现如图 2-1 的操作界面,需要注意的是在菜单栏 Layout 选
项中内置了五种 UI 布局方式,图中界面布局是 Wide 的方式,读者可以自行选
择布局,这里不做过多介绍。界面区域功能大致可分为菜单栏、项目文件浏览、
视图和代码编辑器、命令控制台以及相关控制面板五个大块。
在 PFC5.0 中,主要的菜单操作选项有:文件(File)、编辑(Edit)、工具(Tools)、
布局(Layout)、文档(Documents)、窗格(panes)、帮助(Help),以及在 5.00.20
版本后集成的 Python 语言。File 文件菜单的前五个选项与项目文件相关,其后是
在项目内部操作,如:添加数据文件(Ctrl+N)、添加新的视图(Ctrl+Shift+N)、
打开并加入工程(Ctrl+O)、保存所有选项(Ctrl+Shift+S),若在界面中还点选了
相关窗格(视图 or 控制台),File 中将会出现相应的可选选项。Edit 编辑菜单可
对数据文件进行编辑操作。Tools 工具菜单中的 Options 选项命令,可对项目常规
属性(General)、全局变量(Fish)、初始化引导(Startup)、代码编辑器(Editor)、
视图属性(views)、视频格式(movie)、控制台显示(Console)、表格形式(Listings)
等进行设置。Layout 布局菜单用于设置界面布局。Documents 文档菜单可调出视
图和代码编辑区域的显示文档。Panes 窗格菜单可调出界面功能窗格的显示。Help
帮助菜单可调用帮助文件(Help)和案例文件(Examples)。
4 / 13
PFC5.0 软件基本操作教程
``
图 2-2 文件菜单操作
项目文件窗格主要显示了该项目所包含的数据文件(代码)和模型保存文件。
视图和代码编辑区域主要用于展示代码编辑器和各类视图窗口。控制台状态窗格
下侧可直接输入 PFC 命令行控制运行。控制面板窗格的功能具有多样性,若点
选的是代码编辑文档则右侧区域将显示运行过程中出现的全局变量(与 matlab 数
组显示相类似),若点选的是视图窗口则将出现绘图选项、视图移动和显示状态,
如图 2-3 所示。PFC5.0 中的视图操作选项较多,这里不做讨论。视图位置可左击
移动视图的圆球或在视图中按住鼠标右键来移动,缩放通过鼠标滚轮实现。
绘图选项
移动视图
视图状态
图 2-3 视图窗口控制面板
3 学习和使用 Help 文件
5 / 13
by John.Lee 邮箱:lijue1207@126.com
通过第一章的讨论,我们了解到 Help 文件是初学者了解软件和编写命令所
不可缺少的资料。在 PFC5.0 软件中大致有四种打开 Help 文件的方式:1)菜单
栏操作,选择 Help->Help;2)控制台选项,点击 Help 按钮();3)在代码编
辑窗口或控制台窗口处按 F1 快捷键。4)关键词查询,在命令窗口中键入 PFC 命
令后空格并输入?,可查询命令后续关键词。当然,更加便捷的方法是找到 Help
文档的原文件并在桌面创建快捷方式,Help 文件通常在 PFC5.0 安装根目录下,
即默认路径地址为 C:\Program Files\Itasca\PFC500\pfchelp.chm。
如图 3-1 所示,为 Help 文件的使用中文界面,在文档内可以较快速的检索
所需要的 PFC 命令和关键词。左上角任务窗格提供了四个选项分别为:目录、
索引、搜索和收藏夹,可以在索引栏和搜索进行查询操作,若要系统的学习 PFC
软件的理论则可参考目录的顺序依次学习。
图 3-1 Help 文件使用界面
为了使得读者更好地学习 Help 文件和快速的查找内容,这里对 Help 文件的
目录和主要内容进行了简单的介绍。
第一章 入门指南 Getting Started
对操作系统的要求、软件安装步骤、更新说明以及服务支持进行介绍。
1.1 安装和启动(Installation & Startup)
1.2 文件和支持(Documentation & Support)
1.3 更新说明(Release Notes)
1.4 PFC4.0 到 PFC5.0 的转变(Transitioning from PFC 4.0 to PFC 5.0)
6 / 13
PFC5.0 软件基本操作教程
第二章 PFC 数值模拟 Numerical Simulations with PFC
介绍了软件的操作框架和所推荐的建模方法。
2.1 PFC 的概述(PFC Overview)
2.2 PFC 的操作框架(Mechanics of Using PFC)
管理一个项目(Managing a Project)
命令和FISH 语言(Commands and FISH Syntax)
2.3 建模方法(Modeling Methodology)
一般的方法(General Approach)
Step 1: 确定模型分析的目的 Define the objectives for the model analysis.
Step 2: 建立物理系统的概念图 Create a conceptual picture of the physical system.
Step 3: 构建并运行简单的理想化模型 Construct and run simple idealized models.
Step 4: 生成特定问题的数据 Assemble problem-specific data.
Step 5: 准备一系列的具体模型运行 Prepare a series of detailed model runs.
Step 6: 执行模型计算 Perform the model calculations.
Step 7: 得到可供分析的结果 Present results for interpretation.
几点重要的讨论(Important Considerations)
1) 2D versus 3D models
Packing and Porosity, Stress and Strain, Mass Properties
2) Particle Shape
两种方法来形成不规则形状的模型:
by bonding two or more spherical particles together, forming a cluster.
by using clumps to approximate complex shapes as collections of pebbles rigidly attached.
3) Modeling of Data-Limited Systems
4) Modeling of Chaotic Systems
5) Localization, Physical Instability, and Path-Dependence
解决步骤(Solution Procedure)
一个问题的四个基本组成:
1) the model domain;
2) an assembly of particles;
3) contact behavior and material properties;
4) boundary and initial conditions.
怎么实现建模(How to ...)
第三章 案例 Examples
展示了一系列的引导案例、被证明的问题,以及通过程序性能考验的案例应
用。
3.1 基本操作辅导(Tutorials)
Balls in a Box
7 / 13
by John.Lee 邮箱:lijue1207@126.com
Clumps in a Box
Attributes and Properties
Using the CMAT
Generating a Bonded Assembly
Replicating a Particle Size Distribution
Inclusions in a Matrix
Hopper Discharge
Using FISH Callbacks
Table Tennis
Shallow Foundation
Slip on a Fault
Creation of a Synthetic Rock Mass (SRM) Specimen
3.2 被证明的问题(Verification Problems)
Measure Logic
Strength of a Face-Centered Cubic Array of Spheres
Tip-Loaded Cantilever Beam
Linear Contact Model: Calibrating the Normal Critical Damping Ratio
Hertz Contact Model: Complex Loading Paths
Wave Propagation in Particle Assemblies
Rolling Resistance Linear Contact Model: Single Ball on a Flat Surface
Rolling Resistance Linear Contact Model: Repose Angle
Burger's Contact Model: Stress Relaxation
3.3 案例应用(Example Applications)
Hopper Flow
Probing a Granular Specimen
Ribbon Blender
Fragmentation Analysis during a Uniaxial Compression with Crack Tracking Using
Fractures
DFN Generation, Analysis, and Simplification
Rock Testing
第四章 PFC 模型的组成 PFC Model Components
对 PFC 模型进行表述并介绍了特定于 PFC 程序的各类组件:Ball,Clump,
Contacts,Walls 等。
4.1 PFC 模型表述(PFC Model Formulation)
PFC 是基于离散单元方法开发的程序,其允许离散颗粒发生有限的位移和转动(包括完
全分离),能够在计算过程中自动识别新的接触,并通过牛顿运动定律的显示积分方法对离
散系统的时程演变进行求解。
详细解释了贯穿整个文档的相关约定(Conventions),并对模型组成(Model Components)、
循环(Cycling)、能量及耗散机制也进行了介绍。
8 / 13