9.设置重力及材料属性(Gravity&Material Properties)
gravity
命令指定了负z方向的重力加速度。 在此示例中,我们指定的值为10 m / sec^2。 x 和 y 方向的分量设置为0。
材料属性被分配给块体和节理。 块体和节理的属性并不是直接分配的,而是先使用mat
以及jmat
分配了块体材料的编号和节理材料的编号, 然后使用property
命令指定每种材料的属性。
mat代表块体材料(material),jmat代表节理材料(joint material)
在此示例中,所有块体的质量密度指定为2,000kg / m^3,通过指定编号为1的块体材料的密度来执行此分配。由于默认情况下分配的块体材料编号为1,因此所有块体的密度均为2,000 kg / m^3。假定块体是刚性的,变形性被忽略。
gravity 0 0 -10 ;(0 0 -10 )代表重力加速度矢量,即沿着z的负方向,大小为10
prop mat=1 dens=2000 ;所有块体的密度被指定
prop jmat=1 jkn=1e9 jks=1e9 jfric=89 ;分配节理材料1的法向刚度以及切向刚度、摩擦角属性
prop jmat=2 jkn=1e9 jks=1e9 jfric=0.0 ;分配节理材料2的法向刚度以及切向刚度、摩擦角属性
如果有些代码显示不全,点击代码框左上角的圆点可以全屏查看代码哦┗|`O′|┛ 嗷~~
倾斜块和边界块之间的接触属性分配给节理材料2,节理材料2的摩擦角为0,即为边界块的垂直节理平面提供了无摩擦边界。 请注意,必须使outer blocks分组下的块体可见(使用seek
命令)以使change
命令生效。
seek ; 使所有块可见
change jmat=2 range dip 90 dd 180 ;指定使用节理材料2属性的节理的范围
hide range group 'outer blocks' ;分配完属性后隐藏'outer blocks'分组下的块体
请注意,节理可以使用不同的本构模型。 在此示例中,只是使用了简单的Mohr-Coulomb模型(默认)。具体的本构模型可以参考帮助文档的本构模型。
10.结果(Solution)
观察岩体中指定点的运动来判断材料的行为通常会很有帮助。在此问题中,我们监视最接近x = 30,y = 30,z = 30这个坐标的某一顶点的z方向速度。history
命令用于记录此运动,相关命令为:
hist zvel (30,30,30)
hist type 1
执行此命令时,程序将返回所选监视点的信息。hist
命令后面的关键字"type"在帮助文档中是这样写的:
history
type id :displays the value of a variable (with history number id) on the console during cycling
然后,我们通过添加以下内容指定500个计算周期:
step 500
在执行过程中,当前周期的计数,计算的时间,最大不平衡力以及最接近(30,30,30)的块的顶点的z方向速度和时钟时间都会在屏幕上打印出来。 经过10个周期。 通过查看这些值表明模型已经达到平衡(速度和不平衡力接近零)。
通过选择 File → New Item → Plot 并在提示中输入名称,创建一个名为“ Hist1”的新绘图。 在控制面板中,选择 List 选项卡,然后双击 Charts → History ,屏幕上将出现空白的历史记录图表。 接下来,在 Attributes 选项卡下,通过单击蓝色的 “ +” 符号添加 “ z-velocity” 的历史记录。
请注意,每个历史记录在创建时都会分配一个ID。 由于我们只有一个历史记录,因此其分配ID为1。蓝色的 “ +” 符号允许您将ID 为1的历史记录添加到绘图中。
通过选择 Y-Axis → Label 并输入 “Vertical Velocity” 来更改y轴的标签。
另外,也可以使用以下命令执行相同的操作:
plot create plot 'Hist1' ;创建一个新plot,名称为"Hist1"
plot hist 1 yaxis label "Vertical Velocity" ;绘制hist的ID编号为1的变量的历史
现在,绘制的图形应该像下面这样:
10.1绘制图形文件(Plot Image Files)
在模型达到平衡之后,创建初始状态时模型的图像文件可能会很有用。 可以使用title
命令设置绘图的标题,通过在其后添加一个字符串,如下所示:
title 'Rock Slope Stability'
一旦执行,标题将被保存,但不会显示在绘图中。 为了在绘图上显示标题,必须从“Control Panel”中的 “Display Settings ” 下的 “Attributes” 选项卡上启用 “Job Title” 选项。
这时,标题将出现在历史记录上方的图的顶部。 与此同时,还可以修改标题的属性,例如大小,字体,样式(粗体,斜体,粗体斜体)和颜色等。
然后可以将该图导出为几种不同的文件类型。 选择 File → Export Hist1 → Bitmap,或者在该绘图上单击右键并选择 Export → Bitmap。 导出时必须指定图和文件名, 指定文件名时,包括文件类型的扩展名很重要。 默认情况下,“ bitmap”关键字将创建一个* .PNG文件,也能够创建* .PNG,*.JPG,*.BMP,*.PPM和 *.XBM文件类型。
10.2保存模型初始状态(Save Initial State)
注意保存模型的初始状态是一个比较好的习惯,以便可以随时重新运行模型(还可以研究不同模型参数下模型的响应)。 通过输入以下内容,将当前状态保存到名为“ slope-initial.3dsav”的文件中:
save slope-initial
如果未提供扩展名,程序将自动添加文件扩展名.3dsav。
10.3折减节理摩擦角并求解(Reduce Joint Friction and Solve)
可以通过减小节理的摩擦角来研究斜坡的行为。 我们使用以下命令将编号为1的节理材料的摩擦角减小到6°(添加到脚本文件中执行,或者只在3DEC底部的控制台窗格中的提示符下键入命令):
prop jmat 1 jfric=6.0
下一步是在减小了摩擦角的情况下继续进行2000个周期的计算。 可以选择视图到 “Blocks”来观察模型的破坏。 为了进行打印,请通过以下方式打开 "Job Title":转到 Control Panel 中 “Plot Items”下的 “Display Settings”,然后检查 “Attributes” 选项卡下的 “Job Title” 选项。这将添加先前指定的 Job Title。
要添加特定的标题,请选中 “View Title” 选项,然后在相邻字段中输入一些文本(例如WEDGE FAILURE)。
要查看模型产生破坏的过程,请在 “Console Pane” 窗格中的提示符下输入以下命令:
cycle 2000
破坏状态说明由于摩擦角减小而引起的楔形体的破坏。如图:
10.4查看截面(Cross-Section)
通过截取模型的垂直横截面图来查看楔形体的破坏机制。 单击 File → New Item → Plot ,并将绘图命名为 “ Disp1”。 在 Control Panel 的列表中,双击 Blocks → Vectors → Displacement。 在 “Attributes” 选项卡下,打开 “ ColorByMag” 选项。
通过双击 “List” 选项卡下的 “Block” 将块体添加到图中显示。 单击 “Fill” 选框切换填充。
最后,需要切割平面以产生横截面。 通过双击 “List” 选项卡下的 Cutting Planes → Plane 可以完成此操作。 切割平面也可以用鼠标移动的方式进行交互式操作。 但是,在这种情况下,我们有一个确切的方向要检查——y轴的法向。我们可以通过检查 “Attributes” 选项卡上的 “Normal”设置为(0,1,0)来设置。
通过单击 “Plot Items” 列表中的 “Displacement Vectors” 或“Block”,取消选择“Plane”对象。 横截面显示的位移矢量结果如下:
10.5结论(Conclusion)
通过单击 File → Save Project 来保存项目。 从现在开始,您可能希望设置不同的模型参数及属性来探究楔形体什么时候不会破坏。 首先保存先前分析的最终状态。
save slope-final
您可以从最初的模型状态开始接着往下运行(设置不同的模型参数),通过restore
命令:
restore slope-initial
即通过restore
命令来恢复模型的初始状态。
11.代码汇总
以下为本篇教程的所有代码:
; --- simple slope example with rigid blocks ---
new
; create initial block
poly brick (0,80) (-30,80) (0,50)
plot create plot 'Blocks'
plot block
; create construction cuts
jset dip 90 dd 180 origin 0,0,0
jset dip 90 dd 180 origin 0,50,0
group block 'inner block' range y 0 50
hide range group 'inner block'
group block 'outer blocks'
seek
; create geologic joints
hide range group 'outer blocks'
jset dip 2.5 dd 235 origin 30,0,12.5
jset dip 2.5 dd 315 origin 35,0,30
jset dip 76 dd 270 spacing 4 num 5 origin 38,0,12.5
hide range x 30,80 y 0,50 z 0,50
jset dip 0 dd 0 origin 0,0,10
hide range z 0,10
group block 'excavate'
seek
hide range group 'outer blocks'
hide range z 0,10
hide range x 55,80
hide range x 0,30
jset dip 70 dd 200 origin 0,35,0
jset dip 60 dd 330 origin 50,15,50
; Boundary conditions
seek
fix range z 0 10
fix range x 55 80
fix range group 'outer blocks'
delete range group 'excavate'
hide range group 'outer blocks'
; Gravity
gravity 0 0 -10
; Properties
prop mat=1 dens=2000
prop jmat=1 jkn=1e9 jks=1e9 jfric=89
prop jmat=2 jkn=1e9 jks=1e9 jfric=0.0
seek
change jmat=2 range dip 90 dd 180
; Get history of point on sliding blocks
hide range plane dip 70 dd 200 origin 0,35,0 below
hist zvel (30,30,30)
seek
hide range group 'outer blocks'
; Solve
hist type 1
step 500
plot create plot Hist1
plot hist 1 yaxis label "Vertical Velocity"
title 'Rock Slope Stability'
save slope-initial
; Set weak joints and solve
prop jmat 1 jfric=6.0
cyc 2000
save slope-final
剩下的就可以自己去3DEC中进行运行与测试了哦!