|
MueLu
Version of the Day
|
Preconditioner (wrapped as a Xpetra::Operator) for Maxwell's equations in curl-curl form. More...
#include <MueLu_Maxwell1_decl.hpp>
Public Types | |
| using | magnitudeType = typename Teuchos::ScalarTraits< Scalar >::magnitudeType |
| using | coordinateType = typename Teuchos::ScalarTraits< Scalar >::coordinateType |
| using | RealValuedMultiVector = typename Xpetra::MultiVector< coordinateType, LO, GO, NO > |
Public Member Functions | |
| Maxwell1 () | |
| Constructor. More... | |
| Maxwell1 (Teuchos::RCP< Hierarchy > H11, Teuchos::RCP< Hierarchy > H22) | |
| Constructor with Hierarchies. More... | |
| Maxwell1 (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List, bool ComputePrec=true) | |
| Maxwell1 (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &Kn_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List, bool ComputePrec=true) | |
| Maxwell1 (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &Kn_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, const Teuchos::RCP< MultiVector > &Material, Teuchos::ParameterList &List, bool ComputePrec=true) | |
| Maxwell1 (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &Kn_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List, const Teuchos::RCP< Matrix > &GmhdA_Matrix, bool ComputePrec=true) | |
| Maxwell1 (const Teuchos::RCP< Matrix > &SM_Matrix, Teuchos::ParameterList &List, bool ComputePrec=true) | |
| virtual | ~Maxwell1 ()=default |
| 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... | |
| const Teuchos::RCP< Matrix > & | getJacobian () const |
| Returns Jacobian matrix SM. 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 Types | |
| enum | mode_type { MODE_STANDARD = 0, MODE_REFMAXWELL, MODE_EDGE_ONLY, MODE_GMHD_STANDARD } |
| Execution modes. More... | |
Private Member Functions | |
| Teuchos::RCP< Matrix > | generate_kn () const |
| Generates the Kn matrix. More... | |
| void | GMHDSetupHierarchy (Teuchos::ParameterList &List) const |
| Sets up hiearchy for GMHD matrices that include generalized Ohms law equations. More... | |
| void | initialize (const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &Kn_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, const Teuchos::RCP< MultiVector > &Material, Teuchos::ParameterList &List) |
| void | applyInverseRefMaxwellAdditive (const MultiVector &RHS, MultiVector &X) const |
| apply RefMaxwell additive 2x2 style cycle More... | |
| void | applyInverseStandard (const MultiVector &RHS, MultiVector &X) const |
| apply standard Maxwell1 cycle More... | |
| void | allocateMemory (int numVectors) const |
| allocate multivectors for solve More... | |
| void | dump (const Matrix &A, std::string name) const |
| dump out matrix More... | |
| void | dump (const MultiVector &X, std::string name) const |
| dump out multivector More... | |
| void | dumpCoords (const RealValuedMultiVector &X, std::string name) const |
| dump out real-valued multivector More... | |
| void | dump (const Teuchos::ArrayRCP< bool > &v, std::string name) const |
| dump out boolean ArrayView More... | |
| void | dump (const Kokkos::View< bool *, typename Node::device_type > &v, std::string name) const |
| dump out boolean Kokkos::View More... | |
| Teuchos::RCP < Teuchos::TimeMonitor > | getTimer (std::string name, RCP< const Teuchos::Comm< int > > comm=Teuchos::null) const |
| get a (synced) timer More... | |
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 Maxwell's equations in curl-curl form.
Definition at line 46 of file MueLu_Maxwell1_decl.hpp.
| using MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::magnitudeType = typename Teuchos::ScalarTraits<Scalar>::magnitudeType |
Definition at line 51 of file MueLu_Maxwell1_decl.hpp.
| using MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::coordinateType = typename Teuchos::ScalarTraits<Scalar>::coordinateType |
Definition at line 52 of file MueLu_Maxwell1_decl.hpp.
| using MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RealValuedMultiVector = typename Xpetra::MultiVector<coordinateType, LO, GO, NO> |
Definition at line 53 of file MueLu_Maxwell1_decl.hpp.
|
private |
Execution modes.
| Enumerator | |
|---|---|
| MODE_STANDARD | |
| MODE_REFMAXWELL | |
| MODE_EDGE_ONLY | |
| MODE_GMHD_STANDARD | |
Definition at line 302 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Constructor.
Definition at line 56 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Constructor with Hierarchies.
Definition at line 64 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Constructor with Jacobian
| [in] | SM_Matrix | Jacobian |
| [in] | D0_Matrix | Discrete Gradient |
| [in] | Nullspace | Null space (needed for periodic) |
| [in] | Coords | Nodal coordinates |
| [in] | List | Parameter list |
| [in] | ComputePrec | If true, compute the preconditioner immediately |
Definition at line 80 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Constructor with Jacobian and nodal matrix
| [in] | SM_Matrix | Jacobian |
| [in] | D0_Matrix | Discrete Gradient |
| [in] | Kn_Matrix | Nodal Laplacian |
| [in] | Coords | Nodal coordinates |
| [in] | List | Parameter list |
| [in] | ComputePrec | If true, compute the preconditioner immediately |
Definition at line 101 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Constructor with Jacobian and nodal matrix
| [in] | SM_Matrix | Jacobian |
| [in] | D0_Matrix | Discrete Gradient |
| [in] | Kn_Matrix | Nodal Laplacian |
| [in] | Coords | Nodal coordinates |
| [in] | List | Parameter list |
| [in] | ComputePrec | If true, compute the preconditioner immediately |
Definition at line 122 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Gmhd GMHD Constructor with Jacobian and nodal matrix AND Gmhd matrix
| [in] | SM_Matrix | Jacobian |
| [in] | D0_Matrix | Discrete Gradient |
| [in] | Kn_Matrix | Nodal Laplacian |
| [in] | Coords | Nodal coordinates |
| [in] | List | Parameter list |
| [in] | GmhdA_Matrix | Gmhd matrix including generalized Ohms law equations |
| [in] | ComputePrec | If true, compute the preconditioner immediately |
Definition at line 145 of file MueLu_Maxwell1_decl.hpp.
|
inline |
Constructor with parameter list
| [in] | SM_Matrix | Jacobian |
| [in] | List | Parameter list |
| [in] | ComputePrec | If true, compute the preconditioner immediately |
Definition at line 166 of file MueLu_Maxwell1_decl.hpp.
|
virtualdefault |
Destructor.
|
virtual |
Returns the Xpetra::Map object associated with the domain of this operator.
Implements Xpetra::Operator< Scalar, LocalOrdinal, GlobalOrdinal, Node >.
Definition at line 49 of file MueLu_Maxwell1_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 54 of file MueLu_Maxwell1_def.hpp.
|
inline |
Returns Jacobian matrix SM.
Definition at line 193 of file MueLu_Maxwell1_decl.hpp.
| void MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setParameters | ( | Teuchos::ParameterList & | list | ) |
Set parameters.
Definition at line 59 of file MueLu_Maxwell1_def.hpp.
| void MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::compute | ( | bool | reuse = false | ) |
Setup the preconditioner.
Definition at line 226 of file MueLu_Maxwell1_def.hpp.
| void MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::resetMatrix | ( | Teuchos::RCP< Matrix > | SM_Matrix_new, |
| bool | ComputePrec = true |
||
| ) |
Reset system matrix.
Definition at line 678 of file MueLu_Maxwell1_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 746 of file MueLu_Maxwell1_def.hpp.
| bool MueLu::Maxwell1< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply | ( | ) | const |
Indicates whether this operator supports applying the adjoint operator.
Definition at line 762 of file MueLu_Maxwell1_def.hpp.
|
virtual |
Reimplemented from Teuchos::Describable.
Definition at line 844 of file MueLu_Maxwell1_def.hpp.
|
inline |
Compute a residual R = B - (*this) * X.
Definition at line 220 of file MueLu_Maxwell1_decl.hpp.
|
private |
Generates the Kn matrix.
Definition at line 585 of file MueLu_Maxwell1_def.hpp.
|
private |
Sets up hiearchy for GMHD matrices that include generalized Ohms law equations.
Definition at line 207 of file MueLu_Maxwell1_def.hpp.
|
private |
Initialize with matrices except the Jacobian (don't compute the preconditioner)
| [in] | D0_Matrix | Discrete Gradient |
| [in] | Kn_Matrix | Kn nodal matrix |
| [in] | Nullspace | Null space (needed for periodic) |
| [in] | Coords | Nodal coordinates |
| [in] | Material | material multivector |
| [in] | List | Parameter list |
Definition at line 768 of file MueLu_Maxwell1_def.hpp.
|
private |
apply RefMaxwell additive 2x2 style cycle
Definition at line 687 of file MueLu_Maxwell1_def.hpp.
|
private |
apply standard Maxwell1 cycle
Definition at line 741 of file MueLu_Maxwell1_def.hpp.
|
private |
allocate multivectors for solve
Definition at line 596 of file MueLu_Maxwell1_def.hpp.
|
private |
dump out matrix
Definition at line 617 of file MueLu_Maxwell1_def.hpp.
|
private |
dump out multivector
Definition at line 625 of file MueLu_Maxwell1_def.hpp.
|
private |
dump out real-valued multivector
Definition at line 633 of file MueLu_Maxwell1_def.hpp.
|
private |
dump out boolean ArrayView
Definition at line 641 of file MueLu_Maxwell1_def.hpp.
|
private |
dump out boolean Kokkos::View
Definition at line 651 of file MueLu_Maxwell1_def.hpp.
|
private |
get a (synced) timer
Definition at line 663 of file MueLu_Maxwell1_def.hpp.
|
mutableprivate |
ParameterLists.
Definition at line 279 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 279 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 279 of file MueLu_Maxwell1_decl.hpp.
|
private |
Two hierarchies: one for the (1,1)-block, another for the (2,2)-block.
Definition at line 282 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 282 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 282 of file MueLu_Maxwell1_decl.hpp.
|
private |
Various matrices.
Definition at line 285 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 285 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 285 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 285 of file MueLu_Maxwell1_decl.hpp.
|
private |
Vectors for BCs.
Definition at line 288 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 288 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 288 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 289 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 289 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 290 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 290 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 290 of file MueLu_Maxwell1_decl.hpp.
|
private |
Nullspace.
Definition at line 292 of file MueLu_Maxwell1_decl.hpp.
|
private |
Coordinates.
Definition at line 294 of file MueLu_Maxwell1_decl.hpp.
|
private |
Material.
Definition at line 296 of file MueLu_Maxwell1_decl.hpp.
|
private |
Some options.
Definition at line 298 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 298 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 298 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 298 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 298 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 298 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 299 of file MueLu_Maxwell1_decl.hpp.
|
private |
Definition at line 306 of file MueLu_Maxwell1_decl.hpp.
|
private |
Temporary memory (cached vectors for RefMaxwell-style)
Definition at line 309 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 310 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 310 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 310 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 310 of file MueLu_Maxwell1_decl.hpp.
|
mutableprivate |
Definition at line 310 of file MueLu_Maxwell1_decl.hpp.