DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::EulerP::Evaluator_impl< B > Struct Template Reference

Backend-specific implementation of EulerP Evaluator kernels. More...

#include <EulerP_Evaluator_impl.hpp>

Classes

struct  Cons2Prim_Arg
 Device-side argument struct for conservative-to-primitive conversion (no gradients/viscosity). More...
 
struct  Cons2PrimMu_Arg
 Device-side argument struct for conservative-to-primitive + viscosity kernel. More...
 
struct  EstEigenDt_Arg
 Device-side argument struct for eigenvalue estimation and time-step computation. More...
 
struct  Flux2nd_Arg
 Device-side argument struct for 2nd-order flux evaluation and RHS accumulation. More...
 
struct  RecFace2nd_Arg
 Device-side argument struct for 2nd-order face value reconstruction. More...
 
struct  RecGradient_Arg
 Device-side argument struct for gradient reconstruction kernels. More...
 

Public Types

using t_Scalar_deviceViewVector_sup = std::unique_ptr< deviceViewVector< TUScalar::t_deviceView< B >, B > >
 Unique pointer to a device view vector of scalar array views.
 
using t_ScalarGrad_deviceViewVector_sup = std::unique_ptr< deviceViewVector< TUScalarGrad::t_deviceView< B >, B > >
 Unique pointer to a device view vector of scalar-gradient array views.
 

Public Member Functions

void RecGradient_GGRec (RecGradient_Arg &arg)
 Host specialization: Green-Gauss gradient reconstruction.
 
void RecGradient_BarthLimiter (RecGradient_Arg &arg)
 Host specialization: Barth-Jespersen gradient limiter.
 
void Cons2PrimMu (Cons2PrimMu_Arg &arg)
 Host specialization: conservative-to-primitive conversion with viscosity.
 
void Cons2Prim (Cons2Prim_Arg &arg)
 Host specialization: conservative-to-primitive conversion (no gradients/viscosity).
 
void EstEigenDt_GetFaceLam (EstEigenDt_Arg &arg)
 Host specialization: per-face eigenvalue estimation.
 
void EstEigenDt_FaceLam2CellDt (EstEigenDt_Arg &arg)
 Host specialization: face eigenvalue accumulation to cell time steps.
 
void RecFace2nd (RecFace2nd_Arg &arg)
 Host specialization: 2nd-order face value reconstruction.
 
void Flux2nd (Flux2nd_Arg &arg)
 Host specialization: 2nd-order Roe flux evaluation and face-to-cell RHS scatter.
 

Static Public Member Functions

static void RecGradient_GGRec (RecGradient_Arg &arg)
 Green-Gauss gradient reconstruction: boundary ghost values + cell gradient computation.
 
static void RecGradient_BarthLimiter (RecGradient_Arg &arg)
 Barth-Jespersen gradient limiter applied to reconstructed gradients.
 
static void Cons2PrimMu (Cons2PrimMu_Arg &arg)
 Executes conservative-to-primitive conversion with viscosity computation.
 
static void Cons2Prim (Cons2Prim_Arg &arg)
 Executes conservative-to-primitive conversion (no gradients/viscosity).
 
static void EstEigenDt_GetFaceLam (EstEigenDt_Arg &arg)
 First pass: computes per-face eigenvalue estimates from cell states.
 
static void EstEigenDt_FaceLam2CellDt (EstEigenDt_Arg &arg)
 Second pass: accumulates face eigenvalues to cells and computes local dt.
 
static void RecFace2nd (RecFace2nd_Arg &arg)
 Executes 2nd-order face value reconstruction from cell-centered data.
 
static void Flux2nd (Flux2nd_Arg &arg)
 Evaluates 2nd-order Roe flux per face and scatters to cell RHS.
 

Detailed Description

template<DeviceBackend B>
struct DNDS::EulerP::Evaluator_impl< B >

Backend-specific implementation of EulerP Evaluator kernels.

Each kernel (RecGradient, Cons2PrimMu, EstEigenDt, RecFace2nd, Flux2nd) is wrapped in an inner Arg struct that converts host-side shared_ptr arrays into device views, and a static method that dispatches the actual computation. The inner Portable struct within each Arg is trivially copyable for CUDA kernel launch.

Template Parameters
BThe DeviceBackend (Host or CUDA). Explicit specializations live in EulerP_Evaluator_impl.cpp (Host) and the CUDA compilation unit.

Definition at line 78 of file EulerP_Evaluator_impl.hpp.

Member Typedef Documentation

◆ t_Scalar_deviceViewVector_sup

template<DeviceBackend B>
using DNDS::EulerP::Evaluator_impl< B >::t_Scalar_deviceViewVector_sup = std::unique_ptr<deviceViewVector<TUScalar::t_deviceView<B>, B> >

Unique pointer to a device view vector of scalar array views.

Definition at line 81 of file EulerP_Evaluator_impl.hpp.

◆ t_ScalarGrad_deviceViewVector_sup

template<DeviceBackend B>
using DNDS::EulerP::Evaluator_impl< B >::t_ScalarGrad_deviceViewVector_sup = std::unique_ptr<deviceViewVector<TUScalarGrad::t_deviceView<B>, B> >

Unique pointer to a device view vector of scalar-gradient array views.

Definition at line 83 of file EulerP_Evaluator_impl.hpp.

Member Function Documentation

◆ Cons2Prim() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::Cons2Prim ( Cons2Prim_Arg arg)

Host specialization: conservative-to-primitive conversion (no gradients/viscosity).

OpenMP-parallel loop over all points in the u array, calling Cons2Prim_Kernel for each cell.

Definition at line 157 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ Cons2Prim() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::Cons2Prim ( Cons2Prim_Arg arg)
static

Executes conservative-to-primitive conversion (no gradients/viscosity).

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ Cons2PrimMu() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::Cons2PrimMu ( Cons2PrimMu_Arg arg)

Host specialization: conservative-to-primitive conversion with viscosity.

OpenMP-parallel loop over all points in the u array, calling Cons2PrimMu_Kernel for each cell.

Definition at line 125 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ Cons2PrimMu() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::Cons2PrimMu ( Cons2PrimMu_Arg arg)
static

Executes conservative-to-primitive conversion with viscosity computation.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ EstEigenDt_FaceLam2CellDt() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::EstEigenDt_FaceLam2CellDt ( EstEigenDt_Arg arg)

Host specialization: face eigenvalue accumulation to cell time steps.

OpenMP-parallel loop over all owned cells, calling EstEigenDt_FaceLam2CellDt_Kernel for each cell.

Definition at line 227 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ EstEigenDt_FaceLam2CellDt() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::EstEigenDt_FaceLam2CellDt ( EstEigenDt_Arg arg)
static

Second pass: accumulates face eigenvalues to cells and computes local dt.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ EstEigenDt_GetFaceLam() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::EstEigenDt_GetFaceLam ( EstEigenDt_Arg arg)

Host specialization: per-face eigenvalue estimation.

OpenMP-parallel loop over all processor-local faces, calling EstEigenDt_GetFaceLam_Kernel for each face.

Definition at line 189 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ EstEigenDt_GetFaceLam() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::EstEigenDt_GetFaceLam ( EstEigenDt_Arg arg)
static

First pass: computes per-face eigenvalue estimates from cell states.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ Flux2nd() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::Flux2nd ( Flux2nd_Arg arg)

Host specialization: 2nd-order Roe flux evaluation and face-to-cell RHS scatter.

First loop (OpenMP parallel): computes per-face numerical flux via Flux2nd_Kernel_FluxFace. Second loop (OpenMP parallel): scatters face fluxes to cell RHS via Flux2nd_Kernel_Face2Cell.

Definition at line 288 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ Flux2nd() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::Flux2nd ( Flux2nd_Arg arg)
static

Evaluates 2nd-order Roe flux per face and scatters to cell RHS.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ RecFace2nd() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::RecFace2nd ( RecFace2nd_Arg arg)

Host specialization: 2nd-order face value reconstruction.

OpenMP-parallel loop over all processor-local faces, calling RecFace2nd_Kernel for each face.

Definition at line 256 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ RecFace2nd() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::RecFace2nd ( RecFace2nd_Arg arg)
static

Executes 2nd-order face value reconstruction from cell-centered data.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ RecGradient_BarthLimiter() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::RecGradient_BarthLimiter ( RecGradient_Arg arg)

Host specialization: Barth-Jespersen gradient limiter.

First loop (OpenMP parallel): applies the flow-variable limiter to all owned cells. Second loop (OpenMP parallel, conditional): applies the scalar-variable limiter if there are transported scalars.

Definition at line 77 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ RecGradient_BarthLimiter() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::RecGradient_BarthLimiter ( RecGradient_Arg arg)
static

Barth-Jespersen gradient limiter applied to reconstructed gradients.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

◆ RecGradient_GGRec() [1/2]

void DNDS::EulerP::Evaluator_impl< B >::RecGradient_GGRec ( RecGradient_Arg arg)

Host specialization: Green-Gauss gradient reconstruction.

First loop (serial): generates boundary ghost values for all boundary faces. Second loop (OpenMP parallel): computes the Green-Gauss cell gradient for all owned cells.

Definition at line 27 of file EulerP_Evaluator_impl.cpp.

Here is the call graph for this function:

◆ RecGradient_GGRec() [2/2]

template<DeviceBackend B>
static void DNDS::EulerP::Evaluator_impl< B >::RecGradient_GGRec ( RecGradient_Arg arg)
static

Green-Gauss gradient reconstruction: boundary ghost values + cell gradient computation.

Parameters
argDevice-side argument struct with all required views.
Here is the caller graph for this function:

The documentation for this struct was generated from the following file: