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 ProxyElem = boost::variant<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
auto getProxy() const -> const Proxy& noexcept
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 bound
Charm++ array options for binding chares.

Function documentation

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

Parameters
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.

CProxy_Discretization& inciter::SchemeBase::get() noexcept

Returns Discretization Charm++ chare array proxy

Get reference to discretization proxy

const Proxy& inciter::SchemeBase::getProxy() const noexcept

Returns Variant storing Charm++ chare array proxy configured

Get reference to scheme proxy

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