SpECTRE
v2025.03.17
|
Classes and functions used to make Charm++ easier and safer to use. More...
Typedefs | |
using | Parallel::charmxx::ReducerFunctions = CkReductionMsg *(*)(int, CkReductionMsg **) |
The type of a function pointer to a Charm++ custom reduction function. | |
Functions | |
template<class... Args> | |
std::string | Parallel::charmxx::get_template_parameters_as_string () |
Returns the template parameter as a std::string More... | |
template<typename Derived > | |
bool | Parallel::charmxx::register_func_with_charm () |
Function that adds a pointer to a specific derived class to the charm_register_list More... | |
template<ReducerFunctions F> | |
bool | Parallel::charmxx::register_reducer_function () |
Function that stores a function pointer to the custom reduction function to be registered later. More... | |
Classes and functions used to make Charm++ easier and safer to use.
std::string Parallel::charmxx::get_template_parameters_as_string | ( | ) |
Returns the template parameter as a std::string
Uses the PRETTY_FUNCTION compiler intrinsic to extract the template parameter names in the same form that Charm++ uses to register entry methods. This is used by the generated Singleton, Array, Group and Nodegroup headers, as well as in CharmMain.tpp.
bool Parallel::charmxx::register_func_with_charm | ( | ) |
Function that adds a pointer to a specific derived class to the charm_register_list
Used to initialize the registrar
bool of derived classes of RegistrationHelper
. When the function is invoked it appends the derived class to the charm_register_list
.
std::vector
is that this did not behave correctly when calling push_back
. Specifically, the final vector was always size 1, even though multiple elements were pushed back. The reason for that behavior was never tracked down and so in the future it could be possible to use a std::vector
. bool Parallel::charmxx::register_reducer_function | ( | ) |
Function that stores a function pointer to the custom reduction function to be registered later.
Used to initialize the registrar
bool of RegisterReducerFunction
. When invoked it adds the function F
of type ReducerFunctions
to the list charm_reducer_functions_list
.
std::vector<ReducerFunctions>
is that this did not behave correctly when calling push_back
. Specifically, the final vector was always size 1, even though multiple elements were pushed back. The reason for that behavior was never tracked down and so in the future it could be possible to use a std::vector
.