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.[ 1] [ 2]
Two Point Stencil Example [ edit ]
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 [ edit ]
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}}}
.
^ 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.