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

#include <MueLu_MatlabSmoother_decl.hpp>

Public Member Functions

template<typename Node2 >
RCP< MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone (const RCP< Node2 > &node2, const RCP< const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > &A_newnode) const
 

Constructors / destructors

template<class Scalar2 , class LocalOrdinal2 , class GlobalOrdinal2 , class Node2 >
class MatlabSmoother
 Constructor. More...
 
 MatlabSmoother (const Teuchos::ParameterList &paramList=Teuchos::ParameterList())
 
virtual ~MatlabSmoother ()
 Destructor. More...
 
void SetParameterList (const Teuchos::ParameterList &paramList)
 
void DeclareInput (Level &currentLevel) const
 Input. More...
 

Computational methods.

void Setup (Level &currentLevel)
 Set up the smoother. More...
 
void Apply (MultiVector &X, const MultiVector &B, bool InitialGuessIsZero=false) const
 Apply the preconditioner. More...
 

Utilities

RCP< SmootherPrototypeCopy () const
 
template<typename Node2 >
RCP< MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > clone (const RCP< Node2 > &node2, const Teuchos::RCP< const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > &A_newnode) const
 Clone the smoother to a different node type. More...
 

Overridden from Teuchos::Describable

std::string needsSetup_
 List of arguments to the MATLAB setup function besides "A", in order. More...
 
size_t solveDataSize_
 Amount of solve data (besides A, LHS & RHS) More...
 
std::vector< Teuchos::RCP< MuemexArg > > solveData_
 List of data generated by setup which will be sent to solve after "A", "LHS" and "RHS". More...
 
std::string setupFunction_
 Matlab setup function. More...
 
std::string solveFunction_
 Matlab solve function. More...
 
RCP< Matrix > A_
 Matrix, (maybe) used in apply. 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 to an FancyOStream object. More...
 
size_t getNodeSmootherComplexity () const
 

Detailed Description

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
class MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >

@class MatlabSmoother
@ingroup MueMexClasses 
@brief Class that encapsulates Matlab smoothers.

This class creates an Matlab preconditioner factory. The factory creates a smoother based on the type and ParameterList passed into the constructor. See the constructor for more information.

Definition at line 74 of file MueLu_MatlabSmoother_decl.hpp.

Constructor & Destructor Documentation

◆ MatlabSmoother()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::MatlabSmoother ( const Teuchos::ParameterList &  paramList = Teuchos::ParameterList())

Definition at line 58 of file MueLu_MatlabSmoother_def.hpp.

◆ ~MatlabSmoother()

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
virtual MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::~MatlabSmoother ( )
inlinevirtual

Destructor.

Definition at line 99 of file MueLu_MatlabSmoother_decl.hpp.

Member Function Documentation

◆ SetParameterList()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::SetParameterList ( const Teuchos::ParameterList &  paramList)

Definition at line 64 of file MueLu_MatlabSmoother_def.hpp.

◆ DeclareInput()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::DeclareInput ( Level currentLevel) const

Input.

Definition at line 74 of file MueLu_MatlabSmoother_def.hpp.

◆ Setup()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Setup ( Level currentLevel)

Set up the smoother.

This creates the underlying Matlab smoother object, copies any parameter list options supplied to the constructor to the Matlab object, and computes the preconditioner.

TODO The eigenvalue estimate should come from A_, not the Matlab parameter list.

Definition at line 89 of file MueLu_MatlabSmoother_def.hpp.

◆ Apply()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Apply ( MultiVector &  X,
const MultiVector &  B,
bool  InitialGuessIsZero = false 
) const

Apply the preconditioner.

Solves the linear system AX=B using the constructed smoother.

Parameters
Xinitial guess
Bright-hand side
InitialGuessIsZero(optional) If false, some work can be avoided. Whether this actually saves any work depends on the underlying Matlab implementation.

Definition at line 109 of file MueLu_MatlabSmoother_def.hpp.

◆ Copy()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
RCP< MueLu::SmootherPrototype< Scalar, LocalOrdinal, GlobalOrdinal, Node > > MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::Copy

Definition at line 134 of file MueLu_MatlabSmoother_def.hpp.

◆ clone() [1/2]

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<typename Node2 >
RCP<MueLu::MatlabSmoother<Scalar,LocalOrdinal,GlobalOrdinal,Node2> > MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::clone ( const RCP< Node2 > &  node2,
const Teuchos::RCP< const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > &  A_newnode 
) const

Clone the smoother to a different node type.

◆ description()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
std::string MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::description

Return a simple one-line description of this object.

Definition at line 142 of file MueLu_MatlabSmoother_def.hpp.

◆ print()

template<class Scalar , class LocalOrdinal , class GlobalOrdinal , class Node >
void MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::print ( Teuchos::FancyOStream &  out,
const VerbLevel  verbLevel = Default 
) const

Print the object with some verbosity level to an FancyOStream object.

Definition at line 153 of file MueLu_MatlabSmoother_def.hpp.

◆ getNodeSmootherComplexity()

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
size_t MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::getNodeSmootherComplexity ( ) const
inline

Definition at line 159 of file MueLu_MatlabSmoother_decl.hpp.

◆ clone() [2/2]

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<typename Node2 >
RCP<MueLu::MatlabSmoother<Scalar,LocalOrdinal,GlobalOrdinal,Node2> > MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::clone ( const RCP< Node2 > &  node2,
const RCP< const Xpetra::Matrix< Scalar, LocalOrdinal, GlobalOrdinal, Node2 > > &  A_newnode 
) const

Definition at line 189 of file MueLu_MatlabSmoother_decl.hpp.

Friends And Related Function Documentation

◆ MatlabSmoother

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
template<class Scalar2 , class LocalOrdinal2 , class GlobalOrdinal2 , class Node2 >
friend class MatlabSmoother
friend

Constructor.

ADD DOCUMENTATION HERE

Definition at line 93 of file MueLu_MatlabSmoother_decl.hpp.

Member Data Documentation

◆ needsSetup_

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::string MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::needsSetup_
mutableprivate

List of arguments to the MATLAB setup function besides "A", in order.

Definition at line 167 of file MueLu_MatlabSmoother_decl.hpp.

◆ solveDataSize_

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
size_t MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::solveDataSize_
private

Amount of solve data (besides A, LHS & RHS)

Definition at line 170 of file MueLu_MatlabSmoother_decl.hpp.

◆ solveData_

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::vector<Teuchos::RCP<MuemexArg> > MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::solveData_
private

List of data generated by setup which will be sent to solve after "A", "LHS" and "RHS".

Definition at line 173 of file MueLu_MatlabSmoother_decl.hpp.

◆ setupFunction_

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::string MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::setupFunction_
private

Matlab setup function.

Definition at line 176 of file MueLu_MatlabSmoother_decl.hpp.

◆ solveFunction_

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
std::string MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::solveFunction_
private

Matlab solve function.

Definition at line 179 of file MueLu_MatlabSmoother_decl.hpp.

◆ A_

template<class Scalar = SmootherPrototype<>::scalar_type, class LocalOrdinal = typename SmootherPrototype<Scalar>::local_ordinal_type, class GlobalOrdinal = typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type, class Node = typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
RCP<Matrix> MueLu::MatlabSmoother< Scalar, LocalOrdinal, GlobalOrdinal, Node >::A_
mutableprivate

Matrix, (maybe) used in apply.

Definition at line 182 of file MueLu_MatlabSmoother_decl.hpp.


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