Index

<<, 75
    matrix, 72
>>, 75
.*, 70
.⋆, 136
./, 70
=, 128
?:, 58
[], 15, 126, 203
_, 55
’, 70

time dependent, 28

accuracy, 19
acos, 61
acosh, 61
adaptmesh, 90, 92
    abserror=, 93
    cutoff=, 93
    err=, 92
    errg=, 92
    hmax=, 92
    hmin=, 92
    inquire=, 93
    isMetric=, 93
    iso=, 93
    keepbackvertices=, 93
    maxsubdiv=, 93
    metric=, 94
    nbjacoby=, 93
    nbsmooth=, 92
    nbvx=, 92
    nomeshgeneration=, 94
    omega=, 93
    periodic=, 94
    powerin=, 94
    ratio=, 93
    rescaling=, 93
    splitin2, 94
    splitpbedge=, 93
    uniform, 94
    verbosity= , 93
alphanumeric, 55
append, 75
area, 58
area coordinate, 133
argument, 60
array, 56, 64, 73, 134
    .l1, 66
    .l2, 66
    .linfty, 66
    .max, 66
    .min, 66
    .sum, 66
    ?:, 65
    = + - ⋆ / .⋆ ./ += -= /= ⋆= , 65
    column, 68
    dot product, 66
    FE function, 73
    fespace, 121
    line, 68
    max, 65
    mesh, 219
    min, 65, 73
    quantile, 66
    renumbering, 68
    resize, 65
    sort, 65
    sum, 65
    varf, 138
asin, 61
asinh, 61
assert(), 58
atan, 61
atanh, 61
axisymmetric, 28

backward Euler method, 181
bamg, 83
barycentric coordinates, 13
bessel, 62
BFGS, 151
block matrix, 70
bool, 56
border, 80
boundary condition, 136
break, 74
broadcast, 219
bubble, 124
buildmesh
    fixeborder, 80
    fixeborder=1, 162
    nbvx=, 80

catch, 76
Cauchy, 53
ceil, 61
CG, 131
Characteristics-Galerkin, 33
checkmovemesh, 87
Cholesky, 131, 150
cin, 58, 75
column, 68
compatibility condition, 130
compiler, 55
Complex, 56
complex, 45, 60, 71
Complex geometry,, 30
concatenation, 92
connectivity, 140
continue, 74
convect, 34, 192, 194
cos, 61
cosh, 61
cout, 58, 75
Crout, 131

de Moivre’s formula, 60
default, 75
degree of freedom, 13
DFFT, 252
diag, 71, 197
diagonal matrix, 71
Dirichlet, 19, 25, 53, 129
discontinuous functions, 207
Discontinuous-Galerkin, 33
displacement vector, 169
divide
    term to term, 70
domain decomposition, 200, 201
dot product, 71, 73
dumptable, 58

EigenValue, 178
    ivalue=, 177
    maxit=, 177
    ncv=, 177
    nev=, 177
    rawvector=, 177
    sigma=, 177
    sym=, 177
    tol=, 177
    value=, 177
    vector=, 177
eigenvalue problems, 26
elements, 13
emptymesh, 86
endl, 75
erf, 62
erfc, 62
exception, 76
exec, 58, 146
exp, 61
expression optimization, 138
external C++ function, 36

factorize=, 150
false, 56, 58
FE function
    [], 126
    complex, 45, 64, 71
    n, 126
    value, 126
FE space, 121
FE-function, 63, 121
FEspace
    (int ,int ), 140
    ndof, 140
    nt, 140
fespace, 119
    P0, 119
    P1, 119
    P1b, 120
    P1dc, 120
    P1nc, 120
    P2, 120
    P2dc, 120
    periodic=, 131, 160
    RT0, 120
FFT, 252
file
    am, 225, 226
    am_fmt, 83, 225, 226
    amdba, 225, 226
    bamg, 83, 223
    data base, 223
    ftq, 227
    mesh, 83
    msh, 226
    nopo, 83
finite element space, 119
Finite Volume Methods, 36
fixed, 75
floor, 61
fluid, 190
for, 74
formulas, 63
Fourier, 28
func, 57
function
    tables, 86
functions, 61

gamma, 62
geometry input , 24
GMRES, 131
gnuplot, 146
graphics packages, 19

hat function, 13
Helmholtz, 45
hTriangle, 57, 166

ifstream, 75
ill posed problems, 26
imag, 60
include, 8, 194
includepath, 8
init, 36
init=, 131
initial condition, 53
inside=, 139
int1d, 132
int2d, 132
intalledges, 35, 132, 166
interpolate, 138
    inside=, 139
    op=, 139
    t=, 139
interpolation, 128
isotropic, 170

jump, 166

label, 57, 79, 80, 221
label on the boundaries, 25
label=, 94
lagrangian, 89
Laplace operator, 19
lenEdge, 57, 166
level line, 35
line, 68
linearCG
    eps=, 149
    nbiter=, 149
    precon=, 149
    veps=, 149
LinearGMRES
    eps=, 149
    nbiter=, 149
    precon=, 149
    veps=, 149
load, 8
loadpath, 8
log, 61
log10, 61
LU, 131

macro, 35, 212
mass lumping, 36
matrix, 15, 57, 150
    =, 194
    block, 70
    complex, 71
    constant, 69
    diag, 71, 197
    factorize=, 176
    interpolate, 138
    set, 69
    solver=, 194
    stiffness matrix, 15
    varf, 69, 137
        eps=, 137
        precon=, 137
        solver=, 137
        solver=factorize, 137
        tgv=, 137
        tolpivot =, 137
max, 65
maximum, 58
medit, 146
membrane, 19
mesh, 57
    (), 84
    [], 84
    3point bending, 100
    beam, 96
    Bezier curve, 98
    Cardioid, 97
    Cassini Egg, 97
    connectivity, 84
    NACA0012, 96
    regular, 90
    Section of Engine, 98
    Smiling face, 100
    U-shape channel, 99
    uniform, 94
    V-shape cut, 99
mesh adaptation, 37
min, 65, 73
minimum, 58
mixed, 28
mixed Dirichlet Neumann, 19
modulus, 60
movemesh, 87
mpirank, 219
mpisize, 219
multi-physics system, 30
multiple meshes, 30

N, 57, 133
n, 126
Navier-Stokes, 192, 194
ndof, 140
ndofK, 140
Neumann, 53, 132
Newton, 151, 176
NLCG, 151
    eps=, 149
    nbiter=, 149
    veps=, 149
nodes, 13
non-homogeneous Dirichlet, 19
nonlinear, 30
nonlinear problem, 28
normal, 35, 133
noshowbase, 75
noshowpos, 75
nt, 140
nTonEdge, 35, 58
nuEdge, 57
number of degree of freedom, 140
number of element, 140
nuTriangle, 57

ofstream, 75
    append, 75
on, 132
    intersection, 193
optimize=, 138
outer product, 68, 71

P, 57
P0, 119
P1, 119
P1b, 120
P1dc, 120
P1nc, 120
P2, 120
P2dc, 120
parabolic, 28
periodic, 119, 131, 160
pi, 58
plot
    aspectratio =, 144
    nbiso =, 144
    bb=, 144
    border, 80
    boundary =, 144
    bw=, 144
    cmm=, 144
    coef=, 144
    cut, 144
    grey=, 144
    hsv=, 144
    mesh, 80
    nbarraw=, 144
    ps=, 144
    value=, 144
    varrow=, 144
    viso=, 144
point
    region, 84
    triange, 84
pow, 61
precision, 75
precon=, 131, 137, 195
problem, 36, 57, 129
    eps=, 131
    init=, 131
    precon=, 131
    solver=, 131
    strategy =, 131, 137
    tgv=, 131
    tolpivot =, 131
    tolpivotsym =, 131, 137
processor, 219
product
    Hermitian dot, 71
    dot, 71, 73
    outer, 71
    term to term, 70

qforder=, 194
quadrature: qf5pT, 135
quadrature:default, 134
quadrature:qf1pE, 134
quadrature:qf1pElump, 134
quadrature:qf1pT, 135
quadrature:qf1pTlump, 135
quadrature:qf2pE, 134
quadrature:qf2pT, 135
quadrature:qf2pT4P1, 135
quadrature:qf3pE, 134
quadrature:qf7pT, 135
quadrature:qfe=, 135
quadrature:qforder=, 135
quadrature:qft=, 135
quantile, 67

radiation, 30
rand, 62
randinit, 62
randint31, 62
randint32, 62
random, 62
read files, 83
readmesh, 81, 102
real, 56, 60
region, 57, 84, 207
region indicator, 30
renumbering, 68
resize, 65
Reusable matrices, 192
rint, 61
Robin, 28, 129, 132
RT0, 120

savemesh, 81, 102
schwarz, 219
scientific, 75
sec:Plot, 143
set, 36
    matrix, 69
showbase, 75
showpos, 75
shurr, 200, 201
sin, 61
singularity, 91
sinh, 61
solve, 57, 129
    eps=, 131
    init=, 131
    linear system, 70
    precon=, 131
    solver=, 131
    strategy=, 131, 137
    tgv=, 15, 131
    tolpivot=, 131
    tolpivotsym=, 131, 137
solver=, 150
    CG, 92, 131
    Cholesky, 131
    Crout, 131
    GMRES, 131
    LU, 131
    sparsesolver, 131
    UMFPACK, 131
sparsesolver, 131
split=, 94
square, 166
    flags=, 79
Stokes, 190
stokes, 188
stop test, 131
    absolue, 194
strain tensor, 170
streamlines, 191
stress tensor, 170
string, 56
subdomains, 207
sum, 65

tan, 61
Taylor-Hood, 193
tetgconvexhull, 107
tetgtransfo, 106
transpose, 70, 73, 242
triangle
    [], 84
    area, 84
    label, 84
    region, 84
triangulate, 85
triangulation files, as well as read and write, 24
true, 56, 58
trunc, 94
    label=, 94
    split=, 94
try, 76
tutorial
    LaplaceRT.edp, 165
    adapt.edp, 91
    adaptindicatorP2.edp, 165
    AdaptResidualErrorIndicator.edp, 167
    aTutorial.edp, 154
    beam.edp, 171
    BlackSchol.edp, 187
    convect.edp, 186
    fluidStruct.edp, 203
    freeboundary.edp, 210
    movemesh.edp, 89
    NSUzawaCahouetChabart.edp, 194
    periodic.edp, 160
    periodic4.edp, 160
    periodic4bis.edp, 162
    readmesh.edp, 83
    Schwarz-gc.edp, 202
    Schwarz-no-overlap.edp, 200
    Schwarz-overlap.edp, 198
    StokesUzawa.edp, 193
tutotial
    VI.edp, 196
type of finite element, 119

UMFPACK, 131
upwinding, 33

varf, 15, 57, 132, 134, 194
    array, 137
    matrix, 137
    optimize=, 138
variable, 55
variational formulation, 20
veps=, 151
verbosity, 3, 8
vertex
    label, 84
    x, 84
    y, 84
viso, 35

weak form, 20
while, 74
write files, 83

x, 57

y, 57

z, 57

 

Book Description

Fruit of a long maturing process freefem, in its last avatar, FreeFem++, is a high level integrated development environment (IDE) for partial differential equations (PDE). It is the ideal tool for teaching the finite element method but it is also perfect for research to quickly test new ideas or multi-physics and complex applications.

FreeFem++has an advanced automatic mesh generator, capable of a posteriori mesh adaptation; it has a general purpose elliptic solver interfaced with fast algorithms such as the multi-frontal method UMFPACK. Hyperbolic and parabolic problems are solved by iterative algorithms prescribed by the user with the high level language of FreeFem++. It has several triangular finite elements, including discontinuous elements. Finally everything is there in FreeFem++to prepare research quality reports: color display online with zooming and other features and postscript printouts.

This book is ideal for students at Master level, for researchers at any level and for engineers also in financial mathematics.

Editorial Reviews

…Impossible to put the book down, suspense right up to the last page…”

A. Tanh, Siam Chronicle.

…The chapter on discontinuous fems is so hilarious ….” B. Galerkine, .

About the Authors

Frédéric Hecht is a professor of numerical analysis at the university of Paris VI and does his research at the Laboratoire Jacques-Louis Lions (LJLL). He is also a member of the project gamma at INRIA. He is the author of several advanced software tools for automatic triangulations including the public domain EMC2.
Olivier Pironneau is a professor of numerical analysis at the university of Paris VI and at LJLL. His scientific contributions are in numerical methods for fluids. He is a member of the Institut Universitaire de France and of the French Academy of Sciences
Koji Ohtsuka is a professor at the Hiroshima Kokusai Gakuin University, Japan and chairman of the World Scientific and Engineering academy and Society, Japan chapter. His research is in fracture dynamics, modelling and computing.
Antoine Le Hyaric is a research engineer from the ”Centre National de la Recherche Scientifique” (CNRS) at LJLL . He is an expert in software engineering for scientific applications. He has applied his skills mainly to electromagnetics simulation, parallel computing and three-dimensional visualization.