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. More... | |
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) | |
virtual | ~MultiPhys () |
Destructor. More... | |
const Teuchos::RCP< const Map > | getDomainMap () const |
Returns the Xpetra::Map object associated with the domain of this operator. More... | |
const Teuchos::RCP< const Map > | getRangeMap () const |
Returns the Xpetra::Map object associated with the range of this operator. More... | |
void | setParameters (Teuchos::ParameterList &list) |
Set parameters. More... | |
void | compute (bool reuse=false) |
Setup the preconditioner. More... | |
void | resetMatrix (Teuchos::RCP< Matrix > SM_Matrix_new, bool ComputePrec=true) |
Reset system matrix. More... | |
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. More... | |
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. 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 Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node > | |
virtual void | removeEmptyProcessesInPlace (const RCP< const Map > &) |
Public Member Functions inherited from Teuchos::Describable | |
virtual std::string | description () const |
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
virtual | ~Describable () |
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) |
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) |
void | applyInverse (const MultiVector &RHS, MultiVector &X) const |
apply standard MultiPhys cycle More... | |
void | allocateMemory (int numVectors) const |
allocate multivectors for solve More... | |
Teuchos::RCP < Teuchos::TimeMonitor > | getTimer (std::string name, RCP< const Teuchos::Comm< int >> comm=Teuchos::null) const |
get a (synced) timer More... | |
Private Attributes | |
Teuchos::ParameterList | parameterList_ |
ParameterLists. More... | |
Teuchos::RCP< Matrix > | AmatMultiphysics_ |
Hierarchies: used to define P for (0,0)-block, .... (nBlks_-1,nBlks_-1) block. More... | |
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_ |
int | nBlks_ |
bool | useKokkos_ |
bool | enable_reuse_ |
bool | syncTimers_ |
Additional Inherited Members | |
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 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 |
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 |
Definition at line 72 of file MueLu_MultiPhys_decl.hpp.
|
inlinevirtual |
Destructor.
Definition at line 89 of file MueLu_MultiPhys_decl.hpp.
|
virtual |
Returns the Xpetra::Map object associated with the domain of this operator.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 43 of file MueLu_MultiPhys_def.hpp.
|
virtual |
Returns the Xpetra::Map object associated with the range of this operator.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
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 84 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 194 of file MueLu_MultiPhys_def.hpp.
|
virtual |
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. |
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 206 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 215 of file MueLu_MultiPhys_def.hpp.
|
virtual |
Reimplemented from Teuchos::Describable.
Definition at line 242 of file MueLu_MultiPhys_def.hpp.
|
inline |
Compute a residual R = B - (*this) * X.
Definition at line 120 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 |
Definition at line 221 of file MueLu_MultiPhys_def.hpp.
|
private |
apply standard MultiPhys cycle
Definition at line 201 of file MueLu_MultiPhys_def.hpp.
|
private |
allocate multivectors for solve
|
private |
get a (synced) timer
Definition at line 179 of file MueLu_MultiPhys_def.hpp.
|
mutableprivate |
ParameterLists.
Definition at line 155 of file MueLu_MultiPhys_decl.hpp.
|
private |
Hierarchies: used to define P for (0,0)-block, .... (nBlks_-1,nBlks_-1) block.
Definition at line 159 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 160 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 161 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 163 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 164 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 165 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 166 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 167 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 169 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 170 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 170 of file MueLu_MultiPhys_decl.hpp.
|
private |
Definition at line 170 of file MueLu_MultiPhys_decl.hpp.