You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: source/3_numerical.rst
+85Lines changed: 85 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -174,10 +174,95 @@ The continuous velocity field is reconstructed by trilinear interpolation of the
174
174
175
175
**Tricubic**
176
176
177
+
178
+
177
179
**Hermite**
178
180
179
181
The ``hermite``
180
182
183
+
**WENO**
184
+
185
+
The weighted essentially non-oscillatory ``WENO`` used here is a fifth-order WENO reconstruction (WENO-5). It is suggested to be used in research with intermittent capture need, e.g., high-speed flows and shock capture.
186
+
It shows relatively poor performance in general cases, and comsuming more wall time. The process is given as follows.
187
+
188
+
**Fifth-Order WENO Reconstruction (WENO-5)**
189
+
190
+
The WENO-5 method reconstructs a non-oscillatory, fifth-order-accurate approximation of a function value at an arbitrary location :math:`x = x_{i+1/2} + t\,\Delta x`, where :math:`t \in [0,1)` and :math:`x_{i+1/2} = x_i + \tfrac{1}{2}\,\Delta x` on a uniform grid with :math:`\Delta x = 1`. A five-point stencil ``{f_{i-2}, f_{i-1}, f_i, f_{i+1}, f_{i+2}}`` is used.
191
+
192
+
.. math::
193
+
194
+
\{\,f_{i-2}, f_{i-1}, f_{i}, f_{i+1}, f_{i+2}\}.
195
+
196
+
Define three overlapping three-point stencils:
197
+
198
+
.. math::
199
+
200
+
S_{0} = \{f_{i-2}, f_{i-1}, f_{i}\}, \quad
201
+
S_{1} = \{f_{i-1}, f_{i}, f_{i+1}\}, \quad
202
+
S_{2} = \{f_{i}, f_{i+1}, f_{i+2}\}.
203
+
204
+
On each stencil :math:`S_{\ell}` (:math:`\ell = 0,1,2`), construct a quadratic polynomial
Once :math:`p_{0}(t)`, :math:`p_{1}(t)`, and :math:`p_{2}(t)` are defined, compute the Jiang–Shu smoothness indicators :math:`\beta_{\ell}` for each stencil:
The code computes :math:`t^{2}`, forms coefficients :math:`C_{\ell,k}`, evaluates :math:`p_{\ell}(t)`, computes :math:`\beta_{\ell}`, then :math:`\tilde{\alpha}_{\ell}`, :math:`\omega_{\ell}`, and returns :math:`\omega_{0}\,p_{0} + \omega_{1}\,p_{1} + \omega_{2}\,p_{2}` exactly as above.
0 commit comments