Automatic Meshing for Multiscale Three-Dimensional Discrete Fracture Networks

by Pedro Lima, José B. V. Salabarría, Omar Y. Durán, Philippe R. B. Devloo, presented at  14th World Congress in Computational Mechanics, July 2020


Multi-scale finite element methods require special types of meshes, notably, those that relate coarse elements to sub-meshes contained by them. The geometric description of a Discrete Fracture Network (DFN) in this context, involves the ability of inserting multiple fractures in a pre-defined coarse mesh,
while building a sub-mesh around these fractures and tracking fine/coarse element relations. Main steps involve: locating intersections and refining elements at those points, building a data structure that associates each element of a fracture surface to the coarse volume that encloses it, and then generate a sub-mesh of fine elements around the fractures to fill these coarse elements, without altering originally
defined nodes in the coarse mesh. This work presents an approach for automatic finite element meshing
of fractured reservoirs suited to Multiscale Hybrid-Mixed methods (MHM) [1]. The code is written in
C++ and largely relies on two finite element libraries: NeoPZ [3] and Gmsh [2]. Starting with a coarse
mesh, fractures are entered as 3D polygons, built from their corner points, and inserted one-by-one. Intersections with one-dimensional elements are computed first and subsequently used to define the intersection with two-dimensional elements (faces). Triangles that result from refining faces to conform to the intersecting fractures are checked for quality, and those with bad aspect ratio (given a tolerance)
are coalesced, as fracture surface nodes are snapped into previously defined nodes. The resulting faces
are utilized to define volume shells that can be tetrahedralized using Constrained Delaunay algorithms
available in the Gmsh library. Element connectivity, transformations between parametric domains of
fine/coarse elements, and all other relevant finite element computations are implemented using NeoPZ. Results show that the proposed technique can efficiently construct adequate 3D meshes. While rely-ing on neighbourhood information and consistent element topologies available from NeoPZ’s geometric meshes, enables optimization of multiple algorithms of geometric search that would, otherwise, require a considerable amount of floating-point operations.