PFC手册中文翻译整理3FISHWord文件下载.docx
- 文档编号:16422414
- 上传时间:2022-11-23
- 格式:DOCX
- 页数:22
- 大小:520.98KB
PFC手册中文翻译整理3FISHWord文件下载.docx
《PFC手册中文翻译整理3FISHWord文件下载.docx》由会员分享,可在线阅读,更多相关《PFC手册中文翻译整理3FISHWord文件下载.docx(22页珍藏版)》请在冰豆网上搜索。
另外较长的程序可以先在文件中创立然后用CALL调用。
在PFC2D命令提示后面输入例4.1中的各行,每输入一行便在其末尾按<
enter>
键。
(在此和后面的所有例子,第一行用了分号,这仅表示注释不必输入。
)
注意在输入第一行后(不是注释行),命令提示符变为DEF>
;
当输入END命令后,命令提示符变为常用提示符。
如果你是在给PFC2D或FISH输入行得到话,提示符的变化会让你了解。
通常情况下,DEFINE语句后面的所有行都作为FISH函数定义的一部分(直到输入END语句)。
但是如果输入的行中有错误(例如将“=”输入为“+”),那么会使PFC2D提示符回到原来状态。
在这种情况下,应输入NEW命令重新开始。
因为输入很容易出错,因此FISH程序通常通过编辑器输入文件。
它们被PFC2D调用就像正常的PFC2D数据文件。
这一过程将稍后描述;
现在继续运行。
如果在输入下面行时没有错误,在PFC2D>
提示符下,实现abc函数的值(在前面例4.1中定义的),输入行:
将得到:
通过定义符号abc(用DEFINE…END结构,如例4.1),现在在使用PFC2D的许多方面都涉及到该结构。
例如PRINT命令使FISH函数的值显示出来;
该值经过一系列的算术运算:
这是一个赋值语句。
如果等号成立,等号右边的表达式值将赋给等号左边的变量。
注意算术运算按照通常的法则;
加、减、乘、除分别用符号+,-,*,/表示。
符号“^”表示指数。
我们现在输入一个稍微不同的程序(用命令NEW清除旧的):
这里我们引入变量hh,给它赋值为22,在后面的行用到。
如果我们输入命令PRINTabc,输出的结果与前面完全相同。
但是我们这里用到两个FISH符号;
它们都有值,一个(abc)是作为函数。
另外一个(hh)是作为变量。
它们的区别如下:
当用到FISH函数符号名时(例如在PRINT语句中),如果符号对应一个函数,那么相关的函数将被执行。
但是,如果符号并不是一个函数名称,那么仅仅使用符号的当前值。
下面的实验可以帮助澄清区分变量和函数。
在此实验之前,请注意,PFC2D的SET命令可以用来设置任何用户定义的FISH符号的值,符号在FISH程序中的独立性已介绍。
现在,键入以下行不使用NEW命令,因为我们希望保留以前输入的程序。
SET命令将abc和hh的值设为0。
因为hh是一个变量,第一个PRINT命令简单地显示了hh的值为0。
第二个PRINT命令使abc执行(因为abc是函数名);
hh和abc的值被重新计算。
因此,第三个PRINT命令表明hh已经重置其原来的值。
为了测试您是否已经理解,请输入稍作修改的程序(例4.4)并指出为什么显示的答案是不同的。
在这个阶段,直接列出涉及到FISH变量或函数的PFC2D最重要的命令是很有好处的。
(见表4.1,var代表变量或函数名)
我们已经看到了前面的两个例子(参考例4.3和4.4);
第三种有用的情况是,当在历史变量的~~~~~~~~~~~~~~~~~。
例4.5说明了如何做到这一点。
例4.5显示了粒子的不平衡力是如何储存在FISH变量中和通过HISTORY命令使用的。
在这个例子中,一个球落到平面上,经反弹后达到平衡。
b_yfob在函数中是一个预定义的变量名—在这种情况下,为相应的在y方向的不平衡力。
Ball_head是另外一个预定义名,为相应的球的“地址”。
PFC2D所有预定义的名称在FISHvolume的表2.1中给出。
运行结束后,与其它历史一样,我们简单的绘制了yforce(历史1,y方向的不平衡力)。
以类似的方式,可以用FISH函数绘制任何数量我们想得到的历史,不管用多么复杂的公式来描述它。
除了上述预定义的变量名,还有许多其它提供给FISH程序的预定义对象。
它们可以分为几类;
有一类是是由标量变量组成,它们有单一的号码—例如:
内置于对象有用的另一类是一系列的固有功能,这些固有功能可以使诸如正弦和余弦之类的函数能在FISH中程序计算。
完整的清单见FISHvolume中第2.5.2节;
一部分如下:
使用固有功能的例子稍后给出。
现在我们必须讨论一种更深入的方法,运用这种方法,PFC2D数据文件可以利用用户定义的FISH名。
当想在PFC2D中输入一个数字时,可以用FISH变量或函数来代替。
这个简单的声明对于FISH非常强大的功能来说是很重要的,它允许在FISH函数中计算,并使用通过PFC2D以符号形式输入的诸如范围,作用力和性能等。
因此,参数的变化可以很容易,而无需在输入文件中改变许多号码。
例如4.6要求将墙的几何形状和刚度定于文件开始的某个位置,而不是许多位置。
这就减少了出现错误和数据文件紊乱的风险,以及在许多模型中重复利用一块工作。
顺便请注意,为FISH变量和函数选择名称有很大的灵活性;
字符“_”可以包含在名称中。
名称必须以非数字开头,并且不能包含任何算术运算符(+,-,*或^)。
选定的名称不应与内置(或保留)名称相同;
FISHvolume第2.2.2节中表2.1包含所有需要避免的名称的清单,以及应该遵循的一些规则。
在上面的例子中,我们检查了FISH变量的计算值,通过将它们的名称直接给PRINT命令。
另外,我们可以通过命令printfish列出当前所有的变量和函数。
我们现在研究如何在FISH程序中进行选择和循环运行。
下面的FISH语句允许程序的指定部分重复多次。
LOOP和ENDLOOP是FISH语句,字符var代表loop变量,expr1和expr2代表表达式(或单个变量)。
例4.7显示了循环的应用(或重复顺序),得到10的阶乘。
在这种情况下,循环变量n从1连续变化到10,循环里面的语句(在LOOP和ENDLOOP之间的语句)对每个价都执行。
如前所述,变量名称或算术表达式可取代1到10之间的数字。
在PFC2D中一个实际使用的循环,将按顺序选取模型中的每个球并访问和/或改变一些属性。
例4.8包含了FISH函数makecolors,说明了(随机,在这种情况下)如何改变模型中每个球的颜色指数。
其中0到2内的整数值指定为颜色指数。
我们已经看到了几个FISH程序的例子,让我们简要地检查一下程序语法和风格的问题。
一个完整的FISH语句必须占一行;
没有连续行。
如果一个公式太长而不能放在一行,那么必须用一个临时变量将公式分开。
例4.9说明了这个问题。
在这种情况下15个变量的和被分为两部分。
注意分号之后的函数名表示注释。
分号之后的任何字符都会被FISH编译器忽略,但是它们反映了日志文件。
带有信息的注释程序是非常好的。
有些程序出现了缩进——在某些行的开头插入空格来说明相关的一组语句。
可以在变量名和算术运算之间插入(随意地)任何数量的空格字符使程序更具可读性。
通过缩进来表示循环,条件语句等是很好的程序实践。
空格在FISH中的“重要”意义,即空格字符不可以插入变量和函数名中。
需要说明的另一个问题是变量的类型。
您可能已经注意到,当从各种程序的例子打印出变量时,这数字没有小数点或“E格式”——指数的次数。
在任何时候,FISH函数或变量名分为四种类型:
整数,浮点数,字符串和指针。
这些类型可以根据情况发生动态变化,但临时的用户不必担心变量类型,因为它是自动设置的。
思考例4.10。
与变量aa,bb,cc相对应分配给它们的数字(或字符串)分别转化为整数,浮点数和字符串。
整型是精确的数字(没有小数点),但范围有限;
浮点数精度有限(大约精确到小数点后15位),范围较大;
字符串变量是任意的字符序列;
在PFC2D中指针用来处理内部变量。
四种类型存在一定转换规则。
例如,dd成为一个浮点数,因为它是一个浮点数和一个整数的乘积;
ee变变成一个字符串,因为它是两个字符串的和(串联)。
这个问题可以相当复杂,它的充分解释见FISHvolume第2.2.5节。
此外,FISH中还有常用的语言要素——if语句。
下面的三个语句通过FISH程序可以做出选择。
这些语句允许FISH程序有条件的执行,ELSE和THEN表示选择。
测试的项目包括下列其中一个符号或符号配对:
Themeaningsarestandardexceptfor#,whichmeans“notequal.”expr1和expr2是任意有效的表达或单一变量。
如果测试为真,立即执行IF后的语句直到遇到ELSE或ENDIF。
如果测试为假,则执行ELSE和ENDIF之间的语句;
否则程序跳到ENDIF后的第一行。
这些语句的应用见例4.11。
例4.1中显示的abc的值取决于xx的值。
可以用不同的测试符号检验(例如用“<
”代替“>
”。
到现在为止,我们已经调用了来自PFC2D的FISH程序,通过使用PRINT命令,或在PFC2D输入窗口独立行中给定函数名。
也有可能是相反的——就是在FISH函数中给?
?
最有效的PFC2D命令是位于下列两FISH语句之间:
从FISH程序中发出PFC2D命令主要有两个原因。
首先,它可以使用FISH函数执行我们已经讨论过的预定义变量不能实现的操作。
第二,我们可以控制FISH在PFC2D中的整个运行。
在例4.12中,我们通过函数makewalls创建了四个墙。
为了从FISH函数中执行这四个PFC2D墙命令,它们必须在置于COMMANDENDCOMMAND结构之间。
我们现在已经覆盖到了FISH语言的一些方面以及如何与PFC2D相互作用。
FISH语言的完整指南见FISHvolume第2节。
墙的状态信息功能
墙的状态信息包括位置,速度,非平衡加载和固定。
W_pos(wp,dof)旋转中心的位置(dof为分量形式,其中dof
{1,2,3})
W_x(wp)旋转中心的位置(x分量)
W_y(wp)旋转中心的位置(y分量)
W_z(wp)旋转中心的位置(z分量)
W_vvel(wp,dof)速度(dof为分量形式,其中dof
W_xvel(wp)速度(x分量)
W_yvel(wp)速度(y分量)
W_yvel(wp)速度(z分量)
W_rvel(wp)旋转中心周围的旋转速度
W_vrvel(wp,dof)旋转中心周围的旋转速度(dof为分量形式,其中dof
W_vxvel(wp)旋转中心周围的旋转速度(x分量)
W_vyvel(wp)旋转中心周围的旋转速度(y分量)
W_vzvel(wp)旋转中心周围的旋转速度(z分量)
W_vfob(wp,dof)考虑所有墙产生的非平衡力(dof为分量形式,其中dof
W_xfob(wp)非平衡力(x分量)
W_yfob(wp)非平衡力(y分量)
W_zfob(wp)非平衡力(z分量)
W_mom(wp)由所有发生接触的球产生的旋转中心的非平衡力矩
W_vmom(wp,dof)旋转中心的非平衡力矩(dof为分量形式,其中dof
W_xmom(wp)旋转中心的非平衡力矩(x分量)
W_ymom(wp)旋转中心的非平衡力矩(y分量)
W_zmom(wp)旋转中心的非平衡力矩(z分量)
W_radend1(wp)圆柱墙的end1(endpoint1)的半径
W_radend2(wp)圆柱墙的end2(endpoint2)的半径
W_radfob(wp)圆柱墙的径向非平衡力
W_radvel(wp)expand或contract圆柱墙的径向速度
W_fix(wp)如果此值被设置成非零时,那么、墙节点速度的更新是向内(inhibited)的。
一般来说,这个标志是在墙节点被用户自定义一个功能的时候直接使用。
2.5.1.5wall-sagment的功能
在PFC2D中,wall-sagment的功能以wall-sagment数据结构执行。
由每个组成墙的wall-sagment被储存在一个连着的序列中,这个序列都可以由命令w_wlist(wp)得到。
这个连着的序列可以利用以下两个命令两面翻转(即可以以任一端为头)ws_next(wsp)和ws_prev(wsp)。
注意,由每个wall-sagment组成的墙可以是封闭的,也可以是开放的。
Ws_next(wsp)在上述序列中下一个wall-sagment的地址。
(当墙是不闭合的时候,那么在该序列中,最后一个sagment的ws_next为null。
相反,如果墙是闭合的时候,那么序列中最后一个segment的ws_next则为序列的第一个segment)
Ws_prev(wsp)在上述序列中前一个wall-sagment的地址。
(当墙是不闭合的时候,那么在该序列中,第一个sagment的ws_prev为null。
相反,如果墙是闭合的时候,那么序列中第一个segment的ws_prev则为序列的最后一个segment。
Ws_length(wsp)wallsegmentwsp的长度
Ws_x(wsp)与在上述序列中此segment的第一个节点相应的wallsegmentwsp的end-0的位置坐标(x分量)。
(当墙是由n个segment组成的开放环时,则此时会有n+1个wallsegment数据结构,而且最后一个节点的位置坐标会储存在最后一个segment的数据结构中。
Ws_x(wsp)wallsegmentwsp的end-0的位置坐标(y分量)
Ws_xun(wsp)wallsegmentwsp的单位法向向量(x分量)。
(这个单位法向向量指向墙的有效面。
如果墙是由n个segment组成的开放环时,则会有n+1个wallsegment数据结构,而且最后的segment的单位法向向量不会被定义。
Ws_yun(wsp)单位向量(y分量)
Ws_xvel(wsp)速度(x分量)
Ws_yvel(wsp)速度(y分量)
2.5.1.6wall-face的功能
wall-face的功能的执行基于PFC3D有限wall-face结构。
每个有限长度的wall组成的Wall-face的信息储存在一个连接的链当中,其中数据链的头由wall-support功能中的w_flist(wp)命令调用。
这个数据链可以用wf_next(wp)功能截断。
Wf_next(wfp)由墙组成的facewall的数据链中下一个facewall的地址。
Wf_xun(wfp)wallfacewfp的单位法向量(x分量)。
(这个单位法向量指向强的有效面的反向。
Wf_yun(wfp)wallfacewfp的单位法向量(y分量)
Wf_zun(wfp)wallfacewfp的单位法向量(z分量)
2.5.1.7(parallel-bond)平行键的功能
平行键功能的执行是在PFC2D的平行键数据结构上。
平行键的信息与每一个接触有关,储存地址可以通过c_pb命令获得。
这个功能被分为两类,每一种都有它自己的小节:
物理性质(seetable2.24)和陈述信息(seetable2.25).平行键的语法的描述见理论与背景中的2.3.2节。
平行键物理性质功能
Pb_kn(pbp)法向硬度(应力/位移)
Pb_ks(pbp)切向硬度(应力/位移)
Pb_nstrength(pbp)法向载荷(应力)
Pb_sstrength(pbp)切向载荷(应力)
Pb_rad(pbp)半径相加,因此平行键半径为Pb_rad与两接触小球中最小半径的乘积。
Pb_nforce(pbp)键材料承载的法向力;
正值代表压缩;
方向由c_vun(cp)给定
Pb_sforce(pbp)在接触面上键材料承载的切向力,接触面由c_vun(cp)给定
Pb_vsforce(pbp,dof)切向力向量(dof为向量的分量,dof属于{1,2,3})
Pb_xsforce(pbp)切向力向量(x分量)
Pb_ysforce(pbp)切向力向量(y分量)
Pb_zsforce(pbp)切向力向量(z分量)
Pb_mom(pbp)键材料承载的弯曲力矩
Pb_tmom(pbp)键材料承载的扭曲力矩(这个力矩就在两个圆心的连线上)
Pb_vmom(pbp,dof)键材料承载的弯曲力矩向量(dof为向量的分量,dof属于{1,2,3})
Pb_xbmom(pbp)键材料承载的弯曲力矩向量(x分量)
Pb_ybmom(pbp)键材料承载的弯曲力矩向量(y分量)
Pb_zbmom(pbp)键材料承载的弯曲力矩向量(z分量)
Pb_nstress(pbp)作用在键外围的最大法向力
Pb_sstress(pbp)作用在键外围的最大切向力
2.5.1.8measurement-circle的功能
measurement-circle的功能的执行基于measurement-circle数据结构。
这些功能被分为以下几类:
辅助(seetable2.26)和陈述信息(seetable2.27)。
measurement-circle的信息被储存在一个首尾相连的链中,可以用circ—head命令调用他的头。
储存地址也可以由辅助命令find—meas见table2.5.measurement-circle的语法的描述见理论与背景中的3.4节。
measurement-circle辅助功能
M_id(mp)measurement-circlemp的ID号码
M_next(mp)数据链中下一个measurement-circle的位置。
M_rad(mp)measurement-circlemp的半径
measurement-circle陈述信息功能
注意到应力或张力率的当前值在measure()功能被执行了以后才能使用,调和数(详细见下文)、空隙率和滑动比则没有此要求。
M_ccord(mp)调和数(每个球的平均解除数)
M_poros(mp)空隙率
M_sfrac(mp)滑动比(正在滑动的面积占重面积的比值)
Measure(mp,code)计算measurementcirclemp的所有的应力(stress)成分(如果code=1)或者measurementcirclemp的所有的张力率(strainrate)成分(如果code=2),并把结果储存在相应的与mp相关的数据结构里——比如m_ed11和m_s11等。
注意并未定义返回值。
2.5.19clump的功能
clump的功能的执行基于PFC2D中的clump数据结构。
这些功能被分为一下几类:
援助(见table2.28)和陈述信息(见table2.29)。
clump的信息储存在一个首位相连的数据链中,利用clump_head命令可调用其头数据。
储存地址也可以通过table2.9所示的命令获得,b_clump和b_cllist。
Clump的语法的描述见理论与背景中的section4
clump的援助功能
Cl_add(clp,bp)把小球bp加入到clumpclp中,并返回加入小球的那个clump的地址。
如果clp是null,那么就创立一个新的clump,并返回他的地址。
War=cl_extra(clp,i)把clumpclp的cl_extra结构的第i个槽中的FISH变量的值以及类型制定为常规FISH变量var(见setextraclump命令)
cl_extra(clp,i)=War上个命令的反命令。
(见setextraclump命令)
cl_list(clp)由clumpclp组成的小球的局部数据链的头。
(这个数据链可以通过b_cllist命令截断。
cl_id(clp)clumpclp的ID号码
cl_next(clp)clumps的全局数据链中的下一个clump的地址
cl_rel(clp,bp)在clumpclp中删去小球bp。
注意未定义返回值
clump的陈述信息功能
Cl_vpos(clp,dof)质心的坐标(dof为分量形式,dof属于{1,2,3})
Cl_x(clp)质心的坐标(x分量)
Cl_y(clp)质心的坐标(y分量)
Cl_z(clp)质心的坐标(z分量)
Cl_vvel(clp,dof)clump的质心的坐标(dof为分量形式,dof属于{1,2,3})
Cl_xvel(clp)clump的质心的速度(x分量)
Cl_yvel(clp)clump的质心的速度(y分量)
Cl_zvel(clp)clump的质心的速度(z分量)
Cl_vrvel(clp,dof)以clump的质心为中心的旋转速度(dof为分量形式,dof属于{1,2,3})
Cl_rvel(clp)以clump的质心为中心的旋转速度
Cl_vxvel(clp)以clump的质心为中心的旋转速度(x分量)
Cl_vyvel(clp)以clump的质心为中心的旋转速度(y分量)
Cl_vzvel(clp)以clump的质心为中心的旋转速度(z分量)
Cl_vfob(clp,dof)非平衡力(dof为分量形式,dof属于{1,2,3})
Cl_xfob(clp
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- PFC 手册 中文翻译 整理 FISH