Date post: | 09-Jul-2018 |
Category: |
Documents |
Upload: | trinhtuyen |
View: | 216 times |
Download: | 0 times |
Structured meshes
Very simple computational domains can be discretized usingboundary-fitted structured meshes (also called grids)
The grid lines of a Cartesian mesh are parallel to one another
Structured meshes
A general structured mesh is logically equivalent to a uniformCartesian grid (there exists a one-to-one mapping)
There are d families of grid lines in Rd, d = 1, 2, 3
Members of the same family do not cross each other and cross eachmember of the other families just once
The grid lines of each family can be numbered consecutively
The position of each grid point (or mesh cell) is uniquely identifiedby a set of d indices in Rd, e.g., (xi, yj) ∈ R2, (xi, yj , zk) ∈ R3
Structured meshes
Each internal grid point has 4 nearest neighbors in 2D, 6 in 3D
One of the indices of each pair of neighbor points differs by ±1
This neighbor connectivity simplifies programming, provides fastdata access and leads to efficient numerical algorithms
The matrices of linear algebraic systems are banded and fast solvers(both direct and iterative) are readily available for such systems
Structured meshes
The generation of a structured mesh may be difficult or impossiblefor computational domains of complex geometrical shape
Local mesh refinement in one subdomain produces unnecessarilysmall spacing in other parts of the domain
Long thin cells may adversely affect convergence of iterative solversor result in violations of discrete maximum principles
Block-structured meshes
Two (or more) level subdivision of the computational domain
Decomposition into relatively large overlapping or nonoverlappingsubdomains (blocks, macroelements) on the coarse level
Discretization of these blocks using structured meshes
Block-structured meshes
Block-structured meshes with overlapping blocks are sometimescalled composite or Chimera meshes
Mesh generation for complex domains and flow problems withmoving objects or interfaces becomes relatively easy
Block-structured meshes
More flexibility than with single-block structured meshes
Mesh spacing may be chosen individually for each block
Local refinement in one block does not affect other blocks
Solvers for structured grids can be applied blockwise
Programming is more difficult than for structured meshes
Interpolation and/or conservation errors at block interfaces
Unstructured meshes
No restrictions on the number of neighbor elements or nodes
Automatic mesh generation for complex domains (triangles orquadrilaterals in 2D, tetrahedra or hexaedra in 3D)
Unstructured meshes
Highest flexibility w.r.t. mesh generation and adaptation(refinement, coarsening, redistribution of mesh points)
The coordinates of each mesh point and numbers of nodesbelonging to each element must be stored and retrieved
High implementation effort, irregular sparsity pattern of coefficientmatrices, slow data access due to indirect addressing
Computational cost is significantly higher than that for a structuredgrid with the same number of mesh points/elements
Choice of the mesh
Summary of pros and cons
structured unstructuredcomplex geometries − +local mesh refinement − +automatic mesh generation − +cost of mesh generation + −programming effort + −efficiency of data access + −efficiency of algorithms + −
Finite approximations
Following the choice of the computational mesh, a discretizationmethod for the equations of the mathematical model is selected
Partial derivatives or integrals are commonly approximated bylinear combinations of discrete function values
The choice of the discretization method depends on the mesh
structured meshes: finite differences or finite volumes
unstructured meshes: finite volumes or finite elements
Finite differences
Conservation law∂u
∂t+∇ · f = q in Ω× (0, T )
Discrete unknowns
ui(t) ≈ u(xi, t), i = 1, . . . , N
Approximation of derivatives(∂u
∂x
)i
≈ ui+1 − ui−1
2∆x ,
(∂2u
∂x2
)i
≈ ui+1 − 2ui + ui−1
(∆x)2
Finite differences
This is the simplest and oldest discretization technique
Derivation from the PDE form of the governing equation
The discrete unknowns are solution values at the grid points
The approximation of partial derivatives in terms of these valuesyields one algebraic equation per grid point
The use of a (block-)structured mesh is usually required
Finite volumes
Integral conservation lawddt
∫Vi
u dx +∫
Si
f · nds =∫
Vi
q dx
Discrete solution values
ui(t) = 1|Vi|
∫Vi
u(x, t) dx ≈ u(xi, t)
Vi
Vj
n
ViVj
xj
xi
n
n
Finite volumes
Derivation from the integral form of a conservation law
The discrete unknowns are cell averages or solution values at thecenters of control volumes (mesh cells or dual mesh cells)
Volume and surface integrals that appear in the conservation laware approximated using numerical quadrature rules
Function values at the quadrature points are obtained usinginterpolation techniques (polynomial fitting)
The computational mesh can be structured or unstructured
Finite elements
Variational problem∫Ω
(w∂u
∂t−∇w · f − wq
)dx +
∫Γwf · nds = 0
Discrete solution values
uh(x, t) =∑
j
uj(t)ϕj(x), ui(t) ≈ u(xi, t)
Basis and test functions
ϕi(xi) = 1, ϕi(xj) = 0, ∀j 6= i
Finite elements
Derivation from a variational form of a PDE model
The coefficients of the basis functions ϕi typically representapproximate function values at interpolation points
Inside each cell, the approximate solution uh is a polynomial
Substitution of uh ≈ u into the variational formulation withw ∈ ϕi yields one algebraic equation per mesh node
The computational mesh can be structured or unstructured
Time discretization
Discrete time levels
0 = t0 < t1 < · · · < tM = T, tn = n∆t
Approximation of the time derivative
∂ui
∂t≈ un+1
i − uni
∆t , uni ≈ ui(tn), u0
i = u0(xi)
Linear algebraic systems
Aun+1 = b(un), n = 0, 1, . . . ,M − 1
Linear solvers
Explicit methods: A is a diagonal matrix; the equations of the linearsystem are decoupled and can be solved in a segregated manner
Implicit methods: A is a sparse matrix; the equations of the linearsystem are coupled and must be solved using numerical methods
Iterative solvers that exploit sparsity (and structure, if any) of thecoefficient matrix are usually more efficient than direct methods
Choice of numerical tools
There are many possibilities to discretize a given problem using finitedifference, finite volume or finite element methods
The choice of approximations influences the accuracy of numericalsolutions, programming effort, and computational cost
A compromise between simplicity, ease of implementation, accuracyand computational efficiency has to be made
Numerical algorithms must be stable to produce reasonable results
Design criteria
Consistency: local discretization errors should be proportional topositive powers of the mesh size h and time step ∆t
Stability: rounding and iteration errors that appear in the processof numerical solution should not be magnified
Convergence: numerical solutions should become exact in the limitof vanishing mesh sizes and time steps
Design criteria
Conservation: numerical solutions should satisfy a discrete form ofthe integral conservation law (local or global)
Boundedness: discrete maximum principles should hold if the exactsolution satisfies a maximum principle
Accuracy: at least second-order convergence for smooth data
Finite differences in 1D
Let u : [a, b] 7→ R be a differentiable function of x
A uniform mesh is generated using a subdivision of the domainΩ = (a, b) into N subintervals of equal length ∆x
xi = a+ i∆x, ∆x = b− aN
The discrete unknowns are given by
ui ≈ u(xi), i = 0, 1, . . . , N
First derivative
The first derivative of u(x) at the mesh point xi is defined by
∂u
∂x(xi) = lim
∆x→0
u(xi + ∆x)− u(xi)∆x
= lim∆x→0
u(xi)− u(xi −∆x)∆x
= lim∆x→0
u(xi + ∆x)− u(xi −∆x)2∆x
and can be approximated using a finite (but small) spacing ∆x
Finite differences
The first derivative of u(x) at xi can be approximated by
forward difference(∂u
∂x
)i
≈ ui+1 − ui
∆x
backward difference(∂u
∂x
)i
≈ ui − ui−1
∆x
central difference(∂u
∂x
)i
≈ ui+1 − ui−1
2∆x
The quality of these approximations depends on u and ∆x
Geometric interpretation
The first derivative of u at the mesh point xi is the slope of thetangent to the curve u(x) at that mesh point
It can be approximated by the slope of a straight line passingthrough two nearby points on the curve
x
i+1
x
i
x
i1
u
x
exa t
entral
forward
ba kward
xx
Derivation from Taylor series
The Taylor series expansion of u about xi is given by
u(x) = u(xi) + (x− xi)(∂u
∂x
)i
+ (x− xi)2
2
(∂2u
∂x2
)i
+ (x− xi)3
6
(∂3u
∂x3
)i
+ · · ·+ (x− xi)n
n!
(∂nu
∂xn
)i
+ . . .
Using this expansion at the neighbor points, we find that
u(xi±1) = u(xi)±∆x(
∂u∂x
)i+ (∆x)2
2
(∂2u∂x2
)i± (∆x)3
6
(∂3u∂x3
)i+ . . .
Truncation errors
Forward difference(∂u
∂x
)i
= ui+1 − ui
∆x − ∆x2
(∂2u
∂x2
)i
− (∆x)2
6
(∂3u
∂x3
)i
+ . . .
Backward difference(∂u
∂x
)i
= ui − ui−1
∆x + ∆x2
(∂2u
∂x2
)i
− (∆x)2
6
(∂3u
∂x3
)i
+ . . .
Central difference(∂u
∂x
)i
= ui+1 − ui−1
2∆x − (∆x)2
6
(∂3u
∂x3
)i
+ . . .
Truncation errors
The local truncation error ε of a finite difference approximation isthe neglected remainder of the Taylor series
ε = αp+1(∆x)p + αp+2(∆x)p+1 + . . .
The term proportional to (∆x)p is the leading truncation errorwhich determines the order of consistency
ε = O(∆x)p
The order of a numerical approximation indicates how fast the erroris reduced when the mesh is refined
It does not, however, provide any information about the accuracyof the approximation on a given mesh
Second derivative
Taylor series expansion about xi
u(xi+1) = u(xi)+∆x(∂u
∂x
)i
+(∆x)2
2
(∂2u
∂x2
)i
+(∆x)3
6
(∂3u
∂x3
)i
+. . .
u(xi−1) = u(xi)−∆x(∂u
∂x
)i
+(∆x)2
2
(∂2u
∂x2
)i
− (∆x)3
6
(∂3u
∂x3
)i
+. . .
Central difference approximation(∂2u
∂x2
)i
= ui+1 − 2ui + ui−1
(∆x)2 +O(∆x)2
Second derivative
Approximation in terms of first-order divided differences
∂2u
∂x2 = ∂
∂x
(∂u
∂x
)⇒
(∂2u
∂x2
)i
≈
(∂u∂x
)i+1/2 −
(∂u∂x
)i−1/2
∆x
Central difference approximation at the points xi±1/2(∂2u
∂x2
)i
≈ui+1−ui
∆x − ui−ui−1∆x
∆x = ui+1 − 2ui + ui−1
(∆x)2
Diffusive fluxes
Approximation in terms of first-order divided differences
f
(x,∂u
∂x
)= a(x)∂u
∂x⇒
(∂f
∂x
)i
≈fi+1/2 − fi−1/2
∆x
Central difference approximation at the points xi±1/2(∂f
∂x
)i
≈ai+1/2
ui+1−ui
∆x − ai−1/2ui−ui−1
∆x
∆x
=ai+1/2ui+1 − (ai+1/2 + ai−1/2)ui + ai−1/2ui−1
(∆x)2
One-sided approximations
No left or right neighbors at the boundary points x0 = a, xN = b
x0 x1 x2?First-order forward difference
(∂u
∂x
)0
= u1 − u0
∆x +O(∆x)
How can we construct higher-order one-sided approximations?
Polynomial fitting
Taylor expansion about the boundary point x = 0
u(x) = u(0) + x
(∂u
∂x
)0
+ x2
2
(∂2u
∂x2
)0
+ x3
6
(∂3u
∂x3
)0
+ . . .
Approximaton by a polynomial and differentiation
u(x) ≈ a+ bx+ cx2,∂u
∂x≈ b+ 2cx,
(∂u
∂x
)0≈ b
u0 = au1 = a+ b∆x+ c(∆x)2
u2 = a+ 2b∆x+ 4c(∆x)2
c(∆x)2 = u1 − u0 − b∆x
b = −3u0+4u1−u22∆x
Error analysis
Consider a one-sided difference approximation of the form(∂u
∂x
)i
≈ αui + βui+1 + γui+2
∆x , α, β, γ ∈ R
To prove consistency and derive the local truncation error,substitute the Taylor series expansions
ui+1 = ui + ∆x(
∂u∂x
)i+ (∆x)2
2
(∂2u∂x2
)i+ (∆x)3
6
(∂3u∂x3
)i+ . . .
ui+2 = ui + 2∆x(
∂u∂x
)i+ (2∆x)2
2
(∂2u∂x2
)i+ (2∆x)3
6
(∂3u∂x3
)i+ . . .
Error analysis
Substitution of the Taylor series expansions yields
αui + βui+1 + γui+2
∆x = α+ β + γ
∆x ui + (β + 2γ)(∂u
∂x
)i
+ ∆x2 (β + 4γ)
(∂2u
∂x2
)i
+O(∆x)2
The approximation is second-order accurate if
α+ β + γ = 0, β + 2γ = 1, β + 4γ = 0
It follows that(
∂u∂x
)i
= −3ui+4ui+1−ui+22∆x +O(∆x)2
Error analysis
Consider a one-sided difference approximation of the form(∂2u
∂x2
)i
≈ αui + βui+1 + γui+2
(∆x)2 , α, β, γ ∈ R
To prove consistency and derive the local truncation error,substitute the Taylor series expansions
ui+1 = ui + ∆x(
∂u∂x
)i+ (∆x)2
2
(∂2u∂x2
)i+ (∆x)3
6
(∂3u∂x3
)i+ . . .
ui+2 = ui + 2∆x(
∂u∂x
)i+ (2∆x)2
2
(∂2u∂x2
)i+ (2∆x)3
6
(∂3u∂x3
)i+ . . .
Error analysis
Substitution of the Taylor series expansions yields
αui + βui+1 + γui+2
(∆x)2 = α+ β + γ
(∆x)2 ui + β + 2γ∆x
(∂u
∂x
)i
+ β + 4γ2
(∂2u
∂x2
)i
+O(∆x)
The approximation is first-order accurate if
α+ β + γ = 0, β + 2γ = 0, β + 4γ = 2
It follows that(
∂2u∂x2
)i
= ui−2ui+1+ui+2(∆x)2 +O(∆x)
Higher-order approximations
Third-order forward difference / 1st derivative(∂u
∂x
)i
= −ui+2 + 6ui+1 − 3ui − 2ui−1
6∆x +O(∆x)3
Third-order backward difference / 1st derivative(∂u
∂x
)i
= 2ui+1 + 3ui − 6ui−1 + ui−2
6∆x +O(∆x)3
Higher-order approximations
Fourth-order central difference / 1st derivative(∂u
∂x
)i
= −ui+2 + 8ui+1 − 8ui−1 + ui−2
12∆x +O(∆x)4
Fourth-order central difference / 2nd derivative
(∂2u
∂x2
)i
= −ui+2 + 16ui+1 − 30ui + 16ui−1 − ui−2
12(∆x)2 +O(∆x)4
Properties
To achieve higher order accuracy, we need more grid points
One-sided high-order approximations must be used at boundarypoints; the implementation becomes more involved
The larger number of unknowns per equation requires morememory and increases the cost of solving linear systems
Desired accuracy can be attained on coarser meshes
Second-order approximations are usually optimal for CFD
Poisson equation in 1D
Dirichlet problem −∂2u
∂x2 = f in Ω = (0, 1)
u(0) = 0, u(1) = 0
Physical interpretation: u(x) is the displacement of a suspension bridge,f(x) is the load at point x ∈ Ω
Maximum principle: f(x) ≤ 0, ∀x ⇒ u(x) ≤ 0, ∀x
Discretization: xi = i∆x, where ∆x = 1N
ui ≈ u(xi), fi = f(xi)
Poisson equation in 1D
Approximation by central differences−ui−1−2ui+ui+1
(∆x)2 = fi, i = 1, . . . , N − 1u0 = uN = 0 (boundary conditions)
Linear algebraic system
i = 1 −u0−2u1+u2(∆x)2 = f1
i = 2 −u1−2u2+u3(∆x)2 = f2
i = 3 −u2−2u3+u4(∆x)2 = f3
. . .
i = N − 1 uN−2−2uN−1+uN
(∆x)2 = fN−1
Poisson equation in 1D
The matrix form of the linear system is given by
Au = f, A ∈ R(N−1)×(N−1), u, f ∈ RN−1
where A is tridiagonal, symmetric positive-definite
A = 1(∆x)2
2 −1−1 2 −1−1 2 −1
. . .−1 2
The discrete problem is well-posed (the solution u = A−1f existsand is unique since the matrix A is invertible)
There are efficient direct solvers for tridiagonal matrices
Thomas algorithm
Tridiagonal matrix algorithm (TDMA)
aixi−1 + bixi + cixi+1 = di, i = 1, . . . , n
a1 = 0, cn = 0
Matrix form of the linear systemb1 c1a2 b2 c2
a3 b3 c3. . .an bn
x1x2x3·xn
=
d1d2d3·dn
Thomas algorithm
Fast Gaussian elimination for tridiagonal systems:
Forward sweepfor k = 2, . . . , n dobk = bk − ak
ck−1bk−1
dk = dk − akdk−1bk−1
end k-loop
Backward sweep
xn = dn
bn
for k = n− 1, . . . , 1 doxk = dk−ckxk+1
bk
end k-loop
Computational cost: just O(n) arithmetic operations instead of O(n3)