MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_SchurComplementFactory_decl.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// MueLu: A package for multigrid based preconditioning
4//
5// Copyright 2012 NTESS and the MueLu contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
10/*
11 * MueLu_SchurComplementFactory_decl.hpp
12 *
13 * Created on: Jun 18, 2012
14 * Author: wiesner
15 */
16
17#ifndef MUELU_SCHURCOMPLEMENTFACTORY_DECL_HPP_
18#define MUELU_SCHURCOMPLEMENTFACTORY_DECL_HPP_
19
20#include "MueLu_ConfigDefs.hpp"
21
22#include <Teuchos_ParameterList.hpp>
23
24#include <Xpetra_CrsMatrix_fwd.hpp>
25#include <Xpetra_Map_fwd.hpp>
26
29
30namespace MueLu {
31
66template <class Scalar = DefaultScalar,
69 class Node = DefaultNode>
71#undef MUELU_SCHURCOMPLEMENTFACTORY_SHORT
73
74 public:
76
77
80
82
83
84 void DeclareInput(Level& currentLevel) const;
85
86 RCP<const ParameterList> GetValidParameterList() const;
87
89
91
92
94 void Build(Level& currentLevel) const;
95
97
98 private:
100 RCP<Matrix> ComputeSchurComplement(RCP<BlockedCrsMatrix>& bA, RCP<Matrix>& Ainv) const;
101
102}; // class SchurComplementFactory
103
104} // namespace MueLu
105
106#define MUELU_SCHURCOMPLEMENTFACTORY_SHORT
107#endif /* MUELU_SCHURCOMPLEMENTFACTORY_DECL_HPP_ */
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
Class that holds all level-specific information.
Factory for building the Schur Complement for a 2x2 block matrix.
SchurComplementFactory()=default
Constructor.
RCP< const ParameterList > GetValidParameterList() const
Return a const parameter list of valid parameters that setParameterList() will accept.
void DeclareInput(Level &currentLevel) const
Input.
void Build(Level &currentLevel) const
Build an object with this factory.
RCP< Matrix > ComputeSchurComplement(RCP< BlockedCrsMatrix > &bA, RCP< Matrix > &Ainv) const
Schur complement calculation method.
Base class for factories that use one level (currentLevel).
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar