SpECTRE  v2026.04.01
Loading...
Searching...
No Matches
Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages > Struct Template Reference

Derived class for registering receive_data functions. More...

#include <CharmRegistration.hpp>

Public Types

using chare_type = typename ParallelComponent::chare_type
using charm_type
using cproxy = typename charm_type::cproxy
using ckindex = typename charm_type::ckindex
using algorithm = typename charm_type::algorithm

Public Member Functions

 RegisterReceiveData (const RegisterReceiveData &)=default
RegisterReceiveDataoperator= (const RegisterReceiveData &)=default
 RegisterReceiveData (RegisterReceiveData &&)=default
RegisterReceiveDataoperator= (RegisterReceiveData &&)=default
void register_with_charm () const override
std::string name () const override
Public Member Functions inherited from Parallel::charmxx::RegistrationHelper
 RegistrationHelper (const RegistrationHelper &)=default
RegistrationHelperoperator= (const RegistrationHelper &)=default
 RegistrationHelper (RegistrationHelper &&)=default
RegistrationHelperoperator= (RegistrationHelper &&)=default
virtual bool is_registering_chare () const

Static Public Attributes

static bool registrar

Detailed Description

template<typename ParallelComponent, typename ReceiveTag, bool UsingMessages>
struct Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages >

Derived class for registering receive_data functions.

Calls the appropriate Charm++ function to register a receive_data function. There is a bug in Charm++ that doesn't allow default values for entry method arguments for groups and nodegroups, so we have to handle the (node)group cases separately from the singleton and array cases.

Member Typedef Documentation

◆ charm_type

template<typename ParallelComponent, typename ReceiveTag, bool UsingMessages>
using Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages >::charm_type
Initial value:
charm_types_with_parameters<
ParallelComponent,
typename get_array_index<chare_type>::template f<ParallelComponent>>

Member Function Documentation

◆ name()

template<typename ParallelComponent, typename ReceiveTag, bool UsingMessages>
std::string Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages >::name ( ) const
inlineoverridevirtual

◆ register_with_charm()

template<typename ParallelComponent, typename ReceiveTag, bool UsingMessages>
void Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages >::register_with_charm ( ) const
inlineoverridevirtual

Member Data Documentation

◆ registrar

template<typename ParallelComponent, typename ReceiveTag, bool UsingMessages>
bool Parallel::charmxx::RegisterReceiveData< ParallelComponent, ReceiveTag, UsingMessages >::registrar
static
Initial value:
=
RegisterReceiveData<ParallelComponent, ReceiveTag, UsingMessages>>()
bool register_func_with_charm()
Function that adds a pointer to a specific derived class to the charm_register_list
Definition CharmRegistration.hpp:681

The documentation for this struct was generated from the following file:
  • src/Parallel/CharmRegistration.hpp