DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
Loading...
Searching...
No Matches
DNDS::EulerP::EvaluatorArgBase< TDerived > Class Template Reference

CRTP base class for packed kernel argument structs used by the Evaluator. More...

#include <EulerP.hpp>

Public Member Functions

void WaitAllPull (DeviceBackend B)
 Completes MPI ghost exchange for all ArrayDof members on the specified backend.
 

Detailed Description

template<class TDerived>
class DNDS::EulerP::EvaluatorArgBase< TDerived >

CRTP base class for packed kernel argument structs used by the Evaluator.

Kernel argument structs (e.g., RecGradient_Arg, Flux2nd_Arg) inherit from this base using CRTP. Each derived class must provide a static member_list() function returning a list of named pointers to its ArrayDof shared_ptr members.

The base provides WaitAllPull(B), which iterates over all ArrayDof members and completes their MPI persistent ghost-exchange pull operations on the specified device backend.

Template Parameters
TDerivedThe derived packed argument struct type (CRTP pattern).

Definition at line 91 of file EulerP.hpp.

Member Function Documentation

◆ WaitAllPull()

template<class TDerived >
void DNDS::EulerP::EvaluatorArgBase< TDerived >::WaitAllPull ( DeviceBackend  B)
inline

Completes MPI ghost exchange for all ArrayDof members on the specified backend.

Iterates over every ArrayDof shared_ptr registered in TDerived::member_list(), validates that both father and son arrays exist and reside on backend B, then calls waitPersistentPull(B) on each transformer to finalize non-blocking MPI receives.

Parameters
BThe device backend (Host or CUDA) on which to perform the wait.
Exceptions
std::runtime_errorIf father/son arrays are missing or on the wrong device.

this assertion should be provided by ArrayTransformer

Definition at line 105 of file EulerP.hpp.

Here is the call graph for this function:

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