MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_RegionRFactory_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#ifndef MUELU_REGIONRFACTORY_DECL_HPP
11#define MUELU_REGIONRFACTORY_DECL_HPP
12
13#include "MueLu_ConfigDefs.hpp"
14
17
18namespace MueLu {
19
25template <class Scalar = DefaultScalar,
28 class Node = DefaultNode>
30#undef MUELU_REGIONRFACTORY_SHORT
32
33 public:
34 using real_type = typename Teuchos::ScalarTraits<SC>::coordinateType;
35 using realvaluedmultivector_type = typename Xpetra::MultiVector<real_type, LO, GO, NO>;
36
38
39
41 RegionRFactory() = default;
42
44 virtual ~RegionRFactory() = default;
46
48
49 RCP<const ParameterList> GetValidParameterList() const;
50
51 void DeclareInput(Level& fineLevel, Level& coarseLevel) const;
52
54
56
57
58 void Build(Level& fineLevel, Level& coarseLevel) const;
59
60 void Build3D(const int numDimensions,
61 Array<LO>& lFineNodesPerDim,
62 const RCP<Matrix>& A,
63 const RCP<realvaluedmultivector_type>& fineCoordinates,
64 RCP<Matrix>& R,
65 RCP<realvaluedmultivector_type>& coarseCoordinates,
66 Array<LO>& lCoarseNodesPerDim) const;
67
69
70}; // class RegionRFactory
71
72} // namespace MueLu
73
74#define MUELU_REGIONRFACTORY_SHORT
75#endif // MUELU_REGIONRFACTORY_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultScalar Scalar
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
Class that holds all level-specific information.
Factory that builds a restriction operator for region multigrid.
void Build3D(const int numDimensions, Array< LO > &lFineNodesPerDim, const RCP< Matrix > &A, const RCP< realvaluedmultivector_type > &fineCoordinates, RCP< Matrix > &R, RCP< realvaluedmultivector_type > &coarseCoordinates, Array< LO > &lCoarseNodesPerDim) const
void DeclareInput(Level &fineLevel, Level &coarseLevel) const
Input.
void Build(Level &fineLevel, Level &coarseLevel) const
Build an object with this factory.
typename Teuchos::ScalarTraits< SC >::coordinateType real_type
RCP< const ParameterList > GetValidParameterList() const
Input.
virtual ~RegionRFactory()=default
Destructor.
RegionRFactory()=default
Default Constructor.
typename Xpetra::MultiVector< real_type, LO, GO, NO > realvaluedmultivector_type
Base class for factories that use two levels (fineLevel and coarseLevel).
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode
Tpetra::Details::DefaultTypes::scalar_type DefaultScalar