DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
EulerP_Evaluator_impl_common.hxx File Reference

Shared device-callable kernel implementations for the EulerP Evaluator. More...

Include dependency graph for EulerP_Evaluator_impl_common.hxx:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  DNDS
 the host side operators are provided as implemented
 
namespace  DNDS::EulerP
 Namespace for the EulerP alternative evaluator module with GPU support.
 

Functions

template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::RecGradient_GGRec_Kernel_BndVal (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iBnd, index iBndEnd, int nVars, int nVarsScalar)
 Generates boundary ghost values for Green-Gauss gradient reconstruction.
 
template DNDS_DEVICE void DNDS::EulerP::RecGradient_GGRec_Kernel_BndVal< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iBnd, index iBndEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::RecGradient_GGRec_Kernel_GG (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 Green-Gauss gradient reconstruction kernel (per-cell).
 
template DNDS_DEVICE void DNDS::EulerP::RecGradient_GGRec_Kernel_GG< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::RecGradient_BarthLimiter_Kernel_FlowPart (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 Barth-Jespersen gradient limiter kernel for flow variables (per-cell).
 
template DNDS_DEVICE void DNDS::EulerP::RecGradient_BarthLimiter_Kernel_FlowPart< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::RecGradient_BarthLimiter_Kernel_ScalarPart (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 Barth-Jespersen gradient limiter kernel for transported scalar variables (per-cell).
 
template DNDS_DEVICE void DNDS::EulerP::RecGradient_BarthLimiter_Kernel_ScalarPart< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecGradient_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::Cons2PrimMu_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Cons2PrimMu_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
 Conservative-to-primitive conversion with gradient transformation and viscosity (per-cell).
 
template DNDS_DEVICE void DNDS::EulerP::Cons2PrimMu_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Cons2PrimMu_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::Cons2Prim_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Cons2Prim_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
 Conservative-to-primitive conversion without gradient transformation or viscosity (per-cell).
 
template DNDS_DEVICE void DNDS::EulerP::Cons2Prim_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Cons2Prim_Arg::Portable &arg, index iPt, index iPtEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::EstEigenDt_GetFaceLam_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::EstEigenDt_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
 Per-face eigenvalue estimation kernel for time-step computation.
 
template DNDS_DEVICE void DNDS::EulerP::EstEigenDt_GetFaceLam_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::EstEigenDt_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::EstEigenDt_FaceLam2CellDt_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::EstEigenDt_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 Per-cell kernel converting face eigenvalues to a local CFL time step.
 
template DNDS_DEVICE void DNDS::EulerP::EstEigenDt_FaceLam2CellDt_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::EstEigenDt_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::RecFace2nd_Kernel (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::RecFace2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
 2nd-order face value reconstruction kernel (per-face).
 
template DNDS_DEVICE void DNDS::EulerP::RecFace2nd_Kernel< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::RecFace2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::Flux2nd_Kernel_FluxFace (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Flux2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
 2nd-order Roe inviscid flux computation kernel (per-face).
 
template DNDS_DEVICE void DNDS::EulerP::Flux2nd_Kernel_FluxFace< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Flux2nd_Arg::Portable &arg, index iFace, index iFaceEnd, int nVars, int nVarsScalar)
 
template<DeviceBackend B = DeviceBackend::Host>
DNDS_DEVICE void DNDS::EulerP::Flux2nd_Kernel_Face2Cell (EvaluatorDeviceView< B > &self_view, typename Evaluator_impl< B >::Flux2nd_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 Scatters face fluxes to cell RHS residual (per-cell).
 
template DNDS_DEVICE void DNDS::EulerP::Flux2nd_Kernel_Face2Cell< DeviceBackend::Host > (EvaluatorDeviceView< DeviceBackend::Host > &self_view, typename Evaluator_impl< DeviceBackend::Host >::Flux2nd_Arg::Portable &arg, index iCell, index iCellEnd, int nVars, int nVarsScalar)
 

Detailed Description

Shared device-callable kernel implementations for the EulerP Evaluator.

Contains the per-element kernel functions (per-cell or per-face) that implement the computational core of each EulerP evaluation stage. These kernels are called from both the Host backend (via OpenMP loops in EulerP_Evaluator_impl.cpp) and the CUDA backend (via CUDA kernel launches).

Each kernel operates on a single element index range [i, iEnd) and uses the Portable sub-struct from the corresponding Evaluator_impl arg for data access. CUDA-specific shared memory buffers are conditionally compiled with DNDS_USE_CUDA.

Kernels defined here:

  • RecGradient_GGRec_Kernel_BndVal — boundary ghost value generation for gradient reconstruction
  • RecGradient_GGRec_Kernel_GG — Green-Gauss gradient computation (per-cell)
  • RecGradient_BarthLimiter_Kernel_FlowPart — Barth-Jespersen limiter for flow variables (per-cell)
  • RecGradient_BarthLimiter_Kernel_ScalarPart — Barth-Jespersen limiter for scalar variables (per-cell)
  • Cons2PrimMu_Kernel — conservative-to-primitive + viscosity (per-cell)
  • Cons2Prim_Kernel — conservative-to-primitive only (per-cell)
  • EstEigenDt_GetFaceLam_Kernel — face eigenvalue estimation (per-face)
  • EstEigenDt_FaceLam2CellDt_Kernel — face-to-cell eigenvalue accumulation + dt (per-cell)
  • RecFace2nd_Kernel — 2nd-order face reconstruction (per-face)
  • Flux2nd_Kernel_FluxFace — Roe inviscid flux computation (per-face)
  • Flux2nd_Kernel_Face2Cell — face flux scatter to cell RHS (per-cell)

Definition in file EulerP_Evaluator_impl_common.hxx.