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 |
void | DisableMultipleCallCheck () const |
void | ResetDebugData () const |
Factory () | |
Constructor. More... | |
virtual | ~Factory () |
Destructor. More... | |
virtual void | SetFactory (const std::string &varName, const RCP< const FactoryBase > &factory) |
Configuration. More... | |
const RCP< const FactoryBase > | GetFactory (const std::string &varName) const |
Default implementation of FactoryAcceptor::GetFactory() More... | |
RCP< ParameterList > | RemoveFactoriesFromList (const ParameterList &list) 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 () |
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... | |
Additional Inherited Members | |
Public Types inherited from MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | 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 void | SetMueLuOFileStream (const std::string &filename) |
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 | EnableTimerSync () |
static void | DisableTimerSync () |
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 |
Protected Member Functions inherited from MueLu::Factory | |
void | Input (Level &level, const std::string &varName) const |
void | Input (Level &level, const std::string &varName, const std::string &varParamName) const |
template<class T > | |
T | Get (Level &level, const std::string &varName) const |
template<class T > | |
T | Get (Level &level, const std::string &varName, const std::string &varParamName) const |
template<class T > | |
void | Set (Level &level, const std::string &varName, const T &data) const |
template<class T > | |
bool | IsType (Level &level, const std::string &varName) const |
bool | IsAvailable (Level &level, const std::string &varName) const |
Static Protected Attributes inherited from MueLu::Factory | |
static bool | timerSync_ = false |
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 55 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
Definition at line 56 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
MueLu::IndefBlockedDiagonalSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::IndefBlockedDiagonalSmoother | ( | ) |
Constructor.
Definition at line 45 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Destructor.
Definition at line 51 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Input.
Reimplemented from MueLu::Factory.
Definition at line 54 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Input.
Implements MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 88 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 67 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Setup routine.
Implements MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 104 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 171 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Implements MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 318 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
virtual |
Return a simple one-line description of this object.
Reimplemented from MueLu::Describable.
Definition at line 323 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 331 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 343 of file MueLu_IndefBlockedDiagonalSmoother_def.hpp.
|
private |
smoother type
Definition at line 119 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
A Factory.
Definition at line 121 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
block operator
Definition at line 124 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
fluid operator
Definition at line 125 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
pressure stabilization term or null block
Definition at line 126 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
range map extractor (from A_ generated by AFact)
Definition at line 128 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
domain map extractor (from A_ generated by AFact)
Definition at line 129 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
Block smoothers.
smoother for velocity prediction
Definition at line 132 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.
|
private |
smoother for SchurComplement equation
Definition at line 133 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 141 of file MueLu_IndefBlockedDiagonalSmoother_decl.hpp.