FleCSI User API Version: 2.3.0
 
Loading...
Searching...
No Matches
specialization< C, D > Struct Template Reference

CRTP base for specializations. More...

Classes

struct  mpi_coloring
 Constructs a coloring in an MPI task. More...
 

Public Types

template<partition_privilege_t... Priv>
using accessor = data::topology_accessor< D, privilege_pack< Priv... > >
 The topology accessor to use as a parameter to receive a slot.
 
using base = base_t< C >
 The core topology base type, which can provide specialization utilities.
 
using coloring = typename base::coloring
 The coloring type.
 
using cslot = data::coloring_slot< D >
 The slot type for holding a coloring object.
 
using slot = data::topology_slot< D >
 The slot type for declaring topology instances.
 
- Public Types inherited from specialization_base
template<auto V, class T >
using from = util::key_type< V, T >
 A connectivity specification.
 
template<auto V, class T >
using entity = util::key_type< V, T >
 A special-entities specification.
 
template<auto... V>
using has = util::constants< V... >
 A list of enumerators for which to store data.
 
template<auto... V>
using to = util::constants< V... >
 A list of index spaces to use as output.
 
template<class... TT>
using list = util::types< TT... >
 Container.
 
using index_space = single_space
 The index space type.
 
using index_spaces = has< elements >
 The set of index spaces, wrapped in has.
 
template<class B >
using interface = B
 The topology interface type.
 

Defaults

May be overridden by policy.

template<auto S>
static constexpr PrivilegeCount privilege_count
 The number of privileges to use for an accessor.
 
static constexpr auto default_space ()
 The default index space to use when one is optional.
 
static void initialize (slot &s, coloring const &)
 Specialization-specific initialization.
 

Additional Inherited Members

- Public Member Functions inherited from specialization_base
 specialization_base ()=delete
 Specializations cannot be constructed.
 

Detailed Description

template<template< class > class C, class D>
struct flecsi::topo::specialization< C, D >

CRTP base for specializations.

Template Parameters
Ccore topology
Dderived topology type

Member Typedef Documentation

◆ base

template<template< class > class C, class D >
using base = base_t<C>

The core topology base type, which can provide specialization utilities.

◆ coloring

template<template< class > class C, class D >
using coloring = typename base::coloring

The coloring type.

◆ slot

template<template< class > class C, class D >
using slot = data::topology_slot<D>

The slot type for declaring topology instances.

◆ cslot

template<template< class > class C, class D >
using cslot = data::coloring_slot<D>

The slot type for holding a coloring object.

Deprecated:
Use mpi_coloring.

◆ accessor

template<template< class > class C, class D >
template<partition_privilege_t... Priv>
using accessor = data::topology_accessor<D, privilege_pack<Priv...> >

The topology accessor to use as a parameter to receive a slot.

Template Parameters
Privthe appropriate number of privileges

Member Function Documentation

◆ default_space()

template<template< class > class C, class D >
static constexpr auto default_space ( )
staticconstexpr

The default index space to use when one is optional.

This implementation is ill-formed if there is more than one defined.

Returns
index_space

◆ initialize()

template<template< class > class C, class D >
static void initialize ( slot s,
coloring const &   
)
static

Specialization-specific initialization.

Called by topology_slot::allocate; specializations may specify additional parameters to be supplied there.

This implementation does nothing.

Parameters
sthe slot in which the core topology has just been constructed

Member Data Documentation

◆ privilege_count

template<template< class > class C, class D >
template<auto S>
constexpr PrivilegeCount privilege_count
staticconstexpr

The number of privileges to use for an accessor.

This implementation produces 1.

Template Parameters
Sindex space