A 2D compact stencil using all 8 adjacent nodes, plus the center node (in red).
In mathematics , especially in the areas of numerical analysis called numerical partial differential equations , a compact stencil is a type of stencil that uses only nine nodes for its discretization method in two dimensions. It uses only the center node and the adjacent nodes. For any structured grid utilizing a compact stencil in 1, 2, or 3 dimensions the maximum number of nodes is 3, 9, or 27 respectively. Compact stencils may be compared to non-compact stencils . Compact stencils are currently implemented in many partial differential equation solvers, including several in the topics of CFD, FEA, and other mathematical solvers relating to PDE's.
Two Point Stencil Example
The two point stencil for the first derivative of a function is given by:
f
′
(
x
0
)
=
f
(
x
0
+
h
)
−
f
(
x
0
−
h
)
2
h
+
O
(
h
2
)
{\displaystyle f'(x_{0})={\frac {f\left(x_{0}+h\right)-f\left(x_{0}-h\right)}{2h}}+O\left(h^{2}\right)}
.
This is obtained from the Taylor series expansion of the first derivative of the function given by:
f
′
(
x
0
)
=
f
(
x
0
+
h
)
−
f
(
x
0
)
h
−
f
(
2
)
(
x
0
)
2
!
h
−
f
(
3
)
(
x
0
)
3
!
h
2
−
f
(
4
)
(
x
0
)
4
!
h
3
+
⋯
{\displaystyle {\begin{array}{l}f'(x_{0})={\frac {f\left(x_{0}+h\right)-f(x_{0})}{h}}-{\frac {f^{(2)}(x_{0})}{2!}}h-{\frac {f^{(3)}(x_{0})}{3!}}h^{2}-{\frac {f^{(4)}(x_{0})}{4!}}h^{3}+\cdots \end{array}}}
.
Replacing
h
{\displaystyle h}
with
−
h
{\displaystyle -h}
, we have:
f
′
(
x
0
)
=
−
f
(
x
0
−
h
)
−
f
(
x
0
)
h
+
f
(
2
)
(
x
0
)
2
!
h
−
f
(
3
)
(
x
0
)
3
!
h
2
+
f
(
4
)
(
x
0
)
4
!
h
3
+
⋯
{\displaystyle {\begin{array}{l}f'(x_{0})=-{\frac {f\left(x_{0}-h\right)-f(x_{0})}{h}}+{\frac {f^{(2)}(x_{0})}{2!}}h-{\frac {f^{(3)}(x_{0})}{3!}}h^{2}+{\frac {f^{(4)}(x_{0})}{4!}}h^{3}+\cdots \end{array}}}
.
Addition of the above two equations together results in the cancellation of the terms in odd powers of
h
{\displaystyle h}
:
2
f
′
(
x
0
)
=
f
(
x
0
+
h
)
−
f
(
x
0
)
h
−
f
(
x
0
−
h
)
−
f
(
x
0
)
h
−
2
f
(
3
)
(
x
0
)
3
!
h
2
+
⋯
{\displaystyle {\begin{array}{l}2f'(x_{0})={\frac {f\left(x_{0}+h\right)-f(x_{0})}{h}}-{\frac {f\left(x_{0}-h\right)-f(x_{0})}{h}}-2{\frac {f^{(3)}(x_{0})}{3!}}h^{2}+\cdots \end{array}}}
.
f
′
(
x
0
)
=
f
(
x
0
+
h
)
−
f
(
x
0
−
h
)
2
h
−
f
(
3
)
(
x
0
)
3
!
h
2
+
⋯
{\displaystyle {\begin{array}{l}f'(x_{0})={\frac {f\left(x_{0}+h\right)-f\left(x_{0}-h\right)}{2h}}-{\frac {f^{(3)}(x_{0})}{3!}}h^{2}+\cdots \end{array}}}
.
f
′
(
x
0
)
=
f
(
x
0
+
h
)
−
f
(
x
0
−
h
)
2
h
+
O
(
h
2
)
{\displaystyle {\begin{array}{l}f'(x_{0})={\frac {f\left(x_{0}+h\right)-f\left(x_{0}-h\right)}{2h}}+O\left(h^{2}\right)\end{array}}}
.
Three Point Stencil Example
For example, the three point stencil for the second derivative of a function is given by:
f
(
2
)
(
x
0
)
=
f
(
x
0
+
h
)
+
f
(
x
0
−
h
)
−
2
f
(
x
0
)
h
2
+
O
(
h
2
)
{\displaystyle {\begin{array}{l}f^{(2)}(x_{0})={\frac {f\left(x_{0}+h\right)+f\left(x_{0}-h\right)-2f(x_{0})}{h^{2}}}+O\left(h^{2}\right)\end{array}}}
.
This is obtained from the Taylor series expansion of the first derivative of the function given by:
f
′
(
x
0
)
=
f
(
x
0
+
h
)
−
f
(
x
0
)
h
−
f
(
2
)
(
x
0
)
2
!
h
−
f
(
3
)
(
x
0
)
3
!
h
2
−
f
(
4
)
(
x
0
)
4
!
h
3
+
⋯
{\displaystyle {\begin{array}{l}f'(x_{0})={\frac {f\left(x_{0}+h\right)-f(x_{0})}{h}}-{\frac {f^{(2)}(x_{0})}{2!}}h-{\frac {f^{(3)}(x_{0})}{3!}}h^{2}-{\frac {f^{(4)}(x_{0})}{4!}}h^{3}+\cdots \end{array}}}
.
Replacing
h
{\displaystyle h}
with
−
h
{\displaystyle -h}
, we have:
f
′
(
x
0
)
=
−
f
(
x
0
−
h
)
−
f
(
x
0
)
h
+
f
(
2
)
(
x
0
)
2
!
h
−
f
(
3
)
(
x
0
)
3
!
h
2
+
f
(
4
)
(
x
0
)
4
!
h
3
+
⋯
{\displaystyle {\begin{array}{l}f'(x_{0})=-{\frac {f\left(x_{0}-h\right)-f(x_{0})}{h}}+{\frac {f^{(2)}(x_{0})}{2!}}h-{\frac {f^{(3)}(x_{0})}{3!}}h^{2}+{\frac {f^{(4)}(x_{0})}{4!}}h^{3}+\cdots \end{array}}}
.
Subtraction of the above two equations results in the cancellation of the terms in even powers of
h
{\displaystyle h}
:
0
=
f
(
x
0
+
h
)
−
f
(
x
0
)
h
+
f
(
x
0
−
h
)
−
f
(
x
0
)
h
−
2
f
(
2
)
(
x
0
)
2
!
h
−
2
f
(
4
)
(
x
0
)
4
!
h
3
+
⋯
{\displaystyle {\begin{array}{l}0={\frac {f\left(x_{0}+h\right)-f(x_{0})}{h}}+{\frac {f\left(x_{0}-h\right)-f(x_{0})}{h}}-2{\frac {f^{(2)}(x_{0})}{2!}}h-2{\frac {f^{(4)}(x_{0})}{4!}}h^{3}+\cdots \end{array}}}
.
f
(
2
)
(
x
0
)
=
f
(
x
0
+
h
)
+
f
(
x
0
−
h
)
−
2
f
(
x
0
)
h
2
−
2
f
(
4
)
(
x
0
)
4
!
h
2
+
⋯
{\displaystyle {\begin{array}{l}f^{(2)}(x_{0})={\frac {f\left(x_{0}+h\right)+f\left(x_{0}-h\right)-2f(x_{0})}{h^{2}}}-2{\frac {f^{(4)}(x_{0})}{4!}}h^{2}+\cdots \end{array}}}
.
f
(
2
)
(
x
0
)
=
f
(
x
0
+
h
)
+
f
(
x
0
−
h
)
−
2
f
(
x
0
)
h
2
+
O
(
h
2
)
{\displaystyle {\begin{array}{l}f^{(2)}(x_{0})={\frac {f\left(x_{0}+h\right)+f\left(x_{0}-h\right)-2f(x_{0})}{h^{2}}}+O\left(h^{2}\right)\end{array}}}
.
See also
References
W. F. Spotz. High-Order Compact Finite Difference Schemes for Computational Mechanics. PhD thesis, University of Texas at Austin, Austin, TX, 1995.
Communications in Numerical Methods in Engineering, Copyright © 2008 John Wiley & Sons, Ltd.
Category :