Efficient C++ finite element computing with Rheolef
Résumé
Rheolef is a programming environment that serves as a convenient laboratory for computations involving finite element methods. Rheolef is both a C++ library and a set of commands for unix shell programming, providing algorithms and data structures. Algorithms refer to the most up-to-date ones: preconditioned sparse solvers for linear systems, incompressible elasticity, Stokes and Navier-Stokes flows, characteristic method for convection dominated heat problems, etc. Also nonlinear generic algorithms such as fixed point and damped Newton methods. Data structures fit the standard variational formulation concept: spaces, discrete fields, bilinear forms are C++ types for variables, that can be combined in any expressions, as you write it on the paper. Combined together, as a Lego game, these bricks allows the user to solve most complex nonlinear problems. This Book details, step by step, how some simple and more complex problems can be solved, most of them in less than 20 lines of code. The concision and readability of codes written with Rheolef is certainly a major keypoint of this environment.