|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
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. | |
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.
| B | The 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.
| 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.
| 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.
| 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.
|
static |
Executes conservative-to-primitive conversion (no gradients/viscosity).
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
Executes conservative-to-primitive conversion with viscosity computation.
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
Second pass: accumulates face eigenvalues to cells and computes local dt.
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
First pass: computes per-face eigenvalue estimates from cell states.
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
Evaluates 2nd-order Roe flux per face and scatters to cell RHS.
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
Executes 2nd-order face value reconstruction from cell-centered data.
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
Barth-Jespersen gradient limiter applied to reconstructed gradients.
| arg | Device-side argument struct with all required views. |
| 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.
|
static |
Green-Gauss gradient reconstruction: boundary ghost values + cell gradient computation.
| arg | Device-side argument struct with all required views. |