#include <NodeBaseBottomSmoother.H>
The NodeBaseBottomSmoother class is a virtual base class for implementing different bottomSmoother algorithms for NodeLevelOp-derived classes. It takes a NodeLevelOp pointer as an argument during its definition, in order to access the problem-dependent (equation-dependent) functionality of the specific NodeLevelOp derivative class.
Public Member Functions | |
Constructor and destructor | |
NodeBaseBottomSmoother () | |
virtual | ~NodeBaseBottomSmoother () |
virtual NodeBaseBottomSmoother * | new_bottomSmoother () const =0 |
Parameter-setting functions | |
void | setVerbose (bool a_verbose) |
Data modification functions | |
virtual void | doBottomSmooth (LevelData< NodeFArrayBox > &a_phi, const LevelData< NodeFArrayBox > &a_rhs, NodeLevelOp *a_levelop_ptr)=0 |
Public Attributes | |
bool | m_verbose |
NodeBaseBottomSmoother::NodeBaseBottomSmoother | ( | ) | [inline] |
Default constructor.
virtual NodeBaseBottomSmoother::~NodeBaseBottomSmoother | ( | ) | [inline, virtual] |
Destructor.
virtual NodeBaseBottomSmoother* NodeBaseBottomSmoother::new_bottomSmoother | ( | ) | const [pure virtual] |
This gets around the "no virtual constructor" rule.
Implemented in NodeBiCGStabSmoother, NodeCGSmoother, and NodeNoOpSmoother.
void NodeBaseBottomSmoother::setVerbose | ( | bool | a_verbose | ) | [inline] |
Control output to stdout.
References m_verbose.
virtual void NodeBaseBottomSmoother::doBottomSmooth | ( | LevelData< NodeFArrayBox > & | a_phi, | |
const LevelData< NodeFArrayBox > & | a_rhs, | |||
NodeLevelOp * | a_levelop_ptr | |||
) | [pure virtual] |
Perform smoothing of L(a_phi) = a_rhs, where L is the operator defined in a_levelop_ptr, and the preconditioner is a_levelop_ptr->levelPreconditioner().
a_phi | data at this level, to be smoothed |
a_rhs | right-hand side at this level |
a_levelop_ptr | pointer to the operator |
Implemented in NodeBiCGStabSmoother, NodeCGSmoother, and NodeNoOpSmoother.
enable output to stdout if true
Referenced by setVerbose().