You are on page 1of 28

Finite Elements

 Basic formulation
 Basis functions
 Stiffness matrix
 Poisson‘s equation
 Regular grid
 Boundary conditions
 Irregular grid
 Numerical Examples

Scope: Understand the basic concept of the finite element


method with the simple-most equation.

Finite element method 1


Formulation

Let us start with a simple linear system of equations

Ax  b |*y

and observe that we can generally multiply both sides of this


equation with y without changing its solution. Note that x,y
and b are vectors and A is a matrix.

 yAx  yb y  n
We first look at Poisson’s equation

 u ( x)  f ( x)
where u is a scalar field, f is a source term and in 1-D

 2
  2  2
x
Finite element method 2
Poisson‘s equation

We now multiply this equation with an arbitrary function v(x),


(dropping the explicit space dependence)

 uv  fv

... and integrate this equation over the whole domain. For
reasons of simplicity we define our physical domain D in the
interval [0, 1].

  uv   fv
Das Reh springt hoch,
das Reh springt weit,
D D
warum auch nicht,
1 1
  uvdx   fvdx es hat ja Zeit.

0 0

... why are we doing this? ... be patient ...

Finite element method 3


Discretization

As we are aiming to find a numerical solution to our problem it is


clear we have to discretize the problem somehow. In FE problems
– similar to FD – the functional values are known at a discrete set
of points.

... regular grid ...

... irregular grid ...

Domain D
The key idea in FE analysis is to approximate all functions in
terms of basis functions j, so that
N
u  u~   cij i
i 1
Finite element method 4
Basis function

N
~
u u  cij i i 1

where N is the number nodes in our physical domain and ci are real
constants.

With an appropriate choice of basis functions ji, the coefficients ci


are equivalent to the actual function values at node point i. This – of
course – means, that ji=1 at node i and 0 at all other nodes ...

Doesn’t that ring a bell?

Before we look at the basis functions, let us ...

Finite element method 5


Partial Integration

... partially integrate the left-hand-side of our equation ...


1 1
  uvdx   fvdx
0 0
1 1
  (  u )vdx  uv0   vudx
1

0 0

we assume for now that the derivatives of u at the boundaries vanish


so that for our particular problem

1 1
  (  u )vdx   vudx
0 0

Finite element method 6


... so that we arrive at ...


1 1

 uvdx   fvdx
0 0
... with u being the unknown. This is also true for our
approximate numerical system
1 1

 u
0

~vdx  fvdx
0
... where ...

N
u~   cij i
i 1

was our choice of approximating u using basis functions.

Finite element method 7


Partial integration
1 1


0
u 
~vdx  fvdx
0
... remember that v was an arbitrary real function ...
if this is true for an arbitrary function it is also true if

v jj

... so any of the basis functions previously defined ...

... now let’s put everything together ...

Finite element method 8


The discrete system
The ingredients: N
v  jk u~   cij i
i 1
1 1

0
u 
~vdx  fvdx
0

 n 
1 1

0  
i 1
cij i j k dx   f j k dx
 0

... leading to ...

Finite element method 9


The discrete system

... the coefficients ck are constants so that for one particular


function jk this system looks like ...

n 1 1

 c  j j dx   f j dx
i 1
i i k k
0 0

... probably not to your surprise this can be written in matrix form

bi Aik  g k
A b  gkT
ik i
Finite element method 10
The solution
... with the even less surprising solution

bi  A   T 1
ik gk
remember that while the bi’s are really the coefficients of the basis
functions these are the actual function values at node points i as well
because of our particular choice of basis functions.

This become clear further on ...

Finite element method 11


Basis functions
we are looking for functions ji 1 for x  xi
j i ( x)  
with the following property
0 for x  x j , j  i

10
... otherwise we are
free to choose any 9
function ...
8

The simplest choice 7


are of course linear
6
functions:
5
+ grid nodes 4

blue lines – basis 3


functions ji 2

Finite element method 12


Basis functions - gradient

To assemble the stiffness matrix we need the gradient (red) of the basis
functions (blue)

10
9
8
7
6
5
4
3
2
1

Finite element method 13


Stiffness matrix

Knowing the particular form of the basis functions we can now


calculate the elements of matrix Aij and vector gi

n 1 1

 c  j j dx   f j dx
i 1
i i k k bi Aik  g k
0 0
1
g k   f j k dx
1
Aik   j i j k dx
0 0
Note that ji are continuous functions defined in the interval [0,1], e.g.
 x  xi 1
x x for xi 1  x  xi
 i i 1
x  x Let us – for now – assume a
j i ( x)   i 1 for xi  x  xi 1
 xi 1  xi
regular grid ... then
 0 elsewhere


Finite element method 14
Stiffness matrix –regular grid

 x  xi 1 ~
x x for xi 1  x  xi x
for  dx  ~
 dx  1 x 0
 i i 1  ~
x  x x
j i ( x)   i 1 for xi  x  xi 1  ~
j i ( x )  1  for 0~
x  dx
 xi 1  xi  dx
 0 elsewhere  0 elsewhere
 

... where we have used ...


ji

~
x  x  xi
dx  xi  xi 1
xi

dx
Finite element method 15
Regular grid - gradient

 1 / dx for  dx  ~
x 0 ~
~  x  x  xi
j i ( x )   1 / dx for 0  ~x  dx
 0 dx  xi  xi 1
 elsewhere

ji

1/dx

xi

dx

-1/dx
Finite element method 16
Stifness matrix - elements
10
1 9

Aik   j i j k dx
8
7
6
5
0 4
3
2
1

... we have to distinguish various cases ... e.g. ...


x1  dx x1  dx
1 1
1 dx
1 1
A11   j1j1dx   j j dx  
1 1 dx  2  dx 
0 x1 x1
dx dx dx 0
dx
1 x2 x2  dx

A22   j 2j 2 dx   j j dx   j j dx
2 2 2 2
0 x2  dx x2
0 dx
1 1 2
 2
dx dx dx 2
dx  
0
dx 
dx

Finite element method 17


Stiffness matrix
10
1 9

Aik   j i j k dx
8
7
6
5
0 4
3
2
1

......and
and......
x1  dx x1  dx
1 1
1
A12   j1j 2 dx   j j dx  
1 2 dx
0 x1 x1
dx dx
1 1
dx
 2
dx 
0
dx 
dx
A21  A12

... so that finally the stiffness matrix looks like ...

Finite element method 18


Stiffness matrix
10
1 9

Aik   j i j k dx
8
7
6
5
0 4
3
2
1

 1 1 
 
 1 2 1 
Aij   
1

dx  
  1 2  1
  
 1 1 

... so far we have ignored sources and boundary conditions ...

Finite element method 19


Boundary conditions - sources
... let us start restating the problem ...

 u ( x)  f ( x)
... which we turned into the following formulation ...

n 1 1

 c  j j dx   f j dx
i 1
i i k k
0 0

... assuming ...

N N 1
u~   cij i with b.c. u~   cij i  u (0)j1  u (1)j N
i 1 i 2

where u(0) and u(1) are the values at the boundaries of the domain [0,1].
How is this incorporated into the algorithm?

Finite element method 20


Boundary conditions
n 1 1

 c  j j dx   f j dx
i i k k  u ( x)  f ( x)
i 1 0 0

... which we turned into the following formulation ...


n 1 1 1 1 1

 c  j j dx   f j dx  u(0) j j dx  u(1) j j dx
i 2
i i k k 1 k n k
0 0 0 0

... in pictorial form ...


boundary condition
AT b = g

source heterogeneity (f)

boundary condition

... the system feels the boundary conditions through the (modified) source term

Finite element method 21


Numerical Example
Matlab FEM code
 u ( x)  f ( x) % source term
s=(1:nx)*0;s(nx/2)=1.;
Domain: [0,1]; nx=100; % boundary left u_1 int{ nabla phi_1 nabla phij }
u1=0; s(1) =0;
dx=1/(nx-1);f(x)=d(1/2) % boundary right u_nx int{ nabla phi_nx nabla phij }
Boundary conditions: unx=0; s(nx)=0;
u(0)=u(1)=0
% assemble matrix Aij

A=zeros(nx);

Matlab FD code for i=2:nx-1,


for j=2:nx-1,
if i==j,
f(nx/2)=1/dx;
A(i,j)=2/dx;
elseif j==i+1
A(i,j)=-1/dx;
for it = 1:nit,
elseif j==i-1
uold=u; A(i,j)=-1/dx;
else
du=(csh(u,1)+csh(u,-1));
A(i,j)=0;
u=.5*( f*dx^2 + du ); end
end
u(1)=0;
end
u(nx)=0; fem(2:nx-1)=inv(A(2:nx-1,2:nx-1))*s(2:nx-1)';
fem(1)=u1;
fem(nx)=unx;
end

Finite element method 22


Regular grid
 u ( x)  f ( x)
Domain: [0,1]; nx=100;
dx=1/(nx-1);f(x)=d(1/2) FD (red) - FEM (blue)
0.25
Boundary conditions:
u(0)=u(1)=0
0.2

0.15

Matlab FD code (red)


u(x)

0.1

Matlab FEM code (blue) 0.05

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x

Finite element method 23


Regular grid - non zero b.c.
 u ( x)  f ( x)
FD (red) - FEM (blue) -> Regular grid
Domain: [0,1]; nx=100; 0.4
dx=1/(nx-1);f(x)=d(1/2)
Boundary conditions:
0.35
u(0)=0.15
u(1)=0.05
0.3

% Quelle
0.25
s=(1:nx)*0;s(nx/2)=1.;
% Randwert links u_1 int{ nabla phi_1 nabla
u(x)

0.2
Matlab FD code (red) phij }
u1=0.15;
0.15 s(2) =u1/dx;
% Randwert links u_nx int{ nabla phi_nx nabla
phij0.1
}
unx=0.05; s(nx-1)=unx/dx;
Matlab FEM code (blue)
0.05

0
0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x

Finite element method 24


Stiffness – irregular grid

10

9
1
Aik   j i j k dx
8

6
0 5

x1  h1 x1  h1
1 1
1
A12   j1j 2 dx   j1j 2dx   dx
0 x1 x1
h1 h1
1 1 1
h

 2  dx   A21
h1 0 h1 i=1 2 3 4 5 6 7
1 1 + + + + + + +
Aii   h1 h2 h3 h4 h5 h6
hi 1 hi
Finite element method 25
Example
Stiffness matrix A

 u ( x)  f ( x) for i=2:nx-1,
for j=2:nx-1,
if i==j,
A(i,j)=1/h(i-1)+1/h(i);
Domain: [0,1]; nx=100; elseif i==j+1
dx=1/(nx-1);f(x)=d(1/2)
Boundary conditions: A(i,j)=-1/h(i-1);
u(0)=u0; u(1)=u1 elseif i+1==j
A(i,j)=-1/h(i);
else
A(i,j)=0;
i=1 2 3 4 5 6 7 end
+ + + + + + + end
h1 h2 h3 h4 h5 h6 end

Finite element method 26


Irregular grid – non zero b.c.
 u ( x)  f ( x) FEM on Chebyshev grid
Domain: [0,1]; nx=100;
dx=1/(nx-1);f(x)=d(1/2) FD (red) - FEM (blue)
0.4
Boundary conditions:
u(0)=0.15
u(1)=0.05 0.35

0.3

0.25
Matlab FD code (red)
u(x)

0.2

0.15

Matlab FEM code (blue) 0.1

0.05

0
+ FEM grid points 0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1
x

Finite element method 27


Summary

In finite element analysis we approximate a function defined in


a Domain D with a set of orthogonal basis functions with
coefficients corresponding to the functional values at some
node points.

The solution for the values at the nodes for some partial
differential equations can be obtained by solving a linear
system of equations involving the inversion of (sometimes
sparse) matrices.

Boundary conditions are inherently satisfied with this


formulation which is one of the advantages compared to finite
differences.

Finite element method 28

You might also like