|
MueLu Version of the Day
|
block Gauss-Seidel method for blocked matrices More...
#include <MueLu_BlockedGaussSeidelSmoother_decl.hpp>
Private Types | |
| typedef Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > | MapExtractorClass |
Overridden from Teuchos::Describable | |
| std::string | type_ |
| smoother type More... | |
| std::vector< Teuchos::RCP< const FactoryManagerBase > > | FactManager_ |
| vector of factory managers More... | |
| std::vector< Teuchos::RCP< const SmootherBase > > | Inverse_ |
| vector of smoother/solver factories More... | |
| std::vector< bool > | bIsBlockedOperator_ |
| vector storing whether sub-block is a blocked operator (needed for nested blocked smoothers using Thyra GIDs) More... | |
| RCP< FactoryBase > | AFact_ |
| A Factory. More... | |
| RCP< Matrix > | A_ |
| internal blocked operator "A" generated by AFact_ 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... | |
| 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 verbLevel to an FancyOStream object out. More... | |
| size_t | getNodeSmootherComplexity () const |
| Get a rough estimate of cost per iteration. More... | |
Constructors / destructors | |
| BlockedGaussSeidelSmoother () | |
| Constructor. More... | |
| virtual | ~BlockedGaussSeidelSmoother () |
| Destructor. More... | |
| RCP< const ParameterList > | GetValidParameterList () const |
| Input. More... | |
| void | DeclareInput (Level ¤tLevel) const |
| Input. More... | |
| void | AddFactoryManager (RCP< const FactoryManagerBase > FactManager, int pos) |
| Add a factory manager. More... | |
Setup and Apply methods. | |
| void | Setup (Level ¤tLevel) |
| Setup routine In the Setup method the Inverse_ vector is filled with the corresponding SmootherBase objects. Without the Inverse_ vector being filled we cannot call BlockedGaussSeidelSmoother::Apply. More... | |
| void | Apply (MultiVector &X, const MultiVector &B, bool InitialGuessIsZero=false) const |
Apply the direct solver. Solves the linear system AX=B using the constructed solver. More... | |
| RCP< SmootherPrototype > | Copy () const |
block Gauss-Seidel method for blocked matrices
Implementation of a block Gauss-Seidel methods for blocked matrices
| LocalOrdinal | sweeps = 1: number of BGS sweeps |
| Scalar | omega = 1.0: damping parameter |
| RCP<FactoryBase> | AFact = Teuchos::null: factory for blocked "A" operator |
Use the AddFactoryManager routine to declare the subsmoothers/subsolvers for the block Gauss-Seidel method for the block rows. The corresponding factory manager has to provide a variable "A" (pointing to the subblock of the blocked A operator) and a smoother object (variable: "PreSmoother").
Example
Definition at line 115 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
Definition at line 118 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
| MueLu::BlockedGaussSeidelSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BlockedGaussSeidelSmoother |
Constructor.
Definition at line 72 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Destructor.
Definition at line 79 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Input.
Reimplemented from MueLu::Factory.
Definition at line 82 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Input.
Definition at line 114 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
| void MueLu::BlockedGaussSeidelSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::AddFactoryManager | ( | RCP< const FactoryManagerBase > | FactManager, |
| int | pos | ||
| ) |
Add a factory manager.
Add a factory manager at a specific position
Definition at line 93 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Setup routine In the Setup method the Inverse_ vector is filled with the corresponding SmootherBase objects. Without the Inverse_ vector being filled we cannot call BlockedGaussSeidelSmoother::Apply.
Definition at line 133 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Apply the direct solver. Solves the linear system AX=B using the constructed solver.
| X | initial guess |
| B | right-hand side |
| InitialGuessIsZero | This option has no effect. |
Definition at line 171 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Definition at line 335 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Return a simple one-line description of this object.
Reimplemented from MueLu::Describable.
Definition at line 340 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
| void MueLu::BlockedGaussSeidelSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::print | ( | Teuchos::FancyOStream & | out, |
| const VerbLevel | verbLevel = Default |
||
| ) | const |
Print the object with some verbosity level verbLevel to an FancyOStream object out.
Definition at line 348 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
virtual |
Get a rough estimate of cost per iteration.
Definition at line 365 of file MueLu_BlockedGaussSeidelSmoother_def.hpp.
|
private |
smoother type
Definition at line 193 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
vector of factory managers
Definition at line 196 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
vector of smoother/solver factories
Definition at line 199 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
vector storing whether sub-block is a blocked operator (needed for nested blocked smoothers using Thyra GIDs)
Definition at line 202 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
A Factory.
Definition at line 205 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
internal blocked operator "A" generated by AFact_
Definition at line 208 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
range map extractor (from A_ generated by AFact)
Definition at line 211 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.
|
private |
domain map extractor (from A_ generated by AFact)
Definition at line 214 of file MueLu_BlockedGaussSeidelSmoother_decl.hpp.