SpECTRE
v2024.09.29
|
A Spectre algorithm object that wraps a charm++ array chare. More...
#include <AlgorithmArray.hpp>
A Spectre algorithm object that wraps a charm++ array chare.
This object is the definition of the distributed charm++ object associated with the SpECTRE component wrappers (see Parallelization, Charm++, and Core Concepts). See also the charm++ documentation: https://charm.readthedocs.io/en/latest/charm++/manual.html#chare-arrays When comparing against the implementations in the charm++ documentation, this object is the one directly associated to declarations in the corresponding AlgorithmArray.ci
file.
Unlike the techniques described in the charm++ documentation, however, we define AlgorithmArray
as a strong typedef so that the core functionality can be shared between chare types by introducing an additional inheritance layer. The documentation suggests the inheritance path A -> CBase_A
, where we have the inheritance path:
That allows us to introduce the template class Parallel::DistributedObject
that handles all generalizable control-flow.