1、PFC3D 命令说明(COMMON COMMAND REFERENCE)PFC3D 是基于命令驱动模式(COMMAND-DRIVEN FORMAT)的软件,各种命令控制着程序的运行,这部分内容将介绍 PFC3D 软件的内嵌命令。本说明文件译自 PFC3D 软件 2.0 版使用手册中的 COMMAND REFERENCE 部分,并补充了一些手册中没有的命令(如设置粘性阻尼、生成圆柱、螺旋壁面等,这些命令在更高版本的手册中有说明) 。命令说明的顺序没有采用原手册中按字母排序的方式,而是根据创建PFC3D 模型解决实际物理问题的一般过程,对相关命令加以说明。PFC3D 手册中 COMMON COMM
2、AND REFERENCE 只对每个命令的格式和基本功能做了简单介绍,本说明文件对每个命令做了更详细的解释,为保持文件的可读性,对命令的详细解释都以附录形式给出。本文件介绍了 PFC3D 的基本功能,对初学者有较大帮助,但要进行高级应用,还需清楚了解 DEM 和 PFC3D 相关功能的基本原理以及软件的结构等。由于只关注使用 PFC3D 解决颗粒流的问题,涉及颗粒流的命令介绍的比较详细,而用于岩土工程等其他领域的命令,由于关注很少且专业知识缺乏,只是不求甚解。0. 关于命令格式的说明:PFC3D 中每个命令基本包含 3 部分:命令名、必需关键词和可选关键词。本说明文件中,命令名和必需关键词写在
3、第一行,尖括号表示该命令具有可选关键词,罗列于命令名的下一行次级列;带参数的关键词,参数紧随关键词之后用加粗斜体表示。名字较长的“命令”和“关键词” ,PFC3D 允许不写出全部字母,只需简写前面的一些字母,最短可简写名(即 PFC3D 能识别的最短简写“命令”和“关键词”名)用加粗字体表示。例如命令:BALL rad r hertz id idx xy yz z说明:命令名为 BALL 的命令,具有必需关键词 rad(参数 r)和 hertz、id、x、y、z 等可选关键词。其中 hertz 不带参数,最短可简写为 hert;id 、x、y、z 的参数分别为id、 x、 y、 z。另外,PF
4、C3D 默认对内嵌命令以及 FISH 函数中的命令名、关键词、参数等的字母大小写不敏感,也可设置为大小写敏感(使用 SET case_sensitivity on 命令) ,建议使用对字母大小写不敏感模式,可减少错误的产生。1. 模型属性命令(MODEL-PROPERTY COMMANDS)模型属性命令支持数值模型的创建与修改,主要包括表 1 所示的命令,这些命令可分为模型创建(或删除)和模型修改两大类表 1 模型属性命令BALLCLUMPDELETEGENERATEJSETWALLFIXFREEMODELPROPERTY 生产半径为 0.5 的圆柱面;Wall type cylinder e
5、nd1 0 0 0, end2 0 0 1, radius 0.0,0.5, id=1, kn=1e6, ks=1e6, fric=0.2 ;生产地面半径为 0.5 的圆锥面;Wall type cylinder end1 0 0 0, end2 0 0 1, radius 0.2,0.5, id=1, kn=1e6, ks=1e6, fric=0.2 ;生产上底面半径 0.2,下底面半径为 0.5 的圆台面;C. 螺旋壁面(spiral):使用关键词 type spiral 可以生产螺旋壁面。type spiral keywordend1 x1, y1, z1螺旋面的第一个端点;end2 x
6、2, y2, z2螺旋面的第二个端点;radin rinrin: 螺旋面的内径;radout routrout: 螺旋面的外径;pitch ptpt: 螺距。说明:螺纹的个数由 end1,end2 之间的距离除以 pitch 得到的整数决定。如 ed1-end2=10,pitch=3,则螺纹数等于 3 个。例如:Wall type spiral end1 0 0 0, end2 10 0 0, radius 0.5,1.0, pitch=1, id=1, kn=1e6, ks=1e6, fric=0.2 ;生产 10 个螺纹的螺旋面;D. 凸面多边形壁面(convex polygons):使用
7、关键词 face 可以构造由若干有限平面(face)组成的有限壁面(wall ) ,每个平面(face )必须是由一组按顺序连接的顶点(vertices)组成的多边形(polygon) ;有限壁面的有效侧按右手法则确定,详见附录 1。face x1, y1, z1 x2, y2, z2 xn, yn, znx1, y1, z1 x2, y2, z2 xn, yn, zn 为平面多边形的顶点坐标,它们的位置顺序代表着顶点的连接顺序,决定了有效侧的位置。使用具有相同 ID 号的 WALL 命令,可以在已有壁面上增加若干多边形平面,如下列命令定义了一系列有限壁面:wall id=1 face (1,
8、1,1) (1,0,1) (6,0,1) (6,1,1)wall id=2 face (6,0,1) (6,0,6) (6,1,6) (6,1,1)wall id=3 face (1,0,6) (1,1,6) (6,1,6) (6,0,6)wall id=4 face (1,1,1) (1,1,6) (1,0,6) (1,0,1)wall id=5 face (2,1,2) (5,1,2) (5,0,2) (2,0,2)wall id=5 face (5,0,2) (5,1,2) (5,1,5) (5,0,5)wall id=5 face (2,0,5) (5,0,5) (5,1,5) (2,
9、1,5)wall id=5 face (2,1,2) (2,0,2) (2,0,5) (2,1,5)wall id=9 normal 0, 1,0 origin 3.5,0.0,3.5wall id=10 normal 0,-1,0 origin 3.5,1.0,3.5通过使用多个具有相同 ID 号(id=5)的 WALL 命令,定义了一个由4 个平面构成的凸面多边形壁面,如下图所示。图 1 face 定义有限平面警告:PFC3D 软件现阶段只能生成有效的凸壁面,即有效侧夹角大于 180的两个连接面(如图 1 中的 id=5 壁面) ;对于凹形几何结构,不能定义成一个壁面,必须通过连接不同的壁
10、面得到。E. WALL 命令的其他关键词:以下关键词用于设置壁面的属性,如刚度系数、摩擦系数、平移速度、旋转速度等。关键词的可以在命令中的任意位置出现。id id指定壁面的 ID 号,必须是正整数。如果不指定,则将选择比当前最大壁面 id 号大 1 的整数。如果指定的 id 号已经存在,则对应壁面的属性将被修改,如增加 1 个平面,或修改刚度系数、摩擦系数等。kn kn设定或修改壁面法向刚度系数(线性接触模型) ;ks ks设定或修改壁面切向刚度系数(线性接触模型) ;friction f设定或修改壁面摩擦系数;x x设定转动中心(x 坐标) ;y y设定转动中心(y 坐标) ;z z设定转动
11、中心(z 坐标) ;xspin xs设定绕转动中心的转动速度(x 分量)单位:弧度/ 秒;yspin ys设定绕转动中心的转动速度(y 分量)单位:弧度/ 秒;zspin zs设定绕转动中心的转动速度(z 分量)单位:弧度/秒;xvelocity xv设定平移速度(x 分量) ;yvelocity yv设定平移速度(y 分量) ;zvelocity zv设定平移速度(z 分量) ;BALL rad r 生成半径为 r 的单个颗粒,可选择的关键词有:hertz 启用 Hertz 接触模型,若不是用该可选关键词,则模型默认使用线性接触模型id id设置颗粒的 ID 号。每个颗粒的 ID 号应为独一
12、的正整数,如果模型内有相同的 ID 号,则软件会报错。如果用户不设置颗粒 ID 号,软件将自动指定比当前模型内最大 ID 号大 1 的号码。x x球心的 x 坐标y y球心的 y 坐标z z球心的 z 坐标GENERATE x xl xu y yl yu z zl zu radius rl ru id il iu 以下关键词可用于修改该命令的功能:no_shadow 禁止在非阴影区内生成颗粒(见附录二) ;默认情况下,颗粒会在壁面的有效侧与非有效侧生成。tries tmaxPFC3D 默认尝试 20,000 次,以将指定数量的待生成颗粒置于指定空间。该命令将尝试的次数设为 tmax 次,需注意
13、的是,这个值只对当前 Generate 命令有效,并不是将模型内所有Generate 命令的尝试次数都设为 tmax。filter fname使用用户自定义的颗粒生成过滤器(user-defined generation filter) 。在生成每个球的每一次尝试中,名为 fname 的 FISH函数被调用,详见说明 9 和附录 4。gauss 颗粒半径服从高斯概率分布,而不是默认的均匀概率分布。此时,平均半径为(rl + ru) / 2,标准偏差为(ru - rl) / 2;其中rl , ru 为关键词 radius 定义的参数。hertz 新生颗粒使用 Hertz 接触模型。若无该关键词,
14、则使用默认的线性接触模型。local 该关键词只在并行计算过程起作用,用于强制性地只在本地处理器上生成颗粒,而不在处理器之间共享信息。min rmin该关键词只在使用了 gauss 关键词的情况下起作用,用于将高斯概率分布中的最小球半径设为 rmin。默认情况下,高斯概率分布中的最小球半径为 rl / 10。说明:1. BALL 和 GENERATE 是用于生成新球的两个命令,他们之间有很大区别:a) BALL 是在用户指定的一个特定位置,生成一个新球;新球的生成不受已有球的影响,允许与其他球有任意大的重叠;由于球之间允许重叠,当循环计算开始时,球之间会突然产生大小相应于重叠量的作用力;b)
15、GENERATE 是在用户指定的一个空间区域内,生成指定数量的新球;新球的生成受已有球的影响,因为球与球之间不允许有重叠;因此用 GENERATE 命令能否在指定空间生成指定数量的球,还取决于空间是否足够大,或生成球过程中的尝试次数(tries)是否足够多等;c) BALL 命令一般用于生成规则排列球组 ( Regular particle assembly) ,GENERATE 用于生成非规则排列球组(Irregular particle assemble);2. Generate 命令必须指定球的 生成空间范围、半径大小分布形式 和 ID 号范围(确定球的数量) 。 球的位置与半径随机选择
16、,因此最终生成的颗粒组的状态(位置和大小)受随机数发生器 ( Random number generator) 的影响 。SET random1命令用于设置随机数发生器的状态,详见脚注 1;3. 关键词x xl xu y yl yu z zl zu用于定义指定空间,新生球的质心 x, y, z坐标值分别处于区间 xl, xu, yl, yu和zl,zu之内。若使用可选关键词annulus,则颗粒的生成空间为一球环形空间,其球心为(xc , yc, zc),内外球径分别为r1, r2;此时定义方形空间的x, y, z关键词可以省略,否则,指定的空间为annulus定义的球环形空间与x, y, z
17、定义的方形空间的交集;X,y,z与annulus 等关键词只能定义简单的方形与球环形空间,而实际问题大多数涉及较复杂的空间。此时最有效的方法是使用用户自定义FISH函数进一步限制球的生成空间,见关键词filter的说明;4. 球径大小由关键词radius定义,默认情况下,球径大小在区间rl, ru之内,且服从均匀概率分布 2( uniform distribution) ,也可使用关键词gauss指定球径大小服从高斯概率分布;1 SET random 该命令用于设置随机数发生器的随机种子 iseed。我们知道,计算机只能生成相对随机数(伪随机数) ,伪随机数的计算取决于随机算法和随机种子的选取
18、,当算法和种子确定后,产生的随机数就确定了;种子和算法相同时,产生的随机数也相同。PFC3D 软件中随机算法是不变的,因此随机数的生成完全取决于用户设定的随机种子的大小,即 iseed 的值。iseed 的默认值等于 10000,用户可以自定义随机种子,其大小应和默认值在同一量级;三点必须明确:1. 如果用户没有使用 SET random 命令,则随机种子由软件自动选取,一般取自计算的系统时钟,即来自计算机主板上的定时/计数器在内存中的记数值。这种情况下,同一个模型每次运行时的随机数都不同,Generate 生成的球组初始状态(球的大小和位置)每次也不同; 2. 如果用户使用了 SET ran
19、dom 命令自定义随机种子的大小,那么随机数的产生取决于用户选取的 iseed 值的大小,相同的随机种子意味着对于同一个模型而言,无论运行多少次,由 Generate 命令生成的初始球组的状态是一样的;3. 随机种子的设置只与有无 SET random 命令以及 iseed 的大小有关,NEW 命令不会改变随机种子的设置。2均匀概率分布的数学概念:设连续型随机变量 X 的分布函数为F(x)=(x-a)/(b-a),a xb则称随机变量 X 服从a,b上的均匀概率分布,记为 XUa,b.若x1,x2是a,b的任一子区间,则 Px1xx2=(x2-x1)/(b-a)这表明 X 落在a,b的子区间内
20、的概率只与子区间长度有关,而与子区间位置无关,因此 X 落在a,b的长度相等的子区间内的可能性是相等的,所谓的均匀指的5. 关键词id il iu 指定了需要生成多少数量的球。生成球的总数量为iu-il+1,其中iu, il为球ID号的最大值与最小值;6. Generate生成球时,新球与已有球之间不允许相互重叠,因此,当没有足够的空间(或尝试的次数不足,见关键词tries )生成所有指定数量的球时,将生成少于所需数量的球。软件默认这种情况为发生错误,不过也可以使用SET gen_error命令将这种情况当作警告处理(软件提示警告信息,但是指令处理过程继续进行);颗粒生成以后,紧随其后应使用P
21、ROPERTY命令设置球的属性参数,包括法向刚度、切向刚度、局部阻尼、密度、摩擦系数,Hertz模型下的弹性模量、泊松比等。7. tries tmax的说明:Generate命令生成的球与球之间不允许重叠,用 Generate命令生成新球的过程是不断尝试的过程;每次尝试先按指定的分布形式确定球径大小,并随机 (伪随机)确定一个球心位置,再检测该位置周围是否有足够空间生成该球;若空间足够,新球生成,否则进行下一次尝试。软件默认尝试20,000次,当所需新生球数量较多时,必须使用tries tmax命令,设置更大的尝试次数,否则即使有足够的空间,也不能生成所需数量的球。8. filter fnam
22、e:该关键词的作用是引用用户自定义颗粒生成过滤器 ( generation filter) ,fname是用户自定义FISH函数名,生成每个试产球 (trial ball)时都将被调用。在函数fname里,试产球的半径通过fc_arg(0)传递,位置坐标的x, y, z 分量分别通过fc_arg(1), fc_arg(2), fc_arg(3)传递。要使试产球被接受(即其符合过滤条件),函数中fname的值设为0,否则fname 的值设为1。关于filter fname的更详细说,见附录4。DELETE keyword删除球(balls)、块(clumps)、历史(histories) 或壁面
23、(walls)等,命令的形式取决于要删除的对象。相关关键词及其参数如下:balls 删除球。如果指定 id 号,仅删除对应的 1 个球;如果指定一个范围(range),则处于该范围内的球(即质心处于该范围之内的球)都将被删除;如果既不指定 id 号,也不指定范围,则模型中的所有球都将被删除。利用 FISH 函数,我们能更灵活地按照所希望的方式删除一些对象,比如删除一些超出指定范围的球。Users Guide 中的例 3.21介绍了每经 100 个循环,删除位置低于某一高度的球。关于就是这种等可能性.在实际问题中,当我们无法区分在区间a,b内取值的随机变量 X 取不同值的可能性有何不同时,我们就
24、可以假定 X 服从a,b上的均匀概率分布.FISH 语言,将在另一部分给予介绍。Example 3.21 FISH function to delete escaping particles;fname: zapballs.DATdef remove_ballswhile_steppingy_del_count = y_del_count + 1if y_del_count 100y_del_count = 0bp = ball_headloop while bp # nullnext = b_next(bp)if b_y(bp) keywords 创建 ID 号为 id 的新块,若指定的 i
25、d 已经存在,则其功能为修改 ID 为 id 的块体的属性。JSET 1.2 模型修改命令:FIX keyword 固定某一范围(range)内球的指定速度自由度,若不指定范围(range) ,该命令将应用于模型中的所有球。应当注意的是,固定的是“速度”而不是位移。当速度的某一分量被固定时,其速度将保持当前值不变,即每个循环中运动方程不会更新速度分量。速度值可使用 PROPERTY 命令设置。以下关键词可使用:x 固定 x 方向线速度;y 固定 y 方向线速度;z 固定 z 方向线速度;xspin 固定 x 方向角速度;yspin 固定 y 方向角速度;zspin 固定 z 方向角速度;例如,
26、下列命令行将把 ID 为 5 的球的 x 方向线速度固定为 1.5m/s。fix x range id = 5;property xvel = 1.5 range id=5;FREE keyword FREE 是与 FIX 相反的命令,其功能是移除对某一范围(range)内的球在速度自由度上的固化, 若不指定范围,该命令将应用于模型中的所有球。当某速度分量自由化(be free)后,其大小变化将由每个循环过程的运动方程决定。默认情况下,所有球的所有分量都是自由变化的。以下关键可用于该命令:x 释放 x 方向线速度(frees x-velocity);y 释放 y 方向线速度;z 释放 z 方向
27、线速度;xspin 释放 x 方向角速度;yspin 释放 y 方向角速度;zspin 释放 z 方向角速度;PROPERTY keyword v 设置某范围(optional range)内已有球(balls)、接点(joints)、粘结(bonds)以及接触(contacts)的属性,包括球的物性、外加力和速度;修改连接到某个接点的球的属性;修改接触粘结和平行粘结的属性。对于接触,PROPERTY 只能修改用户自定义接触模型的接触属性。若没有指定范围,则模型中所有有效对象的属性都将被修改。命令 CHANGE 和 INITIALIZE 是 PROPERTY 的同义命令,具有相同的功能。以下关
28、键词可用于修改 PROPERTY 命令的功能:add v修改处于指定范围内的所有对象的参数值,使其在当前值的基础上加上设定值 v 得到新的值。例如,给所有球的半径加 0.1 的命令是:PROPERTY radius add 0.1。gradient gx, gy, gz该关键词的作用是有梯度地设定参数值,即将对象的的参数值设为: 。这里关键词gradient 应紧随 v 值之后设定,(x, y, z)为对象的位置坐标。如果还使用了关键词 multiply,则由 gradient 设定梯度(gx, gy, gz)也将用于乘数值的设定。multiply v将指定范围内的对象的参数值乘以 v 得到新
29、的参数值,注意是乘以 v 而不是将参数值设定为 v。 例如命令:PROPERTY radius multiply 1.5 的作用是将所有球的半径扩大 1.5 倍,若此时某球的半径等于 2.0m,则应用该命令后其半径为 3.0m。PROPERTY 命令的关键词可分为以下三类:修改球属性、修改接触粘结属性(contact-bond properties)和修改平行粘结属性(parallel-bond properties)。在必要之处,属性参数的单位在方括号内给予了说明。球属性:radius 球的半径density 密度质量/体积color 设置颜色标号(index) 。球的颜色标号必须是一个非零
30、整数,标号等于 0 对应于 plot 命令给球设定的一系列颜色中的第一个颜色。例如命令:PLOT add ball red blue orange black 设置了 4 种颜色的球,其中颜色编号 0 对应 red(红色) ,编号 1对应 blue,依此类推。此时命令 PROPERTY color 2 的作用就是把所有球的颜色设为 orange(橙色)。kn 法向刚度系数(线性接触模型) 力/ 位移;ks 切向刚度系数(线性接触模型) 力/ 位移;damping 局部阻尼系数。PFC3D 软件默认对于每个新生成的球使用局部阻尼,默认的局部阻尼系数等于 0.7,用户可以通过关键词damping
31、修改局部阻尼系数。friction 球表面摩擦系数(注意,不是摩擦角) ;poiss 泊松比(Hertz 接触模型) ;shear 剪切模量(Hertz 接触模型) ;xforce 作用于球质心的 x 方向的外加力(applied force);yforce 作用于球质心的 y 方向的外加力(applied force);zforce 作用于球质心的 z 方向的外加力(applied force);xdisplacement x 方向累积位移距离, distance;ydisplacement y 方向累积位移距离, distance;zdisplacement z 方向的累积位移 距离, d
32、istance;xvelocity x 方向速度距离/时间,distance/time;yvelocity y 方向速度距离/时间,distance/time;zvelocity z 方向速度 距离/时间,distance/time;xspin x 方向角速度弧度/时间;yspin y 方向角速度弧度/时间;zspin z 方向角速度 弧度/时间 ;xmoment x 方向外加力矩力*距离;ymoment y 方向外加力矩力*距离;zmoment z 方向外加力矩 力*距离 ;接触粘结属性(Contact-bond properties) :创建球与球之间的接触粘结是通过把任意一个接触粘结属性
33、参数设为非零值实现的。此时,程序会在指定范围内的所有真实接触(两球之间有实际重叠量)和虚拟接触(两球间距小于其平均半径的 10-6)上设置接触粘结。如果法向或切向接触粘结力被设为 0,那么该接触粘结将在下一个循环中断裂。手册 Theory and background 中的 2.3.1 节对接触粘结逻辑(contact-bond logic)有详细叙述。n_bond 法向接触粘结力(contact bond normal strength)力(force);s_bond 切向接触粘结力(contact bond shear strength) 力(force);平行粘结属性(Parallel-
34、bond properties):类似与接触粘结,创建球与球之间的平行粘结是通过把任意一个平行粘结属性参数设为非零值实现的。此时,程序会在指定范围内的所有真实接触(两球之间有实际重叠量)和虚拟接触(两球间距小于其平均半径的 10-6)上设置接触粘结。如果法向或切向平行粘结力被设为 0,那么该平行粘结将在下一个循环中断裂。手册 Theory and background 中的 2.3.2 节对平行粘结逻辑(parallel-bond logic)有详细叙述。pb_kn 平行粘结法向刚度系数应力/ 位移(stress/displacement);pb_ks 平行粘结切向刚度系数应力/ 位移(str
35、ess/displacement);pb_nstrength 法向平行粘结力应力(stress);pb_sstrength 切向平行粘结力应力(stress);pb_radius 半径乘数(radius multiplier),由此平行粘结的半径等于该乘数乘以两个粘结球中的最小半径。注意:1. 如果使用了用户自定义的接触模型,则其属性参数也是通过 PROPERTY命令对模型中定义的属性名赋值来设置的。详见手册 FISH volume 中的第 4 节。2. 关键词 radius 的简写不可短于 “rad”,否则将被识别为 “range”2. 程序控制命令(PROGRAM-CONTROL COMM
36、ANDS )程序控制命令用于支持程序的批处理模式(batch mode)运行,并允许用户修改程序状态。这类命令列于表 2。表 2 程序控制命令CYCLE ”用于注释) ,PFC3D 不会运行这些注释信息。一个数据文件内可以按顺序嵌套调用其他数据文件,对嵌套的层数没有限制,但是不允许文件之间的递归调用。例如, “ABC”文件中调用了“DEF”文件,而“DEF”中同时又调用了“ABC”文件,这种情况是不允许的。如果只有一层调用,用 RETURN 命令可从批处理模式返回命令交互模式;如果是多层嵌套调用(即在一个数据文件中调用了另一个数据文件) ,则(被调用文件中)RETURN 的作用为返回上一层数据
37、文件中(调用文件中)CALL 命令的下一行。如果按下 (退出键) ,无论此时正在调用哪一层数据文件,都将结束批处理运行模式并返回命令交互模式;如果按下(空格键) ,用户可以在数据文件中插入 PAUSE 命令,该命令会暂停程序的运行,允许用户检查中间结果是否正确。使用 CONTINUE 命令可以继续运行被暂停程序。RETURN 如果只有一层调用,用 RETURN 命令可从批处理模式返回命令交互模式;如果是多层嵌套调用(即在一个数据文件中调用了另一个数据文件) ,则(被调用文件中)RETURN 的作用为返回上一层数据文件中(调用文件中)CALL 命令的下一行。无论用户是否在数据文件的最后一行写上
38、RETURN 命令,每个数据文件的最后一行,都默认有 RETURN 命令。RETURN 命令也用于从一个 FISH 函数的 COMMAND section 跳出。PAUSE 用于暂停运行数据文件,该命令能以下列 3 种方式中的一种调用:1) 如果没有指定任何关键词,则 PFC3D 将在遇到 PAUSE 命令的地方停止运行数据文件,并进入命令交互模式,此时用户可以通过键盘输入命令控制程序(如敲入 PLOT ball 命令绘制球的图像) 。当敲入 CONTINUE命令时,PFC3D 将恢复运行数据文件;2) 如果指定了关键词 ,则 PFC3D 将在遇到 PAUSE 命令的地方停止运行数据文件,并等
39、待用户按下一个按键。当用户按下任意一个按键(键除外)时,PFC3D 将恢复运行数据文件。如果按下键,PFC3D 将异常中断所有运行(包括已经暂停的任何数据文件的运行)并进入命令交互模式。3) 如果指定了关键词 , PFC3D 将暂停运行数据文件 t 秒,之后再恢复运行。如果按下键,PFC3D 将异常中断所有数据文件的运行(包括已暂停的任何数据文件的运行)并进入命令交互模式(interactive-command mode);如果按下键,则 PFC3D 将继续运行数据文件。CONTINUE 恢复运行被 PAUSE 命令暂停的数据文件。此时,程序将从 PAUSE 命令的下一行继续运行。NEW 清除
40、大部分程序状态信息,从而允许用户不用退出 PFC3D 软件就能开始一个新问题的模拟。对于每个启动命令,都将调用( 或参考?consult)“PFC3D.INI”文件。命令 NEW 可以清除程序的大部分状态信息,如球、壁面、接触、粘结等对象都将被删除,不会影响下个新问题的模拟。但是以下 3 个状态信息不受命令 NEW 的影响:日志文件(log-file)、反馈模式(echo mode)和随机数发生器的种子(即随机种子,random-number generator seed)参见命令 SET log, echo, random。日志文件仍然打开(如果已经打开的话) ,日志文件名和反馈模式的开关状
41、态不会被命令 NEW 改变,而且随机种子不会因为使用命令 NEW 而重置。除此之外,所有其他的程序状态信息(包括所有 FISH 函数和变量、历史记录histories、表格以及绘图等)都将丢失!不过这些信息都可以通过SAVE 命令保存到文件内,以后使用 RESTORE 命令恢复。另外,也可以编写 FISH 函数将数据保存到一个文件内,并通过另一个 FISH 函数读出这些数据,详见 FISH volume 中的 2.5.1.6 节:Input-Output FunctionsPARALLELkeyword控制并行处理程序的运行以及拓扑连接的初始说明(controls parallel-proce
42、ssing program operation and the initial specification of the connection topology)。并行处理功能是作为 PFC3D 软件的一个可选功能供用户选用的,Theory and background 中 5.2.3 节有关于并行处理的详细介绍。该命令可应用以下关键词:end 当主处理器收到该命令时,所有进程都将归复独立运行模式。master mname从属进程(slaves)使用该命令将网络中名为 mname 的进程指定为他们的主进程(master process)。numprocess n主进程使用该命令指定参与并行运行
43、的总进程数。process pn每个进程都需使用该命令给自己分配一个编号。pn 必须在0, n-1之间,其中 n 为总进程数,编号 0 特指主进程。start 对主进程而言,该命令将所有从键盘或文件输入 PFC3D 的本地输入(local input)发送到所有从属进程,包括主进程本身。对从属进程而言,该命令将禁止键盘提示(keyboard prompt),并指示 PFC3D 接收从主进程发送的所有输入信息。FISH 语言的并行化以及并行环境下 FISH 衍生命令的解释,在Theory and Background 中的 5.2.6 节有讨论。一些其他命令也使得进程间的通信处于一个更低的水平(
44、详见 Theory and background 中 5.3 节) 。Start 命令假设在其之前已经运行了 process,numprocess 和master 等命令,即 start 命令必须在这些命令运行之后才有效。以下是对并行化运行的注解,更多注解和例子请参考 Theory and Background中第 5 节。1) 如果有 n 个处理器,编号为 0, 1, , n-1,每个处理器对应于一个空间区域,那么 0 号则对应“最左侧”区域(least x range 横坐标 x 最小的区域) ,依此类推,相应地 n-1 号处理器对应于“最右侧”区域(most positive x ran
45、ge 横坐标 x 最大的区域) 。0 号处理器2)QUIT 停止程序运行(同义词:STOP) ;SAVE 将程序当前状态存入文件,与 RESTORE 命令对应;RESTORE 还原存储文件(SAVEd file)中的程序状态,与 SAVE 命令对应;TITLE 设置模型标题,该标题会在绘图中显示并记录在存储文件中。3. 模型监控命令(MODEL MONITORING COMMANDS)模型监控命令用于监控模型的响应,主要包括以下命令HISTORYMEASUREPLOTPRINTTRACEPLOT 命令PLOT keyword PLOT 命令用于在屏幕上绘图或将图导出到硬拷贝绘图设备(如打印机、
46、PDF)或文件(如导出位图、JPG 等文件)里。绘图逻辑( PLOTTING LOGIC)的建立是基于“视图(VIEW) ”的概念。一个视图包含视图设置参数(如视图的背景、尺寸等)和实际需要绘制的项目(如模型平面 model surface,向量等) ,在没有建立任何模型的时候,绘图逻辑会将视图列表初始化为标识号(viewid)为 0,名字为“BASE”的唯一视图。打开 PFC3D 软件时,在 VIEWS菜单栏下可以看到名为“1 0BASE”选项条,这就是绘图逻辑初始化的视图,点击“show” ,我们就能看到这个默认视图的全貌,如下图 1、2 所示。1 2用户可以创建并储存多个视图,并可以在视
47、图之间切换以定义“活动视图(active view) ”。Viewid 可以是一个代表视图 ID 号的整数,也可以是一个表示视图名字的字符串(如默认视图的标识号 0BASE 中,0 为该视图的 ID 号, BASE 是该视图的名字) 。使用关键词 create 可以创造一个视图,使用关键词 current 可以激活一个视图,关键词 print 可以查看视图列表。每个视图存储了一系列“绘图选项(plot items) ”,即视图能显示的一些特定图片选项(例如模型图和速度矢量图等) 。使用 add 关键词可以将绘图选项添加到视图里,subtract 用于删除绘图选项,modify 用于修改绘图选项
48、,move 可以重新组织绘图选项。当使用了 show 关键词时,所有添加到视图里的选项都会显示在屏幕上。使用 print item 可以得到与特定视图相关的所有绘图选项的列表。绘图操作命令可归为以下 4 类: 视图操作定义视图属性和输出条件的关键词; 视图设置操作设置视图的背景和前景颜色、视图位置、视图说明和视图名称的关键词; 绘图选项操作用于在视图内创建(即添加、删除、修改等操作)视图选项的关键词; 交互式操作在图形屏幕模式下,使用一些特定键击,用户可与 PFC3D 进行交互式操作。表 1.7 列出了前三类关键词,表 1.8 列出了第四类提到的相关键击。表 1.7 PLOT 操作关键词汇总视
49、图操作 视图设置操作 视图选项操作CloseCopyCreateCurrentDestroyExportHardcopyPrintQuitResetSet kewordAngleAnimateBackgroundCaptionCenterColorEyedistanceForegroundModeMoveincrementPerspectivePlaneRotationRotincrementAddClearModifyMovePrint itemSubtractSizeTitleWindow表 1.8 PLOT 模式中的交互式键击键击 功能+-左方向键右方向键上方向键下方向键Ctr+CCtr+GCtr+LCtr+RCtr+ZDeleteEndEnterHomeInsertMShift+MPG DnPG UpXShift+xYShift+yZShift+zF5F9切换视图模式增加增量(1.25 倍)减小增量(0.8 倍)左移右移上移下移打开摄像设置对话框在彩色绘图和灰度绘图之间切换平面剪辑显示重置视图设置至默认设置矩形框选