additionalPoint_approximation
(experimental) in EULERIMPL and EULEREXPL setting
Default:
additionalPoint_approximation = 2
This is used in the
EULERIMPL and EULEREXPL setting.
There are two options to approximate the unknown function values \( \tilde{u}_i, \tilde{u}_j\) of the MUSCL reconstructions (see
pure_TRANSPORT)
\begin{align} u_{ij}^{+} &= u_i + \frac{1}{2} \, \phi \left( r_{ij}^{+} \right) (u_i - \tilde{u}_i), \\[10pt]
u_{ij}^{-} &= u_j - \frac{1}{2} \, \phi \left( r_{ij}^{-} \right) (\tilde{u}_j - u_j),
\end{align}
whereby \( \phi\) is the slope
LIMITER and
\begin{align} r_{ij}^{+} &= \begin{cases}\displaystyle \frac{u_j - u_i}{u_i - \tilde{u}_i}, & u_i \neq \tilde{u}_i \\[14pt]\displaystyle \qquad \; 0 \;, & \mbox{ sonst}\end{cases}, \qquad \qquad
r_{ij}^{-} = \begin{cases}\displaystyle \frac{u_j - u_i}{\tilde{u}_j - u_j}, & \tilde{u}_j \neq u_j \\[14pt]\displaystyle \qquad \; 0 \;, & \mbox{ sonst}\end{cases}.
\end{align}
-
- additionalPoint_approximation = 1 -> function values \( \tilde{u}_i, \tilde{u}_j\) are approximated by FPM stencil, i.e. \( \mathbf{\tilde{c}}_j^{\, (0)} = \big(\tilde{c}_{j 1}^{\, (0)}, \ldots , \tilde{c}_{j \tilde{N}_j}^{\, (0)} \big)^T\):
\begin{align} u(\mathbf{\tilde{x}}_j) &\approx \tilde{u}_j = \sum \limits_{k = 1}^{\tilde{N}_j} \tilde{c}_{j k}^{\, (0)} u(\mathbf{x}_k)\end{align}
On the hand this approach is very accurate, but it is very expensive and unsuitable for MPI parallelization because of the neighborhood extension.
Therefore it is only for experimental purposes!
- additionalPoint_approximation = 2 -> function values \( \tilde{u}_i, \tilde{u}_j\) are approximated by Taylor Expansions of second order:
\begin{align} u(\mathbf{\tilde{x}}_i) &\approx \tilde{u}_i = u_j - 2 \, d \mathbf{x}_j^T \cdot \nabla u_i, \qquad
u(\mathbf{\tilde{x}}_j) \approx \tilde{u}_j = u_i + 2 \, d \mathbf{x}_j^T \cdot \nabla u_j,
\end{align}
whereby the gradients are approximated by using the FPM stencils for approximating x,y,z-derivative \( c_{ij}^x, c_{ij}^y, c_{ij}^z\). Thus
\begin{align}
\nabla u_i &= \! \! \sum \limits_{\scriptstyle j \in S(i) \atop \scriptstyle j\neq i} \! \left(\begin{array}{*{1}{c}} c_{ij}^{x} \\[5pt]
c_{ij}^{y} \\[3pt]
c_{ij}^{z}
\end{array}\right) (u_j - u_i), \qquad \nabla u_j = \! \! \sum \limits_{\scriptstyle k \in S(j) \atop \scriptstyle k\neq j} \! \left(\begin{array}{*{1}{c}}
c_{jk}^{x} \\[5pt]
c_{jk}^{y} \\[3pt]
c_{jk}^{z}
\end{array}\right) (u_k - u_j).
\end{align}
This approach is very fast and only slightly less accurate than approach 1.
Thus this is the method of choice!
Remark:
The additionalPoint_approximation parameter is intended for experimental purposes only! Better do not touch!