|
MueLu Version of the Day
|
Preconditioner (wrapped as a Xpetra::Operator) for solving MultiPhysics PDEs. More...
#include <MueLu_MultiPhys_decl.hpp>
Public Types | |
| typedef Teuchos::ScalarTraits< Scalar >::magnitudeType | magnitudeType |
| typedef Teuchos::ScalarTraits< Scalar >::coordinateType | coordinateType |
| typedef Xpetra::MultiVector< coordinateType, LO, GO, NO > | RealValuedMultiVector |
Public Member Functions | |
| MultiPhys () | |
| Constructor. | |
| MultiPhys (const Teuchos::RCP< Matrix > &AmatMultiPhysics, const Teuchos::ArrayRCP< RCP< Matrix > > arrayOfAuxMatrices, const Teuchos::ArrayRCP< Teuchos::RCP< MultiVector > > arrayOfNullspaces, const Teuchos::ArrayRCP< Teuchos::RCP< RealValuedMultiVector > > arrayOfCoords, const int nBlks, Teuchos::ParameterList &List, bool ComputePrec=true, const Teuchos::ArrayRCP< Teuchos::RCP< MultiVector > > arrayOfMaterials=Teuchos::null, bool OmitSubblockSmoother=true) | |
| virtual | ~MultiPhys () |
| Destructor. | |
| const Teuchos::RCP< const Map > | getDomainMap () const |
| Returns the Xpetra::Map object associated with the domain of this operator. | |
| const Teuchos::RCP< const Map > | getRangeMap () const |
| Returns the Xpetra::Map object associated with the range of this operator. | |
| void | setParameters (Teuchos::ParameterList &list) |
| Set parameters. | |
| void | compute (bool reuse=false) |
| Setup the preconditioner. | |
| void | resetMatrix (Teuchos::RCP< Matrix > SM_Matrix_new, bool ComputePrec=true) |
| Reset system matrix. | |
| void | apply (const MultiVector &X, MultiVector &Y, Teuchos::ETransp mode=Teuchos::NO_TRANS, Scalar alpha=Teuchos::ScalarTraits< Scalar >::one(), Scalar beta=Teuchos::ScalarTraits< Scalar >::zero()) const |
| bool | hasTransposeApply () const |
| Indicates whether this operator supports applying the adjoint operator. | |
| void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel=Teuchos::VERB_HIGH) const |
| void | residual (const MultiVector &X, const MultiVector &B, MultiVector &R) const |
| Compute a residual R = B - (*this) * X. | |
| Teuchos::RCP< Hierarchy > | multiphysicsHierarchy () |
| Return the multiphysics hierarchy. | |
| Teuchos::ArrayRCP< Teuchos::RCP< Hierarchy > > | subblockHierarchies () |
| Return an array of hierarchies corresponding to each diagonal subblock. | |
Public Member Functions inherited from MueLu::VerboseObject | |
| VerboseObject () | |
| virtual | ~VerboseObject () |
| Destructor. | |
| VerbLevel | GetVerbLevel () const |
| Get the verbosity level. | |
| void | SetVerbLevel (const VerbLevel verbLevel) |
| Set the verbosity level of this object. | |
| int | GetProcRankVerbose () const |
| Get proc rank used for printing. Do not use this information for any other purpose. | |
| int | SetProcRankVerbose (int procRank) const |
| Set proc rank used for printing. | |
| bool | IsPrint (MsgType type, int thisProcRankOnly=-1) const |
| Find out whether we need to print out information for a specific message type. | |
| Teuchos::FancyOStream & | GetOStream (MsgType type, int thisProcRankOnly=0) const |
| Get an output stream for outputting the input message type. | |
| Teuchos::FancyOStream & | GetBlackHole () const |
Private Member Functions | |
| void | initialize (const Teuchos::RCP< Matrix > &AmatMultiPhysics, const Teuchos::ArrayRCP< RCP< Matrix > > arrayOfAuxMatrices, const Teuchos::ArrayRCP< Teuchos::RCP< MultiVector > > arrayOfNullspaces, const Teuchos::ArrayRCP< Teuchos::RCP< RealValuedMultiVector > > arrayOfCoords, const int nBlks, Teuchos::ParameterList &List, const Teuchos::ArrayRCP< Teuchos::RCP< MultiVector > > arrayOfMaterials) |
| void | applyInverse (const MultiVector &RHS, MultiVector &X) const |
| apply standard MultiPhys cycle | |
| void | allocateMemory (int numVectors) const |
| allocate multivectors for solve | |
| Teuchos::RCP< Teuchos::TimeMonitor > | getTimer (std::string name, RCP< const Teuchos::Comm< int > > comm=Teuchos::null) const |
| get a (synced) timer | |
Private Attributes | |
| Teuchos::ParameterList | parameterList_ |
| ParameterLists. | |
| Teuchos::RCP< Matrix > | AmatMultiphysics_ |
| Hierarchies: used to define P for (0,0)-block, .... (nBlks_-1,nBlks_-1) block. | |
| Teuchos::RCP< Teuchos::ParameterList > | paramListMultiphysics_ |
| Teuchos::RCP< Hierarchy > | hierarchyMultiphysics_ |
| Teuchos::ArrayRCP< Teuchos::RCP< Teuchos::ParameterList > > | arrayOfParamLists_ |
| Teuchos::ArrayRCP< Teuchos::RCP< Hierarchy > > | arrayOfHierarchies_ |
| Teuchos::ArrayRCP< Teuchos::RCP< Matrix > > | arrayOfAuxMatrices_ |
| Teuchos::ArrayRCP< Teuchos::RCP< MultiVector > > | arrayOfNullspaces_ |
| Teuchos::ArrayRCP< Teuchos::RCP< RealValuedMultiVector > > | arrayOfCoords_ |
| Teuchos::ArrayRCP< Teuchos::RCP< MultiVector > > | arrayOfMaterials_ |
| bool | OmitSubblockSmoother_ |
| int | nBlks_ |
| bool | useKokkos_ |
| bool | enable_reuse_ |
| bool | syncTimers_ |
Additional Inherited Members | |
Static Public Member Functions inherited from MueLu::VerboseObject | |
| static void | SetDefaultVerbLevel (const VerbLevel defaultVerbLevel) |
| Set the default (global) verbosity level. | |
| static VerbLevel | GetDefaultVerbLevel () |
| Get the default (global) verbosity level. | |
| static void | SetMueLuOStream (const Teuchos::RCP< Teuchos::FancyOStream > &mueluOStream) |
| static void | SetMueLuOFileStream (const std::string &filename) |
| static Teuchos::RCP< Teuchos::FancyOStream > | GetMueLuOStream () |
Preconditioner (wrapped as a Xpetra::Operator) for solving MultiPhysics PDEs.
Definition at line 46 of file MueLu_MultiPhys_decl.hpp.
| typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::magnitudeType |
Definition at line 51 of file MueLu_MultiPhys_decl.hpp.
| typedef Teuchos::ScalarTraits<Scalar>::coordinateType MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::coordinateType |
Definition at line 52 of file MueLu_MultiPhys_decl.hpp.
| typedef Xpetra::MultiVector<coordinateType, LO, GO, NO> MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RealValuedMultiVector |
Definition at line 53 of file MueLu_MultiPhys_decl.hpp.
|
inline |
Constructor.
Definition at line 56 of file MueLu_MultiPhys_decl.hpp.
|
inline |
Constructor
| [in] | AmatMultiPhysics | Multiphysics discretization matrix |
| [in] | arrayOfAuxMatrices | Auxiliary matrices used to generate subblock prolongators for multiphysics system |
| [in] | arrayOfNullspaces | Nullspace multivectors used to generate subblock prolongators for multiphysics system |
| [in] | arrayOfCoords | Coordinate multivectors used to generate subblock prolongators for multiphysics system |
| [in] | nBlks | nBlks x nBlks gives the block dimensions of the multiphysics operator |
| [in] | List | Parameter list |
| [in] | ComputePrec | If true, compute the preconditioner immediately |
| [in] | arrayOfMaterials | Material multivectors used to generate subblock prolongators for multiphysics system |
| [in] | OmitSubblockSmoother | If true, omit construction of subblock-level smoothers |
Definition at line 74 of file MueLu_MultiPhys_decl.hpp.
|
inlinevirtual |
Destructor.
Definition at line 95 of file MueLu_MultiPhys_decl.hpp.
| const Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getDomainMap | ( | ) | const |
Returns the Xpetra::Map object associated with the domain of this operator.
Definition at line 43 of file MueLu_MultiPhys_def.hpp.
| const Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getRangeMap | ( | ) | const |
Returns the Xpetra::Map object associated with the range of this operator.
Definition at line 48 of file MueLu_MultiPhys_def.hpp.
| void MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setParameters | ( | Teuchos::ParameterList & | list | ) |
Set parameters.
Definition at line 53 of file MueLu_MultiPhys_def.hpp.
| void MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::compute | ( | bool | reuse = false | ) |
Setup the preconditioner.
Definition at line 86 of file MueLu_MultiPhys_def.hpp.
| void MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::resetMatrix | ( | Teuchos::RCP< Matrix > | SM_Matrix_new, |
| bool | ComputePrec = true |
||
| ) |
Reset system matrix.
Definition at line 229 of file MueLu_MultiPhys_def.hpp.
| void MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::apply | ( | const MultiVector & | X, |
| MultiVector & | Y, | ||
| Teuchos::ETransp | mode = Teuchos::NO_TRANS, |
||
| Scalar | alpha = Teuchos::ScalarTraits<Scalar>::one(), |
||
| Scalar | beta = Teuchos::ScalarTraits<Scalar>::zero() |
||
| ) | const |
Returns in Y the result of a Xpetra::Operator applied to a Xpetra::MultiVector X.
| [in] | X | - MultiVector of dimension NumVectors to multiply with matrix. |
| [out] | Y | - MultiVector of dimension NumVectors containing result. |
Definition at line 241 of file MueLu_MultiPhys_def.hpp.
| bool MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply | ( | ) | const |
Indicates whether this operator supports applying the adjoint operator.
Definition at line 250 of file MueLu_MultiPhys_def.hpp.
| void MueLu::MultiPhys< Scalar, LocalOrdinal, GlobalOrdinal, Node >::describe | ( | Teuchos::FancyOStream & | out, |
| const Teuchos::EVerbosityLevel | verbLevel = Teuchos::VERB_HIGH |
||
| ) | const |
Definition at line 277 of file MueLu_MultiPhys_def.hpp.
|
inline |
Compute a residual R = B - (*this) * X.
Definition at line 126 of file MueLu_MultiPhys_decl.hpp.
|
inline |
Return the multiphysics hierarchy.
Definition at line 135 of file MueLu_MultiPhys_decl.hpp.
|
inline |
Return an array of hierarchies corresponding to each diagonal subblock.
Definition at line 140 of file MueLu_MultiPhys_decl.hpp.
|
private |
Initialize with matrices except the Jacobian (don't compute the preconditioner)
| [in] | AmatMultiPhysics | Multiphysics discretization matrix |
| [in] | arrayOfAuxMatrices | Array of auxiliary matrices used to generate subblock prolongators for multiphysics system |
| [in] | arrayOfNullspaces | Array of nullspace multivectors used to generate subblock prolongators for multiphysics system |
| [in] | arrayOfCoords | Array of coordinate multivectors used to generate subblock prolongators for multiphysics system |
| [in] | nBlks | nBlks x nBlks gives the block dimensions of the multiphysics operator |
| [in] | List | Parameter list |
| [in] | arrayOfMaterials | Array of material multivectors used to generate subblock prolongators for multiphysics system |
Definition at line 255 of file MueLu_MultiPhys_def.hpp.
|
private |
apply standard MultiPhys cycle
Definition at line 236 of file MueLu_MultiPhys_def.hpp.
|
private |
allocate multivectors for solve
|
private |
get a (synced) timer
Definition at line 214 of file MueLu_MultiPhys_def.hpp.
|
mutableprivate |
ParameterLists.
Definition at line 173 of file MueLu_MultiPhys_decl.hpp.
|
private |
Hierarchies: used to define P for (0,0)-block, .... (nBlks_-1,nBlks_-1) block.
Definition at line 177 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 178 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 179 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 181 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 182 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 183 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 184 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 185 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 186 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 188 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 190 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 191 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 191 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 191 of file MueLu_MultiPhys_decl.hpp.