掌桥专利:专业的专利平台
掌桥专利
首页

一种基于FLAC软件实现非结构化网格拉伸快速建模方法及系统

文献发布时间:2024-05-31 01:29:11


一种基于FLAC软件实现非结构化网格拉伸快速建模方法及系统

技术领域

本发明属于岩土工程数值模拟建模技术领域,具体涉及一种基于FLAC软件实现非结构化网格拉伸快速建模方法及系统。

背景技术

随着计算机技术的飞速发展,岩土工程数值模拟已经成为岩土工程分析中不可或缺的一部分。FLAC3D是一款专为岩土工程开发的专业数值计算软件,内置模型丰富,非线性计算效率高,应用非常广泛。在众多的岩土工程数值模拟软件中,FLAC软件是为解决岩土工程的力学分析问题而开发的数值模拟软件。FLAC3D以其分析能力强、可扩展性高,特别是在求解复杂岩土工程问题方面具有显著优势,得到了广泛的应用。然而,在FLAC3D的早期版本中,它的缺点是操作界面不友好,建模过程往往依赖于繁琐的命令流用户接受性差,上手较困难,这在一定程度上限制了其应用范围和建模效率。同时FLAC3D建模功能较弱,其内置的建模语句只能建立常见的规则形状,虽然可以用fish语言对模型进行调整,但fish上手依然困难。以上几点导致FLAC3D的工程实用性大大降低,也使很多初学者望而生畏。

AutoCAD是非常常用的工程制图软件,操作简单上手快,几乎所有的设计人员都能熟练操作,如果能够通过某种方式在AutoCAD绘图与FLAC3D建模之间架设一座桥梁,那么就可以大大简化FLAC3D的建模过程,提高FLAC3D的使用效率。

为了克服这一限制,FLAC3D在5.0以后得版本中引入了Extrusion工具。针对几何形状规则且三维上有微小的变化,这一工具可以通过快速建立结构化网格,然后通过Extrusion拉伸二维模型生成三维模型,大大简化了建模过程,提高了建模效率。Extrusion工具,至今已经历了多次版本更新。截止目前最新的版本,Extrusion工具也只能对结构化网格进行拉伸,而对于地形起伏,不规则复杂的二维工程地质剖面(如自然边坡剖面、河道剖面等),Extrusion工具自动划分的网格通常以含非结构化网格为主,对这种复杂的工程地质剖面,FLAC3D不能使用Extrusion功能生成相应的假三维模型,导致其在建模能力和应用方面受到一定的限制,参见图1。

发明内容

本发明的目的是:本发明针对FLAC软件中的Extrusion工具只能拉伸二维剖面中结构化网格生成三维模型的不足,提供了一种基于FLAC软件实现非结构化网格拉伸快速建模方法及系统。本发明能使FLAC软件实现非结构化网格拉伸,从而依据二维工程地质剖面,快速建立FLAC3D模型文件。

本发明的技术方案是:一种基于FLAC软件实现非结构化网格拉伸快速建模方法,将二维剖面模型文件导入FLAC2D软件;在FLAC2D软件中对二维剖面模型进行网格单元划分及分组后生成二维网格文件;提取二维网格文件中的二维网格节点信息、二维网格单元信息和二维网格单元分组信息,并转换为FLAC3D软件中三维模型对应的三维网格节点信息、三维网格单元信息和三维网格单元分组信息;根据FLAC3D软件模型的编码原则,基于所述的三维网格节点信息、三维网格单元信息和三维网格单元分组信息编制相应的接口文件。

前述的基于FLAC软件实现非结构化网格拉伸快速建模方法中,二维网格文件的生成过程如下:

利用FLAC2D软件自动生成二维剖面模型的几何图形;设置划分单元网格的边长后,利用FLAC2D软件自动划分网格单元;利用划分的网格单元生成FLAC2D的模型文件,并进行分组命名;将模型文件转换为ASCII格式的二维网格文件。

前述的基于FLAC软件实现非结构化网格拉伸快速建模方法中,所述的三维网格节点信息的转换过程如下:

提取二维网格文件中的二维网格节点信息,包括:

将网格节点

按下式计算网格节点

i

X

Y

Z

其中,1≤

S

前述的基于FLAC软件实现非结构化网格拉伸快速建模方法中,所述的三维网格单元信息的转换过程如下:

提取二维网格文件中二维剖面模型的二维网格单元信息,包括:

基于二维网格单元信息在FLAC3D软件中确定三维模型的三维网格单元信息,确认过程如下:

对二维剖面模型的二维网格单元进行拉伸,得到对应类型的三维网格单元;

利用得到的三维网格单元替换二维网格文件中对应类型的二维网格单元,得到三维模型中对应的三维网格单元类型;

基于三维网格单元的控制点确定三维网格单元的网格节点编号。

前述的基于FLAC软件实现非结构化网格拉伸快速建模方法中,所述的三维网格单元分组信息的转换过程如下:

提取二维网格文件中二维剖面模型的二维网格单元分组信息,包括:

将二维剖面模型的分组名称

按下述条件计算

如果

前述的基于FLAC软件实现非结构化网格拉伸快速建模方法中,所述的二维网格节点信息、二维网格单元信息和二维网格单元分组信息的提取基于记事本软件实现。

前述的基于FLAC软件实现非结构化网格拉伸快速建模方法中,接口文件的编制如下:

按照FLAC3D模型文件的编码原则及格式,将所述的三维网格节点信息、三维网格单元信息和三维网格单元分组信息,依次拷入记事本软件中,文件名另存为“*.f3grid”,即可输出相应的FLAC3D网格文件。

一种如前所述的基于FLAC软件实现非结构化网格拉伸快速建模方法的系统,包括:

输入模块,用于提取二维网格文件中二维剖面模型的二维网格节点信息、二维网格单元信息、二维网格单元分组信息;

设置模块,用于设置三维模型中的拉伸长度

计算模块,用于计算三维模型中的三维网格节点信息、三维网格单元信息、三维网格单元信息分组信息;

输出模块,用于根据flac3D的编码原则,基于所述的三维网格节点信息、三维网格单元信息、三维网格单元信息分组信息生成相应的flac3D模型文件。

有益效果:

(1)针对现有版本的FLAC3D中的Extrusion工具不能对复杂的二维工程地质剖面建立的非结构化网格进行拉伸生成三维模型的不足,本发明借助FLAC2D软件可以快速导入CAD模型文件,并对模型文件进行快速的网格划分的功能,通过对FLAC2D模型(*.f2grid)中的网格节点进行坐标变换、平移,计算出拉伸后形成的三维模型下的网格节点(Gridpoints)三维坐标,根据FLAC3D软件模型的编码原则,进行相应的网格单元(Zones)的划分和网格单元分组(Blocks),并编制相应的接口文件,从而实现基于FLAC软件实现非结构化网格拉伸快速建模的方法,极大的扩展了FLAC3D的建模能力。

(2)本发明可以快速实现从复杂二维剖面到FLAC3D的假三维模型建立。传统根据复杂的二维剖面建立FLAC3D的三维模型文件,需借助其他第三方有限元建模软件(如ANSYS、ABAQUS、Midas)或三维网格划分或建模软件(如Hypermesh、GoCAD、Rhino)等建立相应的假三维模型,然后通过编制相应的接口(例如ANSYS to FLAC3D接口,ABAQUS toFLAC3D接口 ,Griddle),导出FLAC3D的模型文件。这些依靠外部的建模软件多为英文界面,操作复杂,建模过程繁琐,相应的接口文件只能针对特定版本的软件进行开发。这就导致根据传统的复杂的二维剖面建立FLAC3D的假三维模型效率相对低下。本发明基于FLAC2D的软件自身具有快速建模、网格自动划分,单元分组等功能,依据剖面拉伸的原理,通过对FLAC2D二维模型(*.f2grid)中的网格节点进行坐标变换、平移,计算出拉伸后假三维模型下的网格节点(gridpoint)三维坐标,根据FLAC3D软件模型的编码原则,进行相应的单元(zone)的划分和单元分组(Block),编制相应的接口文件,从而可以快速实现复杂二维剖面到FLAC3D的假三维模型的建立。

(3)本发明扩展了FLAC3D的建模能力。FLAC3D的Extrusion工具只能对简单的二维剖面划分的结构化网格进行拉伸(Extrusion)生成三维模型。本发明不仅可以实现对结构化网格进行拉伸,还可以对非结构化网格进行拉伸,从而扩展了FLAC3D的建模能力。

(4)本发明提供了从FLAC2D模型文件导入FLAC3D模型文件的解决方案。由于FLAC2D是在二维坐标系下建立的,二维网格单元的划分是面(如四边形或三角形);FLAC3D的文件是在三维坐标系文件下建模的,三维模型的单元划分是体(块体、圆柱体四面体、楔形体等)。因此,FLAC2D模型文件无法直接导入FLAC3D中生成相应的模型文件。为了克服该技术问题,本发明通过对FLAC2D二维模型(*.f2grid)中的网格节点进行坐标变换、平移,计算出拉伸后假三维模型下的网格节点(gridpoint)三维坐标,根据FLAC3D软件模型的编码原则,进行相应的网格单元(zone)的划分和网格单元分组(Block),并编制相应的接口文件,为FLAC2D模型文件导入FLAC3D模型文件的解决方案。

(5)本发明具有广泛的应用前景。在岩土工程数值模型领域,无论是简单的几何形状还是复杂的地形条件,本发明都能提供快速有效的从二维剖面到FLAC3D的假三维模型的建立。由于FLAC3D在岩土工程领域具有广泛的应用基础,因此本发明的推广和应用将对岩土工程数值模拟技术的发展产生积极的影响。

综上所述,本发明在FLAC3D建模领域具有显著效果,包括扩展了FLAC3D建模能力、提高建模效率、实现了从复杂二维剖面到FLAC3D的三维模型的快速建立。这些优点使得本发明在岩土工程数值模拟领域具有广泛的应用前景。

附图说明

图1为现有FLAC3D的EXTRUSION工具在拉伸创建Block模型文件中关于只能进行结构性网格拉伸的提示;

图2为CAD中已绘制好的二维工程地质剖面模型;

图3为基于FLAC2D软件快速建立模型及网格自动划分的操作流程;

图4为基于FLAC2D软件快速建立模型及网格自动划分的软件操作主要步骤;

图5为FLAC2中划分的网格模型文件;

图6为二维四边形网格转换为三维八面体网格示意图;

图7为二维三角形网格转换为楔形体网格示意图;

图8为依据本发明建立的FLAC3D的模型;

图9为系统工作流程图。

具体实施方式

下面结合附图和实施例对本发明作进一步的说明,但并不作为对本发明限制的依据。

实施例1。一种基于FLAC软件实现非结构化网格拉伸快速建模方法,包括如下步骤:

S1.借助FLAC2D软件,快速建立二维剖面的FLAC2D模型文件,并输出ASCII格式的二维网格文件(*.f2grid)。参见图3和4,具体操作步骤如下:

S11.将在CAD中已绘制好的二维工程地质剖面模型(参见图2)或其他格式(如图片格式)的二维工程地质剖面模型另存为“*.dxf”格式文件。

S12.打开FLAC2D软件,建立NEW Extrusion,然后点击“Import background image(输入背景图片)”按钮,加载相应的“*.dxf”文件。

S13.点击“Automatically create edges from background geometry(根据背景图片自动生成几何模型)”按钮自动生成二维工程地质剖面模型的几何图形。

S14.点击“Autozone(自动划分单元)”按钮,设置划分网格单元的边长。

S15.点击“Automatically create blocks in the set(自动创建块)“按钮自动生成划分网格单元。

S16.点击“Extrude(拉伸)”按钮生成FLAC2D的模型文件,并进行分组命名。

S17.对生成的FLAC2D模型文件(参见图5),通过“Flile-Grid-Import toFlac2D”按钮的操作,输出ASCII格式的二维网格文件“*.f2grid”。

S2.用记事本打开flac2D二维网格文件(*.f2grid),并提取网格文件信息,包括二维网格节点(GRIDPOINTS)信息、二维网格单元(ZONES)信息及二维网格单元分组(ZONEGROUPS)信息;

二维网格节点(GRIDPOINTS)信息包括:网格节点的总数

二维网格单元(ZONES)信息包括:二维网格单元总数

二维网格单元分组(ZONE GROUPS)信息包括:分组总数

S3.计算出拉伸后的FLAC3D模型文件中的网格节点(GRIDPOINTS)坐标,并进行编号:

S31.将flac2D模型文件中网格节点坐标转换为对应的Flac3D模型文件中的坐标;

FLAC2D采用二维坐标系(XY平面),而FLAC3D采用三维坐标系(X、Y、Z),全局坐标初始状态工作平面为XZ平面,对应于FLAC2D中为XY平面。首先需要对FLAC2D模型文件中的坐标进行变化。假设FLAC2D中的第

表1 FLAC2D网格节点转换为FLAC3D模型中节点计算表

S32.计算拉伸方向(Y轴)的其他网格节点编号及坐标。

假设在二维模型沿Y轴拉伸长度为

i

X

Y

Z

S4.计算FLAC3D模型文件中的网格单元(Zones)类型(B8或T6),网格单元编号(

S41.生成网格类型:FLAC2D网格类型有四边形网格(Q4)、三角形网格(T3),对应拉伸后的三维网格类型分别为六面体单元(B8)和楔形体单元(W6)。对提取的二维网格文件类型进行替换,即用B8替换Q4,W6替换T3,即可得到三维模型中对应的网格单元类型。

S42.计算网格单元的节点编号:在FLAC3D中建立1个六面体需要8个控制点

表2 二维网格转换为三维网格计算表

S5.计算三维模型的三维网格单元格分组信息及所包含的网格单元

S51.计算

由于三维模型是根据二维模型拉伸得到,因此三维模型中的分组名称和编号,同二维模型的分组名称、编号完全一致。

S52.计算各分组(

由于三维模型是二维模型拉伸得到的,因此对于某一个单元格编号

如果iz∈Bolck_j,那么(

Flac3D对应的分组名称及单元格编号和Flac2D分组名称及包含的单元格对应关系如表3所示:

表3 Flac3D对应的分组名称及单元格编号

S6.按照FLAC3D模型文件的编码原则及格式,将计算的三维网格节点信息,三维网格单元格信息,及三维网格单元分组信息依次拷入记事本文件中,文件名另存为“*.f3grid”,即可输出相应的FLAC3D网格文件,参见图8。

FLAC3D网格文件编码原则如下:

* GRIDPOINTS

G ip Xip Yip Zip

……

* ZONES

Z B8 iz p0 p1 p2 p3 p4 p5 p6 p7

Z W6 iz p0 p1 p2 p3 p4 p5

……

* ZONE GROUPS

ZGROUP "Block_j"

……

* FACES

* FACE GROUPS

依据上述步骤S2至S6的原理,用C++语言编制相应的软件FLAC2D to FLAC3D系统。该系统包括四部分,输入模块,设置模块,计算模块,输出模块,系统工作流程参见图9。

输入模块,用于输入flac2D二维网格文件,并获取二维模型的节点信息、单元格信息、单元分组信息。

设置模块,用于设置三维模型中的拉伸长度

计算模块,用于计算三维模型中的节点信息、单元格信息、单元分组信息。

输出模块,用于根据flac3D的编码原则,生成并输出相应的flac3D模型文件。

相关技术
  • 基于ACA-MLFMA加速的区域分解非共形网格的快速仿真建模方法
  • 一种基于Rhino 6软件的FLAC3D复杂建模方法
  • 一种基于Rhino 6软件的FLAC3D复杂建模方法
技术分类

06120116625644