ThunderEgg
1.0.0
|
Base abstract class for cycles. More...
#include <Cycle.h>
Public Member Functions | |
Cycle (const Level< D > &finest_level) | |
Create new cycle object. More... | |
void | apply (const Vector< D > &f, Vector< D > &u) const |
Run one iteration of the cycle. More... | |
const Level< D > & | getFinestLevel () const |
Get the finest Level. More... | |
Public Member Functions inherited from ThunderEgg::Operator< D > | |
virtual | ~Operator () |
Destroy the Operator object. | |
virtual Operator< D > * | clone () const =0 |
Clone this operator. More... | |
Protected Member Functions | |
Vector< D > | restrict (const Level< D > &level, const Vector< D > &f, const Vector< D > &u) const |
Prepare vectors for coarser level. More... | |
virtual void | visit (const Level< D > &level, const Vector< D > &f, Vector< D > &u) const =0 |
Virtual visit function that needs to be implemented in derived classes. More... | |
Base abstract class for cycles.
There is an abstract visit() function for base classes to implement.
|
inline |
Create new cycle object.
finest_level | the finest level object. |
|
inlinevirtual |
Run one iteration of the cycle.
Performs one cycle on on the system Au=f
where A
is the operator for the finest level.
f | the RHS vector. |
u | the solution vector. |
Implements ThunderEgg::Operator< D >.
|
inline |
|
inlineprotected |
Prepare vectors for coarser level.
level | the current level |
f | the rhs vector cooresponding to the level |
u | the solution vector cooresponding to the level |
|
protectedpure virtual |
Virtual visit function that needs to be implemented in derived classes.
level | the level currently begin visited. |
f | the rhs vector cooresponding to the level |
u | the solution vector cooresponding to the level |
Implemented in ThunderEgg::GMG::FMGCycle< D >, ThunderEgg::GMG::WCycle< D >, and ThunderEgg::GMG::VCycle< D >.