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 |
![]() | |
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 |
![]() | |
SmootherBase () | |
virtual | ~SmootherBase () |
void | declareConstructionOutcome (bool fail, std::string msg) |
bool | constructionSuccessful () |
std::string | constructionErrorMsg () |
![]() | |
virtual | ~BaseClass () |
Destructor. More... | |
![]() | |
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... | |
![]() | |
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) |
![]() | |
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 |
![]() | |
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... | |
![]() | |
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) |
![]() | |
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 |
![]() | |
FactoryBase () | |
Constructor. More... | |
virtual | ~FactoryBase () |
Destructor. More... | |
int | GetID () const |
return unique factory id More... | |
![]() | |
virtual | ~FactoryAcceptor () |
![]() | |
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 |
![]() | |
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 | |
![]() | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
![]() | |
typedef Scalar | scalar_type |
typedef LocalOrdinal | local_ordinal_type |
typedef GlobalOrdinal | global_ordinal_type |
typedef Node | node_type |
![]() | |
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 void | setDefaultVerbLevel (const EVerbosityLevel defaultVerbLevel) |
static EVerbosityLevel | getDefaultVerbLevel () |
![]() | |
static void | setDefaultOStream (const RCP< FancyOStream > &defaultOStream) |
static RCP< FancyOStream > | getDefaultOStream () |
![]() | |
static void | EnableTimerSync () |
static void | DisableTimerSync () |
static void | EnableMultipleCheckGlobally () |
static void | DisableMultipleCheckGlobally () |
![]() | |
static const EVerbosityLevel | verbLevel_default |
![]() | |
void | initializeVerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null) |
![]() | |
void | initializeVerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null) |
virtual void | informUpdatedVerbosityState () const |
![]() | |
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 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.