53 #ifndef MUELU_SIMPLESMOOTHER_DECL_HPP_ 
   54 #define MUELU_SIMPLESMOOTHER_DECL_HPP_ 
   62 #include <Xpetra_MapExtractor_fwd.hpp> 
   63 #include <Xpetra_MultiVectorFactory_fwd.hpp> 
   64 #include <Xpetra_CrsMatrixWrap_fwd.hpp> 
   65 #include <Xpetra_Matrix_fwd.hpp> 
   69 #include "MueLu_SmootherPrototype.hpp" 
   89   template <class Scalar = SmootherPrototype<>::scalar_type,
 
   90             class LocalOrdinal = 
typename SmootherPrototype<Scalar>::local_ordinal_type,
 
   91             class GlobalOrdinal = 
typename SmootherPrototype<Scalar, LocalOrdinal>::global_ordinal_type,
 
   92             class Node = 
typename SmootherPrototype<Scalar, LocalOrdinal, GlobalOrdinal>::node_type>
 
   97 #undef MUELU_SIMPLESMOOTHER_SHORT 
  145     void Apply(MultiVector &X, MultiVector 
const &B, 
bool InitialGuessIsZero = 
false) 
const;
 
  200 #define MUELU_SIMPLESMOOTHER_SHORT 
Teuchos::RCP< SmootherBase > velPredictSmoo_
smoother for velocity prediction 
 
void SetSchurCompFactoryManager(RCP< FactoryManager > FactManager)
 
void AddFactoryManager(RCP< const FactoryManagerBase > FactManager, int pos)
Add a factory manager at a specific position. 
 
MueLu::DefaultLocalOrdinal LocalOrdinal
 
SimpleSmoother()
Constructor. 
 
std::string type_
smoother type 
 
Teuchos::RCP< SmootherBase > schurCompSmoo_
smoother for SchurComplement equation 
 
void print(Teuchos::FancyOStream &out, const VerbLevel verbLevel=Default) const 
Print the object with some verbosity level to an FancyOStream object. 
 
std::vector< Teuchos::RCP< const FactoryManagerBase > > FactManager_
vector of factory managers 
 
void Setup(Level ¤tLevel)
Setup routine. 
 
Teuchos::RCP< Matrix > G_
pressure gradient operator 
 
Base class for smoother prototypes. 
 
void DeclareInput(Level ¤tLevel) const 
Input. 
 
void SetVelocityPredictionFactoryManager(RCP< FactoryManager > FactManager)
 
virtual ~SimpleSmoother()
Destructor. 
 
RCP< SmootherPrototype > Copy() const 
 
RCP< Matrix > A_
block operator 
 
Teuchos::RCP< Matrix > F_
fluid operator 
 
RCP< const ParameterList > GetValidParameterList() const 
Input. 
 
std::string description() const 
Return a simple one-line description of this object. 
 
MueLu::DefaultGlobalOrdinal GlobalOrdinal
 
Class that holds all level-specific information. 
 
Teuchos::RCP< Vector > diagFinv_
matrices 
 
Teuchos::RCP< Matrix > Z_
pressure stabilization term or null block 
 
Teuchos::RCP< Matrix > D_
divergence operator 
 
void Apply(MultiVector &X, MultiVector const &B, bool InitialGuessIsZero=false) const 
Apply the Braess Sarazin smoother. 
 
RCP< const MapExtractorClass > domainMapExtractor_
domain map extractor (from A_ generated by AFact) 
 
Xpetra::MapExtractor< Scalar, LocalOrdinal, GlobalOrdinal, Node > MapExtractorClass
 
RCP< const FactoryBase > AFact_
A Factory. 
 
RCP< const MapExtractorClass > rangeMapExtractor_
range map extractor (from A_ generated by AFact) 
 
size_t getNodeSmootherComplexity() const 
Get a rough estimate of cost per iteration. 
 
SIMPLE smoother for 2x2 block matrices.