当前位置:文档之家› flac3d建模方法

flac3d建模方法

flac3d建模方法
flac3d建模方法

利用FLAC3D 进行数值分析的第一步便是如何将物理系统转化为由实体单元和结构单元所组合的网格模型(Modeling ),该模型与分析对象的几何外形特征相一致。目前,FLAC3D 网格模型的建立方法可分为两种,即直接法及间接法,直接法是按照分析对象的几何形状利用FLAC3D 内置的网格生成器建模,网格和几何模型同时生成,该方法较适用于简单几何外形的物理系统;与之不同,间接法则适用于复杂的、单元数目较多的物理系统,该方法建立网格模型时,像一般计算机绘图软件一样,通过点、线、面、体,先建立对象的几何外形,再进行实体模型的分网(Meshing ),以完成网格模型的建立,FLAC3D 自身不具备间接法建模功能,读者可借助第三方软件与FLAC3D 的接入轻松实现。本章主要介绍FLAC3D 的网格建模方法,包括利用网格生成器建立简单网格、利用第三方软件进行模型导入以及复杂模型的方法。

本章要点:

z FLAC3D 网格单元的基本类型 z 网格的连接

z FLAC3D 网格的数据格式

z 常用有限元模型与FLAC3D 的接入 z

复杂模型的建立

5.1 简单网格的建立

5.1.1 基本网格的形状

FLAC3D 内置网格生成器中的基本形状网格有13种,通过匹配、连接这些基本形状网格单元,能够生成一些较为复杂的三维结构网格。网格单元的基本类型和特征如表5-1所示,基本可以归为四大类,即六面块体网格、退化网格、放射网格和交叉网格。

5

FLAC3D 建模方法

表5-1 FLAC3D 基本形状网格的基本特征

5.1.2 单元网格的生成

生成块体网格(Brick )的命令格式如下:

generate zone brick p0 x0 y0 z0 p1 x1 y1 z1 …… p7 x7 y7 z7 size n1 n2 n3 ratio r1 r2 r3

或者

generate zone brick p0 x0 y0 z0 p1 add x1 y1 z1 …… p7 add x7 y7 z7 size n1 n2 n3 ratio r1 r2 r3

在该命令中,generate 为“生成网格”之意,可以缩写为gen ,zone 表示该命令文件生成的是实体单元,brick 关键词表明建立的网格采用的是brick 基本形状,p0,p1……p7是块体单元的8个控制点,其后跟这些点的三维坐标值(xn, yn, zn ),含义是由8个点可确定一个六面体网格。不过,p0~p7各点的定义需遵从“右手法则”,不能随意颠倒顺序。如果采用全局坐标系,三维坐标值应为建模空间内的全局三维坐标值;若采用局部坐标系,则除p0点采用全局三维坐标值外,其他点的坐标值都必须取其相对于点p0的三维坐标值,且在点编号后加关键词add (见本节第2行命令)。size 为定义坐标轴(x ,y ,z )方向网格单元数目的关键词,其后跟划分的单元数目(n1,n2,n3);ratio 为定义相邻单元尺寸大小比率的关键词,其后跟坐标轴方向相邻网格单元的比率(r1,r2,r3)。

如果生成的是长方体网格,前述命令可以简化为:

generate zone brick p0 x0 y0 z0 p1 x1 y1 z1 p2 x2 y2 z2 p3 x3 y3 z3 size n1 n2 n3 ratio r1 r2 r3

或者

generate zone brick p0 x0 y0 z0 p1 add x1 y1 z1 p2 add x2 y2 z2 p3 add x3 y3 z3 & size n1 n2 n3 ratio r1 r2 r3

即只需采用4个控制点即可确定该长方体。

此外,当网格的几何形状为立方体时,上述命令文件可以用下列命令替代,进一步简化,关键词edge 后跟的evalue 是立方体的边长。

generate zone brick p0 x0 y0 z0 edge evalue size n1 n2 n3 ratio r1 r2 r3

111

(a )六面块体网格brick (b )退化块体网格

dbrick

(c )一般楔形体网格wedge (d )均匀楔形体网格

uwedge

(e )棱锥体网格pyramid (f )四面体网格tetrahedron 图5-1 13种网格建模基本特性(续图)

112

(g )柱体网格cylinder (h )块体外围渐变放射网格单元

radbrick

(i )平行六面体隧道外围渐变放射网格单元radtunnel (j )柱形隧道外围渐变放射网格单元

radcylinder

k )柱形壳体单元cshell (l )柱形交叉隧道网格cylint

5-1 13种网格建模基本特性(续图)

113

(m )平行六面体交叉隧道网格tunint 图5-1 13种网格建模基本特性(续图)

表5-2列出的是生成基本形状的网格时常用的关键词。

表5-2 使用generate zone 生成基本形状网格的常用关键词

关键词 用途

关键词 用途

add 用于以p0为原点的局部坐标系建模

group

定义某一范围内的网格组名 dimension 定义内部区域的尺寸 p0~p16 建立各种形状网格的控制点 edge 定义网格边长 ratio 定义相邻网格单元的尺寸大小比率 fill 定义网格内部填充区域 size 定义网格在各坐标方向上的单元数目 copy

复制网格

reflect

镜像网格(dd 、dip 或normal 、origin )

其中dimension 是定义radtun 、rancyl 、radbr 、cshell 、cylint 、tunint 寸的关键词,但要注意并不是所有的基本网格都需要用到dimension 。

fill 关键词是填充radtun 、rancyl 、radbr 、cshell 、cylint 、tunint 内部区域不包括单元。

ratio 如果未给定,默认值为1。size 如果未给定,默认值为10。

gen zone reflect 网格生成命令中要用到dd 、dip 或normal 、origin 一节要重点介绍这个命令的应用。 5.1.3 网格的连接

建立复杂几何形状的网格时,单一采用某一基本形状网格有时候难以达到目的,本网格进行匹配、连接,才能得到与分析对象相符的网格形状。使用generate zone 生成网格时,统会自动检测连接处的节点,如果已有节点和将要生成的节点的坐标值不超过1×10-7时,

它们为相同的点,生成新网格时,在连接处直接使用基本网格节点,不再生成新的节点。如果已有节点和将要生成的节点的坐标值差别较大,超过1×10-7时,可借助命令attach 和generate merge 来实现基本形状网格的连接。

命令attach 可以用来连接单元大小不同的基本网格,但对各网格连接面上的单元尺寸有限制,要求它们之间的比率成整数倍,以使得不影响计算结果的精确性。建议正式计算前,先将模型在弹性条件下试运行以检测比率是否合适。如果在连接的网格节点上的位移或应力分布不连续,那么应调整连接面上单元尺寸的比率;如果不连续范围是微小的,或者远远小于计算模型的大小,那么这对计算结果的影响有限,可不进行调整。使用命令attach 连接网格的常用形式如下:

attach face range <……>

命令中range 后跟定义范围的关键词,用来确定连接面的范围。需注意的是,命令attach 有一定的适用范围,采用它连接后的网格的信息不能为镜像(命令generate reflect )操作所复制。

attach face 命令常用来检查网格模型建立的正确性。如果模型中没有设置接触面,也没有设置特定的单元不连续的情况,直接运行attach face 命令可以输出网格中被连接的节点个数,若输出个数为0,则模型基本上不存在单元不连续的情况;若输出被连接的节点个数不为0,则要特别注意,很可能建模过程中存在一些错误,比如相邻基本形状的网格个数

不匹配等,需要读者仔细检查。

115

apply szz -1e6 range z 3.9 4.1 x 0,2 y 0,2 hist unbal solve save noatt.sav

两种情况下的模拟结果如图5-2和图5-3所示。由两个图可见,z

方向的位移云图分布基本一致,证明attach 关键词连接不同单元网格是正确的。

图5-2

用attach 关键词连接不同单元网格位移云图

图5-3 连续网格的位移云图

命令generate merge 也可以用来连接相邻的基本网格。与attach 不同的是,generate merge 是合并某一容差范围内的节点,即相邻点间的距离小于设定的容差,它们就会合并成一个点。使用generate zone 生成基本网格后,输入如下命令:

generate merge vtol

即可实现基本网格间的连接,vtol 为容差,用户可以根据分析需要自行设定。

gen merge 命令也可以用来检查网格模型的正确性。设置一个较小的容差,查看命令的运行结果,如果存在被合并的节点,则说明模型中某些节点的位置很接近,建模时设置的节点坐标可能存在错误,这种情况常常出现在将其他软件生成的网格文件导入到

FLAC3D 后形成的网格模型中,由于不同的软件输出的网格信息的精度不同,在导入过

程中某些节点的位置坐标有所偏差,从而在FLAC3D 读入时造成网格错误。因此,使用其他软件生成的网格模型必须要采用gen merge 命令来检查其正确性。

5.1.4 简单网格模型的建立

先建立一个简单的柱形隧道外围渐变放射网格,命令如下:

gen zone radcyl size 5 10 6 12 fill

显示结果如图5-4所示,内部网格已经被填充。

gen zone radcyl size 5 10 6 12 rat 1 1 1 1.2 p0 0,0,0 p1 100,0,0 p2 0,200,0 p3 0,0,100 gen zone radtun size 5 10 5 12 rat 1 1 1 1.2 p0 0,0,0 p1 0,0,-100 p2 0,200,0 p3 100,0,0

图5-5 柱形隧道外围渐变放射网格的建立

图5-7 用reflect 关键词生成巷道完整网格

5.2 其他网格模型的导入

FLAC3D 内置的网格生成器使网格和几何模型同时生成,这不利于复杂形状网格单元的连接、匹配和修改,一定程度上制约了其在复杂网格模型分析中的应用。很多读者基于FLAC3D 网格的数据格式自行编制了其他网格,如ANSYS 、ABAQUS 、ANSA 、HyperMesh 等导入到FLAC3D 的接口程序,大大提升了FLAC3D 的前处理功能。本节主要介绍两种常用有限元软件ANSYS 、ABAQUS 与FLAC3D 的模型接入。

FLAC3D 网格的数据格式。与大多数有限元软件)、单元(ZONE )、组(GROUP )的网格数据格式,实体impgrid 和expgrid 命令①”, 读者可以使用记事本、UltraEdit 等文本编辑工具打开。FLAC3D 网格的数据形式。

开始一个新的分析

;定义网格点生成块形单元,隶属于组1 impgrid 和expgrid 。

119

p0 1 0 0 p1 2 0 0 p2 1 1 0 p3 1 0 1 size 1 1 1 group 2 ;定义网格点生成块形单元,隶属于组2 expgrid 51.flac3d ;输出网格模型数据

运行上述命令后,程序会在命令所在文件夹内生成51.flac3d 文件,即FLAC3D 的网格数据,

内容如下。

* FLAC3D grid produced by FLAC3D * GRIDPOINTS

G 1 0.000000000e+000 0.000000000e+000 0.000000000e+000 G 2 1.000000000e+000 0.000000000e+000 0.000000000e+000 G 3 0.000000000e+000 1.000000000e+000 0.000000000e+000 G 4 0.000000000e+000 0.000000000e+000 1.000000000e+000 G 5 1.000000000e+000 1.000000000e+000 0.000000000e+000 G 6 0.000000000e+000 1.000000000e+000 1.000000000e+000 G 7 1.000000000e+000 0.000000000e+000 1.000000000e+000 G 8 1.000000000e+000 1.000000000e+000 1.000000000e+000 G 9 2.000000000e+000 0.000000000e+000 0.000000000e+000 G 10 2.000000000e+000 1.000000000e+000 0.000000000e+000 G 11 2.000000000e+000 0.000000000e+000 1.000000000e+000 G 12 2.000000000e+000 1.000000000e+000 1.000000000e+000 * ZONES

Z B8 1 1 2 3 4 5 6 7 8 Z B8 2 2 9 5 7 10 8 11 12 * GROUPS ZGROUP 1 1

ZGROUP 2 2

第一部分为网格点信息,格式为:网格点(G ridpoint )、网格点序号、网格点坐标(x ,y ,z );第二部分为单元信息,格式为:单元(Z one )、单元类型(B rick )、单元序号、组成单元的网格点拓扑信息(Brick 单元由8个网格点组成);第三部分为模型分组信息,格式为:组(ZGROUP )、组序号、组所包含的单元序号。本例中B8为8个网格点的Brick 单元,除此之外,FLAC3D 用的基本单元还有W6-wedge 单元,P5-pyramid 单元,T4-tetrahedral 网格点在全局坐标系下按照特定顺序进行编号,即单元的拓扑信息。例5.1图5-8所示,读者可以检查Brick 单元中网格点的拓扑关系,不难发现全局坐标系下8排布顺序与5.1节一致。

将其他软件的网格模型导入FLAC3D 时,只需将这些软件输出的网格模型信息按照的网格模型信息进行改造,就可得到符合FLAC3D 网格数据形式的模型文件。 5.2.2 ANSYS 网格模型的导入

ANSYS 软件是美国ANSYS 公司开发的大型通用有限元软件。近40年来ANSYS 力于CAE 技术的研究和发展,ANSYS 的设计全过程提供了全程CAE 的协同环境,可以使工程师们在设计的各个阶段使用CAE 技术,短研发流程、降低研发费用、提高设计质量。无论在国内还是国外,ANSYS

120

应用范围最广的CAE 软件之一,且由于ANSYS 的应用较为成熟,很多专业绘图软件如Pro/E 、UG 、CATIA 以及AutoCAD 等都提供与ANSYS 的对接,为用户建模提供了无限的选择空间。ANSYS 功能完备的前后处理器、强大的图形处理能力和得心应手的实用工具较好地弥补了FLAC3D 在前处理方面的不足,通过ANSYS 模型的导入,读者可以很容易地实现复杂岩土问题的建模,大大缩短采用FLAC3D 进行数值问题分析的时间。本节向读者演示AutoCAD 二维图形导入ANSYS ,然后在ANSYS 中进行分网,最后将采集到的网格点和单元信息导入FLAC3D 的过程。

图5-8 FLAC3D 单元网格点拓扑关系

1.AutoCAD 图形与ANSYS 的接入

将AutoCAD 中的二维图形以“.sat ”文件格式输出,可直接导入ANSYS 中去。本节以简单准AutoCAD 中二维图形导入ANSYS 中成模、分网、信息输出以及接入的方法。

(1)建立几何模型。

图5-9为AutoCAD 中二维边坡图形,模型由边坡和基岩两种材料组成,基岩厚度为5m ,边坡25m ,底部计算边界长60m ,坡顶宽15m 。

在工具栏中单击,然后选择图形边界,生成面域。在AutoCAD 主菜单中执行以下路径:

>输出>其他格式>输入文件名.sat ,选择所生成的两个面域后,即可将图5-9以“.sat ”文件

打开ANSYS ,主界面如图5-10所示。执行路径:

File> Import> SAT..

执行完毕后,二维图形便可导入ANSYS 中,显示如图5-11所示。

121

图5-9 AutoCAD 图形

图5-10 AutoCAD 图形

图5-11 ANSYS 中的二维图形

122

接下来基于平面模型在ANSYS 中采用拉伸(Extrude )的方法构筑厚度为5m 的准三维模型,操作如下:

路径1:Main Menu> Proprocessor> Modeling> Operate> Extrude> Areas> Along Normal 执行路径1,选取两个Area (面域)中的任一个,在弹出的Extrude Area by…对话框中(图5-12(a ))单击Apply ,弹出图5-12(b )所示Extrude Area along Normal 对话框,在DIST 选项中输入5,单击OK 按钮;回到Extrude Area by…对话框,选取另一个Area ,单击OK 按钮,重复该操作过程,即可完成准三维边坡模型的构筑,如图5-13所示。

(a ) (b )

图5-12 拉伸二维图形

5-13 ANSYS 中的三维图形

123

(2)分网。

建立几何模型后,即可进行网格划分。首先须定义材料类型、实常数以及单元类型。 路径1:Main Menu> Proprocessor> Element Type> Add/Edit/Delete

执行路径1,打开Element Types 对话框(如图5-14),单击Add ,打开单元类型库对话框,选取Solid45单元,如图5-15所示,单击OK 按钮后,最后单击Element Types 对话框中的Close 按钮,完成单元类型的定义。

图5-14 Element Types 对话框

图5-15 Solid45单元选取对话框

路径2:Main Menu> Proprocessor> Real Constants> Add/Edit/Delete

执行路径2,打开Real Constants 对话框(如图5-16(a )所示),单击Add 型库对话框,选取Type 1 Solid45选项,然后单击OK 按钮,弹出如图5-16(b 于实体Solid45单元没有实常数项,所以单击Close 按钮。

路径3:Main Menu> Material Props> Material Models

执行路径3,打开定义材料本构模型对话框,如图5-17所示,依次执行

124

Available> Structural> Linear> Elastic> Isotropic 选项,弹出线弹性材料模型对话框(图5-18(a )),按照提示输入弹性模量和泊松比,再单击Density 选项,打开密度输入对话框(图5-18(b )),输入密度后单击OK 按钮。

(a ) (b ) 图5-16 Real Constants 对话框

5-17 定义材料本构模型对话框

在Define Material Model Behavior 对话框的Material 下拉菜单中选取New model 选项,打开定2”,单击OK 按钮。继续执行Material Models Available> 选项,按照提示输入弹性模量、泊松比和密度,这里采用的是15GPa ,泊松比为0.3,密度为2550kg/m 3,最后关闭定义材料本构模型对

125

(a ) (b ) 图5-18 本构模型参数输入对话框

由于分析过程通过FLAC3D 实现,所以ANSYS 分网时采用的本构模型和参数

并无实际意义,仅仅是用于区分不同材料而已,读者输入经验参数即可。

定义材料类型、实常数以及单元类型后,通过选择不同材料类别并设置分网的控制尺寸,对不同模型区域进行网格的剖分,如下所述:

路径4:Main Menu>Meshing> Size Cntls>Manual Size>Lines>Picked Lines

执行路径4,弹出以线来控制单元尺寸选取对话框,选取要分割的线,然后单击Apply 按钮,

打开单元尺寸对话框,如图5-19所示。在单元分割等分文本框中输入相应的等分数,然后再单击OK 按钮,直到所有的线都被分割完为止,最后单击OK 按钮,如图5-20所示。

图5-19 单元尺寸对话框

路径5:Main Menu> Meshing> Mesh Attributes> Default Attribs

执行路径5,弹出要划分的单元属性设置对话框,如图5-21和实常数中选取边坡模型单元(材料编号为1),然后单击OK 按钮。依次执行Mesh> V olumes> Map

126

单击OK 按钮。重复执行路径5,在单元类型、材料和实常数中选取基岩模型单元(材料编号为2),单击OK 按钮。生成模型如图5-22所示。

图5-20 线分控制单元大小图

5-21 边坡单元属性设置对话框

(3)网格点、单元以及组信息的输出。

生成网格模型后,读者便可采用Nlist 、Elist 命令将模型的单元和网格点信息输出,也可直接ANSYS 内嵌的APDL 语言编写程序执行此过程。这里介绍河海大学郑文棠博士编写的命令流,

图5-22 ANSYS 模型网格图

flac3d常用命令

1、最先需要掌握的命令有哪些? 答:需要掌握gen, ini, app, plo, solve等建模、初始条件、边界条件、后处理和求解的命令。 2、怎样输出模型的后处理图? 答:File/Print type/Jpg file,然后选择File/Print,将保存格式选择为jpe文件。 3、怎样调用一个文件? 答:File/call或者call命令 4、如何施加面力? 答:app nstress 5、如何调整视图的大小、角度? 答:综合使用x, y, z, m, Shift键,配合使用Ctrl+R,Ctrl+Z等快捷键。 6、如何进行边界约束? 答:fix x ran (约束的是速度,在初始情况下约束等效于位移约束)。 7、如何知道每个单元的ID? 答:用鼠标双击单元的表面,可以知道单元的ID和坐标。 8、如何进行切片? 答:plo set plane ori (点坐标) norm (法向矢量) plo con sz plane (显示z方向应力的切片) 9、如何保存计算结果? 答:save +文件名 10、如何调用已保存的结果? 答:rest +文件名;或者File / Restor 11、如何暂停计算? 答:Esc 12、如何在程序中进行暂停,并可恢复计算? 答:在命令中加入pause命令,用continue进行继续。 在我们分步求解中想得到某一个过程中的结果,不用等到全求完,还可以在分布求解错误的时候就进行改正,而不是等到结果出来。 13、如何跳过某个计算步? 答:在计算中按空格键跳过本次计算,自动进入下一步 14、Fish是什么东西?Fish是否一定要学?

答:是FLAC3D的内置语言,可以用来进行参数化模型、完成命令本身不能进行的功能。Fish可以不用学,需要的时候查Mannual获得需要的变量就可以了。 15、FLAC3D允许的命令文件格式有哪些? 答:无所谓,只要是文本文件,什么后缀都可以。 16、如何调用一些可选模块? 答:config dyn (fluid, creep, cppudm) 17、如何在圆柱体四周如何施加约束条件? 可以用fix ... ran cylinder end1 end2 radius r1 cylinder end1 end2 radius r2 not,其中r2

flac3d建模方法

利用FLAC3D 进行数值分析的第一步便是如何将物理系统转化为由实体单元和结构单元所组合的网格模型(Modeling ),该模型与分析对象的几何外形特征相一致。目前,FLAC3D 网格模型的建立方法可分为两种,即直接法及间接法,直接法是按照分析对象的几何形状利用FLAC3D 内置的网格生成器建模,网格和几何模型同时生成,该方法较适用于简单几何外形的物理系统;与之不同,间接法则适用于复杂的、单元数目较多的物理系统,该方法建立网格模型时,像一般计算机绘图软件一样,通过点、线、面、体,先建立对象的几何外形,再进行实体模型的分网(Meshing ),以完成网格模型的建立,FLAC3D 自身不具备间接法建模功能,读者可借助第三方软件与FLAC3D 的接入轻松实现。本章主要介绍FLAC3D 的网格建模方法,包括利用网格生成器建立简单网格、利用第三方软件进行模型导入以及复杂模型的方法。 本章要点: z FLAC3D 网格单元的基本类型 z 网格的连接 z FLAC3D 网格的数据格式 z 常用有限元模型与FLAC3D 的接入 z 复杂模型的建立 5.1 简单网格的建立 5.1.1 基本网格的形状 FLAC3D 内置网格生成器中的基本形状网格有13种,通过匹配、连接这些基本形状网格单元,能够生成一些较为复杂的三维结构网格。网格单元的基本类型和特征如表5-1所示,基本可以归为四大类,即六面块体网格、退化网格、放射网格和交叉网格。 5 FLAC3D 建模方法

表5-1 FLAC3D 基本形状网格的基本特征

5.1.2 单元网格的生成 生成块体网格(Brick )的命令格式如下: generate zone brick p0 x0 y0 z0 p1 x1 y1 z1 …… p7 x7 y7 z7 size n1 n2 n3 ratio r1 r2 r3 或者 generate zone brick p0 x0 y0 z0 p1 add x1 y1 z1 …… p7 add x7 y7 z7 size n1 n2 n3 ratio r1 r2 r3 在该命令中,generate 为“生成网格”之意,可以缩写为gen ,zone 表示该命令文件生成的是实体单元,brick 关键词表明建立的网格采用的是brick 基本形状,p0,p1……p7是块体单元的8个控制点,其后跟这些点的三维坐标值(xn, yn, zn ),含义是由8个点可确定一个六面体网格。不过,p0~p7各点的定义需遵从“右手法则”,不能随意颠倒顺序。如果采用全局坐标系,三维坐标值应为建模空间内的全局三维坐标值;若采用局部坐标系,则除p0点采用全局三维坐标值外,其他点的坐标值都必须取其相对于点p0的三维坐标值,且在点编号后加关键词add (见本节第2行命令)。size 为定义坐标轴(x ,y ,z )方向网格单元数目的关键词,其后跟划分的单元数目(n1,n2,n3);ratio 为定义相邻单元尺寸大小比率的关键词,其后跟坐标轴方向相邻网格单元的比率(r1,r2,r3)。 如果生成的是长方体网格,前述命令可以简化为: generate zone brick p0 x0 y0 z0 p1 x1 y1 z1 p2 x2 y2 z2 p3 x3 y3 z3 size n1 n2 n3 ratio r1 r2 r3 或者 generate zone brick p0 x0 y0 z0 p1 add x1 y1 z1 p2 add x2 y2 z2 p3 add x3 y3 z3 & size n1 n2 n3 ratio r1 r2 r3 即只需采用4个控制点即可确定该长方体。 此外,当网格的几何形状为立方体时,上述命令文件可以用下列命令替代,进一步简化,关键词edge 后跟的evalue 是立方体的边长。 generate zone brick p0 x0 y0 z0 edge evalue size n1 n2 n3 ratio r1 r2 r3

FLAC3D学习笔记(自己总结版)

一、建立模型笔记 1键盘上的键的功能:X,Y,Z分别控制所建立的模型围绕X,Y,Z三个轴做逆时针旋转.如果打开大小写锁定键,分边按XYZ时建立的模型会做顺时针旋转.+号的功能是加大模型旋转的角度,-号的功能是减小模型旋转的角度。 2键盘上的上下左右四个键可以实现图形的向上向下,向左和向右的移动. 3当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿,需要预先编组,编组的方法如下: gen zon tunint p0 0 0 0 p1 0 10 0 p2 5 5 0 p3 0 0 -5 p4 5 10 0 & p5 5 5 -5 p6 0 10 -5 p7 5 10 -5 dim sq2 sq2 1 sq2 1 1 1 group(编组) z1(组名为:z1) & fill group tunnel 4镜像整个模型的方法:首先判断即将镜像的模型在原模型的哪个方向(即三个轴的方向),然后在轴所在的方向上去两个点.其中一个是原点(origin(xyz)). 5镜像部分模型的方法: gen zone reflect normal (x,y,z) origin (x,y,z) range group z1就可以了. 6特别要注意的一点:交叉巷道的巷道充填和巷道的网格是两个组,所以在镜像的时候不要忘了给充填部分镜像. 7 group radcyl range group cylint not(编组的时候不包括cylint) 7 快捷键总结 Ctrl+Z 局部缩放的功能。Ctrl+R的功能是恢复到初始状态。 8模型建立的方法: 方法1:利用默认值生成网格, 各个默认值:(1)p0的默认值是(0,0,0),网格的每边的单元格数size默认值是10,网格每边的长度默认值为size的值. 方法2:利用4个点的坐标来生成矩形网格.p0~p3 size 方法3:利用edge来确定边长生成矩形网格. 方法4:利用参数ratio来确定单元体几何边画边生成矩形网格. 方法5:利用参数add(相对坐标)来生成矩形网格. 方法6:利用八个点的左边来生成矩形网格. 9、用户自定义模型的方法 我来贡献一点自己的成果: FLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所有本构模型的源代码,且给出了Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便地进行本构模型的修改与开发。为了方便起见,下面的说明以建立UserModel模型为例。 (1) 在模型头文件(usermodel.h)中进行新的本构模型派生类的声明,修改模型的ID(为避免与已有模型冲突,一般要求大于100)、名称和版本,修改派生类的私有成员,主要包括模型的基本参数及程序执行过程中主要的中间变量。( ? p6 u' J5 Q3 y( a (2) 在程序C++文件(usermodel.cpp)中修改模型结构(UserModel::UserModel(bool bRegister): Constit -utive Model)的定义,这是一个空函数,主要功能是给(1)中定义的所有私有成员赋初值,一般均赋值为0.0。(3) 修改const char **UserModel: roperties()函数,该函数包含了给定模型的参数名称字符串,在FLAC3D的计算命令中需要用到这些字符串进行模型参数赋值。 (4) const char **UserModel::States()函数是单元在计算过程中的状态指示器,可以按照需要进行修改指示器的内容。 (5) 按照派生类中定义的模型参数变量修改double UserModel::GetProperty()和void UserModel:: SetProperty()函数,这两个函数共同完成模型参数的赋值功能。' U; e G' W" Q# R4 q/ @9 G" h (6) const char * UserModel::Initialize()函数在执行CYCLE命令或大应变模式下对于每个模型单元(zone)调用一次,主要执行参数和状态指示器的初始化,并对派生类声明中定义的私有变量进行赋值。值得注意的是,Initialize()函数调用时没有定义应变分量,但可以调用应力分量,但不能对应力进行修改。9 n# e8 |' c- B/ q, B B5 m

FLAC3D建模(复杂边坡)问题

FLAC3D建模(复杂边坡)问题 总在论坛里面看帖子,学习到了很多建模的技巧,觉得基本上是通过ansys与surfer导网格到FLAC3D进行建模,这其中就存在一些问题,如果模型比较复杂的话,可能会严重失真,例如边坡(我是岩土工程专业的,比较关注边坡),如果边坡内部存在多条断层,且存在崩积物、坡积物叠加分布的现象,我们假设存在基岩上覆盖10层崩坡积物,那用ansys与surfer 导入的网格是否能够真实反映边坡的真实情况呢?(我没有具体用ansys与surfer做过,所以并不知道是否可行!),最近做的一个边坡,强风化基岩上存在15层叠加分布的崩坡积物,且边坡内部存在3条断层,考虑了很久,觉得用ansys与surfer做的话可能不合适(如果有朋友能做的话,请告诉我,先谢谢了!),最后考虑用AutoCAD建模,然后导入FLAC3D的方法,模型建立起来后,觉得效果还不错,下面就说下我的方法,有什么不恰当之处,还请各位批评指正。 1、首先在AutoCAD中建模,因为我觉得我们的剖面图基本上是AutoCAD绘制的,尽量就CAD建模的话可以省下不少事(个人观点),建立3维模型需要尽量多的剖面,因此,在边坡表面地形变化处、坡体内部不同成因岩土体处都需要做剖面; 2、剖面做好后,进行剖面分层,就是在剖面上尽量细致的划分出不同成因性质的岩土体层,例如崩积物、坡积物,之后利用AutoCAD的3dmesh功能进行网格划分; 3、基本上只需要brick与wedge就可以了,自己编写一个VB的程序,可以读出3dmesh网格节点并输出成*.dat文件; 例如:Z方向为单位长度,读取3dmesh(brick)程序 Dim AcadApp As AutoCAD.AcadApplication Set AcadApp = GetObject(, "AutoCAD.Application") Dim Mydocument As AcadDocument Set Mydocument = AcadApp.ActiveDocument Dim Myentity As AcadPolygonMesh Dim Mysel As AcadSelectionSet Dim fil_type(0) As Integer Dim fil_data(0) As Variant Dim Mycoordinates As Variant

FLAC3D和3DEC的区别(itasca论坛)

FLAC3D和3DEC的区别(itasca论坛) 在“三维可视化”专区中一位坛友讲到了3DEC建模和参数取值困难的问题,且被业界所“诟病”。楼主是3DEC的忠实用户,也用过FLAC3D和PFC,就3DEC自身的这些“问题”,略谈一二。 在建模环节上,3DEC是典型的“欺生”,即生手上来的时候可能觉得无从下手,而掌握以后觉得游刃有余。有兴趣的坛友可以访问Itasca网站中咨询研究专题下的一些应用实例,看看那里的3DEC模型,所有这些模型,除其中一个以外,建模时间都在5天以内,一般为3天,不助任何第三方软件。大家可以比较一下,这些模型用其他软件建模时需要花多长时间。 与其他ITASCA软件如FLAC3D一致地,3DEC采用命令流建模,可以嵌入FISH。这对初学者而言有些困难,但如果掌握了就很灵活: 相比较菜单操作而言,命令流显然要困难一些,因此难学。但一旦掌握,修改模型只需要修改命令流,无需进行重复的菜单操作,熟手因此多喜欢命令流的方式; FISH本身就不是为初学者准备的,但掌握了FISH以后,任何有规律性对象的建模就容易得多。比如多机组的地下厂房洞室群,用FISH建立起来了其中一个单元以后,修改参数即可很快获得其他单元。建模过程中FISH的应用可以大大提高效率,是命令流、特别是菜单操作所难以比拟的。 因此,3DEC是典型的“欺生”,学习3DEC和训一匹“烈马”有得

一比,如果你不能驯服它,你只能是望而却步。 学习3DEC还需要“洗脑”,即固有的理论和思维模式可能会有所障碍。 不知道哪位坛友在基础理论学习过程中系统学习过非连续力学方法、或者说学习过离散元方法。以楼主的理解,国内一些关于离散元的文献中,只要谈深一点,就不乏误解和错误。其中的原因是多方面的,一是没有跟上国际潮流,没有真正弄懂就开始写文章。二是既往的教育背景基本都是连续理论和有限元方法,当用这种思维定式来应用离散元程序如3DEC时,可能会受到一些制约。 3DEC处理的对象包括两大部分,即块体和接触(结构面),相比较而言,有限元乃至FLAC3D针对的对象只是其中的块体,即便存在结构面,但在程序结构中的处理方式也与3DEC有着本质的差别。 如果说单元网格是数值模型的基本单元,那么,3DEC中包括两种网格体系,即接触网格和块体网格。这要求用户在脑子里建立这种概念,即3DEC程序结构中有两个系列的网格,而不是传统的一个系列。当然,从应用角度,如果不理会这一点也无所谓,但如果是达到写文章和理解程序的深度,则需要理解这种差别及其带来的不同。 在3DEC中,接触被作为块体的边界,因此,两个块体相接触时,无需节点之间有任何的对应关系。在FLAC专区中有一幅帖子问“这样的网格行不行”,如果放在3DEC中,这不是问题。这一差别显

FLAC3D50模型及输入参数说明

1.1模型参数代码 可参考manual中各个章节的command命令及说明,注意单位。用prop 赋值。

16 ttable 塑性拉应变-抗拉强度的表号 下列参数可以显示、绘图与通过fish访问 1 es_plastic 塑性切应变 2 et_plastic 塑性拉应变 3 ff_count 检测切应变反向的数 4 ff_cvd 体应变,εvd 经典粘弹性模型的材料参数(Classical Viscoelastic (Maxwell Substance) –MODEL mechanical viscous) 1 bulk 弹性体积模量,K 2 shear 弹性剪切模量,G 3 viscosity 动力粘度,η 粘弹性模型的材料参数(Burgers Model –MODEL mechanical burgers) 1 bulk 弹性体积模量,K 2 kshear Kelvin弹性剪切模量,G K 3 kviscosity Kelvin动力粘度,ηK 4 mkshear Maxwell切边模量,G M 5 mviscosity Maxwell动力粘度,ηM 二分幂律模型的材料参数(Power Law –MODEL mechanical power) 1 a_1 常数,A1 2 a_2 常数,A2 3 bulk 弹性体积模量,K 4 n_1 指数,n1 5 n_2 指数,n2 6 rs_1 参考应力,σ1ref 7 rs_2 参考应力,σ2ref 8 shear 弹性剪切模量,G 蠕变模型材料参数(WIPP Model –MODEL mechanical wipp) 1 act_energy 活化能,Q 2 a_wipp 常数,A 3 b_wipp 常数,B 4 bulk 弹性体积模量,K 5 d_wipp 常数,D 6 e_dot_star 临界稳定状态蠕变率, 7 gas_c 气体常数,R 8 n_wipp 指数,n 9 shear 弹性剪切模量,G 10 temp 温度,T 下列参数可以显示、绘图与通过fish访问

FLAC3D学习笔记(自己总结版)

FLAC3D学习笔记(自己总结版) 一、建立模型笔记1键盘上的键的功能:X,Y,Z分别控制所建立的模型围绕X,Y,Z三个轴做逆时针旋转、如果打开大小写锁定键,分边按XYZ时建立的模型会做顺时针旋转、+号的功能是加大模型旋转的角度,-号的功能是减小模型旋转的角度。2键盘上的上下左右四个键可以实现图形的向上向下,向左和向右的移动、3当在一个区域建立多个模型的时候,有时候为了镜像单个模块儿,需要预先编组,编组的方法如下:gen zon tunint p0 0 0 0 p1 010 0 p255 0 p3 0 05 p6 0105 dim sq2 sq21 sq2111 group(编组) z1(组名为:z1) &fill group tunnel4镜像整个模型的方法:首先判断即将镜像的模型在原模型的哪个方向(即三个轴的方向),然后在轴所在的方向上去两个点、其中一个是原点(origin(xyz))、5镜像部分模型的方法: gen zone reflect normal (x,y,z) origin (x,y,z) range group z1就可以了、6特别要注意的一点:交叉巷道的巷道充填和巷道的网格是两个组,所以在镜像的时候不要忘了给充填部分镜像、7 group radcyl range group cylint not (编组的时候不包括cylint)7 快捷键总结Ctrl+Z 局部缩放的功能。 Ctrl+R的功能是恢复到初始状态。8模型建立的方法:方法1:利用

默认值生成网格,各个默认值:(1)p0的默认值是(0,0,0),网格的每边的单元格数size默认值是10,网格每边的长度默认值为size的值、方法2:利用4个点的坐标来生成矩形网格、p0~p3 size方法3:利用edge来确定边长生成矩形网格、方法4:利用参数ratio来确定单元体几何边画边生成矩形网格、方法5:利用参数add(相对坐标)来生成矩形网格、方法6:利用八个点的左边来生成矩形网格、9、用户自定义模型的方法我来贡献一点自己的成果:; U" j/ ?7 L+ a0 uFLAC3D的二次开发环境提供了开放的用户接口,在软件安装文件中包含了软件自带所有本构模型的源代码,且给出了Mohr-Coulomb模型和应变软化模型的编译示例,因此可以方便地进行本构模型的修改与开发。为了方便起见,下面的说明以建立UserModel模型为例。c % b1 h、 \ K6 Q: l(1) 在模型头文件(usermodel、h)中进行新的本构模型派生类的声明,修改模型的ID(为避免与已有模型冲突,一般要求大于100)、名称和版本,修改派生类的私有成员,主要包括模型的基本参数及程序执行过程中主要的中间变量。( ? p6 u J5 Q3 y( a(2) 在程序C++文件(usermodel、cpp)中修改模型结构(UserModel::UserModel(bool bRegister): Constit L, t% V、D(4)

多心圆隧道用FLAC3D直接建模的方法

多心圆隧道直接用FLAC3D建模 丁其乐2013/6/18 多心圆隧道模型使用FLAC3D建模的难点在于FLAC3D中并没有以不规则曲线为边界的原始3D基本网格,隧道的断面图见图一 O4 图一 隧道内轮廓线是由多个圆弧做成的,所以内部区域模型只能通过3D基本网格拼接而成,这时我想到了使用cylinder(圆柱体形网格)拼接,但是这个圆弧的圆心并不是一个点,怎么办?这时我想到了通过fish来调整圆心位置,使得各圆弧的圆心都调整到O1位置,同时又要保证各圆弧的圆弧线不变,且内部网格点的相对位置不变。 下面我以一个简单的例子来说明我调整的过程: O1 O2 M1 M2 A B 图二 在图二中圆弧O1AB 的圆心为O1,圆心坐标为(X1,Z1),现在通过坐标调整把圆弧O1AB 所占区域调整到O2AB(如上图所示),O2的坐标为(X2,Z2),同时O1A上面一点M1,调整之后在O2A上为M2。A和M1的坐标分别为A(Ax,Az)和M1(M1x,M1z)。 设:

|11| |1| O M k O A = (1) '|1| 1|1| M A k k O A = =- (2) M2的坐标为M2x,M2y 则: '21(21)M x M x k O x O x -=- (3) '21(21)M z M z k O z O z -=- (4) 由(3)、(4)就以求出来M2的坐标。 下面用一个简单的例子说明实现代码。 new title 调整圆弧区域到指定位置 ;定义参数 def para ;O1的平面坐标 O1x=-2.9 O1z=0 ;O2的平面坐标 O2x=0 O2z=0 r1=5.9 ;O1的半径 a1=0*degrad ;A 点与X 轴的夹角 a2=30*degrad ;B 点与X 轴的夹角 ;A B 点的坐标 Ax=r1*cos(a1)+O1x Az=r1*sin(a1)+O1z Bx=r1*cos(a2)+O1x Bz=r1*sin(a2)+O1z end para ;生产模型 gen zo cyl p0 (O1x,0,O1z) p1 (Ax,0,Az) p2(O1x,1,O1z) p3(Bx,0,Bz) size 4 1 6 group '调整' gen zo cyl p0 (O1x,2,O1z) p1 (Ax,2,Az) p2(O1x,3,O1z) p3(Bx,2,Bz) size 4 1 6 group '原始';为了对比而建 ;调整节点位置 def ding pg=gp_head loop while gp_group(pg,1) = '调整' xx=gp_xpos(pg)

Flac3D复杂三维模型建立_jx

基于Gocad-Surfer-犀牛-Ansys的Flac3d建模步骤 (金星整理) 准备软件: Autocad→Gocad→Surfer→Rhinoceros(犀牛)→Ansys→Ansys to Flac3D→Flac3D 建模思路: 以专业地质建模软件Gocad为基础,借助Ansys的强大建模能力,为Flac3d的建立复杂的三维地质模型,整个过程的文件目录尽量不要出现中文。 建模步骤: 1 AutoCAD 目的:将CAD文件的dwg格式转换成dxf格式文件。 (1) 清除无关图层 只留下含有等高线数据的图层。(建议将等高线另外复制出去到一个新的CAD文件中进行操作)。 (2) 赋予高程 一般地形图的等高线上都赋有高程信息,保证每条等高线都有。 (3) 保存留于GoCAD调用 另存文件为XXX.dxf文件(2007、2004、2000版本都可以),作为GoCAD软件的处理对象。 2 GoCAD 目的:将CAD中等高线信息转成txt格式文件。 (1) 打开GoCAD软件 打开软件,New project(自己命名),点保存,再确认后,弹出窗口选择Select all,再次确认。

(2) 导入文件 操作过程:File→Import Objects→Cultural Data→DXF,导入之后右下角有进度条,直到100%,可能会需要一点时间。 (3) 显示等高线图 操作过程:Objects→选中所需等高线图层。 (4) 保存文件 操作过程:File→Export Objects→Surface→Custom ASCII→Output File(选到文件夹,并键入名字)→增加X、Y、Z→OK,导出XXX.dat文件,直接不用处理,在Surfer中调用。

FLAC3D命令流(整理版)

1、怎样查看模型? 答:plot grid 可以查看网格,plot grid num 可以查看节点号。 2、请问在圆柱体四周如何施加约束条件? 答:可以用fix ... ran cylinder end1 end2 radius r1 cylinder end1 end2 radius r2 not,其中r2

FLAC3D双线隧道建模

new gen zone radcyl p0 9 0 0 p1 add 6 0 0 p2 add 0 200 0 p3 add 0 0 6 & size 3 20 6 3 dim 3 3 3 3 rat 1 1 1 1 group inner fill group out gen zone reflect norm 0 0 -1 origin 9 0 0 gen zone reflect norm -1 0 0 origin 9 0 0 gen zone reflect norm -1 0 0 origin 0 0 0 gen zone brick p0 -15 0 6 p1 add 30 0 0 p2 add 0 200 0 p3 add 0 0 12 & size 15 20 6 group j1 gen zone brick p0 -3 0 -6 p1 add 6 0 0 p2 add 0 200 0 p3 add 0 0 12 & size 3 20 6 group j2 gen zone brick p0 -15 0 -43 p1 add 30 0 0 p2 add 0 200 0 p3 add 0 0 37 & size 15 20 18 group j3 gen zone brick p0 15 0 -6 p1 add 37 0 0 p2 add 0 200 0 p3 add 0 0 24 & size 18 20 12 group j4 gen zone brick p0 15 0 -43 p1 add 37 0 0 p2 add 0 200 0 p3 add 0 0 37 & size 18 20 18 gen zone brick p0 -39 0 -6 p1 add 24 0 0 p2 add 0 200 0 p3 add 0 0 24 & size 12 20 12 gen zone brick p0 -39 0 -43 p1 add 24 0 0 p2 add 0 200 0 p3 add 0 0 37 & size 12 20 18 plot show add surface yellow add axes black quit save tun1.sav model mohr pro bulk=0.6e9 shear=0.36e9 friction=35 pro cohesion=1e5 tension=1e5 set gravity 0 0 -9.81 initial density=1000 apply szz -1.4e6 range z 17.9 18.1 fix x range x -39.1 38.9 fix x range x 51.9 52.1 fix y range y -0.1 0.1 fix y range y 199.9 200.1 fix z range z -43.1 -42.9 fix z range z 17.9 18.1 ini sxx -1.4e6 syy -1.4e6 szz -1.4e6 history unb h gp xdis 6 0 -6 h gp zdis 0 0 6 h gp xdis 6 25 -6

相关主题
文本预览
相关文档 最新文档