Tpetra parallel linear algebra
Version of the Day
Toggle main menu visibility
Loading...
Searching...
No Matches
core
src
Tpetra_ConfigDefs.hpp
1
// @HEADER
2
// ***********************************************************************
3
//
4
// Tpetra: Templated Linear Algebra Services Package
5
// Copyright (2008) Sandia Corporation
6
//
7
// Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation,
8
// the U.S. Government retains certain rights in this software.
9
//
10
// Redistribution and use in source and binary forms, with or without
11
// modification, are permitted provided that the following conditions are
12
// met:
13
//
14
// 1. Redistributions of source code must retain the above copyright
15
// notice, this list of conditions and the following disclaimer.
16
//
17
// 2. Redistributions in binary form must reproduce the above copyright
18
// notice, this list of conditions and the following disclaimer in the
19
// documentation and/or other materials provided with the distribution.
20
//
21
// 3. Neither the name of the Corporation nor the names of the
22
// contributors may be used to endorse or promote products derived from
23
// this software without specific prior written permission.
24
//
25
// THIS SOFTWARE IS PROVIDED BY SANDIA CORPORATION "AS IS" AND ANY
26
// EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
27
// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
28
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL SANDIA CORPORATION OR THE
29
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
30
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
31
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
32
// PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
33
// LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
34
// NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
35
// SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
36
//
37
// ************************************************************************
38
// @HEADER
39
40
#ifndef TPETRA_CONFIGDEFS_HPP
41
#define TPETRA_CONFIGDEFS_HPP
42
43
#include "Tpetra_Details_DefaultTypes.hpp"
44
#include "Teuchos_ConfigDefs.hpp"
45
46
namespace
Tpetra
{
47
// Used in all Tpetra code that explicitly must a type (like a loop index)
48
// that is used with the Teuchos::Array[View,RCP] classes.
49
51
typedef
Teuchos_Ordinal
Array_size_type
;
52
}
53
54
// these make some of the macros in Tpetra_Util.hpp much easier to describe
55
#ifdef HAVE_TPETRA_PRINT_EFFICIENCY_WARNINGS
56
#define TPETRA_PRINTS_EFFICIENCY_WARNINGS 1
57
#else
58
#define TPETRA_PRINTS_EFFICIENCY_WARNINGS 0
59
#endif
60
61
#ifdef HAVE_TPETRA_THROW_ABUSE_WARNINGS
62
#define TPETRA_THROWS_ABUSE_WARNINGS 1
63
#else
64
#define TPETRA_THROWS_ABUSE_WARNINGS 0
65
#endif
66
67
#ifdef HAVE_TPETRA_PRINT_ABUSE_WARNINGS
68
#define TPETRA_PRINTS_ABUSE_WARNINGS 1
69
#else
70
#define TPETRA_PRINTS_ABUSE_WARNINGS 0
71
#endif
72
73
74
#include <functional>
75
76
//#ifndef __CUDACC__
77
// mem management
78
#include "Teuchos_Array.hpp"
// includes ArrayRCP
79
#include "Teuchos_RCP.hpp"
80
#include "Teuchos_Tuple.hpp"
// includes ArrayView
81
// traits classes
82
#include "Teuchos_OrdinalTraits.hpp"
83
#include "Teuchos_ScalarTraits.hpp"
84
#include "Teuchos_TypeNameTraits.hpp"
85
#include "Teuchos_NullIteratorTraits.hpp"
86
#include "Teuchos_SerializationTraits.hpp"
87
// comm
88
#include "Teuchos_CommHelpers.hpp"
89
// misc
90
#include "Teuchos_ParameterList.hpp"
91
//#endif
92
93
namespace
Tpetra
{
94
101
typedef
size_t
global_size_t
;
102
110
enum
LocalGlobal
{
111
LocallyReplicated,
112
GloballyDistributed
113
};
114
116
enum
LookupStatus
{
117
AllIDsPresent
,
118
IDNotPresent
119
};
120
121
123
enum
OptimizeOption
{
124
DoOptimizeStorage
,
125
DoNotOptimizeStorage
126
};
127
128
enum
EPrivateComputeViewConstructor {
129
COMPUTE_VIEW_CONSTRUCTOR
130
};
131
132
enum
EPrivateHostViewConstructor {
133
HOST_VIEW_CONSTRUCTOR
134
};
135
152
template
<
class
Arg1,
class
Arg2>
153
class
project1st
{
154
public
:
155
typedef
Arg1 first_argument_type;
156
typedef
Arg2 second_argument_type;
157
typedef
Arg1 result_type;
158
Arg1 operator () (
const
Arg1& x,
const
Arg2& )
const
{
159
return
x;
160
}
161
};
162
178
template
<
class
Arg1,
class
Arg2>
179
class
project2nd
{
180
public
:
181
typedef
Arg1 first_argument_type;
182
typedef
Arg2 second_argument_type;
183
typedef
Arg2 result_type;
184
Arg2 operator () (
const
Arg1& ,
const
Arg2& y)
const
{
185
return
y;
186
}
187
};
188
189
}
// end of Tpetra namespace
190
191
192
// We include this after the above Tpetra namespace declaration,
193
// so that we don't interfere with Doxygen's ability to find the
194
// Tpetra namespace declaration.
195
#include "
Tpetra_CombineMode.hpp
"
196
197
199
namespace
TpetraExamples
{
200
}
201
202
namespace
Tpetra
{
204
namespace
Ext
{
205
}
206
212
namespace
MatrixMatrix
{
213
}
214
220
namespace
TripleMatrixMultiply
{
221
}
222
}
223
224
namespace
Tpetra
{
226
enum
ESweepDirection
{
227
Forward = 0,
228
Backward,
229
Symmetric
230
};
231
}
232
233
// For backwards compatibility
234
namespace
KokkosClassic {
235
using
::
Tpetra::ESweepDirection
;
236
}
237
238
239
#include <Kokkos_Complex.hpp>
240
241
// Specializations of Teuchos::SerializationTraits for
242
// Kokkos::complex<{float,double}>.
243
244
namespace
Teuchos {
245
template
<
typename
Ordinal>
246
class
SerializationTraits<Ordinal, ::Kokkos::complex<float> >
247
:
public
DirectSerializationTraits<Ordinal, ::Kokkos::complex<float> >
248
{};
249
250
template
<
typename
Ordinal>
251
class
SerializationTraits<Ordinal, ::Kokkos::complex<double> >
252
:
public
DirectSerializationTraits<Ordinal, ::Kokkos::complex<double> >
253
{};
254
}
// namespace Teuchos
255
256
#endif
// TPETRA_CONFIGDEFS_HPP
Tpetra_CombineMode.hpp
Declaration of Tpetra::CombineMode enum, and a function for setting a Tpetra::CombineMode parameter i...
Tpetra::project1st
Binary function that returns its first argument.
Definition
Tpetra_ConfigDefs.hpp:153
Tpetra::project2nd
Binary function that returns its second argument.
Definition
Tpetra_ConfigDefs.hpp:179
TpetraExamples
Namespace for Tpetra example classes and methods.
Definition
Tpetra_ConfigDefs.hpp:199
Tpetra::Ext
Namespace for external Tpetra functionality.
Definition
Tpetra_ConfigDefs.hpp:204
Tpetra::MatrixMatrix
Distributed sparse matrix-matrix multiply and add.
Definition
Tpetra_ConfigDefs.hpp:212
Tpetra::TripleMatrixMultiply
Distributed sparse triple matrix product.
Definition
Tpetra_ConfigDefs.hpp:220
Tpetra
Namespace Tpetra contains the class and methods constituting the Tpetra library.
Tpetra::ESweepDirection
ESweepDirection
Sweep direction for Gauss-Seidel or Successive Over-Relaxation (SOR).
Definition
Tpetra_ConfigDefs.hpp:226
Tpetra::LookupStatus
LookupStatus
Return status of Map remote index lookup (getRemoteIndexList()).
Definition
Tpetra_ConfigDefs.hpp:116
Tpetra::IDNotPresent
@ IDNotPresent
Definition
Tpetra_ConfigDefs.hpp:118
Tpetra::AllIDsPresent
@ AllIDsPresent
Definition
Tpetra_ConfigDefs.hpp:117
Tpetra::Array_size_type
Teuchos_Ordinal Array_size_type
Size type for Teuchos Array objects.
Definition
Tpetra_ConfigDefs.hpp:51
Tpetra::global_size_t
size_t global_size_t
Global size_t object.
Definition
Tpetra_ConfigDefs.hpp:101
Tpetra::LocalGlobal
LocalGlobal
Enum for local versus global allocation of Map entries.
Definition
Tpetra_ConfigDefs.hpp:110
Tpetra::OptimizeOption
OptimizeOption
Definition
Tpetra_ConfigDefs.hpp:123
Tpetra::DoNotOptimizeStorage
@ DoNotOptimizeStorage
Definition
Tpetra_ConfigDefs.hpp:125
Tpetra::DoOptimizeStorage
@ DoOptimizeStorage
Definition
Tpetra_ConfigDefs.hpp:124
Generated by
1.17.0