Finite difference method

  • Upload
    hsss500

  • View
    240

  • Download
    0

Embed Size (px)

Citation preview

  • 8/7/2019 Finite difference method

    1/20

    Finite difference method

    Principle: derivatives in the partial differential equation are approximatedby linear combinations of function values at the grid points

    1D: = (0 , X ), u i u (x i ), i = 0 , 1, . . . , N

    grid points x i = i x mesh size x = XN

    First-order derivatives

    ux (x ) = lim x 0

    u (x + x ) u (x) x = lim x 0

    u (x ) u (x x) x

    = lim x 0

    u (x + x ) u (x x)2 x

    (by denition)

  • 8/7/2019 Finite difference method

    2/20

    Approximation of rst-order derivativesGeometric interpretation

    ux i

    u i +1 u i x forward difference

    ux i

    u i u i 1 x backward difference

    ux i

    u i +1 u i 12 x central difference

    Taylor series expansion u (x ) =

    n =0

    (x x i ) n

    n ! n ux n i , u C

    ([0, X ])

    T 1 : u i+1 = u i + xux i +

    ( x )2

    2 2ux 2 i +

    ( x )3

    6 3ux 3 i + . . .

    T 2 : u i 1 = u i xux i

    +( x)2

    2 2ux 2 i

    ( x)3

    6 3ux 3 i

    + . . .

  • 8/7/2019 Finite difference method

    3/20

    Analysis of truncation errorsAccuracy of nite difference approximations

    T 1 u

    x i=

    u i+1 u i

    x

    x

    2

    2u

    x2

    i

    ( x)2

    6

    3u

    x3

    i+ . . .

    forward difference truncation error O( x)

    T 2 ux i

    =u i u i 1

    x+

    x2

    2ux 2 i

    ( x )2

    6 3ux 3 i

    + . . .

    backward difference truncation error O( x)

    T 1 T 2 ux i

    =u i+1 u i 1

    2 x

    ( x )2

    6 3ux 3 i

    + . . .

    central difference truncation error O( x )2

    Leading truncation error

    = m ( x)m + m +1 ( x)m +1 + . . . m ( x )m

  • 8/7/2019 Finite difference method

    4/20

    Approximation of second-order derivatives

    Central difference scheme

    T 1 + T 2 2ux 2 i

    =u i+1 2u i + u i 1

    ( x)2+ O( x )2

    Alternative derivation

    2ux 2 i

    =

    xux i

    = lim x 0

    ux i+1 / 2

    ux i 1/ 2

    x

    u i +1 u i

    x u i u i 1

    x x

    = u i+1 2u i + u i 1

    ( x )2

    Variable coefficients f (x ) = d(x ) ux diffusive ux

    f x i

    f i+1 / 2 f i 1/ 2

    x= di+1 / 2

    u i +1 u i x di 1/ 2

    u i u i 1 x

    x

    =di+1 / 2u i+1 (di+1 / 2 + di 1/ 2)u i + di 1/ 2u i 1

    ( x)2

  • 8/7/2019 Finite difference method

    5/20

    Approximation of mixed derivatives

    2D: 2 u

    xy =

    xuy =

    y

    ux

    2 u

    xy i,j = uy i +1 ,j uy i 1 ,j2 x + O ( x )2

    uy i +1 ,j =u i +1 ,j +1 u i +1 ,j 1

    2 y+ O ( y)2

    uy i 1 ,j =u i 1 ,j +1 u i 1 ,j 1

    2 y+ O ( y)2

    Second-order difference approximation

    2uxy i,j

    =u i+1 ,j +1 u i+1 ,j 1 u i 1,j +1 + u i 1,j 1

    4 x y+ O[( x)2 , ( y)2]

  • 8/7/2019 Finite difference method

    6/20

    One-sided nite differences

    ux 0

    =u 1 u0

    x+ O( x ) forward difference

    backward/central difference approximationswould need u 1 which is not available

    Polynomial tting

    u (x) = u 0 + xu

    x 0+

    x2

    2

    2u

    x2

    0

    +x3

    6

    3u

    x3

    0

    + . . .

    u (x ) a + bx + cx 2 ,ux

    b + 2 cx,ux 0

    b

    approximate u by a polynomial and differentiate it to obtain the derivatives

    u 0 = a

    u 1 = a + b x + c x 2

    u 2 = a + 2 b x + 4 c x2

    c x 2 = u 1 u 0 b x

    b = 3u 0 + 4 u 1 u 2

    2 x

  • 8/7/2019 Finite difference method

    7/20

    Analysis of the truncation error

    One-sided approximationux i

    u i + u i+1 + u i+2

    x

    u i+1 = u i + xux i

    +( x )2

    2 2ux 2 i

    +( x)3

    6 3ux 3 i

    + . . .

    u i+2 = u i + 2 xu

    x i +(2 x)2

    2

    2u

    x 2 i +(2 x )3

    6

    3u

    x 3 i + . . .

    u i + u i +1 + u i +2 x =

    + + x u i + ( + 2 )

    ux i +

    x2 ( + 4 )

    2 ux 2 i

    + O( x 2)

    Second-order accurate if + + = 0 , + 2 = 1 , + 4 = 0

    = 32 , = 2 , = 12

    ux i =

    3u i +4 u i +1 u i +22 x + O( x

    2)

  • 8/7/2019 Finite difference method

    8/20

    Application to second-order derivatives

    One-sided approximation 2ux 2 i

    u i + u i+1 + u i+2

    x2

    u i+1 = u i + xux i

    +( x )2

    2 2ux 2 i

    +( x)3

    6 3ux 3 i

    + . . .

    u i+2 = u i + 2 xu

    x i +(2 x)2

    2

    2u

    x 2 i +(2 x )3

    6

    3u

    x 3 i + . . .

    u i + u i +1 + u i +2 x 2 =

    + + x 2 u i +

    +2 x

    ux i +

    +4 2

    2 ux 2 i

    + O( x)

    First-order accurate if + + = 0 , + 2 = 0 , + 4 = 2

    = 1 , = 2, = 1 ux i =u i 2u i +1 + u i +2

    x 2 + O( x )

  • 8/7/2019 Finite difference method

    9/20

    High-order approximations

    ux i

    =2u i+1 + 3 u i 6u i 1 + u i 2

    6 x+ O( x)3 backward difference

    ux i

    = u i+2 + 6 u i+1 3u i 2u i 16 x

    + O( x)3 forward difference

    ux i

    = u i+2 + 8 u i+1 8u i 1 + u i 2

    12 x+ O( x )4 central difference

    2ux 2 i

    = u i+2 + 16 u i+1 30u i + 16 u i 1 u i 2

    12( x)2+ O( x )4 central difference

    Pros and cons of high-order difference schemes

    more grid points, ll-in, considerable overhead cost high resolution, reasonable accuracy on coarse grids

    Criterion: total computational cost to achieve a prescribed accuracy

  • 8/7/2019 Finite difference method

    10/20

    Example: 1D Poisson equation

    Boundary value problem

    2u

    x 2= f in = (0 , 1), u(0) = u(1) = 0

    One-dimensional mesh

    u i u (x i ), f i = f (x i ) x i = i x, x = 1N , i = 0 , 1, . . . , N

    Central difference approximation O( x )2

    u i 1 2u i + u i +1( x ) 2 = f i , i = 1 , . . . , N 1

    u 0 = u N = 0 Dirichlet boundary conditions

    Result: the original PDE is replaced by a linear system for nodal values

  • 8/7/2019 Finite difference method

    11/20

    Example: 1D Poisson equation

    Linear system for the central difference scheme

    i = 1 u 0 2u 1 + u 2( x ) 2 = f 1

    i = 2 u 1 2u 2 + u 3

    ( x ) 2 = f 2i = 3 u 2 2u 3 + u 4( x ) 2 = f 3

    . . .

    i = N 1 u N 2 2u N 1 + u N( x ) 2 = f N 1

    Matrix form Au = F A R N 1 N 1 u, F R N 1

    A =1

    ( x )2

    2 1 1 2 1

    1 2 1. . . 1 2

    , u =

    u 1u 2u 3

    u N 1

    , F =

    f 1f 2f 3

    f N 1

    The matrix A is tridiagonal and symmetric positive denite invertible.

  • 8/7/2019 Finite difference method

    12/20

    Other types of boundary conditionsDirichlet-Neumann BC u (0) = ux (1) = 0

    u 0 = 0 ,u N +1 u N 1

    2 x= 0 u N +1 = u N 1 central difference

    Extra equation for the last node

    u N 1 2u N + u N +1

    ( x)2= f N

    uN 1 + u N ( x)2

    =12

    f N

    Extended linear system Au = F A R N N u, F R N

    A =1

    ( x)2

    2 1 1 2 1

    1 2 1. . . 1 2 1

    1 1

    , u =

    u1u2u3

    uN 1u N

    , F =

    f 1f 2f 3

    f N 112 f N

    The matrix A remains tridiagonal and symmetric positive denite.

  • 8/7/2019 Finite difference method

    13/20

    Other types of boundary conditions

    Non-homogeneous Dirichlet BC u (0) = g0 only F changes

    u0 = g0 2u1 u 2

    ( x)2= f 1 +

    g0( x )2

    rst equation

    Non-homogeneous Neumann BC ux (1) = g1 only F changes

    uN +1 u N 12 x

    = g1 u N +1 = u N 1 + 2 xg 1

    u N 1 2u N + u N +1

    ( x)2= f N u

    N 1 + u N ( x)2

    = 12

    f N + g1

    x

    Non-homogeneous Robin BC ux (1) + u (1) = g2 A and F change

    u N +1 u N

    12 x + u N = g2 u N +1 = u N

    1 2 xu N + 2 xg 2

    u N 1 2u N + u N +1

    ( x )2= f N

    u N 1 + (1 + x )uN ( x )2

    =12

    f N +g2 x

  • 8/7/2019 Finite difference method

    14/20

    Example: 2D Poisson equation

    Boundary value problem

    2 u

    x 2 2 uy 2 = f in = (0 , 1) (0, 1)

    u = 0 on =

    Uniform mesh: x = y = h, N = 1h

    u i,j u(x i , y j ), f i,j = f (x i , y j ), (x i , y j ) = ( ih,jh ), i, j = 0 , 1, . . . , N

    Central difference approximation O(h 2)

    u i 1 ,j + u i,j 1 4u i,j + u i +1 ,j + u i,j +1h 2 = f i,j , i, j = 1 , . . . , N 1

    u i, 0 = u i,N = u 0,j = uN,j = 0 i, j = 0 , 1, . . . , N

  • 8/7/2019 Finite difference method

    15/20

    Example: 2D Poisson equation

    Linear system Au = F A R (N 1)2 (N 1) 2 u, F R (N 1)

    2

    row-by-rownode numbering

    u = [u 1,1 . . . u N 1,1 u 1,2 . . . u N 1,2 u1,3 . . . u N 1,N 1]T

    F = [ f 1,1 . . . f N 1,1 f 1,2 . . . f N 1,2 f 1,3 . . . f N 1,N 1]T

    A =

    B I I B I

    . . . . . .

    I B I I B

    , B =

    4 1 1 4 1

    . . . . . .

    1 4 1 1 4

    I =

    11

    11

    The matrix A is sparse, block-tridiagonal(for the above numbering) and SPD.

    cond2(A) =| max || min |

    = O(h 2)

    Caution: convergence of iterative solvers deteriorates as the mesh is rened

  • 8/7/2019 Finite difference method

    16/20

    Treatment of complex geometries2D Poisson equation

    2 u

    x 2 2 uy 2 = f in

    u = g0 on

    Difference equation

    u 1 + u2 4u0 + u 3 + u 4

    h 2= f 0

    curvilinear boundary

    Q

    P

    Q04

    h

    2

    1

    3

    R

    stencil of Q

    Linear interpolation

    u (R ) =u 4(h ) + u 0

    h= g0(R ) u 4 = u 0

    h

    + g0(R )h

    h

    Substitution yields u 1 + u 2 4 + h u 0 + u3 = h2 f 0 + g0(R ) hh

    Neumann and Robin BC are even more difficult to implement

  • 8/7/2019 Finite difference method

    17/20

    Grid transformations

    Purpose: to provide a simple treatment of curvilinear boundaries

    The original PDE must be rewritten in terms of ( , ) instead of ( x, y ) anddiscretized in the computational domain rather than the physical one.

    Derivative transformationsux

    ,uy

    , . . .

    difficult to compute

    u

    ,u

    , . . .

    easy to compute

  • 8/7/2019 Finite difference method

    18/20

    PDE transformations for a direct mapping

    Direct mapping = (x, y ), = (x, y )

    Chain rule ux

    =u

    x

    +u

    x

    ,uy

    =u

    y

    +u

    y

    2ux 2

    =u

    2x 2

    +u

    2x 2

    + 2 2u

    x

    x

    + 2u 2

    x

    2+

    2u 2

    x

    2

    2uy 2

    =u

    2y 2

    +u

    2y 2

    + 2 2u

    y

    y

    + 2u 2

    y

    2

    + 2u 2

    y

    2

    Example: 2D Poisson equation u = f turns into

    2u 2

    x

    2

    +y

    2

    2u 2

    x

    2

    +y

    2

    2 2u

    x

    x

    +y

    y

    u

    2x 2

    + 2y 2

    u

    2x 2

    + 2y 2

    = f transformed equationscontain many more terms

    The metrics need to be determined (approximated by nite differences)

  • 8/7/2019 Finite difference method

    19/20

  • 8/7/2019 Finite difference method

    20/20

    Direct versus inverse mappingTotal differentials for both coordinate systems

    = (x, y )

    = (x, y )

    d = x dx +y dy

    d = x dx + y dy

    d

    d=

    x

    y

    x y

    dx

    dy

    x = x (, )

    y = y(, )

    dx = x d +x d

    dy = y

    d + y

    d

    dx

    dy=

    x

    x

    y

    y

    d

    d

    x

    y

    x

    y

    =x

    x

    y

    y

    1

    =1

    det J

    y

    x

    yx

    Relationship between the direct and inverse metricsx

    =1

    det J y

    ,x

    = 1

    det J y

    ,y

    = 1

    det J x

    ,y

    =1

    det J x