46 #ifndef XPETRA_MAPEXTRACTOR_DECL_HPP_
47 #define XPETRA_MAPEXTRACTOR_DECL_HPP_
53 #include <Teuchos_RCP.hpp>
54 #include <Teuchos_Describable.hpp>
68 #ifndef DOXYGEN_SHOULD_SKIP_THIS
70 template <
class S,
class LO,
class GO,
class N>
71 class BlockedMultiVector;
75 template <
class LO,
class GO,
class N>
79 template <
class Scalar,
91 #undef XPETRA_MAPEXTRACTOR_SHORT
107 MapExtractor(
const RCP<const Map>& fullmap,
const std::vector<RCP<const Map>>& maps,
bool bThyraMode =
false);
110 MapExtractor(
const std::vector<RCP<const Map>>& maps,
const std::vector<RCP<const Map>>& thyramaps);
130 void ExtractVector(RCP<const Vector>& full,
size_t block, RCP<Vector>& partial)
const;
131 void ExtractVector(RCP<Vector>& full,
size_t block, RCP<Vector>& partial)
const;
132 void ExtractVector(RCP<const MultiVector>& full,
size_t block, RCP<MultiVector>& partial)
const;
133 void ExtractVector(RCP<MultiVector>& full,
size_t block, RCP<MultiVector>& partial)
const;
135 RCP<Vector>
ExtractVector(RCP<const Vector>& full,
size_t block,
bool bThyraMode =
false)
const;
136 RCP<Vector>
ExtractVector(RCP<Vector>& full,
size_t block,
bool bThyraMode =
false)
const;
137 RCP<MultiVector>
ExtractVector(RCP<const MultiVector>& full,
size_t block,
bool bThyraMode =
false)
const;
138 RCP<MultiVector>
ExtractVector(RCP<MultiVector>& full,
size_t block,
bool bThyraMode =
false)
const;
149 void InsertVector(RCP<const Vector> partial,
size_t block, RCP<Vector> full,
bool bThyraMode =
false)
const;
150 void InsertVector(RCP<Vector> partial,
size_t block, RCP<Vector> full,
bool bThyraMode =
false)
const;
151 void InsertVector(RCP<const MultiVector> partial,
size_t block, RCP<MultiVector> full,
bool bThyraMode =
false)
const;
152 void InsertVector(RCP<MultiVector> partial,
size_t block, RCP<MultiVector> full,
bool bThyraMode =
false)
const;
158 RCP<Vector>
getVector(
size_t i,
bool bThyraMode =
false,
bool bZero =
true)
const;
159 RCP<MultiVector>
getVector(
size_t i,
size_t numvec,
bool bThyraMode =
false,
bool bZero =
true)
const;
174 const RCP<const Map>
getMap(
size_t i,
bool bThyraMode =
false)
const;
177 const RCP<const Map>
getMap()
const;
180 const RCP<const Xpetra::BlockedMap<LocalOrdinal, GlobalOrdinal, Node>>
getBlockedMap()
const;
192 Teuchos::RCP<const Xpetra::BlockedMap<LocalOrdinal, GlobalOrdinal, Node>>
map_;
197 #define XPETRA_MAPEXTRACTOR_SHORT