PFC手册中文翻译整理3FISH_第1页
PFC手册中文翻译整理3FISH_第2页
PFC手册中文翻译整理3FISH_第3页
PFC手册中文翻译整理3FISH_第4页
PFC手册中文翻译整理3FISH_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

FISH

(完整word)PFC3FISH4FISH语言初学指南4。1介绍和概述FISH是一种内嵌于PFC2D的编程语言,使用户能够定义的变量和函数。这些函数可以扩大PFC2D的应用范围或增加用户定义特性。例如,可以绘制或打印的变量,生成特别粒子,将伺服掌握用于数值试验,指定性能的不均匀分布,以及自动进展参数争论.扩张的Fishtank,在PFC2D程序中给出FISH语言是针对那些想用Itasca软件做些事情的人开发的,而用现存的Itasca软件很难或者说不行能做到.它供给了一个内置语言,因此用户可以写自己需要的扩张的Fishtank,在PFC2D程序中给出〔FISHvolume第3节。对于没有编程阅历的人,写一些简洁的函数或对现有的函数作一些简洁修改是可行的。第4。2节为非程序员作了介绍。但是FISH程序也可以变的简单(在任何编程语言中的代码都是这样;更多具体资料参见FISHvolumevolume第2节。与全部的编程任务一样,FISH函数应按一个渐进的方式编写,在编写更加简单的代码之前每一步都要检查运行。FISH函数的错误检查不会比大多数编译器少,因此全部的函数在用于实际应用之前,应进展简洁的数据测试。SAVE命令保存FISH函数和相关变量的当FISH程序简洁地嵌入一个正常的PFC2D数据文件—在DEFINE后面的行是FISH函数;函数遇到END终止。FISH函数还可以调用其它函数。定义函数的挨次并不重要,只要它们都是先定义后使用〔例如通过PFC2D命令引用。由于FISH函数的汇编形式是储存在PFC2DSAVE命令保存FISH函数和相关变量的当前值.前值.FISH语言规章和固有功能的完整定义见FISHvolume第2节.其中包括语法规章,数据类型,运算,变量和函数.全部FISH语言名称在FISHvolume第2节进展了描1(完整word)PFC3FISH述,在命令和FISH参考概要中给出了这些名称的概要。4。2手指南和教程本节是为已经运行PFC2D〔至少是一些简洁问题)而没有使用FISH语言的人预备的;假设没有编程阅历.为了从例子中获得最大的好处,你应当尝试用PFC2D运行这些例子。短的程序可以直接键入。在运行一个例子之后,使用命令NEW“去除界面”,就可以为下一个例子作预备.另外较长的程序可以先在文件中创立然后用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函数的值显示出来;该值经过一系列的算术运算:2(完整word)PFC3FISH这是一个赋值语句。假设等号成立,等号右边的表达式值将赋给等号左边的变量。留意算术运算依据通常的法则;加、减、乘、除分别用符号+,—,*/表示。符号^”表示指数。我们现在输入一个略微不同的程序〔用命令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〕并指出为什么显示的答案是不同的。3(完整word)PFC3FISH在这个阶段,直接列出涉及到FISH变量或函数的PFC2D最重要的命令是很有好处的。(见表4.1var代表变量或函数名〕我们已经看到了前面的两个例子〔参考例4。3和4.4〕;第三种有用的状况是,当在历史变量的~~~~~~~~~~~~~~~~~.4.5说明白如何做到这一点。例4.5显示了粒子的不平衡力是如何储存在FISH变量中和通过HISTORY命令使用的。在这个例子中,一个球落到平面上,经反弹后到达平衡。b_yfob在函数中是一个预定义的变量名-在这种状况下,为相应的在y方向的不平衡力。Ball_head是另4(完整word)PFC3FISH外一个预定义名,为相应的球的“地址”。PFC2D全部预定义的名称在FISHvolume的表2。1中给出。运行完毕后,与其它历史一样,我们简洁的绘制了yforce〔历史1y方向的不平衡力。以类似的方式,可以用FISH函数绘制任何数量我们想得到的历史,不管用多么简单的公式来描述它.除了上述预定义的变量名,还有很多其它供给应FISH程序的预定义对象。它们可以分为几类;有一类是是由标量变量组成,它们有单一的号码-例如:内置于对象有用的另一类是一系列的固有功能,这些固有功能可以使诸如正弦和余弦之类的函数能在FISH中程序计算。完整的清单见FISHvolume中第2.5。2节;一局部如下:使用固有功能的例子稍后给出。现在我们必需争论一种更深入的方法,运用这种方法,PFC2D数据文件可以利用用户定义的FISH名。当想在PFC2D中输入一个数字时,可以用FISH变量或函数来代替。这个简洁的声明对于FISH格外强大的功能来说是很重要的,它允许在FISH函数5(完整word)PFC3FISH中计算,并使用通过PFC2D以符号形式输入的诸如范围,作用力和性能等.因此,参数的变化可以很简洁,而无需在输入文件中转变很多号码。例如4.6要求将墙的几何外形和刚度定于文件开头的某个位置,而不是很多位置。这就削减了消灭错误和数据文件紊乱的风险,以及在很多模型中重复利用一块工作。顺便请留意,为FISH变量和函数选择名称有很大的敏捷性;字符“_”可以包含在名称中。名称必需以非数字开头,并且不能包含任何算术运算符(+,—,*或^。选定的名称不应与内置〔或保存)名称一样;FISHvolume第2.2。2节中表2。1包含全部需要避开的名称的清单,以及应当遵循的一些规章。在上面的例子中,我们检查了FISH变量的计算值,通过将它们的名称直接给PRINT命令。另外,我们可以通过命令printfish列出当前全部的变量和函数。我们现在争论如何在FISH程序中进展选择和循环运行。下面的FISH语句允许程序的指定局部重复屡次。6(完整word)PFC3FISHLOOP和ENDLOOP是FISH语句,字符var代表loop变量,expr1和expr2代表表达式〔或单个变量。例4。7显示了循环的应用〔或重复挨次),得到10的阶乘。在这种状况下,循环变量n1连续变化到10,循环里面的语句〔在LOOP和ENDLOOP之间的语句〕对每个价都执行。如前所述,变量名称或算术表达式可取代1到10之间的数字。PFC2D中一个实际使用的循环,将按挨次选取模型中的每个球并访问和/或转变一些属性。例4。8包含了FISH函数makecolors,说明白〔随机,在这种状况下〕如何转变模型中每个球的颜色指数。其中0到2内的整数值指定为颜色指数.我们已经看到了几个FISH程序的例子,让我们简要地检查一下程序语法和风格的问题。一个完整的FISH语句必需占一行;没有连续行。假设一个公式太长而不能放在一行,那么必需用一个临时变量将公式分开。例4.9说明白这个问题.7(完整word)PFC3FISH在这种状况下15个变量的和被分为两局部。留意分号之后的函数名表示注释。分号之后的任何字符都会被FISH编译器无视,但是它们反映了日志文件。带有信息的注释程序是格外好的。有些程序消灭了缩进—-在某些行的开头插入空格来说明相关的一组语句。可以在变量名和算术运算之间插入〔随便地〕任何数量的空格字符使程序更具可读性。通过缩进来表示循环,条件语句等是很好的程序实践.空格在FISH中的“重要”意义,即空格字符不行以插入变量和函数名中。需要说明的另一个问题是变量的类型。您可能已经留意到,当从各种程序的例子打印出变量时,这数字没有小数点或“E格式”——指数的次数。在任何时候,FISH函数或变量名分为四种类型:整数,浮点数,字符串和指针。这些类型可以依据状况发生动态变化,但临时的用户不必担忧变量类型,由于它是自动设置的。思考例4。10.与变量aa,bb,cc相对应安排给它们的数字(或字符串〕分别转化为整数,浮点数和字符串。整型是准确的数字〔没有小数点),但范围有限;浮点数精度有限〔大约准确到小数点后15位),范围较大;字符串变量是任意的字符序列;在PFC2D中指针用来处理内部变量。四种类型存在肯定转换规章.例如,dd成为一个浮点数,由于它是一个浮点数和一个整数的乘积;ee变变成一个字符串,由于它是两个字符串的和〔串联).这个问题可以相当简单,它的充分解释见FISHvolume第2.25节。8(完整word)PFC3FISH此外,FISH中还有常用的语言要素——if语句。下面的三个语句通过FISH程序可以做出选择.这些语句允许FISH程序有条件的执行,ELSE和THEN表示选择。测试的工程包括以下其中一个符号或符号配对:Themeaningsarestandardexceptfor#,whichmeans“notequal。”expr1expr2是任意有效的表达或单一变量。假设测试为真,马上执行IF后的语句直到遇到ELSE或ENDIF。假设测试为假,则执行ELSE和ENDIF之间的语句;否则程序跳到ENDIF后的第一行。这些语句的应用见例4.11.例4。1中显示的abc的值取决于xx的值。可以用不同的测试符号检验〔例如用到现在为止,我们已经调用了来自PFC2D的FISH程序,通过使用PRINT命令,或在PFC2D输入窗口独立行中给定函数名.也有可能是相反的-—就是在FISH函数中最有效的PFC2D命令是位于以下两FISH语句之间:9(完整word)PFC3FISH从FISH程序中发出PFC2D命令主要有两个缘由。首先,它可以使用FISH函数执行我们已经争论过的预定义变量不能实现的操作。其次,我们可以掌握FISH在PFC2D中的整个运行.在例4.12中,我们通过函数makewalls创立了四个墙。为了从FISH函数中执行这四个PFC2D墙命令,它们必需在置于COMMANDENDCOMMAND构造之间。我们现在已经掩盖到了FISH语言的一些方面以及如何与PFC2D相互作用。FISH语言的完整指南见FISHvolume2节.墙的状态信息功能墙的状态信息包括位置,速度,非平衡加载和固定。10(完整word)PFC3FISH旋转中心的位〔dof为重量形式,其中dof{1,2,3})W_x(wp) 旋转中心的位置(x重量)W_y(wp) 旋转中心的位置〔y重量〕W_z(wp) 旋转中心的位置〔z重量〕W_vvel(wp,dof〕 速度(dof为重量形式,其中dof{1,2,3})W_xvel(wp) 速度〔x重量〕W_yvel(wp) 速度〔y重量)W_yvel〔wp〕 速度〔z重量〕11W_rvel(wp〕 旋转中心四周的旋转速度

(完整word)PFC3FISHW_vrvel(wpdof) 旋转中心四周的旋转速度(dof为重量形式,其中dof{1,2,3})W_vxvel〔wp) 旋转中心四周的旋转速度〔x重量)W_vyvel(wp〕 旋转中心四周的旋转速度〔y重量〕W_vzvel(wp) 旋转中心四周的旋转速度(z重量〕W_vfob(wp,dof) 考虑全部墙产生的非平衡力(dof为重量形式,其中dof{123})W_xfob(wp) 非平衡力〔x重量〕W_yfob〔wp) 非平衡力〔y重量〕W_zfob〔wp) 非平衡力〔z重量〕W_mom〔wp〕 由全部发生接触的球产生的旋转中心的非平衡力矩W_vmom(wp,dof〕旋转中心的非平衡力矩〔dof为重量形式,其中dof{1,2,3}〕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。5wallsagment的功能在PFC2D中wall—sagment的功能以wall-sagment数据构造执行。由每个组成墙的wall-sagment 被储存在一个连着的序列中,这个序列都可以由命令w_wlist(wp)得到.这个连着的序列可以利用以下两个命令两面翻转(即可以以任一端为头〕ws_next〔wsp〕和ws_prev〔wsp。留意,由每个wall-sagment组成的墙可以是封闭的,也可以是开放的.12(完整word)PFC3FISHWs_next〔wsp〕在上述序列中下一个wall-sagment的地址.〔不闭合的时候,那么在该序列中,最终一个sagment的ws_next为null。相反,假设墙是闭合的时候,那么序列中最终一个segment的ws_next则为序列的第一个segment)Ws_prev〔wsp〕 在上述序列中前一个wallsagment的地址.〔是不闭合的时候,那么在该序列中,第一个sagmentws_prev为null.相反,假设墙是闭合的时候,那么序列中第一个segment的ws_prev则为序列的最终一个segment.〕Ws_length〔wsp) wallsegment wsp的长度wsp〕与在上述序列中此segment的第一个节点相应的wallsegmentwsp的end-0的位置坐标(x重量〔nsegment组成的开放环时,则此时会有n+1个wallsegment数据构造,而且最终一个节点的位置坐标会储存在最终一个segment的数据构造中〕Ws_x(wsp〕 wallsegment wsp的end—0的位置坐标〔y重量〕Ws_xun〔wsp〕wallsegment wsp的单位法向向量(x重量〔这个单位法向向量指向墙的有效面.假设墙是由n个segment组成的开放环时,则会有n+1wallsegment13(完整word)PFC3FISH数据构造,而且最终的segment的单位法向向量不会被定义〕Ws_yun(wsp〕 单位向量(y重量)Ws_xvel(wsp) 速度〔x重量〕Ws_yvel(wsp〕 速度〔y重量)2。5。1。6wallface的功能wall-face的功能的执行基于PFC3D有限wall—face构造。每个有限长度的wall组成的Wall-face的信息储存在一个连接的链当中,其中数据链的头由wall-support 功能中的w_flist〔wp)命令调用.这个数据链可以用wf_next(wp)功能截断。Wf_next(wfp〕由墙组成的facewall的数据链中下一个facewall的地址。Wf_xun(wfp) wallface wfp的单位法向量〔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.32平行键物理性质功能14(完整word)PFC3FISHPb_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〔pbpdof)切向力向量(dof为向量的重量,dof属于15{1,2,3〕

(完整word)PFC3FISHPb_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.51.8measurementcircle的功能measurement—circle的功能的执行基于measurement-circle数据构造这些功能被分为以下几类关心(seetable226)和陈述信息〔seetable2.27。measurement-circle 的信息被储存在一个首尾相连的链中,可以用circ-head命令调用他的头。储存地址也可以由辅助命令find—meas见table2。5。measurement-circle 的语法的描述见理论与背景中的3。4节。measurement—circle关心功能16(完整word)PFC3FISHM_id〔mp) measurementcirclemp的ID号码M_next〔mp) 数据链中下一个measurement-circle 的位置。M_rad(mp〕 measurement-circlemp 的半径留意到应力或张力率的当前值在measure(功能被执行了以后才能留意到应力或张力率的当前值在measure(功能被执行了以后才能使用,调和数(具体见下文、空隙率和滑动比则没有此要求。17(完整word)PFC3FISHM_ccord(mp〕 调和数〔每个球的平均解除数)M_poros(mp) 空隙率M_sfrac(mp) 滑动比(正在滑动的面积占重面积的比值〕Measure(mp,code〕 计算measurementcirclemp 的全部的应力〔stress〕成分〔如果code=1)或者measurement circlemp的所有的张力率〔strainrate)成分〔code=2)果储存在相应的与mp相关的数据构造里-—比方m_ed11和m_s11等。留意并未定义返回值。18(完整word)PFC3FISH2。5.19clump的功能clump的功能的执行基于PFC2D中的clump数据构造这些功能被分为一下几类:救济〔见table2。28)和陈述信息(见table2。29〕.clump的信息储存在一个首位相连的数据链中,利用clump_head命令可调用其头数据。储存地址也可以通过table2.9所示的命令获得,b_clump和b_cllist.Clump 的语法的描述见理论与背景中的section4clump的救济功能19(完整word)PFC3FISHCl_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的陈述信息功能20(完整word)PFC3FISHCl_vpos〔clp,dof〕 质心的坐标〔dof为重量形式,dof属于{12,3}〕Cl_x〔clp) 质心的坐标〔x重量)Cl_y〔clp〕 质心的坐标〔y重量)Cl_z(clp〕 质心的坐标(z重量)Cl_vvel〔clp,dof〕 clump的质心的坐标〔dof为重量形式,dof属于{1,23})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为重量形式属{Cl_xfob〔clp,dof〕 非平衡力〔x重量〕Cl_yfob〔clpdof) 非平衡力〔y重量〕21(完整word)PFC3FISHCl_zfob(clpdof〕 非平衡力〔z重量)2。5.110cell信息的功能cell信息的功能的执行基于PFC2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论