MueLu Version of the Day
Loading...
Searching...
No Matches
MueLu_GlobalLexicographicIndexManager_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_GLOBALLEXICOGRPHICINDEXMANAGER_DECL_HPP
11#define MUELU_GLOBALLEXICOGRPHICINDEXMANAGER_DECL_HPP
12
13// use for Teuchos:Comm<T>
14#include "Teuchos_CommHelpers.hpp"
15
16#include <Xpetra_Map_fwd.hpp>
17
18#include <MueLu_ConfigDefs.hpp>
19#include <MueLu_IndexManager.hpp>
21
22/*****************************************************************************
23
24****************************************************************************/
25
26namespace MueLu {
27
44template <class LocalOrdinal = DefaultLocalOrdinal,
46 class Node = DefaultNode>
47class GlobalLexicographicIndexManager : public IndexManager<LocalOrdinal, GlobalOrdinal, Node> {
48#undef MUELU_GLOBALLEXICOGRAPHICINDEXMANAGER_SHORT
50
51 public:
53
54 GlobalLexicographicIndexManager(const RCP<const Teuchos::Comm<int> > comm, const bool coupled,
55 const int NumDimensions, const int interpolationOrder,
56 const Array<GO> GFineNodesPerDir,
57 const Array<LO> LFineNodesPerDir, const Array<LO> CoarseRate,
58 const GO MinGlobalIndex);
59
61
63
64 void getGhostedNodesData(const RCP<const Map> fineMap,
65 Array<LO>& ghostedNodeCoarseLIDs,
66 Array<int>& ghostedNodeCoarsePIDs,
67 Array<GO>& ghostedNodeCoarseGIDs) const;
68
69 void getCoarseNodesData(const RCP<const Map> fineCoordinatesMap,
70 Array<GO>& coarseNodeCoarseGIDs,
71 Array<GO>& coarseNodeFineGIDs) const;
72
73 std::vector<std::vector<GO> > getCoarseMeshData() const;
74
75 void getFineNodeGlobalTuple(const GO myGID, GO& i, GO& j, GO& k) const;
76
77 void getFineNodeLocalTuple(const LO myLID, LO& i, LO& j, LO& k) const;
78
79 void getFineNodeGhostedTuple(const LO myLID, LO& i, LO& j, LO& k) const;
80
81 void getFineNodeGID(const GO i, const GO j, const GO k, GO& myGID) const;
82
83 void getFineNodeLID(const LO i, const LO j, const LO k, LO& myLID) const;
84
85 void getCoarseNodeGlobalTuple(const GO myGID, GO& i, GO& j, GO& k) const;
86
87 void getCoarseNodeLocalTuple(const LO myLID, LO& i, LO& j, LO& k) const;
88
89 void getCoarseNodeGID(const GO i, const GO j, const GO k, GO& myGID) const;
90
91 void getCoarseNodeLID(const LO i, const LO j, const LO k, LO& myLID) const;
92
93 void getCoarseNodeGhostedLID(const LO i, const LO j, const LO k, LO& myLID) const;
94
95 void getCoarseNodeFineLID(const LO i, const LO j, const LO k, LO& myLID) const;
96
97 void getGhostedNodeFineLID(const LO i, const LO j, const LO k, LO& myLID) const;
98
99 void getGhostedNodeCoarseLID(const LO i, const LO j, const LO k, LO& myLID) const;
100
101 private:
102};
103
104} // namespace MueLu
105
106#define MUELU_GLOBALLEXICOGRPHICINDEXMANAGER_SHORT
107#endif // MUELU_GLOBALLEXICOGRPHICINDEXMANAGER_DECL_HPP
MueLu::DefaultLocalOrdinal LocalOrdinal
MueLu::DefaultGlobalOrdinal GlobalOrdinal
MueLu::DefaultNode Node
void getFineNodeGlobalTuple(const GO myGID, GO &i, GO &j, GO &k) const
void getCoarseNodeLocalTuple(const LO myLID, LO &i, LO &j, LO &k) const
void getGhostedNodeFineLID(const LO i, const LO j, const LO k, LO &myLID) const
void getFineNodeLocalTuple(const LO myLID, LO &i, LO &j, LO &k) const
void getCoarseNodesData(const RCP< const Map > fineCoordinatesMap, Array< GO > &coarseNodeCoarseGIDs, Array< GO > &coarseNodeFineGIDs) const
void getCoarseNodeGhostedLID(const LO i, const LO j, const LO k, LO &myLID) const
void getFineNodeGhostedTuple(const LO myLID, LO &i, LO &j, LO &k) const
void getGhostedNodeCoarseLID(const LO i, const LO j, const LO k, LO &myLID) const
void getCoarseNodeGID(const GO i, const GO j, const GO k, GO &myGID) const
void getCoarseNodeGlobalTuple(const GO myGID, GO &i, GO &j, GO &k) const
void getCoarseNodeFineLID(const LO i, const LO j, const LO k, LO &myLID) const
void getFineNodeGID(const GO i, const GO j, const GO k, GO &myGID) const
void getFineNodeLID(const LO i, const LO j, const LO k, LO &myLID) const
void getGhostedNodesData(const RCP< const Map > fineMap, Array< LO > &ghostedNodeCoarseLIDs, Array< int > &ghostedNodeCoarsePIDs, Array< GO > &ghostedNodeCoarseGIDs) const
void getCoarseNodeLID(const LO i, const LO j, const LO k, LO &myLID) const
Container class for mesh layout and indices calculation.
Namespace for MueLu classes and methods.
Tpetra::KokkosClassic::DefaultNode::DefaultNodeType DefaultNode