inciter::MatCG class

MatCG Charm++ chare array used to advance PDEs in time with MatCG+LW+FCT.

Public static functions

static void registerReducers()
Configure Charm++ custom reduction types initiated from this chare array.

Constructors, destructors, conversion operators

MatCG(CkMigrateMessage*) explicit
Migrate constructor.

Public functions

auto MatCG(const CProxy_Discretization& disc, const tk::CProxy_Solver& solver, const FaceData& fd) -> MatCG_SDAG_CODE explicit
Constructor.
void setup(tk::real v)
Setup: query boundary conditions, output mesh, etc.
void dt()
Compute time step size.
void advance(tk::real newdt)
Advance equations to next time step.
void updateSol(const std::vector<std::size_t>& gid, const std::vector<tk::real>& du)
Update high order solution vector.
void updateLowSol(const std::vector<std::size_t>& gid, const std::vector<tk::real>& du)
Update low order solution vector.
void update(const tk::Fields& a)
Update solution at the end of time step.
void diag()
Signal the runtime system that diagnostics have been computed.
void refine()
Optionally refine/derefine mesh.
void lhs()
Compute left-hand side of transport equations.
void resize(const tk::UnsMesh::Chunk& chunk, const tk::UnsMesh::Coords& coord, const tk::Fields& u, const std::unordered_map<int, std::vector<std::size_t>>& msum, const std::map<int, std::vector<std::size_t>>& bnode)
Receive new mesh from refiner.
void solution(tk::Fields& u) const
void resized()
Resizing data sutrctures after mesh refinement has been completed.

Charm++ pack/unpack serializer member functions

void pup(PUP::er& p) override
Pack/Unpack serialize member function.
void operator|(PUP::er& p, MatCG& i)
Pack/Unpack serialize operator|.

Function documentation

static void inciter::MatCG::registerReducers()

Configure Charm++ custom reduction types initiated from this chare array.

Since this is a [nodeinit] routine, the runtime system executes the routine exactly once on every logical node early on in the Charm++ init sequence. Must be static as it is called without an object. See also: Section "Initializations at Program Startup" at in the Charm++ manual http://charm.cs.illinois.edu/manuals/html/charm++/manual.html.

MatCG_SDAG_CODE inciter::MatCG::MatCG(const CProxy_Discretization& disc, const tk::CProxy_Solver& solver, const FaceData& fd) explicit

Constructor.

Parameters
disc in Discretization proxy
solver in Linear system solver (Solver) proxy
fd in Face data structures

void inciter::MatCG::setup(tk::real v)

Setup: query boundary conditions, output mesh, etc.

Parameters
in Total mesh volume

void inciter::MatCG::advance(tk::real newdt)

Advance equations to next time step.

Parameters
newdt in Size of this new time step

void inciter::MatCG::updateSol(const std::vector<std::size_t>& gid, const std::vector<tk::real>& du)

Update high order solution vector.

Parameters
gid in Global row indices of the vector updated
du in Portion of the unknown/solution vector update

void inciter::MatCG::updateLowSol(const std::vector<std::size_t>& gid, const std::vector<tk::real>& du)

Update low order solution vector.

Parameters
gid in Global row indices of the vector updated
du in Portion of the unknown/solution vector update

void inciter::MatCG::update(const tk::Fields& a)

Update solution at the end of time step.

Parameters
in Limited antidiffusive element contributions

void inciter::MatCG::resize(const tk::UnsMesh::Chunk& chunk, const tk::UnsMesh::Coords& coord, const tk::Fields& u, const std::unordered_map<int, std::vector<std::size_t>>& msum, const std::map<int, std::vector<std::size_t>>& bnode)

Receive new mesh from refiner.

Parameters
chunk in New mesh chunk (connectivity and global<->local id maps)
coord in New mesh node coordinates
in New solution on new mesh
msum in New node communication map
bnode in Map of boundary-node lists mapped to corresponding side set ids for this mesh chunk

void inciter::MatCG::solution(tk::Fields& u) const

Parameters
in/out Reference to update with current solution

Const-ref access to current solution

void inciter::MatCG::pup(PUP::er& p) override

Pack/Unpack serialize member function.

Parameters
in/out Charm++'s PUP::er serializer object reference

void inciter::MatCG::operator|(PUP::er& p, MatCG& i)

Pack/Unpack serialize operator|.

Parameters
in/out Charm++'s PUP::er serializer object reference
in/out MatCG object reference