This contribution introduces the idea of refinement patterns for the generation of optimal meshes in the context of the Finite Element Method. The main idea is to generate a library of possible patterns on which elements can be refined and use this library to inform an h adaptive code on how to handle complex refinements in regions of interest. There are no restrictions on the type of elements that can be refined, and the patterns can be generated for any element type. The main advantage of this approach is that it allows for the generation of optimal meshes in a systematic way where, even if a certain pattern is not available, it can easily be included through a simple text file with nodes and sub-elements. The contribution presents a detailed methodology for incorporating refinement patterns into h adaptive Finite Element Method codes and demonstrates the effectiveness of the approach through mesh refinement of problems with complex geometries.
Tag: Finite element method
A low-order preconditioner for high-order element-wise divergence constant finite element spaces
Mixed finite element problems are a class of problems that arises when modeling several physical phenomena, such as in computational fluid dynamics, structural analysis, optimization, etc. Designing efficient iterative schemes for such a family of approximations has been the subject of several works in the past decades. However, its success is intimately related to the proper definition of a preconditioner, i. e., the projection of the original algebraic system to an equivalent one with better spectral properties. In recent work, we have proposed a new class of H(div)-conforming finite element spaces with element-wise constant divergent. This family of elements was designed to improve reservoir simulation computational cost and are obtained by choosing the lower order space with piece-wise constant normal fluxes incremented with divergence-free higher-order functions. In this work, we propose an iterative scheme to solve problems arising in the context of the above mentioned element- wise constant divergence approximation spaces. The strategy consists on using the matrix of linear fluxes as a preconditioner to solve the higher-order flux problem. The latter is solved iteratively by means of a conjugate gradient scheme. In the presented numerical tests, this strategy has shown to be convergent in a few iterations for different problems in 2D and 3D. In addition, as internal fluxes are condensed, only boundary variables need to be computed. This strategy relates to the MHM technique and can be efficiently used to access fast multi-scale approximations in future work.
Multi-scale Meshing for Multiscale Three-Dimensional Discrete Fracture Networks
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.