Advances in Feel++ : A Domain Specific Embedded Language in C++ for Partial Differential Equations

We present our advances in developing a language specific to partial differential equations embedded in C++. We have been developing the Feel++ framework (Finite Element method Embedded Language in C++) to the point where it allows to use a very wide range of Galerkin methods and advanced numerical methods such as domain decomposition methods including mortar and three fields methods, fictitious domain methods or certified reduced basis. We shall present an overview of the various ingredients as well as some illustrations. The ingredients include a very expressive embedded language, seamless interpolation, mesh adaption, seamless parallelisation and automatic differentiation using Frechet derivative. As to the illustrations, they exercise the versatility of the framework either by allowing the developement and/or numerical verification of (new) mathematical methods or the development of large multi-physics applications -- e.g. fluid-structure interaction using either an Arbitrary Lagrangian Eulerian formulation or a levelset based one; high field magnets modeling which involves electro-thermal, magnetostatics, mechanical and thermo-hydraulics model.

[1]  Gonçalo Pena,et al.  High-order fluid-structure interaction in 2D and 3D application to blood flow in arteries , 2013, J. Comput. Appl. Math..

[2]  C. Prud'homme,et al.  A domain-specific embedded language in C++ for lowest-order discretizations of diffusive problems on general meshes , 2013 .

[3]  J. Remacle,et al.  Gmsh: A 3‐D finite element mesh generator with built‐in pre‐ and post‐processing facilities , 2009 .

[4]  Christophe Geuzaine,et al.  Gmsh: A 3‐D finite element mesh generator with built‐in pre‐ and post‐processing facilities , 2009 .

[5]  Christophe Geuzaine,et al.  GetDP: a general environment for the treatment of discrete problems , 1997 .

[6]  Alfio Quarteroni,et al.  High order methods for the approximation of the incompressible Navier–Stokes equations in a moving domain , 2012 .

[7]  Robert C. Kirby Optimizing FIAT with level 3 BLAS , 2006, TOMS.

[8]  Christophe Prud'homme Life: Overview of a Unified C++ Implementation of the Finite and Spectral Element Methods in 1D, 2D and 3D , 2006, PARA.

[9]  Gonçalo Pena,et al.  Construction of a high order fluid-structure interaction solver , 2010, J. Comput. Appl. Math..

[10]  Andrea Toselli,et al.  Domain decomposition methods : algorithms and theory , 2005 .

[11]  Yvon Maday,et al.  The mortar element method for three dimensional finite elements , 1997 .

[12]  Frédéric Alauzet,et al.  Continuous Mesh Framework Part I: Well-Posed Continuous Interpolation Error , 2011, SIAM J. Numer. Anal..

[13]  Gonçalo Pena,et al.  Spectral element approximation of the incompressible Navier-Stokes equations in a moving domain and applications , 2009 .

[14]  William Gropp,et al.  Efficient Management of Parallelism in Object-Oriented Numerical Software Libraries , 1997, SciTools.

[15]  Philippe G. Ciarlet,et al.  The finite element method for elliptic problems , 2002, Classics in applied mathematics.

[16]  Sandeep Koranne,et al.  Boost C++ Libraries , 2011 .

[17]  Robert C. Kirby,et al.  Singularity-free evaluation of collapsed-coordinate orthogonal polynomials , 2010, TOMS.

[18]  Yousef Saad,et al.  Iterative methods for sparse linear systems , 2003 .

[19]  Anders Logg,et al.  A compiler for variational forms , 2006, TOMS.

[20]  Mark Frederick Hoemmen,et al.  An Overview of Trilinos , 2003 .

[21]  Tim Warburton,et al.  An explicit construction of interpolation nodes on the simplex , 2007 .

[22]  Gonçalo Pena,et al.  Feel++ : A computational framework for Galerkin Methods and Advanced Numerical Methods , 2012 .

[23]  Christophe Prud'homme,et al.  Simulation of two-fluid flows using a finite element/level set method. Application to bubbles and vesicle dynamics , 2013, J. Comput. Appl. Math..

[24]  T. A. Zang,et al.  Spectral Methods: Fundamentals in Single Domains , 2010 .

[25]  Silvia Bertoluzza,et al.  Substructuring preconditioners for the three fields domain decomposition method , 2003, Math. Comput..

[26]  Vicente Hernández,et al.  SLEPc: A scalable and flexible toolkit for the solution of eigenvalue problems , 2005, TOMS.

[27]  Alfio Quarteroni,et al.  Domain Decomposition Methods for Partial Differential Equations , 1999 .

[28]  G. Karniadakis,et al.  Spectral/hp Element Methods for CFD , 1999 .

[29]  Anders Logg,et al.  Efficient compilation of a class of variational forms , 2007, TOMS.

[30]  Tamara G. Kolda,et al.  An overview of the Trilinos project , 2005, TOMS.

[31]  Michael A. Heroux,et al.  Trilinos users guide. , 2003 .

[32]  Silvia Bertoluzza,et al.  Analysis of substructuring preconditioners for mortar methods in an abstract framework , 2007, Appl. Math. Lett..

[33]  Christophe Prud'homme,et al.  A domain specific embedded language in C++ for automatic differentiation, projection, integration and variational formulations , 2006, Sci. Program..

[34]  Robert C. Kirby,et al.  Algorithm 839: FIAT, a new paradigm for computing finite element basis functions , 2004, TOMS.