MueLu
Version of the Day
|
Cheap Blocked diagonal smoother for indefinite 2x2 block matrices. More...
#include <MueLu_IndefBlockedDiagonalSmoother_decl.hpp>
Public Member Functions | |
RCP< SmootherPrototype > | Copy () const |
Public Member Functions inherited from MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, 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 () |
void | declareConstructionOutcome (bool fail, std::string msg) |
bool | constructionSuccessful () |
std::string | constructionErrorMsg () |
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 void | SetParameterList (const Teuchos::ParameterList ¶mList) |
Set parameters from a parameter list and return with default values. More... | |
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 |
Private Types | |
typedef Xpetra::MapExtractor < Scalar, LocalOrdinal, GlobalOrdinal, Node > | MapExtractorClass |
Private Attributes | |
std::string | type_ |
smoother type More... | |
RCP< const FactoryBase > | AFact_ |
A Factory. More... | |
RCP< Matrix > | A_ |
block operator More... | |
RCP< Matrix > | F_ |
fluid operator More... | |
RCP< Matrix > | Z_ |
pressure stabilization term or null block More... | |
RCP< const MapExtractorClass > | rangeMapExtractor_ |
range map extractor (from A_ generated by AFact) More... | |
RCP< const MapExtractorClass > | domainMapExtractor_ |
domain map extractor (from A_ generated by AFact) More... | |
Teuchos::RCP< SmootherBase > | velPredictSmoo_ |
Block smoothers. More... | |
Teuchos::RCP< SmootherBase > | schurCompSmoo_ |
smoother for SchurComplement equation More... | |
std::vector< Teuchos::RCP < const FactoryManagerBase > > | FactManager_ |
vector of factory managers More... | |
Constructors / destructors | |
IndefBlockedDiagonalSmoother () | |
Constructor. More... | |
virtual | ~IndefBlockedDiagonalSmoother () |
Destructor. More... | |
RCP< const ParameterList > | GetValidParameterList () const |
Input. More... | |
void | DeclareInput (Level ¤tLevel) const |
Input. More... | |
void | AddFactoryManager (RCP< const FactoryManagerBase > FactManager, int pos=0) |
Add a factory manager for BraessSarazin internal SchurComplement handling. More... | |
Setup and Apply methods. | |
void | Setup (Level ¤tLevel) |
Setup routine. More... | |
void | Apply (MultiVector &X, const MultiVector &B, bool InitialGuessIsZero=false) const |
Apply the Braess Sarazin smoother. More... | |
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... | |
Cheap Blocked diagonal smoother for indefinite 2x2 block matrices.
Uses the original upper left block and the Schur Complement block on the diagonal blocks. Instead of solving the block equations exactly, we apply some sweeps with cheap iterative smoothers (e.g. Gauss-Seidel iterations)
Definition at line 97 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
Definition at line 100 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
MueLu::IndefBlockedDiagonalSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::IndefBlockedDiagonalSmoother | ( | ) |
Constructor.
Definition at line 85 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Destructor.
Definition at line 91 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Input.
Implements MueLu::ParameterListAcceptor.
Definition at line 94 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Input.
Implements MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 128 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
void MueLu::IndefBlockedDiagonalSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::AddFactoryManager | ( | RCP< const FactoryManagerBase > | FactManager, |
int | pos = 0 |
||
) |
Add a factory manager for BraessSarazin internal SchurComplement handling.
Add a factory manager at a specific position.
Definition at line 107 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Setup routine.
Implements MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 145 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Apply the Braess Sarazin smoother.
X | initial guess |
B | right-hand side |
InitialGuessIsZero | TODO This option has no effect. |
Implements MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 212 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Implements MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 336 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Return a simple one-line description of this object.
Reimplemented from MueLu::Describable.
Definition at line 341 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
void MueLu::IndefBlockedDiagonalSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::print | ( | Teuchos::FancyOStream & | out, |
const VerbLevel | verbLevel = Default |
||
) | const |
Print the object with some verbosity level to an FancyOStream object.
Definition at line 349 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Get a rough estimate of cost per iteration.
Implements MueLu::SmootherBase< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 361 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
private |
smoother type
Definition at line 165 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
A Factory.
Definition at line 167 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
block operator
Definition at line 170 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
fluid operator
Definition at line 171 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
pressure stabilization term or null block
Definition at line 172 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
range map extractor (from A_ generated by AFact)
Definition at line 174 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
domain map extractor (from A_ generated by AFact)
Definition at line 175 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
Block smoothers.
smoother for velocity prediction
Definition at line 178 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
smoother for SchurComplement equation
Definition at line 179 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
vector of factory managers
vector of internal factory managers FactManager_[0] holds the factory manager for the predicting the primary variable FactManager_[1] stores the factory manager used for the SchurComplement correction step.
Definition at line 187 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.