- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
FISH语言
4 FISH语言初学指南
4.1 介绍和概述
FISH是一种内嵌于PFC2D的编程语言,使用户能够定义新的变量和函数。这些函数可以扩大PFC2D的应用范围或增加用户定义特性。例如,可以绘制或打印新的变量,生成特殊粒子,将伺服控制用于数值试验,指定性能的不均匀分布,以及自动进行参数研究。
FISH语言是针对那些想用Itasca软件做些事情的人开发的,而用现存的Itasca软件很难或者说不可能做到。它提供了一个内置语言,因此用户可以写自己需要的函数,而不是在标准代码中加入许多新的和专门的功能。一些有用的FISH函数已经写出;这些函数的相互关联设置,称为扩张的Fishtank,在PFC2D程序中给出(见FISH volume第3节)。对于没有编程经验的人,写一些简单的函数或对现有的函数作一些简单修改是可行的。第4.2节为非程序员作了介绍。但是FISH程序也可以变的复杂(在任何编程语言中的代码都是这样);更多详细资料参见FISH volume第2节。
与所有的编程任务一样,FISH函数应按一个渐进的方式编写,在编写更加复杂的代码之前每一步都要检查运行。FISH函数的错误检查不会比大多数编译器少,因此所有的函数在用于实际应用之前,应进行简单的数据测试。
FISH程序简单地嵌入一个正常的PFC2D数据文件—在DEFINE后面的行是FISH函数;函数遇到END终止。FISH函数还可以调用其它函数。定义函数的顺序并不重要,只要它们都是先定义后使用(例如通过PFC2D命令引用)。由于FISH函数的汇编形式是储存在PFC2D的存储空间,SAVE命令保存FISH函数和相关变量的当前值。
FISH语言规则和固有功能的完整定义见FISH volume第2节。其中包括语法规则,数据类型,运算,变量和函数。所有FISH语言名称在FISH volume第2节进行了描述,在命令和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函数的值显示出来;该值经过一系列的算术运算:
这是一个赋值语句。如果等号成立,等号右边的表达式值将赋给等号左边的变量。注意算术运算按照通常的法则;加、减、乘、除分别用符号+,-,*,/表示。符号“^”表示指数。
我们现在输入一个稍微不同的程序(用命令NEW清除旧的):
这里我们引入变量hh,给它赋值为22,在后面的行用到。如果我们输入命令PRINT abc,输出的结果与前面完全相同。但是我们这里用到两个FISH符号;它们都有值,一个(abc)是作为函数。另外一个(hh)是作为变量。它们的区别如下:
当用到FISH函数符号名时(例如在PRINT语句中),如果符号对应一个函数,那么相关的函数将被执行。但是,如果符号并不是一个函数名称,那么仅仅使用符号的当前值。
SET命令将abc和hh的值设为0。因为hh是一个变量,第一个PRINT命令简单地显示了hh的值为0。第二个PRINT命令使abc执行(因为abc是函数名);hh和abc的值被重新计算。因此,第三个PRINT命令表明hh已经重置其原来的值。为了测试您是否已经理解,请输入稍作修改的程序(例4.4)并指出为什么显示的答案是不同的。
在这个阶段,直接列出涉及到FIS
文档评论(0)