Kokkos kernel that applies the Zalesak-limited antidiffusive correction to \(T^L\). More...
#include <fct_advection_diffusion.hpp>
Public Types | |
| using | GH = fct_detail::GeometryHelper< ScalarT > |
Public Member Functions | |
| void | operator() (const int id, const int x, const int y, const int r) const |
Public Attributes | |
| grid::Grid4DDataScalar< ScalarT > | T_L_ |
| \(T^L\): low-order predictor. | |
| grid::Grid5DDataScalar< ScalarT > | antidiff_ |
| \(\tilde{f}_{ij}\): pre-scaled antidiff fluxes. | |
| grid::Grid4DDataScalar< ScalarT > | R_plus_ |
| \(R^+\) correction factor (ghost layers filled). | |
| grid::Grid4DDataScalar< ScalarT > | R_minus_ |
| \(R^-\) correction factor (ghost layers filled). | |
| grid::Grid4DDataScalar< ScalarT > | T_new_ |
| Output: \(T^{n+1}\). | |
Static Public Attributes | |
| static constexpr int | num_neighbors = GH::num_neighbors |
Kokkos kernel that applies the Zalesak-limited antidiffusive correction to \(T^L\).
For each cell \(i\) and face \(j\), the symmetric limited flux factor is
\[ \alpha_{ij} = \begin{cases} \min(R_i^+,\; R_j^-) & \tilde{f}_{ij} > 0 \quad (\text{flux increases } T_i), \\ \min(R_i^-,\; R_j^+) & \tilde{f}_{ij} < 0 \quad (\text{flux decreases } T_i). \end{cases} \]
Note that \(\alpha_{ji} = \alpha_{ij}\) by construction (symmetry), which ensures conservation: what is added to cell \(i\) from face \(j\) is subtracted from cell \(j\) on the same face.
The corrected solution is
\[ T_i^{n+1} = T_i^L + \sum_j \alpha_{ij}\,\tilde{f}_{ij}. \]
fct_limiter). | ScalarT | Floating-point scalar type. |
| using terra::fv::hex::operators::FCTCorrectionKernel< ScalarT >::GH = fct_detail::GeometryHelper< ScalarT > |
|
inline |
| grid::Grid5DDataScalar< ScalarT > terra::fv::hex::operators::FCTCorrectionKernel< ScalarT >::antidiff_ |
\(\tilde{f}_{ij}\): pre-scaled antidiff fluxes.
|
staticconstexpr |
| grid::Grid4DDataScalar< ScalarT > terra::fv::hex::operators::FCTCorrectionKernel< ScalarT >::R_minus_ |
\(R^-\) correction factor (ghost layers filled).
| grid::Grid4DDataScalar< ScalarT > terra::fv::hex::operators::FCTCorrectionKernel< ScalarT >::R_plus_ |
\(R^+\) correction factor (ghost layers filled).
| grid::Grid4DDataScalar< ScalarT > terra::fv::hex::operators::FCTCorrectionKernel< ScalarT >::T_L_ |
\(T^L\): low-order predictor.
| grid::Grid4DDataScalar< ScalarT > terra::fv::hex::operators::FCTCorrectionKernel< ScalarT >::T_new_ |
Output: \(T^{n+1}\).