




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、颗粒流仿真软件pfc5.0,对比,颗粒流pfc 5.0和颗粒流pfc 4.0区别,1、自动多线程和有效的接触探测,2、clump 模板的新运算/可视化,4、墙面的新运算,5、离散裂隙网络(dfn,3、生成ball/clump的新用法,7、应用实例,6、其他变化,pfc 4.0 回顾,distinct element method 模型组成单元:颗粒+墙体 边界条件 初始条件 接触模型 计算,5.0,pfc 5.0 版本 架构和设计,原有功能仍能实现 但语法结构被改变,新增概念,4.0,pf5.0 路线图,4.0,pfc 5.0和4.0区别,自动多线程和有效的接触探测,多线程,pfc 5.0 自
2、动利用计算机自身所有的计算资源 所有与计算相关的部分都是多线程的: 时步计算 运动方程 力位移原理 接触查询 默认采用deterministic模式进行建模计算,以保证模型可重复性;如果使用非deterministic模式 ,自身性能约有10%的提升 fish相关的编译功能仍保持单线程,20,000 balls,700,000 balls,70万颗粒,pfc 5耗时1.7min,pfc 4 耗时3.3h(从数据文件读取,颗粒流pfc5.0 speed static assembly,将空间分为等尺寸单元 动态查询单元保证了最优搜索性能 采用了零等待数据结构(多线程环境下,高效的空间搜索,pfc
3、 5.0和 4.0区别,clump 模板的新运算/可视化,生成ball/clump的新用法,刚性连接的pebble,可以复制和观察 可以导入dxf/stl文件,作为clump的边界面,但文件内的几何模型必须是有向的,边界衔接且封闭的。 惯性参数(体积,惯性矢量) 可通过以下方式确定: 用户输入 从pebble的 分布计算 从clump的边界面计算,clump 模板,22 pebbles,内置 bubblepack 算法:用pebble将clump的边界面内的空间按照目标状态填充(中轴逼近法,bubblepack,573 pebbles,110 pebbles,pfc 5.0和 4.0区别,生成
4、ball/clump的新用法,应用实例,其他变化,快捷的生成,在立方体或者六面体内随机生成不重叠颗粒或者clump (根据方向,采用ball generate命令生成70万颗粒仅用时1.7s,根据目标孔隙率和颗粒级配生成颗粒或clump(颗粒间有重叠,ball distribute,与颗粒级配匹配,pfc 5.0和 4.0区别,墙面的新运算,墙面 二维中是直线; 三维中是三角形,从dxf/stl文件导入(有方向,边缘相接) 由pfc直接生成简单形状 boxes, circles in 2d; cones, cylinders, spheres, boxes, discs, planes in
5、3d,墙的两侧默认都是active面(可更改) 凹凸几何形状被自动处理 接触的识别保证了行为的真实性,墙面接触,pfc 5.0和 4.0区别,离散裂隙网络(dfn,应用实例,其他变化,简单而有效地按照标准或者传统的统计分布生成dfn,离散裂隙网络dfn 的生成,已知裂隙组,完整裂隙模型,在粘性颗粒上覆盖裂隙,并插入光滑节理接触模型,以模拟综合岩体(srmsynthetic rock mass,dfn + pfc 结合形成 srm,测量力学特性和裂隙几何特征,dfn + pfc 5 合成岩体 srm,大小不一 的裂隙,摩擦型节理用以区分可变形块体和破碎型块体,pfc 5.0和4.0区别,离散裂隙
6、网络(dfn,应用实例,其他变化,任何模型的数据文件必始于domain,否则模型无效 名称定义更具体,易识别 f1帮助键 不再区分大小写 符号约定 宏定义取消 cmat,默认接触模型为null local damp默认为0 bodies and pieces 接触类型:ball-ball、ball-facet、ball-pebble、pebble-pebble、 pebble-facet ;loop foreach,球、pebble的遍历互不影响 attribute 将123球放入set1组中(slot 1) ball group set2 range id 1,6 ; 将1-6的球放入set
7、2中(slot 1),此时set1是空的 ball group set1 range id 4,6 ; 将4-6球放入set1中,此时set1为4-6,set2为1-3 ball group set3 slot 2 range id 1,6 ; 将1-6放入set3,由于是slot 2,所以对set1和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关键词的存
8、在。123号球与set1中冲突,此时系统会自动将set2划入slot 2,通过slot来重复定义分组. ball group bottom_layer slot 3 range z 1 100 ball group middle_layer slot 3 range z 100 200 ball group top_layer slot 3 range z 200 300 ; slot 3 contains the model divided into thirds ball group top_half slot 4 range z 150 300 ball group bottom_hal
9、f slot 4 range z 1 150 ; slot 4 contains the model divided in half on the xy plane ball group left_side slot 5 range y 1 150 ball group right_side slot 5 range y 100 300 ; slot 5 contains the model divided (but not halved) on the xz plane ; note the first line creates a half group but the second lin
10、e ; grabs balls in the range y 100-150 from the ; the left-side group and puts them in the right-side group,group 组 p1176,group与named range对比,group是针对物体的,除非物体被删除或者在同一个slot内被重新定义,否则一直能选中这些物体,而named range会随着其他定义改变,比如范围,在模型变化后同一范围的球可能不是之前的球了,这时候就很难在找到之前球的信息了,group 组命令,操作组,为了区别不同set的物体,用组名加以区别。每一个物体可能属于
11、很多组(slot),最多128组,。可以通过组名来选取组范围内的物体。 create s 创建一个名为s的组,刚创建时,没有物体被指定进入该组 list 列出组名,与list group同义,command 命令 p773,call 调用 new 建立新项目 calm 静止 pause 暂停 clean 更新接触列表 playback 回放 configure 安装配置附加计算 quit 退出与exit同义 continue 继续 restore 提取save文件 cycle 执行运算 return 返回程序控制 define 定义fish功能 save 保存当前结果 echo 重复? set
12、 改变全局设置 end 用于结束fish功能 solve 执行到特定阀值 exit 退出 step 与cycle一样 fish 创建fish标记 system 给磁盘发送命令 gui 保存当前项目 title 设置标题 heading 设置标题 undo 撤销 help 帮助 list 列出信息 load 载入用户定义dll mail 邮件操作,command 命令,call 调用文件,默认调用dat和p3dat文件,无法递归调用。return命令返回上一层 calm 静止模型,将速度回归到0,对fix的单位无效 clean 初始化接触,与后面与dfn相关 cycle i 执行i步时间步,按s
13、hift+esc可退出运算。可选的calm语句用于每i2步时间步重置速度。 define 定义一个fish程序,用end结束。具体内容见fish function index exit 退出,如果没有save那所有信息将会丢失。与quit和stop同义 gui project save 保存当前的项目,名称是s heading s 设置标题,与title命令同义 list keyword 列出信息,command 命令,pause 如果单纯用pause,则会暂停所有。如果指定了相应的keyword,则到达相应条件时,会暂停,按任意键除了shift+esc,会继续,如果是shift+esc,则会
14、中止。如果指定了后面的i,则会暂停i秒后继续。 restore s 恢复程序状态,读取save文件 return 返回程序控制 save s 保存程序状态信息。保存在文件s中,如果拓展名未指定则为p3sav文件 set keyword 改变全局设置。内容很多在p803 solve keyword 将模型执行到一个特定的阀值 step i 与cycle一样。 undo i 撤销命令,如果可能的话,会撤销之前的i条命令,这个命令并不是每次都管用,对于save,restore等命令都不太管用,fish 脚本 p1373,lines 行 fish程序可以在pfc数据文件中整合。或者直接进入控制台。de
15、fine后面的词,是用来陈述一个fish的功能。当出现end时,会停止这个fish。一行有效的fish代码必须是下列形式之一 1、行开始是一个陈述,比如if、loop或者其他的(在fish statement里面有) 2、行内包含一个或者多个由用户定义的fish功能,由下划线_隔开如fun_1,fun_2,fun_3等 3、行内包含赋值语句(等号=左边是被赋值的变量,等号右边是值) 4、行内包含一个pfc命令,由commandendcommand两个关键词来划定区域 5、空行或者是分号开头的,注意是英文分号; fish内的变量、功能等名称和陈述必须是被完整拼写的,不能简写,与fpc命令不同。可
16、以用3个点.来继续下一行。空格是有意义的。type(xx)可以将变量的类型找出来,下表对应,pfc的进阶用法,data types 数据类型 p1376,data types 数据类型 1、integer:整数 2、boolean:布尔值,是或否 true or false 3、floating-point:浮点数 4、string:字符串,由单引号或者双引号来区别have a nice day have a nice day 5、pointer:指针 6、vector:矢量 7、array:数组 8、matric:矩阵 9、tensor:张量 10、map:地图 11、structure:结
17、构,data types 数据类型 p1376,等号右边的东西会将数据类型和数值全部赋予等号左边的类型,比如var1 = var2那么,var2会把类型和数值全部赋给var1,假如var1开始是个整数,经过var1=1.4后,会变成浮点数。可以通过list fish命令来查看所有数据当前的数据类型。动态输入机制有利于非程序员编程。 如果var1=334,那么它是一个整数,如果var1=3e5,var2=1.2,科学计数法,或者小数,则为浮点数,如果是单引号或者双引号则为字符串var1=have a nice day type(xx)可以用来查看数据类型,其结果对应上页列表编号,string 字
18、符串 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 tab r carriage return n cr/lf,pointer 指针 p1380,指针可以指向没有物体,或者是无效的。如果一个物体被删除或者破坏destroy了,所有指向那个物体
19、的指针会全部变成无效指针可以使用null关键词来判定是否是无效指针。 fish指针的物体被指定某个类型,类型可以有type.pointer看出来。 null 无效指针 memitem pointer to block of allocated fish memory array fish参数的数组 range 保存的已命名的范围 table 值的表,array 数组 p1382,数组内的数被存在一个方形索引中,数组可以是多维的。没有map灵活,可以被map代替。 产生fish数组的语法是 array array1 (i1,i2.) 这个陈述在fish中是不普遍的,在编译时间内执行,而不是运行时
20、间内执行。这个代码可以产生一个名为array1的数组,i1,i2.值的大小是用于设定这个维度中有几个值。i1,i2,i3.的个数用于表明维度个数 需要注意以下几点 1、给定的名称是可以是存在的一个变量或者功能,如果是的话,值会转化成一个指针指向数组,之前的值会丢失。如果名字还未存在,那就创建了一个全局变量。 2、给定的维度(i1,i2,i3.)必须是正整数,或者和是正整数,比如(2,1+1)就会生成2x2的二维数组。不能是0 3、对于具体的值没有限制,只要内存允许 需要注意的的是,数组物体会随着array.create和array delete产生和消除 对于array.create语句 ar
21、ray 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 utilities中。math.dot
22、和math.cross在math utilities部分中,vector位于constructors部分中。 matrix 矩阵 fish支持多维矩阵,矩阵数据可以是整数,也可以是浮点数。相同形式的矩阵可以相加也可以相乘,在matrix utilities中有很多对于矩阵的处理,矩阵可以通过array。convert命令转化成数组。可以由张量得到矩阵。 例子p1385 tensor 张量 fish支持3x3的对称张量,张量在计算主轴和压力常数中比较有用。张量可以相加相乘,张量同样可以由array.convert命令转化为数组,也可以由数组转化而来。 例子p1387,其他的一些 p1382,ma
23、p 地图 map与数组比较类似,只是更加有序,而且不同于数组,map可以动态地改变形状,map的值可以是整数或者是字符串。 map可以由以下陈述产生 map1=map(i1 or s1 ,var1 ,i2 or s2,var2.) 可以使用map.add和map.remove手段来增加或者移除。 例子p1388 structure 结构 结构可以包含多个fish变量。 例子p1390,关于功能或者变量的名字 p1391,变量或者功能的名称name必须以非数字开头,而且不能包含以下符号 . , * / + - = # ( ) ; 变量功能名与境况无关,用户定义的名称可以是任意长度,但是由于最长长
24、度的限制可能会在显示中缩短,总之名称可以任意选,当然,不能与fish的陈述或者预定义的变量或功能相冲突,变量范围 p1392,默认状态下,变量名或功能名都可以在全局视野下识别,一旦一个名字在一个有效的fish陈述里面使用,之后可以在全局被识别。包括fish代码或fish命令。可以通过list fish来查看fish变量。如果使用了local标记,那么这个变量只能用于这段fish。如果禁用了fish变量全局设置(通过set fish autocreate来设置),那么所有需要全局响应的fish变量都应该使用global关键词来设置。在使用save关键词保存文件时,当前的全局变量也会保存。使用re
25、store来读取数据,功能 p1393,在fish语言里能被执行的东西只有function。function的名称,用define开头,用end结尾。end关键词还可以让程序返回主程序。可以使用exit关键词来提前结束fish工程语言。 最简单的例子 new define xxx aa=2*3 xxx=aa+bb end xxx的值随着功能被执行会发生变化。变量aa在这个小程序内被计算,而bb由于没有指定,那么bb会被默认为0的整数。 下列情况都可以调用这个xxx子程序 1、作为为一个值(xxx) 2、在方程中作为一个变量(xxx) new_var=(math.sqrt(xxx)/5.6)4
26、3、作为输入值 4、as a single wordxxx enclosed in bracket as outlined here 5、as a symbolic replacement for a number in a pfc input line; or 6、作为set,list或者history命令的参数,功能 p1393,new define xxx xxx=aa+bb aa = 2 * 3 bb=10 end def yyy yyy=(math.sqrt(xxx)/2)4 end list yyy list xxx aa bb 当调用子程序的时候,碰到一个就会运行一次,所以上述代
27、码中调换两个list的顺序会导致输出结果不同,define不能被删除,但是可以重新定义,重新定义fish功能 p1397,fish功能可以被重新定义,如果名字已经被一个define使用了(第二次用的时候),之前相应的功能会被删除,然后会跳出一个警告窗口,然后新代码被提交。以下两点需要注意 1、之前定义过的变量仍然存在,即使被重新定义了,只是代码已经被删除了,由于变量是全局性的,所以很有可能在哪边仍然用到了这个代码。 2、所有对该功能的调用都会调用新代码。包括callback关键词,这可能导致参数数量变化然后出错,fish功能的执行 p1398,总的来讲,pfc和fish操作是分开的。使用或者使
28、用中括号 1、fish功能典型的用法是创建一个几何,设置一个特定的文件参数属性,或者施加力。 2、可以用来查看history在不同阶段的值 3、自动执行 使用callback命令 4、使用function来控制运行,cmat 接触模型分配列表 p640,cmat控制接触在模型中的分配,还有他们的属性和相应的接触方式。 接触模型 null 无效接触 linear 线性接触 linearcbond 线性接触粘结 linearpbond 线性平行粘结 hertz hert粘结 hysteretic 磁滞粘结 smoothjoint 光滑粘结 flatjoint 平板接触,cmat default m
29、odel linear property kn 1.0e6 cmat default model linear property kn 1.0e6 ks 1.0e6 fric 0.25 dp_nratio 0.1,linear 线性模型 p644,线性接触模型参照无限小,线弹性和摩擦面的机械行为,是一个点力。接触面不抵抗相对旋转和粘滞缓冲,关键词是linear 主要的property !(注意是property) linear 线弹性 rgap 参考间隔(接触间距) kn 法向刚度 ks 切向刚度 fric 摩擦系数 lin_mode 法向力更新模式 0 完全更新 1增量更新 emod 有效模
30、量 kratio 法向切向刚度比值 kn/ks lin_slip 滑动状态 lin_force 线性力 缓冲组 dashpot group dp_nratio 法向临界阻尼 dp_sratio 切向临界阻尼 dp_mode 缓冲模式 dp_force 缓冲力,linear contact bond model 线性接触粘结模型 p652,linearcbond 线性接触粘结模型 rgap 参考间隔(接触间距) kn 法向刚度 ks 切向刚度 fric 摩擦系数 lin_mode 法向力更新模式 0 完全更新 1增量更新 emod 有效模量 kratio 法向切向刚度比值 kn/ks lin_s
31、lip 滑动状态 lin_force 线性力 缓冲组 dashpot group dp_nratio 法向临界阻尼 dp_sratio 切向临界阻尼 dp_mode 缓冲模式 dp_force 缓冲力 接触粘结组 cb_tenf 拉伸强度(力) cb_shearf 剪切强度(力) cb_tens 拉伸强度(应力) cb_shears 剪切强度(应力) sb_state 粘结状态,linear parallel bond model 线性平行粘结模型 p658 hertz hert粘结 p663 hysteretic 磁滞粘结 p670 smoothjoint 光滑粘结 p673 flatjoi
32、nt 平板接触 p678,其他的粘结模型,contact activate 改变接触生效标志 contact extra 接触的额外属性contact group 指定接触组名称contact groupbehavior 接触和对象都有任务contact history 接触历史contact inhibit 从指定范围内继承接触contact list 列出接触信息contact method 接触方式contact model 指定接触模型contact persist 设置接触持久性标记 contact property 指派接触属性,contact command 接触命令,cmat
33、add 接触模型分配列表创建命令cmat apply 接触模型分配列表分配命令cmat default 默认cmat cmat list 列出cmat信息cmat modify 修改cmat命令cmat remove 移除cmat,cmat 命令,为调用符号,主程序中调用子程序,都需要用到,用以后,文本会变紫色 ; 为注释 为换行继续读取符号 distribute和gernerate生成球时,若选定范围,在最后加个not,就会选定这个范围外产生球,一些细节,例子,new title balls in a box domain extent -10.0 10.0 cmat default mod
34、el linear property kn 1.0e6 wall generate box -5.0 5.0 onewall set random 10001 ball generate radius 1.0 1.4 box -5.0 5.0 number 30 ball attribute density 100.0 set gravity 10.0 save initial-state solve time 10.0 save casea-nodamping restore initial-state cmat default model linear property kn 1.0e6
35、ks 1.0e6 fric 0.25 dp_nratio 0.1 cmat apply solve time 10.0 save caseb-damping return,在字符串内加一个引号 在字符串内加一个双引号 b 空格,new domain extent -10 10 ball create rad 1.0 ball attribute velocity 1.0 define my_function local mult = 0.5 ; define local variable mult command ball attribute velocity multiply mult en
36、dcommand end fish create mult 2.0 ; define global variable mult my_function ; - local variable takes precedence, velocity divided by two ball attribute velocity multiply mult ; - global variable used,; velocity multiplied by two,psd,wall generate group player1 disk . ;racket player1 dip 90 . ddir 90
37、 . position xtable(1,1) (ytable(1,1)+ytable(1,2)*0.5 ztable+ly*0.3 . rad lx*0.05,wall generate group net polygon . (xtable(1,1)+xtable(1,2)*0.5 ytable(1,1) ztable . (xtable(1,1)+xtable(1,2)*0.5 ytable(1,2) ztable . (xtable(1,1)+xtable(1,2)*0.5 ytable(1,1) ztable+lx*0.075 . (xtable(1,1)+xtable(1,2)*0
38、.5 ytable(1,2) ztable+lx*0.075,wall generate group table cylinder . axis 0 0 -1 . base xtable(1,2) ytable(1,1) ztable . height ly*0.5 . onewall . radius lx*0.02,fname: tabletennis.p3dat ; the example shows how to create a table tennis game! ; ; = new ;define the initial velocity of the ball xballini
39、tialvelocity = -3.0 zballinitialvelocity = 2.0 ; definition of extent and condition domain extent -1 1 domain condition destroy ;creation of the table call createtable ;creation of the ball ball create id 1 rad lx*0.005 position xtable(1,2)*0.98 (ytable(1,1)+ytable(1,2)*0.5 ztable+ly*0.3 ball trace
40、id 1 ball attribute density 10 . xvelocity xballinitialvelocity . zvelocity zballinitialvelocity ;linear model for ball-facet contacts cmat default type ball-facet model linear . property kn 1e6 ks 1e6 fric 0.009 set gravity 0 0 -9.81 ;check for ball-net contacts define checknet(arr) ct=arr(1) ;in c
41、ase of ball-facet contacts, contact.end1 refers to the ball, contact.end2 refers to the facet,if wall.group(wall.facet.wall(contact.end2(ct) = net io.out(net!) bp = ball.find(1) ball.vel(bp,1)=0 ball.vel(bp,3)=0 endif end ;check fi=ot ball-table contacts! define tablecontact(ct) ;in case of ball-fac
42、et contacts, contact.end1 refers to the ball, contact.end2 refers to the facet if wall.group(wall.facet.wall(contact.end2(ct) = table moverackets endif end ;compute the new position of the racket and move it! define moverackets bp = ball.find(1) xvel = ball.vel.x(bp) zvel = ball.vel.z(bp) xpos = bal
43、l.pos.x(bp) zpos = ball.pos.z(bp) if xvel 0 ball.vel(bp,1)=0 ball.vel(bp,3)=0 io.out(fault!) endif wp = wall.find(7) l = xtable(1,1) - xpos else if xpos domain.min.z if zm domain.max.z wall.pos.z(wp) = zm + zpos endif endif end ;set fish callbacks to check if the ball touches the net set fish callba
44、ck contact_activated checknet ;set fish callback to prepare the racket position set fish callback contact_delete tablecontact solve time 1.0 save game ;= ;eof: tabletennis.p3dat,creation of the table call createtable,creation of the ball ball create id 1 rad lx*0.005 position xtable(1,2)*0.98 (ytabl
45、e(1,1)+ytable(1,2)*0.5 ztable+ly*0.3 ball trace id 1,the ball trajectory during the game is traced using the ball trace command,linear model for ball-facet contacts cmat default type ball-facet model linear . in case of ball-facet contacts, contact.end1 refers to the ball, contact.end2 refers to the
46、 facet if wall.group(wall.facet.wall(contact.end2(ct) = net io.out(net!) bp = ball.find(1) ball.vel(bp,1)=0 ball.vel(bp,3)=0 endif end,define tablecontact(ct) ;in case of ball-facet contacts, contact.end1 refers to the ball, contact.end2 refers to the facet if wall.group(wall.facet.wall(contact.end2
47、(ct) = table moverackets endif end,compute the new position of the racket and move it! define moverackets bp = ball.find(1) xvel = ball.vel.x(bp) zvel = ball.vel.z(bp) xpos = ball.pos.x(bp) zpos = ball.pos.z(bp) if xvel 0 ball.vel(bp,1)=0 ball.vel(bp,3)=0 io.out(fault!) endif wp = wall.find(7) l = x
48、table(1,1) - xpos else if xpos domain.min.z if zm domain.max.z wall.pos.z(wp) = zm + zpos endif endif end,set fish callbacks to check if the ball touches the net set fish callback contact_activated checknet ;set fish callback to prepare the racket position set fish callback contact_delete tableconta
49、ct solve time 1.0 save game,fname: footing.p3dat ; create a balls assembly and install a shallow foundation new ;set the domain extent and condition domain extent (-1,25) (-6,6) (-6,20) domain condition destroy ;generate a box and a cloud of 2000 equally sized balls wall generate box (0,24) (-5,5) (
50、0,17) set random 10001 ball generate box (0,24) (-5,5) (0,10) number 2000 radius 0.40 ; modify the default slots of the contact model assignement table ; here we choose the linear contact model (with kn=1e8) for all contact types but ; ball-ball contacts, to which we assign the linearpbond model. ;
51、note that only the linear part of the linearpbond model is activated as long as the ; contact method bond is not called, which is done later cmat default type ball-ball model linearpbond . property fric 0.577 kn 1e8 ks 1e8 . pb_kn 1e8 pb_ks 1e8 pb_ten 1e6 . pb_coh 1e6 pb_rmul 0.8 dp_nratio 0.2 cmat
52、default type ball-facet model linear . property fric 0.09 kn 1e8 ks 1e8 . dp_nratio 0.2 ;define the density and increase their radii ball attribute density 2000 radius multiply 1.4 ;define some history to plot the velocity of a ball of the assembly and ;of the unbalanced force. histories are stored
53、each 5 cycles. set hist_rep 5 history ball zvelocity 12 0 5 history mechanical solve unbalanced ; to reach a stable configuration faster, density scaling is activated. ; gravity is introduced set timestep scale set gravity 0 0 -9.81 cycle 1000 calm 50 solve aratio 1e-5,creation of a box-shaped found
54、ation ; the name footing is associated to the respective group of walls wall delete range set id 2 wall generate group footing box (0,5) (-5,5) (12,20) ; parallel bonds are finally installed. linearpbond model is active ; for ball-ball contacts. the simulation is saved at this stage ; so that furthe
55、r restoring is possible contact method bond gap 0.0 save assembly ; the foundation is supposed to settle with a constant velocity ; the contact force at the base of the foundation is stored during the simulation wall attribute zvelocity -0.25 range group footing history wall zcontactforce id 7 ; the
56、 timestep is set to its automatic value for dynamic simulations and ; an additional 5 seconds are simulated. the model is saved at the end of the simulation. set timestep auto solve time 10.0 ; solve to an equilibrium state again wall attribute zvelocity 0.0 solve aratio 1e-5 save footing ;= ; eof:
57、footing.p3dat,shallow foundation,fname: tunnel.p3dat ; ; excavation of an unsupported tunnel ;= ; the state prior to the footing load is restored restore assembly ; a cylinder-shaped tunnel is excavated through the delete ; and the range group commands ball group tunnel range cylinder end1 (16.0,-6.
58、0,6.0) . end2 (16.0,6.0,6.0) radius 3.0 ball delete range group tunnel ; a number of cycles are done in order to verify that the model is stable after ; excavation of the tunnel. the model is saved at this stage. cycle 1 solve aratio 1e-5 save stabletunnel ;the assembly is finally loaded by the foot
59、ing. what happens to the tunnel? wall attribute zvelocity -0.25 range group footing set timestep auto solve time 10.0 ; solve to an equilibrium state again wall attribute zvelocity 0.0 solve aratio 1e-5 save unlinedtunnel ;=; eof: tunnel.p3dat,excavation of a shallow tunnel,fname: lining.p3dat ; ; i
60、nstallation of a lining support for the tunnel ;= restore stabletunnel ; a lining support is installed around the excavation by specifying a higher ; cohesion and tensile strength to contacts around the tunnel. ; we say that we want to modify the contact properties of the newly created contacts cont
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 43249-2023汽车用被动红外探测系统
- GB/T 17867-2023汽车手操纵件、指示器及信号装置的位置
- GB/T 12538-2023道路车辆质心位置的测定
- GB/T 43382-2023道路车辆手控装置常规运动方向
- GB/T 19515-2023道路车辆可再利用率和可回收利用率要求及计算方法
- 北京外国语大学考研之英美文学试题分析
- 工会冬季送温暖简报范文(11篇)
- 员工试用期工作总结简短(10篇)
- 国旗下讲话稿快乐六一(21篇)
- 公司申请书锦集(6篇)
- 股权价值评估中流动性折扣的期权模型方法汇总
- 西宁测绘院2000地形图缩编作业指导书
- 美的多联机故障代码大全
- 吊篮安全监理检查表
- 中医院创建优质护理服务示范病区的活动方案
- 大气光化学反应
- 24点练习大全-无答案
- EBZ160掘进机电气原理图 (三一重工)
- ViewMate教程
- 出生证明(中英文)模板
- 金融服务合作协议
评论
0/150
提交评论