File: introduction.tex

package info (click to toggle)
rheolef 7.1-6
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 77,392 kB
  • sloc: cpp: 105,337; sh: 16,014; makefile: 5,293; python: 1,359; xml: 221; yacc: 218; javascript: 202; awk: 61; sed: 5
file content (119 lines) | stat: -rw-r--r-- 4,820 bytes parent folder | download | duplicates (4)
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