walker::Distributor class

Distributor drives the time integration of differential equations.

Constructors, destructors, conversion operators

Distributor() explicit
Constructor.

Public functions

void registered()
Reduction target indicating that all Integrator chares have registered with the statistics merger (collector)
void estimateOrd(tk::real* ord, int n)
Estimate ordinary moments.
void estimateCen(tk::real* cen, int n)
Estimate central moments.
void estimateOrdPDF(CkReductionMsg* msg)
Estimate ordinary PDFs.
void estimateCenPDF(CkReductionMsg* msg)
Finish estimation of central PDFs.
void nostat()
Charm++ reduction target enabling shortcutting sync points if no stats.

Function documentation

void walker::Distributor::registered()

Reduction target indicating that all Integrator chares have registered with the statistics merger (collector)

This function is a Charm++ reduction target that is called when all Integrator chares have registered with their local branch of the statistics merger group, Collector. Once this is done, we issue a broadcast to all Itegrator chares to continue with their setup.

void walker::Distributor::estimateOrd(tk::real* ord, int n)

Estimate ordinary moments.

Parameters
ord in Ordinary moments (sum) collected over all chares
in Number of ordinary moments in array ord

void walker::Distributor::estimateCen(tk::real* cen, int n)

Estimate central moments.

Parameters
cen in Central moments (sum) collected over all chares
in Number of central moments in array cen

void walker::Distributor::estimateOrdPDF(CkReductionMsg* msg)

Estimate ordinary PDFs.

Parameters
msg in Serialized vectors of uni-, bi-, and tri-variate PDFs

void walker::Distributor::estimateCenPDF(CkReductionMsg* msg)

Finish estimation of central PDFs.

Parameters
msg in Serialized vectors of uni-, bi-, and tri-variate PDFs

void walker::Distributor::nostat()

Charm++ reduction target enabling shortcutting sync points if no stats.

This reduction target is called if there are no statistics nor PDFs to be estimated and thus some synchronization points can be skipped. Upon this call we simply finish up the time step as usual.