ThunderEgg
1.0.0
|
Solves the problem on the patches using a specified interface value. More...
#include <PatchSolver.h>
Public Member Functions | |
PatchSolver (const Domain< D > &domain, const GhostFiller< D > &ghost_filler) | |
Construct a new PatchSolver object. More... | |
virtual | ~PatchSolver () |
Destroy the Patch Solver object. | |
virtual PatchSolver< D > * | clone () const override=0 |
Clone this patch solver. More... | |
const Domain< D > & | getDomain () const |
Get the Domain object. More... | |
const GhostFiller< D > & | getGhostFiller () const |
Get the GhostFiller object. More... | |
virtual void | solveSinglePatch (const PatchInfo< D > &pinfo, const PatchView< const double, D > &f_view, const PatchView< double, D > &u_view) const =0 |
Perform a single solve over a patch. More... | |
virtual void | apply (const Vector< D > &f, Vector< D > &u) const override |
Solve all the patches in the domain, assuming zero boundary conditions for the patches. More... | |
virtual void | smooth (const Vector< D > &f, Vector< D > &u) const override |
Solve all the patches in the domain, using the values in u for the boundary conditions. More... | |
Public Member Functions inherited from ThunderEgg::Operator< D > | |
virtual | ~Operator () |
Destroy the Operator object. | |
Public Member Functions inherited from ThunderEgg::GMG::Smoother< D > | |
virtual | ~Smoother () |
Destroy the Smoother object. | |
Solves the problem on the patches using a specified interface value.
D | the number of cartesian dimensions |
|
inline |
Construct a new PatchSolver object.
This sets the Domain and the GhostFiller that the object uses.
domain | the Domain |
ghost_filler | the GhostFiller |
|
inlineoverridevirtual |
Solve all the patches in the domain, assuming zero boundary conditions for the patches.
f | the rhs vector |
u | the lhs vector |
Implements ThunderEgg::Operator< D >.
|
overridepure virtual |
Clone this patch solver.
Implements ThunderEgg::GMG::Smoother< D >.
Implemented in ThunderEgg::Poisson::DFTPatchSolver< D >, ThunderEgg::Poisson::FFTWPatchSolver< D >, and ThunderEgg::Iterative::PatchSolver< D >.
|
inline |
|
inline |
Get the GhostFiller object.
|
inlineoverridevirtual |
Solve all the patches in the domain, using the values in u for the boundary conditions.
f | the rhs vector |
u | the lhs vector |
Implements ThunderEgg::GMG::Smoother< D >.
|
pure virtual |
Perform a single solve over a patch.
pinfo | the PatchInfo for the patch |
f_view | the left hand side |
u_view | the right hand side |
Implemented in ThunderEgg::Poisson::DFTPatchSolver< D >, ThunderEgg::Poisson::FFTWPatchSolver< D >, and ThunderEgg::Iterative::PatchSolver< D >.