|
DNDSR 0.1.0.dev1+gcd065ad
Distributed Numeric Data Structure for CFV
|
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. | |
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.
| TDerived | The derived packed argument struct type (CRTP pattern). |
Definition at line 91 of file EulerP.hpp.
|
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.
| B | The device backend (Host or CUDA) on which to perform the wait. |
| std::runtime_error | If 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.