1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119
|
\section*{Introduction}
Rheolef is a programming environment for finite element method computing.
The reader is assumed to be familiar with
(i) the {\tt c++} programming language
and
(ii) the finite element method.
%
As a Lego game, the Rheolef bricks allow the user
to solve most problems, from simple to complex multi-physics ones,
in few lines of code.
The concision and readability of codes
written with Rheolef is certainly a major keypoint of this environment.
Here is an example of a Rheolef code for solving the Poisson problem
with homogeneous boundary conditions:
\begin{center}
\fbox{\includegraphics[width=13cm]{synthese-fig.pdf}}
\end{center}
The right column shows the one-to-one line
{\bf correspondence between the code and the variational formulation}.
%
Let us quote \citet{Str-2002}, the conceptor of the {\tt c++} language:
\begin{quote}{\em
"The time taken to write a program is at best roughly proportional
to the {\bf number of lines} written, and so is the number of errors in that code.
If follows that a good way of writing correct programs is to write {\bf short programs}.
In other words, we need good libraries to allow us to write correct code that performs well.
This in turn means that we need libraries to get our programs finished in a reasonable time.
In many fields, such {\tt c++} libraries exist."
}\end{quote}
Rheolef is an attempt to provide such a library in the field of
finite element methods for partial differential equations.
Rheolef provides both a {\tt c++} library and a set of unix commands
for {\bf shell} programming, providing \blue{data structures} and \red{algorithms}~\citep{Wir-1985-2ed}.
\begin{itemize}
\item \blue{Data structures} fit the variational formulation concept:
\blue{\bf field}, bilinear \blue{\bf form} and functional \blue{space},
are {\tt c++} types for variables.
They can be combined in algebraic expressions, as you write it on the paper.
\item \red{Algorithms} refer to the most up-to-date ones:
direct an iterative \red{sparse matrix solvers} for linear systems.
They supports efficient \red{distributed} memory and \red{parallel} computations.
Nonlinear \code{c++} generic algorithms such as
\red{fixed point}, \red{damped Newton}
and \red{continuation} methods are also provided.
\end{itemize}
General \emph{high order} piecewise polynomial finite element
approximations are implemented,
together with some mixed combinations for Stokes and incompressible elasticity.
The \emph{characteristic method} can be used
for diffusion-convection problems
while hyperbolic systems can be discretized
by the discontinuous Galerkin method.
%\vfill
%\clearpage
%{\bf Classical features}
%
%\begin{itemize}
% \item Poisson problems in 1D 2D and 3D with P1 or P2 elements
% \item Stokes problems in 2D and 3D, with Taylor-Hood P2-P1 or stabilized P1 bubble-P1 elements
% \item linear elasticity in 2D and 3D, with P1 and P2 elements,
% including the incompressible and nearly incompressible elasticity
% \item characteristic method for convection-diffusion, time-dependent problems
% and Navier-Stokes equations.
% \item input and output in various file format for meshes generators and numerical data visualization systems
%\end{itemize}
%
%{\bf Advanced features}
%\begin{itemize}
% \item auto-adaptive mesh based for 2D problems
% \item axisymmetric problems
% \item multi-regions and non-constant coefficients
% \item nonlinear problems with either fixed-point algorithms or a provided generic damped Newton solver
% \item 3d stereo visualization
%\end{itemize}
%
%\vfill
\begin{center} {\bf Contacts}
\end{center}
\begin{tabular}{ll}
email & \href{mailto:Pierre.Saramito@imag.fr}{\tt Pierre.Saramito@imag.fr} \\
& \\
home page & \url{http://www-ljk.imag.fr/membres/Pierre.Saramito/rheolef}
\end{tabular}
\bigskip
Please send all patches, comments and bug reports by mail to
\begin{center}
\href{mailto:rheolef@grenet.fr}{\tt rheolef@grenet.fr}
\end{center}
%% \bigskip
%%
%% {\bf The \Rheolef\ present contributors}
%%
%% \begin{tabular}{ll}
%% from 2008 & {\bf Ibrahim Cheddadi}: discontinuous Galerkin method for transport problems.
%% \\
%% from 2010 & {\bf Mahamar Dicko}: finite element methods for equations on surfaces.
%% \\
%% from 2002 & {\bf Jocelyn \'Etienne}: characteristic method for time-dependent problems.
%% \\
%% from 2000& {\bf Pierre Saramito}: project leader: main developments and code maintainer.
%% \end{tabular}
%%
%% {\bf Past contributors}
%%
%% \begin{tabular}{ll}
%% 2010 & {\bf Lara Abouorm}: banded level set method for equations on surfaces.
%% \\
%% 2000 & {\bf Nicolas Roquet}: initial versions of Stokes and Bingham flow solvers.
%% \end{tabular}
%%
%% %\vfill
|