PFC5.0讲解.pptx

上传人:得****1 文档编号:75817298 上传时间:2023-03-05 格式:PPTX 页数:102 大小:7.31MB
返回 下载 相关 举报
PFC5.0讲解.pptx_第1页
第1页 / 共102页
PFC5.0讲解.pptx_第2页
第2页 / 共102页
点击查看更多>>
资源描述

《PFC5.0讲解.pptx》由会员分享,可在线阅读,更多相关《PFC5.0讲解.pptx(102页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、岩土工程数值分析软件PFC5.0讲解概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用实例 其他变化PFC 4.0 简要回顾 离散单元法(DEM)模型组成单元:颗粒+墙体 边界条件 初始条件 接触模型 计算完整路线墙体模型介质模型边界条件墙体参数介质参数初始条件计算建模接触模型5.0PFC 5.0 并不是PFC 4.0的更新版 而是一次重新架构和设计基本单元:颗粒接触力位移原理针对散体和粘结介质独有的粘结模型进行复杂的颗粒流现象模拟概念性保留原有功能仍能实现但语法结构被

2、改变新增概念4.0PFC 5.0 完整路线4.0完整路线墙体模型介质模型边界条件墙体参数介质参数初始条件计算建模接触模型模型domain命令Fish接触模型ball generateball create ball distributeball.pos.x(B_PNT)cmat概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用实例 其他变化多线程PFC 5.0 自动利用计算机自身所有的计算资源所有与计算相关的部分都是多线程的:时步计算 运动方程 力位移原理 接触查询默认

3、采用Deterministic模式进行建模计算,以保证模型可重复性;如果使用非Deterministic模式,自身性能约有10%的提升FISH相关的编译功能仍保持单线程Number of BallsTime for 1000 cycles(s)0200000 400000 600000 8000000.00E+002.00E+024.00E+026.00E+028.00E+021.00E+031.20E+03PFC5PFC4Number of BallsPFC4/PFC50200000 400000 600000 8000002.40E+002.60E+002.80E+003.00E+003.

4、20E+003.40E+003.60E+003.80E+00Ratio20,000 Balls700,000 Balls70万颗粒,PFC 5耗时1.7min,PFC 4 耗时3.3h(从数据文件读取)PFC 4.0/PFC5.0 Speed Static Assembly 将空间分为等尺寸单元 动态查询单元保证了最优搜索性能 采用了零等待数据结构(多线程环境下)高效的空间搜索概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用实例 其他变化刚性连接的pebble,可以复

5、制和观察 可以导入dxf/stl文件,作为clump的边界面,但文件内的几何模型必须是有向的,边界衔接且封闭的。惯性参数(体积,惯性矢量)可通过以下方式确定:用户输入 从pebble的 分布计算从clump的边界面计算Clump 模板22 Pebbles内置 BubblePack 算法:用pebble将clump的边界面内的空间按照目标状态填充(中轴逼近法)BubblePack573 Pebbles110 Pebbles概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用

6、实例 其他变化 简单便捷的生成在立方体或者六面体内随机生成不重叠颗粒或者clump(根据方向)使用ball generate命令生成70万颗粒仅耗时1.7s根据目标孔隙率和颗粒级配生成颗粒或clump(颗粒间有重叠)ball distribute匹配颗粒级配生成模型概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用实例 其他变化墙面 二维中是直线;三维中是三角形从dxf/stl文件导入(有方向,边缘相接)由PFC直接生成简单形状 boxes,circles in 2D;

7、cones,cylinders,spheres,boxes,discs,planes in 3D 墙的两侧默认都是active面(可更改)凹凸几何形状被自动处理接触的识别保证了行为的真实性墙面接触概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用实例 其他变化简单而有效地按照标准或者传统的统计分布生成DFNDFN 的生成已知裂隙组完整裂隙模型 在粘性颗粒上覆盖裂隙,并插入光滑节理接触模型,以模拟综合岩体(SRMSynthetic Rock Mass)DFN+PFC 结合

8、形成 SRMcross-sectioneffective geometryinterfacesmooth-joint contactparallel bond 测量力学特性和裂隙几何特征DFN+PFC 5 合成岩体 SRM大小不一的裂隙摩擦型节理用以区分可变形块体和破碎型块体概要 PFC 5.0和PFC 4.0有什么区别自动多线程和有效的接触探测 Clump 模板的新运算/可视化墙面的新运算离散裂隙网络(DFN)生成Ball/Clump的新用法应用实例 其他变化其他变化 任何模型的数据文件必始于Domain,否则模型无效名称定义更具体,易识别 F1帮助键 不再区分大小写 符号约定 宏定义取消C

9、MAT,默认接触模型为NULLLocal damp默认为0 Bodies and pieces 接触类型:ball-ball、ball-facet、ball-pebble、pebble-pebble、pebble-facet;Loop foreach,球、pebble的遍历互不影响 Attribute&property 时步(timestep),更能保证计算的稳定性;用户界面(可随时编译数据文件,可随时改变视图)内联fish(Inline Fish):直接在comand状态下写fish ballID Local 和global变量 Loops 测量圆(球)不再有manual Fishtank单

10、独下载domain 领域 P1041所有组分(球、墙等)都应该在领域内,领域必须在其他组分创建之前建立。domain extent-10 10 condition destroy创建一个X(YZ)方向都为-10到10的领域,超过边界则删除球Conditions sx设置领域边界条件。如果是sx则x方向的两个面都会生效,yz同。如果只指定x方向,则对所有面都有效。stop(默认)组分的图心如果飞出领域外,则速度和角速度会被清零,定在边界上。reflect,速度会变成相反,旋转速度不变。不过这个指令慎用,容易产生不稳定destroy 超过领域直接删除periodic 周期性。如果超出,则会在另一边

11、重现extent fxl fxu 修改领域边界位置,如果只有fx1和fxu则3个边都相同。domain 领域几何命令用于创建、导入导出几何数据。这些数据可以与模型多方面相互作用,也可以通过FISH语言的筛选器处理。创建几何图形不需要创建领域,因为它们不是模型的组成部分。可以使用geomety import命令从stl、dxf或者itasca的几何标准库中导入几何数据。geometry 几何 P1078geometry generate box-10 10创建一个X(YZ)方向都为-10到10的盒子形几何体geometry 几何命令geometry copy 复制几何体命令geometry de

12、lete 删除几何体命令geometry edge 几何边命令gemetry explode 几何分解命令geometry export 几何导出命令geometry generate 生成几何体命令geometry group 几何组命令geometry import 几何导入命令geometry list 几何列表命令geometry node 几何点命令geometry polygon 几何多边形命令geometry rotate 几何旋转命令geometry set 几何集命令geometry tessellate 几何镶嵌命令ball 球 P232球是刚体,半径为R,球表面有一系列的

13、参数。球可以平动和转动,平动速度和角速度,球的运动遵循运动定理,球运动中必须包含以下参数:质量,荷载情况和速度。质量参数包括质量、质心位置和惯性距(m,x,I),质量参数由密度p和半径定义。荷载情况可以由以下几种情况定义:与其他球或者墙相互作用产生的力和力矩重力自定义的力和力矩速度由Vf定义(2D三个值,3D6个值)球可以通过3种方式产生在领域内:1、产生一个球(ball create);2、产生一系列无重叠的球(ball generate);3、分配一些重叠的球到一个特定的范围(ball distribute)ball attribute和ball property命令可以用来指定球的属性,

14、使用ball list attribute和ball list property命令可以列出球属性和属性值所有的球必须在domain中产生ball 球指令ball attribute 设置球的属性值(固有属性)ball create 产生一个特定属性的球ball delete 删除球ball distribute 根据孔隙比来产生球ball extra 设置球的额外变量ball fix 固定球的速度ball free 解除球指定速度(与FIX相反)ball generate 产生无重叠的球ball group 指定球组名称ball history 记录一个球历史数据ball initializ

15、e 修改球的属性ball list 列出球的属性ball property 指派球的表面属性ball result 修改球逻辑结果ball tolerance 设置接触响应阀值ball trace 记录球的轨迹History ball、list ball、trace ball可以置换顺序ball create 产生一个球 P241生成一个特定属性的球:ball create命令是3种产生球命令之一,还有两种命令是ball generate和ball distribute。ball create命令可以用于产生单个球。利用默认参数,生成一个半径为领域1/40,球心为原点的球。domain ext

16、ent-10.0 10.0ball create x-5.0ball create x 5.0 radius 4.0ball create id 10 x 0.0 radius 1.0 group middleball distribute 根据孔隙比来产生球 P246分配球(有重叠)到一个区域。这个步骤当孔隙比达到目标值时将会停止(不算重叠部分)。默认状态下球的位置和半径在整个模型领域内统一分配。因此,球的产生受随机数生成器影响(set random)。球的半径还可以通过gauss关键词来生成高斯分布的球。当分配一定量的球的时候,通过半径范围和体积分数,可以定义。生成球时,划定一个可选范围来

17、生成球,保证最后分配的球打到目标标准。当达到以下条件时,这个命令才与ball generate产生区别1)球的目标数目已经达到或者2)尝试次数达到标准时,ball generate无法产生更多的球,而ball distribute由于可以重叠,所以可以产生更多的球。note(球生成前必须先定义领域domain)note(球会重叠)note(当执行循环时,只能在循环点前生成球)ball distribute radius 1.0 1.6 porosity 0.30ball generate 生成无重叠球 P255生成没有重叠的球,当球数量达到目标数目或者尝试次数用完时停止。默认状态下球的位置和半

18、径会均匀分布在领域内,因此球的特性受随机数生成器的影响。球也可以通过高斯分布关键词gauss来让球变成高斯分布,规则排列的方形和六边形可以通过cubic和hexagonal关键词实现。可选区域内的球会被赋予可选属性,否则不会被赋予该属性。如果生成球会完全包含在BOX内用这个命令生成的球不会重叠。默认尝试20000次ball generate radius 0.5 0.7 number 100 box-5.0 0.0-5.0 5.0 tries 2000 ball attribute 设置球的属性值 P234ball attribute 命令主要用于修改球的固有属性,如半径、位置、密度、速度等参

19、数,应与ball property相区分,后者主要用于修改球表面参数。ball attribute 与 ball initialize同义如果球未完全落入领域内,则修改球的几何参数将会失效domain extent-10 10 condition destroycmat default model linear property kn 1e6 dp_nratio 0.2set random 10001wall generate box-5 5 onewallball generate id 1 100 box-4.5 4.5 0.0 0.0 radius 0.5 cubicball attri

20、bute density 1000.0ball attribute velocity(0.0,0.0,-1.0)range x-4.5 0.0ball attribute appliedforce(0.0,0.0,-1.0)range x-4.5 0.0 notcycle 10000ball property 设置球的表面属性 P269球属性property是表面属性property,能用于填充接触模型,与ball attribute命令不同,attribute用于定义球的位置或者大小等基本属性,property用于赋予力学属性,在contact model中有介绍。每一个接触模型都有一张pr

21、operty的参数表,包括linear线性,linear contact bond,linear parallel bond,hertz,hysteretic,smooth joint和flat joint等ball property kn 1e8 range x-10 0wall 墙 P499操作墙wall activeside 指定有效面wall addfacet 增加一个facet面wall attribute 设置墙的属性wall conveyor 将一个旋转速度输送给面wall create 通过顶点创建一个墙wall delete 删除墙或面wall extra 设置墙面的额外变量

22、wall generate 用特定形状来生成墙wall group 指定墙或面的组名wall history 增加一个墙的历史wall import 从外部导入一个墙wall initizlize 修改墙属性wall resolution 修改接触-分辨率wall result 修改墙的逻辑结果用法wall rotate 旋转墙wall tolerance 设置墙的侦查接触限值wall create 生成墙 P508wall create keyword.由顶点创建一堵墙,在三维中顶点至少为3个 note:创建墙之前必须先创建领域 面必须在领域内 执行命令时,墙只能在cycle点0之前生成wa

23、ll create.name abcvertices.-0.25 0.0 0.0.0.25 0.0 0.0.0.0 0.0 0.25wall create 生成墙 P508wall create keyword.由顶点创建一堵墙,在三维中顶点至少为3个 note:创建墙之前必须先创建领域 面必须在领域内 执行命令时,墙只能在cycle点0之前生成wall create.name abcvertices.-0.25 0.0 0.0.0.25 0.0 0.0.0.0 0.0 0.25wall activeside 墙有效面 P500指定墙的有效面,球和卵石可以穿过无效面,默认状态下facets的两

24、面都是有效面,这个范围是针对facets而言的。一个墙有两个面。语法wall activeside keyword both 把两面都设置为有效面bottom 设置面的法向矢量的对面为有效面neither 设置墙的两面都为无效面,没有力会与该墙作用top 设置面的法向矢量面为有效面wall generate 生成特定墙 P513生成特定形状的的墙,包括箱子,二维中的圆,圆锥,圆柱,圆盘,线,平面,点,多边形,三维中的球wall generate.group spheres.sphere position 5.0 0.0-2.0.radius 3.0.resolution 1wall impor

25、t 导入墙 P524wall import导入墙命令wall import keyword.导入一个墙,可以导入dxf和stl等文件wall import filename gear.stl nothrow id 100wall attribute 墙属性 P503wall attribute keyword.设置墙的属性,与wall initialize同义属性。可以通过wall list命令来查看各项属性。改变墙的位置和速度wall attribute xvelocity 1.0 id 1wall property 墙表面属性 P530wall property墙属性命令wall prop

26、erty s a指定面表面的属性,a是值,s是名称。可以指定多对。面property是对于表面上的接触属性而言的,对于墙面本身的固有属性应用wall attribute。对于wall property,主要的参数是linear线性,linear contact bond,linear parallel bond,hertz,hystereic,smooth joint和flat joint。Group 组 P1176每一个模型物体都可以使用group关键词,比如ball group等。Group 与 slot的关系在不同的slot中,group内的物体可以重复设定默认下进入slot 1,如果s

27、lot 1内的group重新指定,则冲突的球会进入其他group,原本group内的物体可能会减少,但是设置不同slot的话就没事了。ball group set1 range id 1,3;将123球放入set1组中(slot 1)ball group set2 range id 1,6;将1-6的球放入set2中(slot 1),此时set1是空的ball group set1 range id 4,6;将4-6球放入set1中,此时set1为4-6,set2为1-3ball group set3 slot 2 range id 1,6;将1-6放入set3,由于是slot 2,所以对se

28、t1和set2没影响Group 组 P1176可以使用add关键词来防止冲突。ball group set1 range id 1,3;将球123放入set1中(slot 1)ball group set2 add range id 1,6;将球1-6放入set2中,由于add关键词的存在。123号球与set1中冲突,此时系统会自动将set2划入slot 2通过slot来重复定义分组.ball group bottom_layer slot 3 range z 1 100ball group middle_layer slot 3 range z 100 200ball group top_l

29、ayer slot 3 range z 200 300;slot 3 contains the model divided into thirdsball group top_half slot 4 range z 150 300ball group bottom_half slot 4 range z 1 150;slot 4 contains the model divided in half on the xy planeball group left_side slot 5 range y 1 150ball group right_side slot 5 range y 100 30

30、0;slot 5 contains the model divided(but not halved)on the xz plane;note the first line creates a half group but the second line;grabs balls in the range y 100-150 from the;the left-side group and puts them in the right-side groupGroup 组 P1176group与named range对比。group是针对物体的,除非物体被删除或者在同一个slot内被重新定义,否则

31、一直能选中这些物体,而named range会随着其他定义改变,比如范围,在模型变化后同一范围的球可能不是之前的球了,这时候就很难在找到之前球的信息了。group 组命令操作组,为了区别不同set的物体,用组名加以区别。每一个物体可能属于很多组(slot),最多128组,。可以通过组名来选取组范围内的物体。create s 创建一个名为s的组,刚创建时,没有物体被指定进入该组list 列出组名,与list group同义command 命令 P773call 调用 new 建立新项目calm 静止 pause 暂停clean 更新接触列表 playback 回放configure 安装配置附加

32、计算 quit 退出与exit同义continue 继续 restore 提取save文件cycle 执行运算 return 返回程序控制define 定义fish功能 save 保存当前结果echo 重复?set 改变全局设置end 用于结束fish功能 solve 执行到特定阀值exit 退出 step 与cycle一样fish 创建FISH标记 system 给磁盘发送命令gui 保存当前项目 title 设置标题heading 设置标题 undo 撤销help 帮助list 列出信息load 载入用户定义dllmail 邮件操作command 命令 call 调用文件,默认调用dat和

33、p3dat文件,无法递归调用。return命令返回上一层calm 静止模型,将速度回归到0,对fix的单位无效clean 初始化接触,与后面与DFN相关cycle i 执行i步时间步,按shift+esc可退出运算。可选的calm语句用于每i2步时间步重置速度。define 定义一个fish程序,用end结束。具体内容见fish function indexexit 退出,如果没有save那所有信息将会丢失。与quit和stop同义gui project save 保存当前的项目,名称是sheading s 设置标题,与title命令同义list keyword 列出信息。command 命令

34、 pause 如果单纯用pause,则会暂停所有。如果指定了相应的keyword,则到达相应条件时,会暂停,按任意键除了shift+esc,会继续,如果是shift+esc,则会中止。如果指定了后面的i,则会暂停i秒后继续。restore s 恢复程序状态,读取save文件return 返回程序控制save s 保存程序状态信息。保存在文件s中,如果拓展名未指定则为p3sav文件set keyword 改变全局设置。内容很多在P803solve keyword 将模型执行到一个特定的阀值step i 与cycle一样。undo i 撤销命令,如果可能的话,会撤销之前的i条命令,这个命令并不是每

35、次都管用,对于save,restore等命令都不太管用。FISH 脚本 P1373 LINES 行FISH程序可以在PFC数据文件中整合。或者直接进入控制台。define后面的词,是用来陈述一个FISH的功能。当出现end时,会停止这个FISH。一行有效的FISH代码必须是下列形式之一1、行开始是一个陈述,比如if、loop或者其他的(在FISH statement里面有)2、行内包含一个或者多个由用户定义的FISH功能,由下划线_隔开如fun_1,fun_2,fun_3等3、行内包含赋值语句(等号=左边是被赋值的变量,等号右边是值)4、行内包含一个PFC命令,由commandendcomma

36、nd两个关键词来划定区域5、空行或者是分号开头的,注意是英文分号;FISH内的变量、功能等名称和陈述必须是被完整拼写的,不能简写,与FPC命令不同。可以用3个点.来继续下一行。空格是有意义的。type(xx)可以将变量的类型找出来,下表对应。PFC的进阶用法data types 数据类型 P1376 DATA TYPES 数据类型1、integer:整数2、boolean:布尔值,是或否 true or false3、floating-point:浮点数4、string:字符串,由单引号或者双引号来区别have a nice day have a nice day5、pointer:指针6、v

37、ector:矢量7、array:数组8、matric:矩阵9、tensor:张量10、map:地图11、structure:结构data types 数据类型 P1376 等号右边的东西会将数据类型和数值全部赋予等号左边的类型,比如var1=var2那么,var2会把类型和数值全部赋给var1,假如var1开始是个整数,经过var1=1.4后,会变成浮点数。可以通过list fish命令来查看所有数据当前的数据类型。动态输入机制有利于非程序员编程。如果var1=334,那么它是一个整数,如果var1=3e5,var2=1.2,科学计数法,或者小数,则为浮点数,如果是单引号或者双引号则为字符串v

38、ar1=have a nice daytype(xx)可以用来查看数据类型,其结果对应上页列表编号string 字符串 P1378 字符串相加:a+b+c得到abc输入输出时选项提醒:io.in(tixing)io.out(tixing)把一串数字转化为字符串:string(xx)就会变成 xx普通字符串:msg=input youngs modulus例子 P1378字符串的唯一算法操作是添加,字符串相加:a+b+c得到abc字符串操作 在字符串内加一个引号 在字符串内加一个双引号b 空格t tabr carriage returnn CR/LFpointer 指针 P1380 指针可以指向

39、没有物体,或者是无效的。如果一个物体被删除或者破坏destroy了,所有指向那个物体的指针会全部变成无效指针可以使用null关键词来判定是否是无效指针。FISH指针的物体被指定某个类型,类型可以有type.pointer看出来。null 无效指针memitem pointer to block of allocated FISH memoryarray FISH参数的数组range 保存的已命名的范围table 值的表array 数组 P1382 数组内的数被存在一个方形索引中,数组可以是多维的。没有map灵活,可以被map代替。产生FISH数组的语法是array array1(i1,i2.)

40、这个陈述在FISH中是不普遍的,在编译时间内执行,而不是运行时间内执行。这个代码可以产生一个名为array1的数组,i1,i2.值的大小是用于设定这个维度中有几个值。i1,i2,i3.的个数用于表明维度个数需要注意以下几点1、给定的名称是可以是存在的一个变量或者功能,如果是的话,值会转化成一个指针指向数组,之前的值会丢失。如果名字还未存在,那就创建了一个全局变量。2、给定的维度(i1,i2,i3.)必须是正整数,或者和是正整数,比如(2,1+1)就会生成2X2的二维数组。不能是03、对于具体的值没有限制,只要内存允许需要注意的的是,数组物体会随着array.create和array delet

41、e产生和消除对于array.create语句array abc(1,2,3)与 abc=array.create(1,2,3)相同var1=abc(3,nn+3,max(5,6)像这种语句也是成立的,只要abc对应的是一个三维数组如果使用abc=0 会让abc变成一个整数,如果没有其他符号指向这个数组,所有数组信息都会丢失,之道一个new命令开始。list abc 会显示abc=(xxx,xxx,xxx)其他的一些 P1382 vector 矢量五个通用功能可以协助创建和操作FISH的矢量。这些都列在FISH参照的3个部分中:comp.x,comp.y和comp.z在component uti

42、lities中。math.dot和math.cross在math utilities部分中,vector位于constructors部分中。matrix 矩阵FISH支持多维矩阵,矩阵数据可以是整数,也可以是浮点数。相同形式的矩阵可以相加也可以相乘,在matrix utilities中有很多对于矩阵的处理,矩阵可以通过array。convert命令转化成数组。可以由张量得到矩阵。例子P1385tensor 张量FISH支持3X3的对称张量,张量在计算主轴和压力常数中比较有用。张量可以相加相乘,张量同样可以由array.convert命令转化为数组,也可以由数组转化而来。例子P1387其他的一些

43、 P1382 map 地图map与数组比较类似,只是更加有序,而且不同于数组,map可以动态地改变形状,map的值可以是整数或者是字符串。map可以由以下陈述产生map1=map(i1 or s1,var1,i2 or s2,var2.)可以使用map.add和map.remove手段来增加或者移除。例子P1388structure 结构结构可以包含多个fish变量。例子P1390关于功能或者变量的名字 P1391变量或者功能的名称name必须以非数字开头,而且不能包含以下符号.,*/+-=#();变量功能名与境况无关,用户定义的名称可以是任意长度,但是由于最长长度的限制可能会在显示中缩短,总

44、之名称可以任意选,当然,不能与fish的陈述或者预定义的变量或功能相冲突。变量范围 P1392默认状态下,变量名或功能名都可以在全局视野下识别,一旦一个名字在一个有效的FISH陈述里面使用,之后可以在全局被识别。包括FISH代码或FISH命令。可以通过list fish来查看FISH变量。如果使用了local标记,那么这个变量只能用于这段fish。如果禁用了fish变量全局设置(通过set fish autocreate来设置),那么所有需要全局响应的fish变量都应该使用global关键词来设置。在使用save关键词保存文件时,当前的全局变量也会保存。使用restore来读取数据。功能 P1

45、393在fish语言里能被执行的东西只有function。function的名称,用define开头,用end结尾。end关键词还可以让程序返回主程序。可以使用exit关键词来提前结束fish工程语言。最简单的例子newdefine xxxaa=2*3xxx=aa+bbendxxx的值随着功能被执行会发生变化。变量aa在这个小程序内被计算,而bb由于没有指定,那么bb会被默认为0的整数。下列情况都可以调用这个xxx子程序1、作为为一个值(xxx)2、在方程中作为一个变量(xxx)new_var=(math.sqrt(xxx)/5.6)43、作为输入值4、as a single wordxxx

46、enclosed in bracket as outlined here5、as a symbolic replacement for a number in a PFC input line;or6、作为set,list或者history命令的参数功能 P1393newdefine xxxxxx=aa+bbaa=2*3bb=10enddef yyyyyy=(math.sqrt(xxx)/2)4endlist yyylist xxx aa bb当调用子程序的时候,碰到一个就会运行一次,所以上述代码中调换两个list的顺序会导致输出结果不同,define不能被删除,但是可以重新定义。重新定义FI

47、SH功能 P1397fish功能可以被重新定义,如果名字已经被一个define使用了(第二次用的时候),之前相应的功能会被删除,然后会跳出一个警告窗口,然后新代码被提交。以下两点需要注意1、之前定义过的变量仍然存在,即使被重新定义了,只是代码已经被删除了,由于变量是全局性的,所以很有可能在哪边仍然用到了这个代码。2、所有对该功能的调用都会调用新代码。包括callback关键词,这可能导致参数数量变化然后出错FISH功能的执行 P1398总的来讲,pfc和FISH操作是分开的。使用或者使用中括号1、FISH功能典型的用法是创建一个几何,设置一个特定的文件参数属性,或者施加力。2、可以用来查看hi

48、story在不同阶段的值3、自动执行 使用callback命令4、使用function来控制运行CMAT 接触模型分配列表 P640CMAT控制接触在模型中的分配,还有他们的属性和相应的接触方式。接触模型null 无效接触linear 线性接触linearcbond 线性接触粘结linearpbond 线性平行粘结hertz hert粘结hysteretic 磁滞粘结smoothjoint 光滑粘结flatjoint 平板接触cmat default model linear property kn 1.0e6cmat default model linear property kn 1.0e

49、6 ks 1.0e6 fric 0.25 dp_nratio 0.1linear 线性模型 P644线性接触模型参照无限小,线弹性和摩擦面的机械行为,是一个点力。接触面不抵抗相对旋转和粘滞缓冲,关键词是linear主要的property!(注意是property)linear 线弹性rgap 参考间隔(接触间距)kn 法向刚度ks 切向刚度fric 摩擦系数lin_mode 法向力更新模式 0 完全更新 1增量更新emod 有效模量kratio 法向切向刚度比值 kn/kslin_slip 滑动状态lin_force 线性力缓冲组 dashpot groupdp_nratio 法向临界阻尼dp

50、_sratio 切向临界阻尼dp_mode 缓冲模式dp_force 缓冲力linear contact bond model 线性接触粘结模型 P652linearcbond 线性接触粘结模型rgap 参考间隔(接触间距)kn 法向刚度ks 切向刚度fric 摩擦系数lin_mode 法向力更新模式 0 完全更新 1增量更新emod 有效模量kratio 法向切向刚度比值 kn/kslin_slip 滑动状态lin_force 线性力缓冲组 dashpot groupdp_nratio 法向临界阻尼dp_sratio 切向临界阻尼dp_mode 缓冲模式dp_force 缓冲力接触粘结组cb

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作报告

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com