MueLu  Version of the Day
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node > Class Template Reference

Preconditioner (wrapped as a Xpetra::Operator) for Maxwell's equations in curl-curl form. More...

#include <MueLu_RefMaxwell_decl.hpp>

Inheritance diagram for MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >:
MueLu::VerboseObject

Public Types

typedef Teuchos::ScalarTraits< Scalar >::magnitudeType magnitudeType
 
typedef Xpetra::MultiVector< magnitudeType, LO, GO, NO > RealValuedMultiVector
 

Public Member Functions

 RefMaxwell ()
 Constructor. More...
 
 RefMaxwell (Teuchos::RCP< Hierarchy > HH, Teuchos::RCP< Hierarchy > H22)
 Constructor with Hierarchies. More...
 
 RefMaxwell (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &Ms_Matrix, const Teuchos::RCP< Matrix > &M0inv_Matrix, const Teuchos::RCP< Matrix > &M1_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List, bool ComputePrec=true)
 
 RefMaxwell (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &M0inv_Matrix, const Teuchos::RCP< Matrix > &M1_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List, bool ComputePrec=true)
 
 RefMaxwell (const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &M0inv_Matrix, const Teuchos::RCP< Matrix > &M1_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List)
 
 RefMaxwell (const Teuchos::RCP< Matrix > &SM_Matrix, const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &M1_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List, bool ComputePrec)
 
 RefMaxwell (const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &M1_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List)
 
 RefMaxwell (const Teuchos::RCP< Matrix > &SM_Matrix, Teuchos::ParameterList &List, bool ComputePrec=true)
 
virtual ~RefMaxwell ()
 Destructor. More...
 
Teuchos::RCP< const Map > getDomainMap () const
 Returns the Xpetra::Map object associated with the domain of this operator. More...
 
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 buildProlongator ()
 Setup the prolongator for the (1,1)-block. More...
 
void formCoarseMatrix ()
 Compute P11^{T}*A*P11 efficiently. 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
 
- Public Member Functions inherited from MueLu::VerboseObject
 VerboseObject ()
 
virtual ~VerboseObject ()
 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
 

Private Member Functions

void initialize (const Teuchos::RCP< Matrix > &D0_Matrix, const Teuchos::RCP< Matrix > &Ms_Matrix, const Teuchos::RCP< Matrix > &M0inv_Matrix, const Teuchos::RCP< Matrix > &M1_Matrix, const Teuchos::RCP< MultiVector > &Nullspace, const Teuchos::RCP< RealValuedMultiVector > &Coords, Teuchos::ParameterList &List)
 
void applyInverseAdditive (const MultiVector &RHS, MultiVector &X) const
 apply additive algorithm for 2x2 solve More...
 
void applyInverse121 (const MultiVector &RHS, MultiVector &X) const
 apply 1-2-1 algorithm for 2x2 solve More...
 
void applyInverse212 (const MultiVector &RHS, MultiVector &X) const
 apply 2-1-2 algorithm for 2x2 solve More...
 
void solveH (const MultiVector &RHS, MultiVector &X) const
 apply solve to 1-1 block only More...
 
void solve22 (const MultiVector &RHS, MultiVector &X) const
 apply solve to 2-2 block only More...
 

Private Attributes

Teuchos::RCP< HierarchyHierarchyH_
 Two hierarchies: one for the coarse (1,1)-block, another for the (2,2)-block. More...
 
Teuchos::RCP< HierarchyHierarchy22_
 
Teuchos::RCP< SmootherBasePreSmoother_
 
Teuchos::RCP< SmootherBasePostSmoother_
 
bool useHiptmairSmoothing_
 
Teuchos::RCP< Matrix > SM_Matrix_
 Various matrices. More...
 
Teuchos::RCP< Matrix > D0_Matrix_
 
Teuchos::RCP< Matrix > D0_T_Matrix_
 
Teuchos::RCP< Matrix > M0inv_Matrix_
 
Teuchos::RCP< Matrix > M1_Matrix_
 
Teuchos::RCP< Matrix > Ms_Matrix_
 
Teuchos::RCP< Matrix > A_nodal_Matrix_
 
Teuchos::RCP< Matrix > P11_
 
Teuchos::RCP< Matrix > R11_
 
Teuchos::RCP< Matrix > AH_
 
Teuchos::RCP< Matrix > A22_
 
Teuchos::RCP< Matrix > Addon_Matrix_
 
int BCrowcount_
 Vectors for BCs. More...
 
int BCcolcount_
 
Teuchos::ArrayRCP< const bool > BCrows_
 
Teuchos::ArrayRCP< const bool > BCcols_
 
Teuchos::RCP< MultiVector > Nullspace_
 Nullspace. More...
 
Teuchos::RCP< RealValuedMultiVectorCoords_
 Coordinates. More...
 
Teuchos::RCP< RealValuedMultiVectorCoordsH_
 
Teuchos::RCP< const Import > ImporterH_
 Importer to coarse (1,1) hierarchy. More...
 
Teuchos::RCP< const Import > Importer22_
 
Teuchos::ParameterList parameterList_
 Parameter lists. More...
 
Teuchos::ParameterList precList11_
 
Teuchos::ParameterList precList22_
 
Teuchos::ParameterList smootherList_
 
Teuchos::RCP< Teuchos::ParameterList > AH_AP_reuse_data_
 
Teuchos::RCP< Teuchos::ParameterList > AH_RAP_reuse_data_
 
Teuchos::RCP< Teuchos::ParameterList > A22_AP_reuse_data_
 
Teuchos::RCP< Teuchos::ParameterList > A22_RAP_reuse_data_
 
bool disable_addon_
 Some options. More...
 
bool dump_matrices_
 
bool useKokkos_
 
bool use_as_preconditioner_
 
bool implicitTranspose_
 
std::string mode_
 
Teuchos::RCP< MultiVector > P11res_
 Temporary memory. More...
 
Teuchos::RCP< MultiVector > P11x_
 
Teuchos::RCP< MultiVector > D0res_
 
Teuchos::RCP< MultiVector > D0x_
 
Teuchos::RCP< MultiVector > residual_
 
Teuchos::RCP< MultiVector > P11resTmp_
 
Teuchos::RCP< MultiVector > P11xTmp_
 
Teuchos::RCP< MultiVector > D0resTmp_
 
Teuchos::RCP< MultiVector > D0xTmp_
 

Additional Inherited Members

- Static Public Member Functions inherited from MueLu::VerboseObject
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 SetMueLuOStream (const Teuchos::RCP< Teuchos::FancyOStream > &mueluOStream)
 
static Teuchos::RCP< Teuchos::FancyOStream > GetMueLuOStream ()
 

Detailed Description

template<class Scalar, class LocalOrdinal, class GlobalOrdinal, class Node>
class MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >

Preconditioner (wrapped as a Xpetra::Operator) for Maxwell's equations in curl-curl form.

This uses a 2x2 block reformulation.

Reference: P. Bochev, J. Hu, C. Siefert, and R. Tuminaro. "An algebraic multigrid approach based on a compatible gauge reformulation of Maxwell's equations." SIAM Journal on Scientific Computing, 31(1), 557-583.

Parameter list options:

  • refmaxwell: mode - a string specifying the order of solve of the block system. Allowed values are: "additive" (default), "121", "212", "1", "2"
  • refmaxwell: disable addon - bool specifing whether the addon should be built for stabilization. Default: "true"
  • refmaxwell: use as preconditioner - bool specifing whether RefMaxwell is used as a preconditioner or as a solver.
  • refmaxwell: dump matrices - bool specifing whether the matrices should be dumped. Default: "false"
  • refmaxwell: prolongator compute algorithm - a string specifying the algorithm to build the prolongator. Allowed values are: "mat-mat" and "gustavson"
  • refmaxwell: 11list and refmaxwell: 22list - parameter list for the multigrid hierarchies on 11 and 22 blocks
  • refmaxwell: subsolves on subcommunicators - bool redistribute the two subsolves to disjoint sub-communicators (so that the additive solve can occur in parallel) Default: "false"

Definition at line 125 of file MueLu_RefMaxwell_decl.hpp.

Member Typedef Documentation

◆ magnitudeType

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
typedef Teuchos::ScalarTraits<Scalar>::magnitudeType MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::magnitudeType

Definition at line 132 of file MueLu_RefMaxwell_decl.hpp.

◆ RealValuedMultiVector

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
typedef Xpetra::MultiVector<magnitudeType,LO,GO,NO> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RealValuedMultiVector

Definition at line 133 of file MueLu_RefMaxwell_decl.hpp.

Constructor & Destructor Documentation

◆ RefMaxwell() [1/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( )
inline

Constructor.

Definition at line 136 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [2/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( Teuchos::RCP< Hierarchy HH,
Teuchos::RCP< Hierarchy H22 
)
inline

Constructor with Hierarchies.

Definition at line 145 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [3/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( const Teuchos::RCP< Matrix > &  SM_Matrix,
const Teuchos::RCP< Matrix > &  D0_Matrix,
const Teuchos::RCP< Matrix > &  Ms_Matrix,
const Teuchos::RCP< Matrix > &  M0inv_Matrix,
const Teuchos::RCP< Matrix > &  M1_Matrix,
const Teuchos::RCP< MultiVector > &  Nullspace,
const Teuchos::RCP< RealValuedMultiVector > &  Coords,
Teuchos::ParameterList &  List,
bool  ComputePrec = true 
)
inline

Constructor with Jacobian (with add on)

Parameters
[in]SM_MatrixJacobian
[in]D0_MatrixDiscrete Gradient
[in]Ms_MatrixEdge mass matrix for the nodal aggregates
[in]M0inv_MatrixInverse of lumped nodal mass matrix (add on only)
[in]M1_MatrixEdge mass matrix for the add on
[in]NullspaceNull space (needed for periodic)
[in]CoordsNodal coordinates
[in]ListParameter list
[in]ComputePrecIf true, compute the preconditioner immediately

Definition at line 165 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [4/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( const Teuchos::RCP< Matrix > &  SM_Matrix,
const Teuchos::RCP< Matrix > &  D0_Matrix,
const Teuchos::RCP< Matrix > &  M0inv_Matrix,
const Teuchos::RCP< Matrix > &  M1_Matrix,
const Teuchos::RCP< MultiVector > &  Nullspace,
const Teuchos::RCP< RealValuedMultiVector > &  Coords,
Teuchos::ParameterList &  List,
bool  ComputePrec = true 
)
inline

Constructor with Jacobian (with add on)

Parameters
[in]SM_MatrixJacobian
[in]D0_MatrixDiscrete Gradient
[in]M0inv_MatrixInverse of lumped nodal mass matrix (add on only)
[in]M1_MatrixEdge mass matrix for the
[in]NullspaceNull space (needed for periodic)
[in]CoordsNodal coordinates
[in]ListParameter list
[in]ComputePrecIf true, compute the preconditioner immediately

Definition at line 190 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [5/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( const Teuchos::RCP< Matrix > &  D0_Matrix,
const Teuchos::RCP< Matrix > &  M0inv_Matrix,
const Teuchos::RCP< Matrix > &  M1_Matrix,
const Teuchos::RCP< MultiVector > &  Nullspace,
const Teuchos::RCP< RealValuedMultiVector > &  Coords,
Teuchos::ParameterList &  List 
)
inline

Constructor without Jacobian (with add on)

Parameters
[in]D0_MatrixDiscrete Gradient
[in]M0inv_MatrixInverse of lumped nodal mass matrix (add on only)
[in]M1_MatrixEdge mass matrix for the
[in]NullspaceNull space (needed for periodic)
[in]CoordsNodal coordinates
[in]ListParameter list

Definition at line 212 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [6/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( const Teuchos::RCP< Matrix > &  SM_Matrix,
const Teuchos::RCP< Matrix > &  D0_Matrix,
const Teuchos::RCP< Matrix > &  M1_Matrix,
const Teuchos::RCP< MultiVector > &  Nullspace,
const Teuchos::RCP< RealValuedMultiVector > &  Coords,
Teuchos::ParameterList &  List,
bool  ComputePrec 
)
inline

Constructor with Jacobian (no add on)

Parameters
[in]SM_MatrixJacobian
[in]D0_MatrixDiscrete Gradient
[in]M1_MatrixEdge mass matrix for the
[in]NullspaceNull space (needed for periodic)
[in]CoordsNodal coordinates
[in]ListParameter list
[in]ComputePrecIf true, compute the preconditioner immediately

Definition at line 232 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [7/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( const Teuchos::RCP< Matrix > &  D0_Matrix,
const Teuchos::RCP< Matrix > &  M1_Matrix,
const Teuchos::RCP< MultiVector > &  Nullspace,
const Teuchos::RCP< RealValuedMultiVector > &  Coords,
Teuchos::ParameterList &  List 
)
inline

Constructor without Jacobian (no add on)

Parameters
[in]D0_MatrixDiscrete Gradient
[in]M1_MatrixEdge mass matrix for the
[in]NullspaceNull space (needed for periodic)
[in]CoordsNodal coordinates
[in]ListParameter list

Definition at line 252 of file MueLu_RefMaxwell_decl.hpp.

◆ RefMaxwell() [8/8]

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::RefMaxwell ( const Teuchos::RCP< Matrix > &  SM_Matrix,
Teuchos::ParameterList &  List,
bool  ComputePrec = true 
)
inline

Constructor with parameter list

Parameters
[in]SM_MatrixJacobian
[in]ListParameter list
[in]ComputePrecIf true, compute the preconditioner immediately

Definition at line 267 of file MueLu_RefMaxwell_decl.hpp.

◆ ~RefMaxwell()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
virtual MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::~RefMaxwell ( )
inlinevirtual

Destructor.

Definition at line 290 of file MueLu_RefMaxwell_decl.hpp.

Member Function Documentation

◆ getDomainMap()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getDomainMap

Returns the Xpetra::Map object associated with the domain of this operator.

Definition at line 107 of file MueLu_RefMaxwell_def.hpp.

◆ getRangeMap()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP< const Xpetra::Map< LocalOrdinal, GlobalOrdinal, Node > > MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getRangeMap

Returns the Xpetra::Map object associated with the range of this operator.

Definition at line 113 of file MueLu_RefMaxwell_def.hpp.

◆ getJacobian()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
const Teuchos::RCP<Matrix>& MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getJacobian ( ) const
inline

Returns Jacobian matrix SM.

Definition at line 299 of file MueLu_RefMaxwell_decl.hpp.

◆ setParameters()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setParameters ( Teuchos::ParameterList &  list)

Set parameters.

Definition at line 119 of file MueLu_RefMaxwell_def.hpp.

◆ compute()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::compute ( bool  reuse = false)

Setup the preconditioner.

Definition at line 172 of file MueLu_RefMaxwell_def.hpp.

◆ buildProlongator()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::buildProlongator

Setup the prolongator for the (1,1)-block.

Definition at line 1082 of file MueLu_RefMaxwell_def.hpp.

◆ formCoarseMatrix()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::formCoarseMatrix

Compute P11^{T}*A*P11 efficiently.

Definition at line 1591 of file MueLu_RefMaxwell_def.hpp.

◆ resetMatrix()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::resetMatrix ( Teuchos::RCP< Matrix >  SM_Matrix_new,
bool  ComputePrec = true 
)

Reset system matrix.

Definition at line 1728 of file MueLu_RefMaxwell_def.hpp.

◆ apply()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< 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.

Parameters
[in]X- MultiVector of dimension NumVectors to multiply with matrix.
[out]Y- MultiVector of dimension NumVectors containing result.

Definition at line 1952 of file MueLu_RefMaxwell_def.hpp.

◆ hasTransposeApply()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::hasTransposeApply

Indicates whether this operator supports applying the adjoint operator.

Definition at line 2030 of file MueLu_RefMaxwell_def.hpp.

◆ describe()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::describe ( Teuchos::FancyOStream &  out,
const Teuchos::EVerbosityLevel  verbLevel = Teuchos::VERB_HIGH 
) const

Definition at line 2069 of file MueLu_RefMaxwell_def.hpp.

◆ initialize()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::initialize ( const Teuchos::RCP< Matrix > &  D0_Matrix,
const Teuchos::RCP< Matrix > &  Ms_Matrix,
const Teuchos::RCP< Matrix > &  M0inv_Matrix,
const Teuchos::RCP< Matrix > &  M1_Matrix,
const Teuchos::RCP< MultiVector > &  Nullspace,
const Teuchos::RCP< RealValuedMultiVector > &  Coords,
Teuchos::ParameterList &  List 
)
private

Initialize with matrices except the Jacobian (don't compute the preconditioner)

Parameters
[in]D0_MatrixDiscrete Gradient
[in]Ms_MatrixEdge mass matrix for nodal aggregates
[in]M0inv_MatrixInverse of lumped nodal mass matrix (add on only)
[in]M1_MatrixEdge mass matrix for add on
[in]NullspaceNull space (needed for periodic)
[in]CoordsNodal coordinates
[in]ListParameter list

Definition at line 2036 of file MueLu_RefMaxwell_def.hpp.

◆ applyInverseAdditive()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::applyInverseAdditive ( const MultiVector &  RHS,
MultiVector &  X 
) const
private

apply additive algorithm for 2x2 solve

Definition at line 1737 of file MueLu_RefMaxwell_def.hpp.

◆ applyInverse121()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::applyInverse121 ( const MultiVector &  RHS,
MultiVector &  X 
) const
private

apply 1-2-1 algorithm for 2x2 solve

Definition at line 1829 of file MueLu_RefMaxwell_def.hpp.

◆ applyInverse212()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::applyInverse212 ( const MultiVector &  RHS,
MultiVector &  X 
) const
private

apply 2-1-2 algorithm for 2x2 solve

Definition at line 1842 of file MueLu_RefMaxwell_def.hpp.

◆ solveH()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::solveH ( const MultiVector &  RHS,
MultiVector &  X 
) const
private

apply solve to 1-1 block only

Definition at line 1854 of file MueLu_RefMaxwell_def.hpp.

◆ solve22()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::solve22 ( const MultiVector &  RHS,
MultiVector &  X 
) const
private

apply solve to 2-2 block only

Definition at line 1903 of file MueLu_RefMaxwell_def.hpp.

Member Data Documentation

◆ HierarchyH_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Hierarchy> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::HierarchyH_
private

Two hierarchies: one for the coarse (1,1)-block, another for the (2,2)-block.

Definition at line 378 of file MueLu_RefMaxwell_decl.hpp.

◆ Hierarchy22_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Hierarchy> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Hierarchy22_
private

Definition at line 378 of file MueLu_RefMaxwell_decl.hpp.

◆ PreSmoother_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<SmootherBase> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::PreSmoother_
private

Definition at line 379 of file MueLu_RefMaxwell_decl.hpp.

◆ PostSmoother_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<SmootherBase> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::PostSmoother_
private

Definition at line 379 of file MueLu_RefMaxwell_decl.hpp.

◆ useHiptmairSmoothing_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::useHiptmairSmoothing_
private

Definition at line 383 of file MueLu_RefMaxwell_decl.hpp.

◆ SM_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SM_Matrix_
private

Various matrices.

Definition at line 385 of file MueLu_RefMaxwell_decl.hpp.

◆ D0_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::D0_Matrix_
private

Definition at line 385 of file MueLu_RefMaxwell_decl.hpp.

◆ D0_T_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::D0_T_Matrix_
private

Definition at line 385 of file MueLu_RefMaxwell_decl.hpp.

◆ M0inv_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::M0inv_Matrix_
private

Definition at line 385 of file MueLu_RefMaxwell_decl.hpp.

◆ M1_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::M1_Matrix_
private

Definition at line 385 of file MueLu_RefMaxwell_decl.hpp.

◆ Ms_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Ms_Matrix_
private

Definition at line 385 of file MueLu_RefMaxwell_decl.hpp.

◆ A_nodal_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::A_nodal_Matrix_
private

Definition at line 386 of file MueLu_RefMaxwell_decl.hpp.

◆ P11_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::P11_
private

Definition at line 386 of file MueLu_RefMaxwell_decl.hpp.

◆ R11_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::R11_
private

Definition at line 386 of file MueLu_RefMaxwell_decl.hpp.

◆ AH_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::AH_
private

Definition at line 386 of file MueLu_RefMaxwell_decl.hpp.

◆ A22_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::A22_
private

Definition at line 386 of file MueLu_RefMaxwell_decl.hpp.

◆ Addon_Matrix_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Matrix> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Addon_Matrix_
private

Definition at line 386 of file MueLu_RefMaxwell_decl.hpp.

◆ BCrowcount_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BCrowcount_
private

Vectors for BCs.

Definition at line 392 of file MueLu_RefMaxwell_decl.hpp.

◆ BCcolcount_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
int MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BCcolcount_
private

Definition at line 392 of file MueLu_RefMaxwell_decl.hpp.

◆ BCrows_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ArrayRCP<const bool> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BCrows_
private

Definition at line 393 of file MueLu_RefMaxwell_decl.hpp.

◆ BCcols_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ArrayRCP<const bool> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::BCcols_
private

Definition at line 394 of file MueLu_RefMaxwell_decl.hpp.

◆ Nullspace_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Nullspace_
private

Nullspace.

Definition at line 396 of file MueLu_RefMaxwell_decl.hpp.

◆ Coords_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<RealValuedMultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Coords_
private

Coordinates.

Definition at line 398 of file MueLu_RefMaxwell_decl.hpp.

◆ CoordsH_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<RealValuedMultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::CoordsH_
private

Definition at line 398 of file MueLu_RefMaxwell_decl.hpp.

◆ ImporterH_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<const Import> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::ImporterH_
private

Importer to coarse (1,1) hierarchy.

Definition at line 400 of file MueLu_RefMaxwell_decl.hpp.

◆ Importer22_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<const Import> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Importer22_
private

Definition at line 400 of file MueLu_RefMaxwell_decl.hpp.

◆ parameterList_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ParameterList MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::parameterList_
private

Parameter lists.

Definition at line 402 of file MueLu_RefMaxwell_decl.hpp.

◆ precList11_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ParameterList MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::precList11_
private

Definition at line 402 of file MueLu_RefMaxwell_decl.hpp.

◆ precList22_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ParameterList MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::precList22_
private

Definition at line 402 of file MueLu_RefMaxwell_decl.hpp.

◆ smootherList_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::ParameterList MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::smootherList_
private

Definition at line 402 of file MueLu_RefMaxwell_decl.hpp.

◆ AH_AP_reuse_data_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Teuchos::ParameterList> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::AH_AP_reuse_data_
private

Definition at line 403 of file MueLu_RefMaxwell_decl.hpp.

◆ AH_RAP_reuse_data_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Teuchos::ParameterList> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::AH_RAP_reuse_data_
private

Definition at line 403 of file MueLu_RefMaxwell_decl.hpp.

◆ A22_AP_reuse_data_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Teuchos::ParameterList> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::A22_AP_reuse_data_
private

Definition at line 404 of file MueLu_RefMaxwell_decl.hpp.

◆ A22_RAP_reuse_data_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<Teuchos::ParameterList> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::A22_RAP_reuse_data_
private

Definition at line 404 of file MueLu_RefMaxwell_decl.hpp.

◆ disable_addon_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::disable_addon_
private

Some options.

Definition at line 406 of file MueLu_RefMaxwell_decl.hpp.

◆ dump_matrices_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::dump_matrices_
private

Definition at line 406 of file MueLu_RefMaxwell_decl.hpp.

◆ useKokkos_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::useKokkos_
private

Definition at line 406 of file MueLu_RefMaxwell_decl.hpp.

◆ use_as_preconditioner_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::use_as_preconditioner_
private

Definition at line 406 of file MueLu_RefMaxwell_decl.hpp.

◆ implicitTranspose_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
bool MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::implicitTranspose_
private

Definition at line 406 of file MueLu_RefMaxwell_decl.hpp.

◆ mode_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
std::string MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::mode_
private

Definition at line 407 of file MueLu_RefMaxwell_decl.hpp.

◆ P11res_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::P11res_
mutableprivate

Temporary memory.

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ P11x_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::P11x_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ D0res_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::D0res_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ D0x_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::D0x_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ residual_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::residual_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ P11resTmp_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::P11resTmp_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ P11xTmp_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::P11xTmp_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ D0resTmp_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::D0resTmp_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.

◆ D0xTmp_

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
Teuchos::RCP<MultiVector> MueLu::RefMaxwell< Scalar, LocalOrdinal, GlobalOrdinal, Node >::D0xTmp_
private

Definition at line 409 of file MueLu_RefMaxwell_decl.hpp.


The documentation for this class was generated from the following files: