FEMS – A Mechanics-oriented Finite Element Modeling Software,☆☆

https://doi.org/10.1016/j.cpc.2020.107729Get rights and content

Abstract

This paper is a presentation of a Finite Element Modeling Software named FEMS that integrates mesh generation and adaption features in order to alleviate significantly the difficulty of designing a Finite Element (FE) mesh for a particular problem. FEMS is targeted at engineers and scientists addressing localization problems in mechanics, although it should be suited to many other applications.

FEMS is particularly relevant for problems with internal interfaces, both in solid and fluid mechanics, as it has both explicit and implicit interface representation. The former can be generated from signed distance functions using body-fitted meshing capabilities implemented in FEMS, while the latter relies on the level-set method. The choice between the one or the other can be made by the user depending on the severity of deformations in the neighborhood of an interface.

During the simulation, FEMS adapts the FE mesh automatically to achieve the best accuracy for a prescribed number of nodes. This is possible for both linear and quadratic interpolation. Additionally, in an updated Lagrangian setting, FEMS triggers mesh adaption automatically to avoid element flipping during node motion.

The capabilities of FEMS are demonstrated in this paper for fluid and solid mechanics problems featuring turbulence, multiphase flow, large deformations and plasticity. This wide range of problems that can be handled by FEMS should prove its great interest for the computational mechanics community.

Program summary

Program Title: FEMS

CPC Library link to program files: http://dx.doi.org/10.17632/rgv4hkrxjw.1

Licensing provisions: GNU General Public License version 3

Programming language: C/C++

Nature of problem: Partial differential equations in one, two or three dimensions of space related to computational mechanics and used to model large deformations, nonlinear material behavior, incompressibility, heat transfer, turbulent and/or multiphase flow with surface tension.

Solution method: Finite element method, higher-order elements, mixed and variational multiscale formulations, level-set method, error estimators, isotropic and anisotropic unstructured mesh adaption, image meshing (from microscopy or tomography sources).

Additional comments including restrictions and unusual features: Shared-memory (OpenMP) parallelism, GPU-accelerated, unstructured mesh adaption to the finite element solution, the software is compatible with many element types but its mesh adaption feature is restricted to triangles/tetrahedra.

Introduction

The Finite Element (FE) method is a numerical method that has been developed since the middle of the 20th century to address civil and mechanical engineering problems under the assumptions of continuum mechanics. Prolific scientific research has demonstrated that this method will play a key role in addressing current and future challenges in computational mechanics:

  • A wide range of mechanisms have been modeled using the FE method (e.g., laminar and turbulent flow [1], small and large deformation of structures [2], [3], multiphase flow with surface tension [4], nonlinear material behavior [5], fracture [3], [6]).

  • The FE method can be used to model advanced materials of increasing complexity, with material laws that can even be computed on-the-fly using computational homogenization thanks to promising developments such as the FE2 approach [5].

  • With a proper mesh generation tool, it can be used to model domains with very complex geometry and morphology, even in the presence of internal interfaces [7].

  • It can be applied at the macroscale as well as at themicroscale or at any scale where continuum mechanics assumptions apply. Internal interfaces may be explicitly represented using a body-fitted FE mesh or implicitly represented using for instance Level-Set (LS) functions [3], [6].

  • It is compatible with parallel computing on shared- and distributed-memory architectures, as well as on Graphical Processing Units (GPUs) [8]. As the number of cores in supercomputers keeps increasing, this is of major importance for a numerical method.

Although the FE method is quite simple to implement, the design of an FE code is often elaborated carefully so that the code can be modified and improved by mechanical engineers that do not necessarily have a scientific computing background. For instance, most commercial FE codes allow the user to add material laws quite easily through so-called user material subroutines without requiring a thorough understanding of the underlying FE code.

In this paper, a Finite Element Modeling Software named FEMS (pronounced fems, as a single word) that has been designed with a similar ambition in mind is presented. This ambition is to alleviate significantly the difficulty of designing an FE mesh for a particular problem, which is often the most time consuming part of an FE analysis [9]. FEMS is targeted at engineers and scientists addressing localization problems (e.g., turbulence and boundary layers in fluid dynamics, shear bands and fracture in solid mechanics).

The technology used to alleviate the mesh design difficulty is adaptive mesh generation and adaption. The method implemented in FEMS is described in Section 2, while details on the software itself are given in Section 3. Illustrative examples are assessed in Section 4.

Section snippets

Method

In computational mechanics, numerical methods are required to provide a discretization of the geometry of the domain, which may include internal interfaces, and a discretization of various mechanical variables including displacements, velocities, stresses, and pressures. Additionally, equations featuring these variables and their partial derivatives must be solved.

Software description

FEMS integrates unique features compared to existing open source adaptive FE codes. This is explained in the sequel, as well as the parallel implementation of FE solvers and the technologies used for inputs and outputs.

FEMS is mostly implemented in C, as defined by the 1999 ISO C standard [39]. Some C++, as defined by the 2011 ISO C++ standard [40], is used for code blocks that interact with C++ libraries. Some remeshing and mesh adaption operations are also implemented in C++.

Apart from those

Results

The powerful capabilities of FEMS’s isotropic and anisotropic unstructured mesh adaption are demonstrated in this section for various problems of computational mechanics. Input files for all simulation results shown in this section are provided in the examples directory of the FEMS package. Unless otherwise mentioned, initial meshes are structured FE meshes of the unit 1 × 1 mm2 square (2D) or the 1×1×0.1 mm3 box (3D), and internal interfaces are introduced using LS functions. Those initial

Conclusions and perspectives

A state-of-the-art Finite Element Modeling Software (FEMS) has been presented in this paper. FEMS is targeted at engineers and scientists addressing localization problems. Those include a wide range of computational fluid dynamics problems involving turbulence and boundary layers, or multiphase flows, but also computational solid mechanics problems such as plastic localization bands. Examples of such problems are addressed in this paper to show the capabilities of FEMS.

A transient

Declaration of Competing Interest

The authors declare that they have no known competing financial interests or personal relationships that could have appeared to influence the work reported in this paper.

References (56)

  • CodinaR.

    Comput. Methods Appl. Mech. Engrg.

    (2002)
  • FeyelF.

    Comput. Mater. Sci.

    (1999)
  • SukumarN. et al.

    Comput. Methods Appl. Mech. Engrg.

    (2001)
  • HughesT. et al.

    Comput. Methods Appl. Mech. Engrg.

    (2005)
  • OsherS. et al.

    J. Comput. Phys.

    (1988)
  • BrooksA.N. et al.

    Comput. Methods Appl. Mech. Engrg.

    (1982)
  • BazilevsY. et al.

    Comput. Methods Appl. Mech. Engrg.

    (2007)
  • YanJ. et al.

    Comput. & Fluids

    (2019)
  • AbgrallR. et al.

    J. Comput. Phys.

    (2014)
  • QuanD.-L. et al.

    Comput. Methods Appl. Mech. Engrg.

    (2014)
  • ShakoorM. et al.

    Eng. Fract. Mech.

    (2018)
  • CoulaudO. et al.

    Procedia Eng.

    (2016)
  • LaugP. et al.

    C. R. Math.

    (2013)
  • HuangW.

    J. Comput. Phys.

    (2005)
  • ShakoorM. et al.

    Eng. Fract. Mech.

    (2015)
  • DapognyC. et al.

    J. Comput. Phys.

    (2014)
  • GruauC. et al.

    Comput. Methods Appl. Mech. Engrg.

    (2005)
  • ZhaoJ.X. et al.

    Comput. Methods Appl. Mech. Engrg.

    (2016)
  • ShakoorM. et al.

    Int. J. Solids Struct.

    (2017)
  • ShakoorM. et al.

    Appl. Math. Model.

    (2015)
  • CompèreG. et al.

    J. Comput. Phys.

    (2008)
  • CompèreG. et al.

    Internat. J. Numer. Methods Engrg.

    (2010)
  • RouxE. et al.

    Modelling Simulation Mater. Sci. Eng.

    (2014)
  • ShakoorM. et al.

    A higher-order finite element method with unstructured anisotropic mesh adaption for two phase flows with surface tension

    (2020)
  • GeuzaineC. et al.

    Internat. J. Numer. Methods Engrg.

    (2009)
  • CeckaC. et al.

    Internat. J. Numer. Methods Engrg.

    (2011)
  • ErnA. et al.
  • FortinA. et al.

    Les Éléments Finis : De la Théorie à la Pratique

    (2011)
  • Cited by (0)

    The review of this paper was arranged by Prof. Hazel Andrew.

    ☆☆

    This paper and its associated computer program are available via the Computer Physics Communication homepage on ScienceDirect (http://www.sciencedirect.com/science/journal/00104655)

    View full text