中文PFC说明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
中⽂PFC说明
PFC3D命令说明
(COMMON COMMAND REFERENCE)
PFC3D是基于命令驱动模式(COMMAND-DRIVEN FORMAT)的软件,各种命令控制着程序的运⾏,这部分内容将介绍PFC3D软件的内嵌命令。
本说明⽂件译⾃PFC3D软件2.0版使⽤⼿册中的COMMAND REFERENCE部分,并补充了⼀些⼿册中没有的命令(如设置粘性阻尼、⽣成圆柱、螺旋壁⾯等,这些命令在更⾼版本的⼿册中有说明)。
命令说明的顺序没有采⽤原⼿册中按字母排序的⽅式,⽽是根据创建PFC3D 模型解决实际物理问题的⼀般过程,对相关命令加以说明。
PFC3D⼿册中COMMON COMMAND REFERENCE只对每个命令的格式和基本功能做了简单介绍,本说明⽂件对每个命令做了更详细的解释,为保持⽂件的可读性,对命令的详细解释都以附录形式给出。
本⽂件介绍了PFC3D的基本功能,对初学者有较⼤帮助,但要进⾏⾼级应⽤,还需清楚了解DEM和PFC3D相关功能的基本原理以及软件的结构等。
由于只关注使⽤PFC3D解决颗粒流的问题,涉及颗粒流的命令介绍的⽐较详细,⽽⽤于岩⼟⼯程等其他领域的命令,由于关注很少且专业知识缺乏,只是不求甚解。
0.关于命令格式的说明:
PFC3D中每个命令基本包含3部分:命令名、必需关键词和可选关键词。
本说明⽂件中,命令名和必需关键词写在第⼀⾏,尖括号表⽰该命令具有可选关键词,罗列于命令名的下⼀⾏次级列;带参数的关键词,参数紧随关键词之后⽤加粗斜体表⽰。
名字较长的“命令”和“关键词”,PFC3D允许不写出全部字母,只需简写前⾯的⼀些字母,最短可简写名(即PFC3D能识别的最短简写“命令”和“关键词”名)⽤加粗字体表⽰。
例如命令:BALL rad r
…
hert z …
id id
x x
y y
z z
说明:命令名为BALL的命令,具有必需关键词rad(参数r)和hert z、id、x、y、z等可选关键词。
其中hert z不带参数,最短可简写为hert;id、x、y、z的参数分别为id、x、y、z。
另外,PFC3D默认对内嵌命令以及FISH函数中的命令名、关键词、参数等的字母⼤⼩写不敏感,也可设置为⼤⼩写敏感(使⽤SET case_sensitivity on命令),建议使⽤对字母⼤⼩写
不敏感模式,可减少错误的产⽣。
1.模型属性命令(MODEL-PROPERTY COMMANDS)
模型属性命令⽀持数值模型的创建与修改,主要包括表1所⽰的命令,这些命令可分为模型创建(或删除)和模型修改两⼤类
BALL⽣成⼀个新颗粒;
CLUMP⽣成⼀个新块体,或修改已有块体的属性;
DELETE 删除球、壁⾯、块体或历史(HISTORIES);
GENERATE在特定空间内⽣成⼀组颗粒,其⼤⼩按指定⽅式分布;
JSET以给某个接触分配⼀个“接点”ID号的⽅式⽣成⼀组“接点”;
WALL⽣成⼀个新壁⾯或修改已有壁⾯的属性(包括修改物性和外加速度);
FIX为颗粒设置固定速度标记
FREE清除颗粒的固定速度标记
MODEL在指定“接触”上使⽤⽤户⾃定义接触模型;
PROPERTY修改已有颗粒(ball)、接点(joint)、粘结(bond)和接触(contact)的属性。
球的属性包括物性、外加⼒和速度等;使⽤区域元素(range element)
JSET,⽤户可以修改特定接点附件的颗粒属性;对于“粘结”,接触粘结
和平⾏粘结都可以被创建并修改其属性;对于“接触”,PROPERTY⽤于
修改⽤户⾃定接触模型的修改。
同义命令:CHANGE、INITIALIZE。
1.1模型创建命令:
WALL keyword…
WALL命令有两个功能,⽣成⼀个新的壁⾯,或按指定的ID号修改已有壁⾯的属性参数。
WALL不能使⽤RANGE逻辑,即不能给⼀个壁⾯的不同部分赋不同的属性参数。
壁⾯只与球有相互作⽤,壁⾯之间没有相互作⽤,因此壁⾯可以相互重叠。
壁⾯有两侧,有效侧(active side)与⾮有效侧(inactive side),只有与有效侧接触的球,才与壁⾯有相互作⽤。
关于有效侧的定义,见附录1。
每个壁⾯都可以设置平移速度与转动速度。
使⽤Theory and Background中的1.28公式,可更新构成壁⾯的每个顶点的位置,从⽽得到壁⾯的运动情况。
应当注意的是,转动速度的设定还与壁⾯转动中⼼有关,默认情况下,转动中⼼在坐标原点(0.0, 0.0, 0.0)。
两类壁⾯可以定义:(1)⽆限⼤壁⾯:由关键词origin和normal定义的⼀个⽆限⼤平⾯;(2)有限壁⾯:圆柱形或由⼀组凸⾯多边形组成,使⽤关键词face定义。
A.⽆限⼤壁⾯(infinite wall):⽆限壁⾯由关键词normal和origin定义,前者定义
壁⾯的单位法向向量,所指向的⼀侧是壁⾯的有效侧;后者定义壁⾯上的任意⼀点。
no rmal nx, ny, nz
⽆限壁⾯单位法向向量的分量;
or igin x0, y0, z0
⽆限壁⾯上任意⼀点的坐标;
B.圆柱壁⾯(cylinder):使⽤关键词type cylinder可以定义圆柱壁⾯,也可定义圆锥、
圆台壁⾯等回旋壁⾯。
type cylinder keyword…
end1x1, y1, z1
回旋⾯的第⼀个端点;
end2x2, y2, z2
回旋⾯的第⼆个端点;
rad ius rl, ru
rl: 端点end1处的回旋半径;
ru: 端点end2处的回旋半径;
type cylinder的⼏点说明:
1)end1, end2⾄多只能缺省⼀个,缺省时对应的参数都为0;
2)rl和end1对应,ru和end2对应;
3)rad ius值决定了回旋壁⾯的类型:
i.rl = ru,对应圆柱壁⾯;
ii.rl = 0.0,对应圆锥壁⾯;
iii.rl ≠ru,对应圆台壁⾯;
例如:
Wall type cylinder end1 0 0 0, end2 0 0 1, radius 0.5,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.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 keyword…
end1x1, y1, z1
螺旋⾯的第⼀个端点;
end2x2, y2, z2
螺旋⾯的第⼆个端点;
rad in rin
rin: 螺旋⾯的内径;
rad out rout
rout: 螺旋⾯的外径;
pi tch pt
pt: 螺距。
说明:螺纹的个数由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):使⽤关键词face可以构造由若⼲有限平⾯
(face)组成的有限壁⾯(wall),每个平⾯(face)必须是由⼀组按顺序连接的顶点(vertices)组成的多边形(polygon);有限壁⾯的有效侧按右⼿法则确定,详见附录1。
fa ce x1, y1, z1 x2, y2, z2 …xn, yn, zn
x1, y1, z1 x2, y2, z2 …xn, yn, zn为平⾯多边形的顶点坐标,它们
的位置顺序代表着顶点的连接顺序,决定了有效侧的位置。
使⽤具有相同ID号的WALL命令,可以在已有壁⾯上增加若⼲多边
形平⾯,如下列命令定义了⼀系列有限壁⾯:
wall id=1 face (1,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,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.5
wall 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壁⾯);对于凹形⼏何结构,不
能定义成⼀个壁⾯,必须通过连接不同的壁⾯得到。
E.WALL命令的其他关键词:以下关键词⽤于设置壁⾯的属性,如刚度系数、摩擦系数、平移速度、旋转速度等。
关键词的可以在命令中的任意位置出现。
id id
指定壁⾯的ID号,必须是正整数。
如果不指定,则将选择⽐当前最⼤
壁⾯id号⼤1的整数。
如果指定的id号已经存在,则对应壁⾯的属性
将被修改,如增加1个平⾯,或修改刚度系数、摩擦系数等。
kn kn
设定或修改壁⾯法向刚度系数(线性接触模型);
ks ks
设定或修改壁⾯切向刚度系数(线性接触模型);
f riction f
设定或修改壁⾯摩擦系数;
x x
设定转动中⼼(x坐标);
y y
设定转动中⼼(y坐标);
z z
设定转动中⼼(z坐标);
xs pin xs
设定绕转动中⼼的转动速度(x分量)[单位:弧度/秒];
ys pin ys
设定绕转动中⼼的转动速度(y分量)[单位:弧度/秒];
zs pin zs
设定绕转动中⼼的转动速度(z分量)[单位:弧度/秒];
xv elocity xv
设定平移速度(x分量);
yv elocity yv
设定平移速度(y分量);
zv elocity zv
设定平移速度(z分量);
BALL rad r
⽣成半径为r的单个颗粒,可选择的关键词有:
her tz 启⽤Hertz接触模型,若不是⽤该可选关键词,则模型默认使⽤线性接触模型
id id
设置颗粒的ID号。
每个颗粒的ID号应为独⼀的正整数,如果模型内
有相同的ID号,则软件会报错。
如果⽤户不设置颗粒ID号,软件将
⾃动指定⽐当前模型内最⼤ID号⼤1的号码。
x x
球⼼的x坐标
y y
球⼼的y坐标
z z
球⼼的z坐标
GE NERATE x xl xu y yl yu z zl zu rad ius rl ru id il iu 以下关键词可⽤于修改该命令的功能:
n o_shadow 禁⽌在⾮阴影区内⽣成颗粒(见附录⼆);默认情况下,颗粒
会在壁⾯的有效侧与⾮有效侧⽣成。
t ries tmax
PFC3D默认尝试20,000次,以将指定数量的待⽣成颗粒置于
指定空间。
该命令将尝试的次数设为tmax次,需注意的是,
这个值只对当前Generate命令有效,并不是将模型内所有
Generate命令的尝试次数都设为tmax。
f ilter fname
使⽤⽤户⾃定义的颗粒⽣成过滤器(user-defined generation
filter)。
在⽣成每个球的每⼀次尝试中,名为fname的FISH
函数被调⽤,详见说明9和附录4。
g auss 颗粒半径服从⾼斯概率分布,⽽不是默认的均匀概率分布。
此
时,平均半径为(rl + ru) / 2,标准偏差为(ru - rl) / 2;其中rl , ru
为关键词radius定义的参数。
h ertz 新⽣颗粒使⽤Hertz接触模型。
若⽆该关键词,则使⽤默认的
线性接触模型。
l ocal 该关键词只在并⾏计算过程起作⽤,⽤于强制性地只在本地处
理器上⽣成颗粒,⽽不在处理器之间共享信息。
m in rmin
该关键词只在使⽤了g auss关键词的情况下起作⽤,⽤于将⾼
斯概率分布中的最⼩球半径设为rmin。
默认情况下,⾼斯概
率分布中的最⼩球半径为rl / 10。
说明:
1.BALL和GENERATE是⽤于⽣成新球的两个命令,他们之间有很⼤区别:
a)BALL是在⽤户指定的⼀个特定位置,⽣成⼀个新球;新球的⽣成不受已有球的影响,
允许与其他球有任意⼤的重叠;由于球之间允许重叠,当循环计算开始时,球之间会
突然产⽣⼤⼩相应于重叠量的作⽤⼒;
b)GENERATE是在⽤户指定的⼀个空间区域内,⽣成指定数量的新球;新球的⽣成受
已有球的影响,因为球与球之间不允许有重叠;因此⽤GENERATE命令能否在指定空间⽣成指定数量的球,还取决于空间是否⾜够⼤,或⽣成球过程中的尝试次数(tries)是否⾜够多等;
c)BALL命令⼀般⽤于⽣成规则排列球组(Regular particle assembly),GENERATE⽤于⽣成
⾮规则排列球组(Irregular particle assemble);
2.Generate命令必须指定球的⽣成空间范围、半径⼤⼩分布形式和ID号范围(确定球的数
量)。
球的位置与半径随机选择,因此最终⽣成的颗粒组的状态(位置和⼤⼩)受随机数发⽣器(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定义的⽅形空间的交集;X,y,z 与annulus等关键词只能定义简单的⽅形与球环形空间,⽽实际问题⼤多数涉及较复杂的空间。
此时最有效的⽅法是使⽤⽤户⾃定义FISH函数进⼀步限制球的⽣成空间,见关键词filter的说明;
4.球径⼤⼩由关键词rad ius定义,默认情况下,球径⼤⼩在区间[rl, ru]之内,且服从均匀概
率分布2(uniform distribution),也可使⽤关键词gauss指定球径⼤⼩服从⾼斯概率分布;
5.关键词id il iu指定了需要⽣成多少数量的球。
⽣成球的总数量为iu-il+1,其中iu, il为球ID
号的最⼤值与最⼩值;
1SET random
该命令⽤于设置随机数发⽣器的随机种⼦iseed。
我们知道,计算机只能⽣成相对随机数(伪随机数),伪随机数的计算取决于随机算法和随机种⼦的选取,当算法和种⼦确定后,产⽣的随机数就确定了;种⼦和算法相同时,产⽣的随机数也相同。
PFC3D软件中随机算法是不变的,因此随机数的⽣成完全取决于⽤户设定的随机种⼦的⼤⼩,即iseed的值。
iseed的默认值等于10000,⽤户可以⾃定义随机种⼦,其⼤⼩应和默认值在同⼀量级;
三点必须明确:
1.如果⽤户没有使⽤SET random 命令,则随机种⼦由软件⾃动选取,⼀般取⾃计算的系统时钟,即来⾃计算机主板上的定
时/计数器在内存中的记数值。
这种情况下,同⼀个模型每次运⾏时的随机数都不同,Generate⽣成的球组初始状态(球的⼤⼩和位置)每次也不同;
2.如果⽤户使⽤了SET random 命令⾃定义随机种⼦的⼤⼩,那么随机数的产⽣取决于⽤户选取的iseed值的⼤⼩,相同的
随机种⼦意味着对于同⼀个模型⽽⾔,⽆论运⾏多少次,由Generate命令⽣成的初始球组的状态是⼀样的;
3.随机种⼦的设置只与有⽆SET random 命令以及iseed的⼤⼩有关,NEW命令不会改变随机种⼦的设置。
2均匀概率分布的数学概念:
设连续型随机变量X的分布函数为
F(x)=(x-a)/(b-a),a≤x≤b
则称随机变量X服从[a,b]上的均匀概率分布,记为X~U[a,b].若[x1,x2]是[a,b]的任⼀⼦区间,则P{x1≤x≤x2}=(x2-x1)/(b-a)这表明X落在[a,b]的⼦区间内的概率只与⼦区间长度有关,⽽与⼦区间位置⽆关,因此X落在[a,b]的长度相等的⼦区间内的可能性是相等的,所谓的均匀指的就是这种等可能性.
在实际问题中,当我们⽆法区分在区间[a,b]内取值的随机变量X取不同值的可能性有何不同时,我们就可以假定X服从[a,b]上的均匀概率分布.
6.Generate⽣成球时,新球与已有球之间不允许相互重叠,因此,当没有⾜够的空间(或尝
试的次数不⾜,见关键词tries)⽣成所有指定数量的球时,将⽣成少于所需数量的球。
软件默认这种情况为发⽣错误,不过也可以使⽤SET gen_error命令将这种情况当作警告处理(软件提⽰警告信息,但是指令处理过程继续进⾏);颗粒⽣成以后,紧随其后应使⽤PROPERTY命令设置球的属性参数,包括法向刚度、切向刚度、局部阻尼、密度、摩擦系数,Hertz模型下的弹性模量、泊松⽐等。
7.t ries tmax的说明:Generate命令⽣成的球与球之间不允许重叠,⽤Generate命令⽣成新球的
过程是不断尝试的过程;每次尝试先按指定的分布形式确定球径⼤⼩,并随机(伪随机)确定⼀个球⼼位置,再检测该位置周围是否有⾜够空间⽣成该球;若空间⾜够,新球⽣成,否则进⾏下⼀次尝试。
软件默认尝试20,000次,当所需新⽣球数量较
多时,必须使⽤t ries tmax命令,设置更⼤的尝试次数,否则即使有⾜够的空间,也不能⽣成所需数量的球。
8.f ilter fname:该关键词的作⽤是引⽤⽤户⾃定义颗粒⽣成过滤器(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。
关于f ilter fname的更详细说,见附录4。
DEL ETE keyword…
删除球(balls)、块(clumps)、历史(histories)或壁⾯(walls)等,命令的形式取决于
要删除的对象。
相关关键词及其参数如下:
b alls
删除球。
如果指定id号,仅删除对应的1个球;如果指定⼀个范
围(range),则处于该范围内的球(即质⼼处于该范围之内的球)
都将被删除;如果既不指定id号,也不指定范围,则模型中的所
有球都将被删除。
利⽤FISH函数,我们能更灵活地按照所希望的⽅式删除⼀些对
象,⽐如删除⼀些超出指定范围的球。
User’s Guide中的例 3.21
介绍了每经100个循环,删除位置低于某⼀⾼度的球。
关于FISH
语⾔,将在另⼀部分给予介绍。
Example 3.21 FISH function to delete escaping particles
;fname: zapballs.DAT
def remove_balls
while_stepping
y_del_count = y_del_count + 1
if y_del_count > 100
y_del_count = 0
bp = ball_head
loop while bp # null
next = b_next(bp)
if b_y(bp) < y_del
ii = b_delete(bp)
end_if
bp = next
end_loop
end_if
end
c lump id
删除ID为id的块,不可指定范围(range)参数。
删除块只是解散组
成块体的球,并不删除这些球。
h istories 删除所有历史记录(history traces)。
另外,也可以⽤HISTORY reset 命令擦除所有历史记录的内容。
w alls id
删除ID号为id的壁⾯,不可指定范围(range)参数。
CL UMP keywords…
创建ID号为id的新块,若指定的id已经存在,则其功能为修改ID为id的块
体的属性。
……
……
……
J SET ……
……
1.2模型修改命令:
FI X keyword…
固定某⼀范围(range)内球的指定速度⾃由度,若不指定范围(range),该命令将应⽤于模型中的所有球。
应当注意的是,固定的是“速度”⽽不是位移。
当速
度的某⼀分量被固定时,其速度将保持当前值不变,即每个循环中运动⽅程不会更新速度分量。
速度值可使⽤PROPERTY命令设置。
以下关键词可使⽤:
x固定x⽅向线速度;
y固定y⽅向线速度;
z固定z⽅向线速度;
xs pin 固定x⽅向⾓速度;
ys pin 固定y⽅向⾓速度;
zs pin 固定z⽅向⾓速度;
例如,下列命令⾏将把ID为5的球的x⽅向线速度固定为1.5m/s。
fix x range id = 5;
property xvel = 1.5 range id=5;
FR EE keyword…
FR EE是与FI X相反的命令,其功能是移除对某⼀范围(range)内的球在速度⾃由度上的固化, 若不指定范围,该命令将应⽤于模型中的所有球。
当某速度分量⾃由化(be free)后,其⼤⼩变化将由每个循环过程的运动⽅程决定。
默认情况下,所有球的所有分量都是⾃由变化的。
以下关键可⽤于该命令:
x释放x⽅向线速度(frees x-velocity);
y释放y⽅向线速度;
z释放z⽅向线速度;
xs pin 释放x⽅向⾓速度;
ys pin 释放y⽅向⾓速度;
zs pin 释放z⽅向⾓速度;
PRO PERTY keyword v 设置某范围(optional range)内已有球(balls)、接点(joints)、粘结(bonds)以及接触
(contacts)的属性,包括球的物性、外加⼒和速度;修改连接到某个接点的球的
属性;修改接触粘结和平⾏粘结的属性。
对于接触,PROPERTY只能修改⽤
户⾃定义接触模型的接触属性。
若没有指定范围,则模型中所有有效对象的属
性都将被修改。
命令CHANGE和INITIALIZE是PROPERTY的同义命令,具有相同的功能。
以下关键词可⽤于修改PROPERTY命令的功能:
a dd v
修改处于指定范围内的所有对象的参数值,使其在当前值的基础
上加上设定值v得到新的值。
例如,给所有球的半径加0.1的命令
是:PROPERTY radius add 0.1。
g radient gx, gy, gz
该关键词的作⽤是有梯度地设定参数值,
即将对象的的参数值设为:。
这⾥关键词
gradient应紧随v值之后设定,(x, y, z)为对象的位置坐标。
如果还使⽤了关
键词multiply,则由gradient设定梯度(gx, gy, gz)也将⽤于乘数值的设定。
mu ltiply v
将指定范围内的对象的参数值乘以v得到新的参数值,注意是乘
以v⽽不是将参数值设定为v。
例如命令:PROPERTY radius
multiply 1.5的作⽤是将所有球的半径扩⼤1.5倍,若此时某球的
半径等于2.0m,则应⽤该命令后其半径为3.0m。
PROPERTY命令的关键词可分为以下三类:修改球属性、修改接触粘结属性(contact-bond properties)和修改平⾏粘结属性(parallel-bond properties)。
在必要之处,属性参数的单位在⽅括号内给予了说明。
球属性:
ra dius 球的半径
de nsity 密度[质量/体积]
co lor 设置颜⾊标号(index)。
球的颜⾊标号必须是⼀个⾮零整数,标号等于0对应于plot命令给球设定的⼀系列颜⾊中的第⼀个颜⾊。
例如命令:PLOT add ball red blue orange black设置
了4种颜⾊的球,其中颜⾊编号0对应red(红⾊),编号1对
应blue,依此类推。
此时命令PROPERTY color 2的作⽤就是
把所有球的颜⾊设为orange(橙⾊)。
kn法向刚度系数(线性接触模型) [⼒/位移];
ks切向刚度系数(线性接触模型) [⼒/位移];
da mping 局部阻尼系数。
PFC3D软件默认对于每个新⽣成的球使⽤局部阻尼,默认的局部阻尼系数等于0.7,⽤户可以通过关键词
damping修改局部阻尼系数。
f riction 球表⾯摩擦系数(注意,不是摩擦⾓);
po iss 泊松⽐(Hertz接触模型);
sh ear 剪切模量(Hertz接触模型);
xf orce 作⽤于球质⼼的x⽅向的外加⼒(applied force);
yf orce 作⽤于球质⼼的y⽅向的外加⼒(applied force);
zf orce 作⽤于球质⼼的z⽅向的外加⼒(applied force);
xd isplacement x⽅向累积位移[距离, distance];
yd isplacement y⽅向累积位移[距离, distance];
zd isplacement z⽅向的累积位移[距离, distance];
xv elocity x⽅向速度[距离/时间,distance/time];
yv elocity y⽅向速度[距离/时间,distance/time];
zv elocity z⽅向速度[距离/时间,distance/time];
xs pin x⽅向⾓速度[弧度/时间];
ys pin y⽅向⾓速度[弧度/时间];
zs pin z⽅向⾓速度[弧度/时间];
xm oment x⽅向外加⼒矩[⼒*距离];
ym oment y⽅向外加⼒矩[⼒*距离];
zm oment z⽅向外加⼒矩[⼒*距离];
接触粘结属性(Contact-bond properties):
创建球与球之间的接触粘结是通过把任意⼀个接触粘结属性参数设为⾮零值实现的。
此时,程序会在指定范围内的所有真实接触(两球之间有实际重叠量)和虚拟接触(两球间距⼩于其平均半径的10-6)上设置接触粘结。
如果法向或切向接触粘结⼒被设为0,那么该接触粘结将在下⼀个循环中断裂。
⼿册Theory and background中的2.3.1节对接触粘结逻辑(contact-bond logic)有详细叙述。
n_b ond 法向接触粘结⼒(contact bond normal strength)[⼒(force)];
s_b ond 切向接触粘结⼒(contact bond shear strength) [⼒(force)];
平⾏粘结属性(Parallel-bond properties):
类似与接触粘结,创建球与球之间的平⾏粘结是通过把任意⼀个平⾏粘结属性参数设为⾮零值实现的。
此时,程序会在指定范围内的所有真实接触(两球之间有实际重叠量)和虚拟接触(两球间距⼩于其平均半径的10-6)上设置接触粘结。
如果法向或切向平⾏粘结⼒被设为0,那么该平⾏粘结将在下⼀个循环中断裂。
⼿册Theory and background中的2.3.2节对平⾏粘结逻辑(parallel-bond logic)有详细叙述。
pb_kn 平⾏粘结法向刚度系数[应⼒/位移(stress/displacement)];
pb_ks 平⾏粘结切向刚度系数[应⼒/位移(stress/displacement)];
pb_n strength 法向平⾏粘结⼒[应⼒(stress)];
pb_s strength 切向平⾏粘结⼒[应⼒(stress)];
pb_r adius 半径乘数(radius multiplier),由此平⾏粘结的半径等于该乘
数乘以两个粘结球中的最⼩半径。
注意:
1.如果使⽤了⽤户⾃定义的接触模型,则其属性参数也是通过PROPERTY
命令对模型中定义的属性名赋值来设置的。
详见⼿册FISH volume中的第
4节。
2.关键词radius的简写不可短于“rad”,否则将被识别为“range”
2.程序控制命令(PROGRAM-CONTROL COMMANDS)
程序控制命令⽤于⽀持程序的批处理模式(batch mode)运⾏,并允许⽤户修改程序状态。
这类命令列于表2。
CYCLE执⾏指定数量的循环计算(同义词:STEP);
SLOVE持续循环计算直到达到指定的停⽌条件;
CALL将数据⽂件读⼊PFC3D软件并执⾏其中的命令,这就是所谓的批处理
模式;
RETURN从批处理模式(batch mode)返回命令交互模式(interactive-command
mode);如果嵌套了多层调⽤,则返回上⼀层的调⽤⽂件。
PAUSE暂停读⼊数据⽂件,与CONTINUE命令对应;
CONTINUE继续读⼊数据⽂件,与PAUSE命令对应;
NEW清除程序状态,开始⼀个新的模型计算;
PARALLEL控制并⾏处理程序的运⾏;
QUIT停⽌程序运⾏(同义词:STOP);
SA VE将程序当前状态存⼊⽂件,与RESTORE命令对应;
RESTORE还原存储⽂件(SA VE d file)中的程序状态,与SA VE命令对应;
TITLE设置模型标题,该标题会在绘图中显⽰并记录在存储⽂件中。
CY CLE n
执⾏n个时步的循环计算。
如果运⾏期间按下键,PFC3D软件将在执⾏
完当前循环步数后返回命令交互模式;如果按下键,PFC3D将在执
⾏完当前循环步数后调⽤下⼀个批处理⽂件(如果有的话)。
例如,命令CYCL 10000意为执⾏10000步循环计算,如果⽤户在第5000步
的时候按下了键,则PFC3D将在此时停⽌计算并返回命令交互模式;如
果在5000步时按下键,则程序将调⽤下⼀层批处理⽂件;如果没有
下⼀层批处理⽂件,则程序将停⽌运⾏,并返回命令交互模式。
同义词:STEP SO LVE …启动并持续循环计算,直到达到指定的停⽌条件。
默认情况下,当最⼤或平均
不平衡⼒⽐达到1*10-2时,则认为得到稳定状态解。
以下关键词⽤于定义该
命令的停⽌条件(注意:达到任意⼀个停⽌条件时,循环计算都将停⽌)。
a verage v
平均不平衡⼒与平均接触⼒的⽐值,默认v = 0.01。
平均不平
衡⼒为:所有不平衡⼒分量绝对值的总和在所有球上的平均
值;平均接触⼒:所有法向⼒接触⼒绝对值的总和在所有法向
⼒接触⼒不为零的接触点上的平均。
m aximum v
所有球中的最⼤不平衡⼒与最⼤接触⼒的⽐值,默认v = 0.01。
最⼤不平衡⼒:不平衡⼒⽮量任何⼀个分量的最⼤值。
对于任
意⼀个球⽽⾔,其不平衡⼒分量都有⼀个最⼤值F unmax,所有
球中最⼤的F unmax (记为max(F unmax)),就是maximum命令中所
谓的所有球中的最⼤不平衡⼒。
最⼤接触⼒:所有具有⾮零法向⼒的“接触(contact)”中(不
考虑平⾏粘结),法向接触⼒绝对值的最⼤值。
c ycles n
循环步数限定条件,默认n = 100,000步;
s teps s
关键词cycles的同义词;
c lock t
计算机运⾏时间限定条件,默认t = 1440分钟;
t ime t
累计问题时间(即所有时步的和)限制条件,默认t = 360,000
秒。
说明:问题时间(Problem-time)与计算机运⾏时间(Computer runtime)
PFC3D模型都是⽤于模拟⼀个实际物理问题。
对于⼀个PFC3D模型⽽⾔,都
具有两个时间概念,即问题时间(problem-time)和计算机运⾏时间(computer runtime)。
前者是实际物理时间,也就是所有时间步长的总和;后者是计算机
模拟该问题所花的计算时间,这与时间步长的⼤⼩、计算的硬件性能等相关,
时步越⼤、计算机性能越好,所花运⾏时间越短。
例如⽤PFC3D模拟⼀个5m⾼的⾃由落体运动,从运动开始到结束,问题时
间( problem-time )约为1s。
⽽对于计算机⽽⾔,其模拟⾃由落体运动必须分为
若⼲个时间步长来计算,每个时步中必须进⾏查找接触、更新数据、绘图、保
存数据等操作,因此计算机的运⾏时间(computer runtime)必然⽐问题时间更
长。
我们常说DEM⽅法耗时太长,指的就是计算机的运⾏时间太长。
对于⼀个实
际物理问题,其问题时间由物理原则决定,模拟过程不能改变;⽽对于计算机
运⾏时间则可以想⽅设法缩短,⽐如选择⼤⼩合适的时步、使⽤⾼性能计算机、
并⾏计算等。
CA LL
CALL命令⽤于批处理模式(batch mode),作⽤是调⽤名为fname的数据⽂件。
如果没有指定⽂件名,则默认调⽤“PFC3D.DAT”;如果没有指定fname的扩
展名,则扩展名默认为“.DAT”。
数据⽂件中可以有任意多的注释⾏(分号“;”⽤于注释),PFC3D不会运⾏这
些注释信息。
⼀个数据⽂件内可以按顺序嵌套调⽤其他数据⽂件,对嵌套的层
数没有限制,但是不允许⽂件之间的递归调⽤。
例如,“ABC”⽂件中调⽤了
“DEF”⽂件,⽽“DEF”中同时⼜调⽤了“ABC”⽂件,这种情况是不允许
的。
如果只有⼀层调⽤,⽤RETURN命令可从批处理模式返回命令交互模式;如
果是多层嵌套调⽤(即在⼀个数据⽂件中调⽤了另⼀个数据⽂件),则(被调
⽤⽂件中)RETURN的作⽤为返回上⼀层数据⽂件中(调⽤⽂件中)CALL
命令的下⼀⾏。
如果按下(退出键),⽆论此时正在调⽤哪⼀层数据⽂
件,都将结束批处理运⾏模式并返回命令交互模式;如果按下(空
格键),
⽤户可以在数据⽂件中插⼊PAUSE命令,该命令会暂停程序的运⾏,允许⽤
户检查中间结果是否正确。
使⽤CONTINUE命令可以继续运⾏被暂停程序。
RETURN如果只有⼀层调⽤,⽤RETURN命令可从批处理模式返回命令交互模式;如果是多层嵌套调⽤(即在⼀个数据⽂件中调⽤了另⼀个数据⽂件),则(被调
⽤⽂件中)RETURN的作⽤为返回上⼀层数据⽂件中(调⽤⽂件中)CALL
命令的下⼀⾏。
⽆论⽤户是否在数据⽂件的最后⼀⾏写上RETURN命令,每
个数据⽂件的最后⼀⾏,都默认有RETURN命令。
RETURN命令也⽤于从⼀个FISH函数的COMMAND section跳出。
PAUSE
⽤于暂停运⾏数据⽂件,该命令能以下列3种⽅式中的⼀种调⽤:
1)如果没有指定任何关键词,则PFC3D将在遇到PAUSE命令的地⽅停⽌运
⾏数据⽂件,并进⼊命令交互模式,此时⽤户可以通过键盘输⼊命令控制。