Xpetra Version of the Day
Loading...
Searching...
No Matches
Xpetra_StridedMapFactory_decl.hpp
Go to the documentation of this file.
1// @HEADER
2//
3// ***********************************************************************
4//
5// Xpetra: A linear algebra interface package
6// Copyright 2012 Sandia Corporation
7//
8// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
9// the U.S. Government retains certain rights in this software.
10//
11// Redistribution and use in source and binary forms, with or without
12// modification, are permitted provided that the following conditions are
13// met:
14//
15// 1. Redistributions of source code must retain the above copyright
16// notice, this list of conditions and the following disclaimer.
17//
18// 2. Redistributions in binary form must reproduce the above copyright
19// notice, this list of conditions and the following disclaimer in the
20// documentation and/or other materials provided with the distribution.
21//
22// 3. Neither the name of the Corporation nor the names of the
23// contributors may be used to endorse or promote products derived from
24// this software without specific prior written permission.
25//
26// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
27// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
28// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
29// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
30// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
31// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
32// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
33// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
34// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
35// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
36// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
37//
38// Questions? Contact
39// Jonathan Hu (jhu@sandia.gov)
40// Andrey Prokopenko (aprokop@sandia.gov)
41// Ray Tuminaro (rstumin@sandia.gov)
42//
43// ***********************************************************************
44//
45// @HEADER
46
47#ifndef XPETRA_STRIDEDMAPFACTORY_DECL_HPP
48#define XPETRA_STRIDEDMAPFACTORY_DECL_HPP
49
50#include <KokkosCompat_DefaultNode.hpp>
51
52#include "Xpetra_ConfigDefs.hpp"
53
55
56namespace Xpetra {
57
66template<class LocalOrdinal,
67 class GlobalOrdinal,
70{
71
72#undef XPETRA_STRIDEDMAPFACTORY_SHORT
74
75 private:
76
79
80 public:
81
85 global_size_t numGlobalElements,
86 GlobalOrdinal indexBase,
87 std::vector<size_t>& stridingInfo,
88 const Teuchos::RCP<const Teuchos::Comm<int>>& comm,
89 LocalOrdinal stridedBlockId = -1,
90 GlobalOrdinal offset = 0,
92
93
95 static RCP<StridedMap>
97 global_size_t numGlobalElements,
98 size_t numLocalElements,
99 GlobalOrdinal indexBase,
100 std::vector<size_t>& stridingInfo,
101 const Teuchos::RCP<const Teuchos::Comm<int>>& comm,
102 LocalOrdinal stridedBlockId = -1,
103 GlobalOrdinal offset = 0);
104
106 static RCP<StridedMap>
107 Build(const RCP<const Map>& map, std::vector<size_t>& stridingInfo, LocalOrdinal stridedBlockId = -1, GlobalOrdinal offset = 0);
108
109
111 static RCP<StridedMap>
112 Build(const RCP<const StridedMap>& map, LocalOrdinal stridedBlockId);
113
114
116 static RCP<StridedMap>
117 Build(const StridedMap& map);
118
119
125 static RCP<StridedMap>
127 global_size_t numGlobalElements,
129 GlobalOrdinal indexBase,
130 std::vector<size_t>& stridingInfo,
131 const Teuchos::RCP<const Teuchos::Comm<int>>& comm,
132 LocalOrdinal stridedBlockId = -1, // FIXME (mfh 03 Sep 2014) This breaks if LocalOrdinal is unsigned
133 GlobalOrdinal /* offset */ = 0);
134
135}; // class StridedMapFactory
136
137
138} // namespace Xpetra
139
140
141#define XPETRA_STRIDEDMAPFACTORY_SHORT
142#endif // XPETRA_STRIDEDMAPFACTORY_DECL_HPP
143
144// TODO: removed unused methods
This factory creates a Xpetra::StridedMap .
StridedMapFactory()=delete
Private constructor. This is a static class.
static RCP< Xpetra::StridedMap< LocalOrdinal, GlobalOrdinal, Node > > Build(UnderlyingLib lib, global_size_t numGlobalElements, GlobalOrdinal indexBase, std::vector< size_t > &stridingInfo, const Teuchos::RCP< const Teuchos::Comm< int > > &comm, LocalOrdinal stridedBlockId=-1, GlobalOrdinal offset=0, LocalGlobal lg=Xpetra::GloballyDistributed)
Map constructor with Xpetra-defined contiguous uniform distribution.
Class that stores a strided map.
Xpetra namespace
size_t global_size_t
Global size_t object.