FISH库函数
- 格式:pdf
- 大小:172.04 KB
- 文档页数:14
Fish是嵌入在FLAC3D中一种编程语言,它允许使用者定义新的变量和函数。
函数被用来扩展FLAC3D的功能和增加用户自定义功能。
例如,输出或者打印新的变量,实行特定的网格生成器,数值测试中应用伺服系统,定义特定的性质以及参数研究的自动化。
伺服系统(servomechanism)又称随动系统,是用来精确地跟随或复现某个过程的反馈控制系统。
伺服系统使物体的位置、方位、状态等输出被控量能够跟随输入目标(或给定值)的任意变化的自动控制系统。
FISH就是简单的嵌入在FLAC3D的数据文件中—DEFINE后面的命令行按函数处理,函数遇到END结束。
函数可以调用其它函数,其它函数也可以调用其它函数。
函数定义的顺序没有影响,只要它们在被使用之前被完全定义就行。
因为函数的编辑形式储存在FLAC3D的存储空间,SAVE命令会保存函数和相关变量的当前值。
2.2 FISH语言规则,变量及函数2.2.1命令行FISH程序包含在普通的FLAC3D数据文件中或者直接从键盘键入。
DIFINE后边的命令行按FISH函数处理;函数以遇到END为结尾。
FISH的有效命令行必须是下述格式中的一种。
1.命令用IF,LOOP等开始。
(见2.3)2.如果一行包含一个或更多用户定义FISH函数的名字,以空格号隔开。
例如fun_1 fun_2 fun_33.命令行包含指派声明(例如等号右边的数学式被运算且其值赋予给等号左边的函数名称或是变量)。
4.命令行由FLAC3D(在FIAH中调用FLAC3D命令)命令组成,通过COMMAND—ENDCOMMAND 分隔FISH指令。
命令行包含在FISH指令的一部分里面。
5.命令行以分号开始或者结束。
函数的变量,函数名称或者声明必须完整拼写,在FLAC3D命令中不能缩写。
不允许有连续的命令行;可以通过引入新变量分解复杂的表示式。
FISH在默认状态下为“对情况不敏感”—即大写与小写字母之间没有区别,所有的名字都转换为小写字母(注意可以通过(SET case sensitivity on)命令改变)。
FISH 初学者指南中国矿中国矿大大 力学力学小杨小杨小杨 QQ QQ QQ::277502960 yhb20002000@ ,欢迎交流欢迎交流1.1.概述概述概述FISH是一门内植于UDEC的程序设计语言,它能让使用者定义新的变量和功能。
这些功能可以拓展UDEC的用途或者增加用户定义的功能。
例如,可以绘出或者打印新的变量,执行特殊的模拟,数值测试的随动控制,指定不寻常的属性分布和参数研究的自动化。
对使用Itasca软件现有程序结构做工程困难或者不能实现的用户来说,FISH语言发展响应了那些用户的需求. 与其在增加许多新的特殊功能到标准代码中,不如提供一种内置语言使用户能编写他们自己的模块。
一些实用FISH模块已经被写出了,UDEC项目提供一个有关此类的库(见FISH卷的第三节)。
对某些人来说,可能没有经验设计去编写简单的FISH模块或者修改现有的一些简单的模块。
4-2节为非程序员提供一个介绍性的指南。
然而,FISH语言和其他任何程序设计语言一样可以变得非常复杂。
要查阅更多细节,参考FISH卷的第二节。
类似所有规划任务,FISH功能可以被构造按增加的形式,在向前使用更复杂的代码前可以检查运行可行性。
相比较大多数编译器来说,FISH实行错误检测比较少,所以在实际应用它们之前,应该用些小的数据设置测试所有的功能。
FISH程序非常简洁的内植于正常UDEC数据文件,由关键词“DEFINE ”引入一个FISH函数,当遇到关键词“END ”时,该函数结束。
函数可以调用其它函数,被调用的函数又能继续调用其它函数,如此循环。
只要是在使用前都被定义了的,函数的调用次序可以任意(例如:由一个UDEC指令调用)。
FISH函数的编译形式储存在UDEC内存空间,指令“SAVE ”保存函数和各个相关变量当前值。
在第二篇FISH卷提供FISH语言规定的完全定义和内部函数。
它包含了有关语法,数据类型算法变量和函数的各种规范。
在第二篇FISH卷描述了所有FISH语言名,并且在“指令和指令和FISH FISH FISH参考概要参考概要”中提供这些名称的概要。
Fish语言学习笔记Fish语言学习笔记FISH 语言中的变量名以及函数名在整个程序中都有效,不管是在FISH 代码中还是在FLAC3D 命令行中。
如果变量名没有被赋值,则默认为0。
我们可以删除或重新定义FISH 函数,方法是用同名的新代码取而代之,如果在DEFINE 后直接跟END 行,那么也就删除了原定义的函数。
当函数被删除了,但原有变量依然存在,因为变量是全局性的,如同在其他位置一样。
控制语句EXIT,会使程序无条件跳到当前函数的结束处。
与节点参数有关命令:1.gp_near(x,y,z):获得距坐标(x,y,z)最近的节点的指针2.ngp:节点总数。
3.gp_nearall(x, y, z) :获得距坐标(x,y,z)最近的节点的指针,包括空单元节点在内。
4.gp_id(p_gp):获得指针为p_gp的节点的id5.gp_head:第一个节点的指针6.gp_next(p_gp):获得指针为p_gp的节点的下一节点的指针。
7.gp_xpos(p_gp):获得指针为p-gp的节点的x坐标。
8.gp_xdisp(p_gp):获得指针为p-gp的节点的x方向位移。
9.gp_xvel(p_gp):获得指针为p-gp的节点的x方向变形速率。
10.find_gp(id):获得id为id的节点的指针。
11.gp_extra(p_gp,ind):获得指针为p_gp的节点的索引(编号)为ind的额外参数。
12.gp_yfunbal(p_gp):获得指针为p-gp的节点的y方向节点不平衡力。
与单元参数有关命令:1.z_head:第一个单元的指针。
/doc/fa4590171.html,one:单元总数。
3.find_zone(id):获得编号为id的单元的指针。
4.z_near(x, y, z):得距坐标(x,y,z)最近的单元的指针。
5.z_nearall(x, y, z) :获得距坐标(x,y,z)最近的单元的指针,包括空单元在内。
fish 语法
Fish是一种流行的命令行Shell,它具有许多有用的功能和语法。
以下是Fish 语法的一些主要特征:
1. 命令自动补全:Fish具有强大的命令自动补全功能,可以根据您键入的内容自动推断您要输入的命令或选项。
2. 命令历史记录:Fish会自动记录您输入的命令历史记录,并且可以使用方向键或Ctrl+R来搜索和重复以前的命令。
3. 管道和重定向:Fish支持管道和重定向操作,可以将命令的输出发送到文件或其他命令中进行处理。
4. 变量:Fish支持变量,可以将值存储在变量中,并在需要时使用它们。
5. 函数:Fish支持函数,可以将一系列命令组合成一个函数,并在需要时调用它们。
6. 条件语句:Fish支持条件语句,可以根据条件执行不同的命令。
7. 循环语句:Fish支持循环语句,可以重复执行一系列命令。
8. 命令别名:Fish支持命令别名,可以将长命令或常用命令的缩写定义为别名,以便更快地输入它们。
9. 脚本文件:Fish支持脚本文件,可以将一系列命令保存在文件中,并在需要时执行它们。
总之,Fish具有许多有用的功能和语法,使得在命令行中工作更加高效和便捷。
1、如果是外观上看模型,要切换视角的话除了上述的快捷键,命令是:plot set rotation 20 0 60 rotation后面的3个数字是绕x、y、z轴转动的角度。
使用快捷键时,每次操作转动的角度,或者move的大小,可以通过plot set rotincrement和plot set moveincrement来设置。
2、从surfer把数据倒入FLAC3D!不知道各位在做象边坡地形表面这种不规则面的模型时有没有什么好招。
我最近发现了一种方法。
在FLAC3D的fish函数库中有一个叫TOPO的函数,可以生成自由表面模型的网格,关键是它要用到的那个数据表做起来非常麻烦,具体就是在地形图上平行y轴画一系列的等距的直线,然后读出每条与每条直线相交的等高线的x值和高程,然后生成一张表,格式是table y x z。
用surfer可以很方便的生成这张表,在DATA菜单下的convert...可以将GRD文件生成以上要求的那种格式。
3、按找手册中的解释,print gp position 是用来输出gp的位置坐标的;print zone gp是用来输出与zone相关的gp的id值的。
这样我就有一个上面的疑问,两个命令中的gp都有id值,是不是不同命令中的gp的id值相同的话,他们的坐标就可以看作是一样的啊?答:如果要画等值线的话,先输出gp的坐标来,将其另存为一个文件,再输出zone的应力值,将与zone对应的gp的id与前面输出的gp的id值对应起来,找到gp的坐标。
用excel打开上面的文件进行编辑,最后用surfer画等值线。
这样的办法太苯,不知到有没有更好的办法啊?4、plot stensor plane local on out off能够显示的主应力矢量图,但仍有两个问题1)显示的矢量图中应力好像没有变化,如何通过设置符号的大小表示应力的大小变化?2)应力符号好像总在图形没有发生变形前的单元中心,如何使应力符号在发生变形了的单元中心?5、个人经验,无论有限元还是flac,如果支护措施仅仅只考虑其刚度的贡献,岩体的变形和塑性区变化往往都不大,可能需要适当提高岩体的参数,才能反映支护的作用6、<锚杆支护的数值模拟>.中国矿业大学岩石力学与土木工程学报前段时间有篇文章专门关于flac锚杆单元应用模型修改的文章,7、如何模拟预应力自由式锚索?首先我想说说我在模拟预应力自由式锚索的做法,然后在说出现的问题,希望大家帮忙解决一下!我采用先整根生成的方法来生成锚索,然后给自由段和锚固段分别赋不同的参数,自由段的灌浆参数统统赋为零,锚固段的按试验值确定.在模拟垫墩时,把自由段外端的交接删除,然后重新生成刚性铰接(之所以这样做是因为模型介质较软,不这样做就收敛不了,介质内发生了流变.而全长粘结式锚索不需这样处理也和试验值拟合的很好),使得该结点不会和周围介质发生相对位移;然后在垫墩作用的面积上再施加一个均布力,大小等于预应力除以垫墩面积.问题是位移值拟合锝还可以,但是锚索的预应力增加值比实测的大的多,有没有其他的方法来模拟自由式锚索???8、Fish函数增加了以下几种新的特性:1.增加了fish变量来获取结点、单元和界面变量2.fish提供了获取结构单元变量的途径3.休单元和面单元性质目前可以通过单元变量名z_prop(i_z string)和界面单元名i_prop(i_z string)分别加以识别4.fish函数可以获取单元应变和应力速率,还提供了全应变增量张量和应变速率张量5.提供了fish绘图子程序函数够生用户定义的图形内容6.fish函数已经增加了从文件读、写数据的能力FLAC3D是一个强大的软件,但是不得不承认的,它的界面没有ansys好用,商业运行不是很强的说注意点:1.fish函数可以嵌套使用;2.以save命令保存模型时,fish函数和变量也同时保存;3.fish函数不支持缩写,这与flac3d命令不同,另外所有的fish函数或变量不区分大小写,程序同意转化为大写进行编译,当然也可以通过执行set case-sensitivity on来区分大小写;4.变量或函数名不能以一个数字开头也不能是下列字符:. , * / ^ = > < # ( ) [ ] @ ; “ '5.如果用命令set safe on 指定了编译安全模式,则用户调用fish函数时,函数名前必须加@;6.如果变量不曾赋值,则系统默认为零(整形),如果赋值,其类型由值的类型决定;7.fish函数的调用方法:.可以出项在其他fish函数的单独行中;.可以出现在其他fish函数的表达式中;.出现在flac3d的命令行中;.作为命令set,print,hist的参数。
fish语言规则Fish语言规则Fish语言是一种简化的编程语言,其规则包含了以下几个方面:1. 命令规则Fish语言中的命令以英文字母开头,并以换行符或分号作为命令的结束符。
命令可以包含多个参数,参数之间需要使用空格进行分隔。
2. 变量规则Fish语言中的变量以$符号开头,并由字母、数字和下划线组成。
变量可以用于存储和操作数据。
使用变量时,需要在$符号后面加上变量名。
3. 注释规则Fish语言中的注释以#符号开头,可以用于对代码进行解释和说明。
注释内容将被解释器忽略,不会执行。
4. 条件语句规则Fish语言中的条件语句使用if关键字进行定义。
if后面跟上条件表达式,如果条件成立,则执行if后面的代码块。
条件表达式可以包括比较运算符、逻辑运算符和括号。
5. 循环语句规则Fish语言中的循环语句包括for循环和while循环。
for循环用于遍历一个集合或者一段范围内的值,while循环用于在条件成立时重复执行一段代码。
6. 函数规则Fish语言中的函数以function关键字进行定义。
函数可以接受参数,并返回一个值。
函数的定义以function关键字开始,后面跟上函数名和参数列表,然后是函数体。
7. 输入输出规则Fish语言中的输入输出使用echo关键字进行操作。
echo后面跟上要输出的内容,可以是字符串、变量或者表达式。
8. 异常处理规则Fish语言中的异常处理使用try和catch关键字进行定义。
try后面跟上要执行的代码块,catch后面跟上要处理的异常类型和对应的代码块。
9. 数组规则Fish语言中的数组以@符号开头,并由方括号包围。
数组可以存储多个值,并通过索引进行访问和操作。
10. 字符串处理规则Fish语言中的字符串可以使用单引号或双引号进行定义。
字符串可以进行拼接、截取和替换等操作。
11. 模块引入规则Fish语言中的模块使用source关键字进行引入。
source后面跟上模块的路径。
grads fish函数如何使用GRADs软件包中的fish函数进行统计分析?GRADs(Grid Analysis and Display System)是一个用于进行大气和海洋科学数据分析和可视化的软件包。
它是一个免费开源的软件,拥有丰富的功能和灵活的用户界面。
GRADs中的fish函数是一个用于执行统计分析的重要工具。
本文将介绍如何使用GRADs软件包中的fish函数进行统计分析,并为读者提供一步一步的操作指南。
1. 准备数据在使用fish函数之前,首先需要准备好要进行统计分析的数据。
GRADs 支持多种数据格式,包括常见的二进制和ASCII格式。
如果数据量较大,建议使用GRIB(GRIdded Binary)格式,以便更高效地处理大量数据。
在这里,假设我们有一组气象观测数据,包括温度、湿度和风速等参数。
这些数据可以是同一站点的连续观测值,也可以是多个站点的同一时刻观测值。
确保数据已经按照要求的格式组织,并且可以在GRADs中正确加载和显示。
2. 加载数据在GRADs中,使用“sdfopen”命令加载数据文件。
例如,如果要加载名为“data.sdf”的数据文件,可以执行以下命令:sdfopen data.sdfGRADs将自动识别并加载数据文件中的数据集。
3. 设置分析区域和时间段在进行统计分析之前,需要定义感兴趣的分析区域和时间段。
GRADs提供了一系列命令用于设置分析区域和时间段,例如“gxout”和“gxadd”命令可以设置经纬度范围,而“d”命令可以设置时间范围。
gxout statgxadd -R<lon1>/<lon2>/<lat1>/<lat2>d <start_time>,<end_time>通过设置这些参数,GRADs将仅在指定的区域和时间范围内执行后续的统计分析。
4. 执行统计分析现在可以使用fish函数执行统计分析了。
fish学数学c语言鱼学数学是一门综合学科,涵盖了多个分支,包括数学分析、线性代数、概率统计、微分方程等等。
在数学中,我们通常会使用编程语言来解决一些复杂的数学问题。
C语言是一种功能强大的高级编程语言,它与数学之间有着密切的联系。
在本文中,我们将探讨如何使用C语言解决一些常见的数学问题。
数学计算是C语言中常用的一个功能。
在C语言中,我们可以使用一些基本的运算符(如加减乘除)来进行数学运算,还可以使用一些数学函数库来实现更复杂的计算。
例如,我们可以使用C语言中的<math.h>库来调用sin、cos、tan等三角函数。
下面是一个例子,展示了如何使用C语言来计算三角函数的值。
```c#include <stdio.h>#include <math.h>int main(){double angle = 3.14159 / 4; // 弧度表示角度double sin_value = sin(angle);double cos_value = cos(angle);double tan_value = tan(angle);printf("sin(%.2f) = %.2f\n", angle, sin_value);printf("cos(%.2f) = %.2f\n", angle, cos_value);printf("tan(%.2f) = %.2f\n", angle, tan_value);return 0;}```以上代码将输出角度为45度(即π/4)的正弦、余弦和正切的值。
通过使用C语言的数学库函数,我们可以在数学问题中方便地应用三角函数,这对于解决许多实际问题非常有帮助。
在数学中,矩阵是一个重要的概念。
线性代数是研究矩阵和线性方程组的学科,也是许多数学问题的基础。
在C语言中,我们可以使用二维数组来表示和操作矩阵。