inciter::SchemeBase class

Base class for generic forwarding interface to discretization proxies.

Derived classes

class Scheme
Generic forwarding interface to discretization proxies.

Public types

using Proxy = boost::variant<CProxy_MatCG, CProxy_DiagCG, CProxy_DG, CProxy_ALECG>
Variant type listing all chare proxy types modeling the same concept.
using ProxyElem = boost::variant<CProxy_MatCG::element_t, CProxy_DiagCG::element_t, CProxy_DG::element_t, CProxy_ALECG::element_t>
Variant type listing all chare element proxy types (behind operator[])

Constructors, destructors, conversion operators

SchemeBase() explicit
Empty constructor for Charm++.
SchemeBase(ctr::SchemeType scheme) explicit

Public functions

auto get() -> CProxy_Discretization& noexcept
Get reference to discretization proxy.
auto which() const -> int noexcept
auto which_element() const -> int noexcept
auto arrayoptions() -> const CkArrayOptions&

Protected types

template<class Spec, typename... Args>
struct Call

Protected variables

Proxy proxy
Variant storing one proxy to which this class is configured for.
CProxy_Discretization discproxy
Charm++ proxy to data and code common to all discretizations.
CProxy_DistFCT fctproxy
Charm++ proxy to flux-corrected transport (FCT) driver class.
CkArrayOptions m_bound
Charm++ array options for binding chares.

Function documentation

inciter::SchemeBase::SchemeBase(ctr::SchemeType scheme) explicit

scheme in Discretization scheme

Constructor Based on the input enum we create at least two empty chare arrays: (1) discproxy which contains common functionality and data for all discretizations, and (2) proxy, which have functionality and data specific to a given discretization. Note that proxy is bound (in migration behavior and properties) to discproxy.

int inciter::SchemeBase::which() const noexcept

Returns Zero-based index into the set of types of Proxy

Query underlying proxy type

int inciter::SchemeBase::which_element() const noexcept

Returns Zero-based index into the set of types of ProxyElem

Query underlying proxy element type

const CkArrayOptions& inciter::SchemeBase::arrayoptions()

Returns Charm++ array options object reference

Charm++ array options accessor for binding external proxies