ThunderEgg
1.0.0
|
Builder for GMG cycles. More...
#include <CycleBuilder.h>
Public Member Functions | |
CycleBuilder (const CycleOpts &opts_in) | |
Construct a new CycleBuilder object. More... | |
void | addFinestLevel (const Operator< D > &op, const Smoother< D > &smoother, const Restrictor< D > &restrictor) |
Add the finest level to the Cycle. More... | |
void | addIntermediateLevel (const Operator< D > &op, const Smoother< D > &smoother, const Restrictor< D > &restrictor, const Interpolator< D > &interpolator) |
Add the next intermediate level to the Cycle. More... | |
void | addCoarsestLevel (const Operator< D > &op, Smoother< D > &smoother, const Interpolator< D > &interpolator) |
Add the next intermediate level to the Cycle. More... | |
std::shared_ptr< Cycle< D > > | getCycle () const |
Get the completed Cycle object. More... | |
Builder for GMG cycles.
The user provides an Operator, Smoother, Restrictor, and Interpolator object for each level.
The user is expected to make these calls in the following order:
builder.addFinestLevel() for each intermediate level (if any) { builder.addIntermediateLevel() } builder.addCoarsestLevel() M = builder.getCycle();
If these are called in the wrong order, an exception will be thrown.
D | the number of cartesian dimensions |
|
inlineexplicit |
Construct a new CycleBuilder object.
opts_in | the options to use for the GMG cycle |
|
inline |
Add the next intermediate level to the Cycle.
op | the Operator for the level |
smoother | the Smoother for the level |
interpolator | the Interpolator that restricts from this level to the finer level |
|
inline |
Add the finest level to the Cycle.
op | the Operator for the level |
smoother | the Smoother for the level |
restrictor | the Restrictor that restricts from this level to the coarser level |
vg | the VectorGenerator for the level |
|
inline |
Add the next intermediate level to the Cycle.
op | the Operator for the level |
smoother | the Smoother for the level |
restrictor | the Restrictor that restricts from this level to the coarser level |
interpolator | the Interpolator that restricts from this level to the finer level |
vg | the VectorGenerator for the level |
|
inline |