MueLu
Version of the Day
|
Class that encapsulates Ifpack smoothers. More...
#include <MueLu_IfpackSmoother.hpp>
Public Member Functions | |
void | SetParameterList (const Teuchos::ParameterList ¶mList) |
Set parameters from a parameter list and return with default values. More... | |
Public Member Functions inherited from MueLu::SmootherPrototype< double, int, int, Node > | |
SmootherPrototype () | |
/Destructors. More... | |
virtual | ~SmootherPrototype () |
bool | IsSetup () const |
Get the state of a smoother prototype. More... | |
void | IsSetup (bool const &ToF) |
Set the state of a smoother prototype. More... | |
virtual void | CallBuild (Level &) const |
virtual void | CallDeclareInput (Level &requestedLevel) const |
Public Member Functions inherited from MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
SmootherBase () | |
virtual | ~SmootherBase () |
Public Member Functions inherited from MueLu::BaseClass | |
virtual | ~BaseClass () |
Destructor. More... | |
Public Member Functions inherited from MueLu::VerboseObject | |
VerbLevel | GetVerbLevel () const |
Get the verbosity level. More... | |
void | SetVerbLevel (const VerbLevel verbLevel) |
Set the verbosity level of this object. More... | |
int | GetProcRankVerbose () const |
Get proc rank used for printing. Do not use this information for any other purpose. More... | |
int | SetProcRankVerbose (int procRank) const |
Set proc rank used for printing. More... | |
bool | IsPrint (MsgType type, int thisProcRankOnly=-1) const |
Find out whether we need to print out information for a specific message type. More... | |
Teuchos::FancyOStream & | GetOStream (MsgType type, int thisProcRankOnly=0) const |
Get an output stream for outputting the input message type. More... | |
Teuchos::FancyOStream & | GetBlackHole () const |
VerboseObject () | |
virtual | ~VerboseObject () |
Destructor. More... | |
Public Member Functions inherited from Teuchos::VerboseObject< VerboseObject > | |
VerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null) | |
virtual const VerboseObject & | setVerbLevel (const EVerbosityLevel verbLevel) const |
virtual const VerboseObject & | setOverridingVerbLevel (const EVerbosityLevel verbLevel) const |
virtual EVerbosityLevel | getVerbLevel () const |
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT RCP< const ParameterList > | getValidVerboseObjectSublist () |
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void | setupVerboseObjectSublist (ParameterList *paramList) |
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void | readVerboseObjectSublist (ParameterList *paramList, RCP< FancyOStream > *oStream, EVerbosityLevel *verbLevel) |
void | readVerboseObjectSublist (ParameterList *paramList, VerboseObject< ObjectType > *verboseObject) |
Public Member Functions inherited from Teuchos::VerboseObjectBase | |
virtual | ~VerboseObjectBase () |
VerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null) | |
virtual const VerboseObjectBase & | setOStream (const RCP< FancyOStream > &oStream) const |
virtual const VerboseObjectBase & | setOverridingOStream (const RCP< FancyOStream > &oStream) const |
virtual VerboseObjectBase & | setLinePrefix (const std::string &linePrefix) |
virtual RCP< FancyOStream > | getOStream () const |
virtual RCP< FancyOStream > | getOverridingOStream () const |
virtual std::string | getLinePrefix () const |
virtual OSTab | getOSTab (const int tabs=1, const std::string &linePrefix="") const |
Public Member Functions inherited from MueLu::Describable | |
virtual | ~Describable () |
Destructor. More... | |
virtual std::string | ShortClassName () const |
Return the class name of the object, without template parameters and without namespace. More... | |
virtual void | describe (Teuchos::FancyOStream &out_arg, const VerbLevel verbLevel=Default) const |
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::Describable::verbLevel_default) const |
Print the object with some verbosity level to an FancyOStream object. More... | |
Public Member Functions inherited from Teuchos::Describable | |
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
LabeledObject () | |
virtual | ~LabeledObject () |
virtual void | setObjectLabel (const std::string &objectLabel) |
virtual std::string | getObjectLabel () const |
DescribableStreamManipulatorState | describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default) |
std::ostream & | operator<< (std::ostream &os, const DescribableStreamManipulatorState &d) |
Public Member Functions inherited from MueLu::Factory | |
void | EnableMultipleCallCheck () const |
Constructor. More... | |
void | DisableMultipleCallCheck () const |
void | ResetDebugData () const |
Public Member Functions inherited from MueLu::FactoryBase | |
FactoryBase () | |
Constructor. More... | |
virtual | ~FactoryBase () |
Destructor. More... | |
int | GetID () const |
return unique factory id More... | |
Public Member Functions inherited from MueLu::FactoryAcceptor | |
virtual | ~FactoryAcceptor () |
virtual void | SetFactory (const std::string &varName, const RCP< const FactoryBase > &factory)=0 |
Configuration. More... | |
virtual const RCP< const FactoryBase > | GetFactory (const std::string &varName) const =0 |
Public Member Functions inherited from MueLu::ParameterListAcceptorImpl | |
ParameterListAcceptorImpl () | |
virtual | ~ParameterListAcceptorImpl ()=default |
virtual const Teuchos::ParameterList & | GetParameterList () const |
void | SetParameter (const std::string &name, const ParameterEntry &entry) |
Set a parameter directly as a ParameterEntry. More... | |
const ParameterEntry & | GetParameter (const std::string &name) const |
Retrieves a const entry with the name name. More... | |
virtual void | GetDocumentation (std::ostream &os) const |
Public Member Functions inherited from MueLu::ParameterListAcceptor | |
ParameterListAcceptor () | |
virtual | ~ParameterListAcceptor ()=default |
virtual Teuchos::RCP< const Teuchos::ParameterList > | GetValidParameterList () const =0 |
Return a const parameter list of valid parameters that setParameterList() will accept. More... | |
Private Types | |
typedef double | Scalar |
typedef int | LocalOrdinal |
typedef int | GlobalOrdinal |
Private Member Functions | |
void | SetPrecParameters (const Teuchos::ParameterList &list=Teuchos::ParameterList()) const |
Private Attributes | |
std::string | type_ |
ifpack-specific key phrase that denote smoother type More... | |
LO | overlap_ |
overlap when using the smoother in additive Schwarz mode More... | |
RCP< Matrix > | A_ |
Matrix. Not used directly, but held inside of prec_. So we have to keep an RCP pointer to it! More... | |
RCP< Ifpack_Preconditioner > | prec_ |
pointer to Ifpack solver object More... | |
Constructors / destructors | |
IfpackSmoother (std::string const &type, Teuchos::ParameterList const ¶mList=Teuchos::ParameterList(), LO const &overlap=0) | |
Constructor. More... | |
virtual | ~IfpackSmoother () |
Destructor. More... | |
void | DeclareInput (Level ¤tLevel) const |
Input. More... | |
Computational methods. | |
void | Setup (Level ¤tLevel) |
Set up the smoother. More... | |
void | Apply (MultiVector &X, const MultiVector &B, bool InitialGuessIsZero=false) const |
Apply the preconditioner. More... | |
Utilities | |
RCP< SmootherPrototype > | Copy () const |
Overridden from Teuchos::Describable | |
std::string | description () const |
Return a simple one-line description of this object. More... | |
void | print (Teuchos::FancyOStream &out, const VerbLevel verbLevel=Default) const |
Print the object with some verbosity level to an FancyOStream object. More... | |
size_t | getNodeSmootherComplexity () const |
Get a rough estimate of cost per iteration. More... | |
Additional Inherited Members | |
Public Types inherited from MueLu::SmootherPrototype< double, int, int, Node > | |
typedef double | scalar_type |
typedef int | local_ordinal_type |
typedef int | global_ordinal_type |
typedef Node | node_type |
Public Types inherited from MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
Static Public Member Functions inherited from MueLu::VerboseObject | |
static void | SetMueLuOStream (const Teuchos::RCP< Teuchos::FancyOStream > &mueluOStream) |
static Teuchos::RCP < Teuchos::FancyOStream > | GetMueLuOStream () |
static void | SetDefaultVerbLevel (const VerbLevel defaultVerbLevel) |
Set the default (global) verbosity level. More... | |
static VerbLevel | GetDefaultVerbLevel () |
Get the default (global) verbosity level. More... | |
Static Public Member Functions inherited from Teuchos::VerboseObject< VerboseObject > | |
static void | setDefaultVerbLevel (const EVerbosityLevel defaultVerbLevel) |
static EVerbosityLevel | getDefaultVerbLevel () |
Static Public Member Functions inherited from Teuchos::VerboseObjectBase | |
static void | setDefaultOStream (const RCP< FancyOStream > &defaultOStream) |
static RCP< FancyOStream > | getDefaultOStream () |
Static Public Member Functions inherited from MueLu::Factory | |
static void | EnableMultipleCheckGlobally () |
static void | DisableMultipleCheckGlobally () |
Static Public Attributes inherited from Teuchos::Describable | |
static const EVerbosityLevel | verbLevel_default |
Protected Member Functions inherited from Teuchos::VerboseObject< VerboseObject > | |
void | initializeVerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null) |
Protected Member Functions inherited from Teuchos::VerboseObjectBase | |
void | initializeVerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null) |
virtual void | informUpdatedVerbosityState () const |
Class that encapsulates Ifpack smoothers.
This class creates an Ifpack preconditioner factory. The factory creates a smoother based on the type and ParameterList passed into the constructor. See the constructor for more information.
Definition at line 76 of file MueLu_IfpackSmoother.hpp.
|
private |
Definition at line 77 of file MueLu_IfpackSmoother.hpp.
|
private |
Definition at line 78 of file MueLu_IfpackSmoother.hpp.
|
private |
Definition at line 79 of file MueLu_IfpackSmoother.hpp.
MueLu::IfpackSmoother< Node >::IfpackSmoother | ( | std::string const & | type, |
Teuchos::ParameterList const & | paramList = Teuchos::ParameterList() , |
||
LO const & | overlap = 0 |
||
) |
Constructor.
The options passed into IfpackSmoother are those given in the Ifpack user's manual.
type | smoother type |
list | options for the particular smoother (e.g., fill factor or damping parameter) |
Here is how to select some of the most common smoothers.
type
= point relaxation stand-alone
relaxation: type
= Gauss-Seidel
relaxation: damping factor
type
= point relaxation stand-alone
relaxation: type
= symmetric Gauss-Seidel
relaxation: damping factor
type
= Chebyshev
chebyshev: ratio eigenvalue
chebyshev: min eigenvalue
chebyshev: max eigenvalue
chebyshev: degree
chebyshev: zero starting solution
(defaults to true
)type
= ILU
fact: level-of-fill
See also Ifpack_PointRelaxation, Ifpack_Chebyshev, Ifpack_ILU.
Definition at line 62 of file MueLu_IfpackSmoother.cpp.
|
inlinevirtual |
Destructor.
Definition at line 125 of file MueLu_IfpackSmoother.hpp.
|
virtual |
Set parameters from a parameter list and return with default values.
Reimplemented from MueLu::ParameterListAcceptorImpl.
Definition at line 69 of file MueLu_IfpackSmoother.cpp.
|
virtual |
Input.
Implements MueLu::SmootherPrototype< double, int, int, Node >.
Definition at line 113 of file MueLu_IfpackSmoother.cpp.
|
virtual |
Set up the smoother.
This creates the underlying Ifpack smoother object, copies any parameter list options supplied to the constructor to the Ifpack object, and computes the preconditioner.
Implements MueLu::SmootherPrototype< double, int, int, Node >.
Definition at line 128 of file MueLu_IfpackSmoother.cpp.
|
virtual |
Apply the preconditioner.
Solves the linear system AX=B
using the constructed smoother.
X | initial guess |
B | right-hand side |
InitialGuessIsZero | (optional) If false, some work can be avoided. Whether this actually saves any work depends on the underlying Ifpack implementation. |
Implements MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 260 of file MueLu_IfpackSmoother.cpp.
|
virtual |
Implements MueLu::SmootherPrototype< double, int, int, Node >.
Definition at line 298 of file MueLu_IfpackSmoother.cpp.
|
virtual |
Return a simple one-line description of this object.
Reimplemented from MueLu::Describable.
Definition at line 305 of file MueLu_IfpackSmoother.cpp.
void MueLu::IfpackSmoother< Node >::print | ( | Teuchos::FancyOStream & | out, |
const VerbLevel | verbLevel = Default |
||
) | const |
Print the object with some verbosity level to an FancyOStream object.
Definition at line 319 of file MueLu_IfpackSmoother.cpp.
|
virtual |
Get a rough estimate of cost per iteration.
Implements MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 347 of file MueLu_IfpackSmoother.cpp.
|
private |
Definition at line 80 of file MueLu_IfpackSmoother.cpp.
|
private |
ifpack-specific key phrase that denote smoother type
Definition at line 189 of file MueLu_IfpackSmoother.hpp.
|
private |
overlap when using the smoother in additive Schwarz mode
Definition at line 192 of file MueLu_IfpackSmoother.hpp.
|
private |
Matrix. Not used directly, but held inside of prec_. So we have to keep an RCP pointer to it!
Definition at line 195 of file MueLu_IfpackSmoother.hpp.
|
private |
pointer to Ifpack solver object
Definition at line 199 of file MueLu_IfpackSmoother.hpp.