Zoltan2
Loading...
Searching...
No Matches
Zoltan2_Typedefs.hpp
Go to the documentation of this file.
1// @HEADER
2// *****************************************************************************
3// Zoltan2: A package of combinatorial algorithms for scientific computing
4//
5// Copyright 2012 NTESS and the Zoltan2 contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8// @HEADER
9
13
14#ifndef ZOLTAN2_TYPEDEFS
15#define ZOLTAN2_TYPEDEFS
16
18#include <Tpetra_MultiVector.hpp>
19#include <Tpetra_Vector.hpp>
20#include <Tpetra_CrsMatrix.hpp>
22//#include <Tpetra_Map.hpp>
23//#include <Xpetra_Vector_decl.hpp>
24//#include <Xpetra_CrsMatrix_decl.hpp>
25//#include <Xpetra_CrsGraph_decl.hpp>
26//
31//
33//#include "GeometricGenerator.hpp"
34
35// Forward declaration for classes in the Tpetra namespace
36// namespace Tpetra {
37//
38// template<typename T1, typename T2, typename T3, typename T4, const bool T5>
39// class CrsMatrix;
40//
41// template<typename T1, typename T2, typename T3, const bool T4>
42// class CrsGraph;
43//
44// template<typename T1, typename T2, typename T3, typename T4, const bool T5>
45// class Vector;
46//
47// template<typename T1, typename T2, typename T3, typename T4, const bool T5>
48// class MultiVector;
49// }
50//
51// // Forward declaration for classes in the Xpetra namespace
52// namespace Xpetra {
53//
54// template<typename T1, typename T2, typename T3, typename T4>
55// class CrsMatrix;
56//
57// template<typename T1, typename T2, typename T3>
58// class CrsGraph;
59//
60// template<typename T1, typename T2, typename T3, typename T4>
61// class Vector;
62//
63// template<typename T1, typename T2, typename T3, typename T4>
64// class MultiVector;
65// }
66
67 // Forward declaration for classes in the GeometricGen namespace
68 namespace GeometricGen {
69 template<typename T1, typename T2, typename T3, typename T4>
71 }
72
73// Forward declaration of classes in the Zoltan2 namespace
74 namespace Zoltan2 {
75 template<typename T1, typename T2, typename T3, typename T4>
76 class BasicUserTypes;
77
78 template<typename T1>
79 class BaseAdapter;
80
81 template<typename T1>
83
84 template<typename T1>
86
87 template<typename T1, typename T2>
89
90 template<typename T1, typename T2>
92
93 template<typename T1>
94 class BasicVectorAdapter;
95
96 #ifdef HAVE_ZOLTAN2_PAMGEN
97 template<typename T1>
99 #endif
100
101 template<typename T1>
102 class Problem;
103
104 template<typename T1>
106
107 template<typename T1>
108 class OrderingProblem;
109
110 template<typename T1>
111 class ColoringProblem;
112 }
113
114namespace Zoltan2_TestingFramework {
115
116 // Data types
117 typedef Tpetra::CrsMatrix<zscalar_t, zlno_t, zgno_t, znode_t> tcrsMatrix_t;
118 typedef Tpetra::CrsGraph<zlno_t, zgno_t, znode_t> tcrsGraph_t;
119 typedef Tpetra::Vector<zscalar_t, zlno_t, zgno_t, znode_t> tVector_t;
120 typedef Tpetra::MultiVector<zscalar_t, zlno_t, zgno_t, znode_t> tMVector_t;
121
122 typedef Xpetra::CrsMatrix<zscalar_t, zlno_t, zgno_t, znode_t> xcrsMatrix_t;
123 typedef Xpetra::CrsGraph<zlno_t, zgno_t, znode_t> xcrsGraph_t;
124 typedef Xpetra::Vector<zscalar_t, zlno_t, zgno_t, znode_t> xVector_t;
125 typedef Xpetra::MultiVector<zscalar_t, zlno_t, zgno_t, znode_t> xMVector_t;
126
129
130 // Adapter types
134
138
142
143#ifdef HAVE_EPETRA_DATA_TYPES
147#else // temp compiler issues - dummy place holders
151#endif
152
154
155#ifdef HAVE_ZOLTAN2_PAMGEN
157#else
158 // This typedef exists only to satisfy the compiler.
159 // PamgenMeshAdapter cannot be used when Trilinos is not built with Pamgen
161#endif
162
163// when test objects are created they set an enum to define the adapter type
164// then when used they can be cast to that type safely using Z2_TEST_UPCAST
179
180#define Z2_TEST_UPCAST(adptr, TEMPLATE_ACTION) \
181switch(adptr) { \
182 case AT_basic_id_t: {TEMPLATE_ACTION(basic_id_t)} break; \
183 case AT_xMV_tMV_t: {TEMPLATE_ACTION(xMV_tMV_t)} break; \
184 case AT_xMV_xMV_t: {TEMPLATE_ACTION(xMV_xMV_t)} break; \
185 case AT_xMV_eMV_t: {TEMPLATE_ACTION(xMV_eMV_t)} break; \
186 case AT_xCG_tCG_t: {TEMPLATE_ACTION(xCG_tCG_t)} break; \
187 case AT_xCG_xCG_t: {TEMPLATE_ACTION(xCG_xCG_t)} break; \
188 case AT_xCG_eCG_t: {TEMPLATE_ACTION(xCG_eCG_t)} break; \
189 case AT_xCM_tCM_t: {TEMPLATE_ACTION(xCM_tCM_t)} break; \
190 case AT_xCM_xCM_t: {TEMPLATE_ACTION(xCM_xCM_t)} break; \
191 case AT_xCM_eCM_t: {TEMPLATE_ACTION(xCM_eCM_t)} break; \
192 case AT_basic_vector_adapter: {TEMPLATE_ACTION(basic_vector_adapter)} break; \
193 case AT_pamgen_adapter_t: {TEMPLATE_ACTION(pamgen_adapter_t)} break; \
194 default: throw std::logic_error( "Bad Z2_TEST_UPCAST" ); \
195};
196
197#define Z2_TEST_UPCAST_COORDS(adptr, TEMPLATE_ACTION) \
198switch(adptr) { \
199 case AT_xMV_tMV_t: {TEMPLATE_ACTION(xMV_tMV_t)} break; \
200 default: throw std::logic_error( "Bad Z2_TEST_UPCAST_COORDINATES" ); \
201};
202
203} // namespace Zoltan2_TestingFramework
204
205#endif // ZOLTAN2_TYPEDEFS
Base class for the EvaluatePartition and EvaluateOrdering classes.
common code used by tests
This class represents a collection of global Identifiers and their associated weights,...
A simple class that can be the User template argument for an InputAdapter.
BasicVectorAdapter represents a vector (plus optional weights) supplied by the user as pointers to st...
ColoringProblem sets up coloring problems for the user.
OrderingProblem sets up ordering problems for the user.
This class represents a mesh.
PartitioningProblem sets up partitioning problems for the user.
Problem base class from which other classes (PartitioningProblem, ColoringProblem,...
Provides access for Zoltan2 to Xpetra::CrsGraph data.
Provides access for Zoltan2 to Xpetra::CrsMatrix data.
Zoltan2::BasicVectorAdapter< tMVector_t > xCG_eCG_t
Zoltan2::XpetraCrsMatrixAdapter< tcrsMatrix_t, tMVector_t > xCM_tCM_t
Zoltan2::XpetraMultiVectorAdapter< tMVector_t > xMV_tMV_t
Zoltan2::XpetraCrsMatrixAdapter< xcrsMatrix_t, tMVector_t > xCM_xCM_t
Zoltan2::BasicVectorAdapter< userTypes_t > pamgen_adapter_t
Xpetra::CrsMatrix< zscalar_t, zlno_t, zgno_t, znode_t > xcrsMatrix_t
Zoltan2::XpetraMultiVectorAdapter< xMVector_t > xMV_xMV_t
Xpetra::CrsGraph< zlno_t, zgno_t, znode_t > xcrsGraph_t
GeometricGen::GeometricGenerator< zscalar_t, zlno_t, zgno_t, znode_t > geometricgen_t
Zoltan2::XpetraCrsGraphAdapter< tcrsGraph_t, tMVector_t > xCG_tCG_t
Tpetra::CrsMatrix< zscalar_t, zlno_t, zgno_t, znode_t > tcrsMatrix_t
Zoltan2::BasicVectorAdapter< tMVector_t > xMV_eMV_t
Zoltan2::BasicUserTypes< zscalar_t, zlno_t, zgno_t > userTypes_t
Tpetra::MultiVector< zscalar_t, zlno_t, zgno_t, znode_t > tMVector_t
Zoltan2::BaseAdapter< userTypes_t > base_adapter_t
Tpetra::CrsGraph< zlno_t, zgno_t, znode_t > tcrsGraph_t
Zoltan2::BasicVectorAdapter< tMVector_t > basic_vector_adapter
Xpetra::Vector< zscalar_t, zlno_t, zgno_t, znode_t > xVector_t
Xpetra::MultiVector< zscalar_t, zlno_t, zgno_t, znode_t > xMVector_t
Tpetra::Vector< zscalar_t, zlno_t, zgno_t, znode_t > tVector_t
Zoltan2::XpetraCrsGraphAdapter< xcrsGraph_t, tMVector_t > xCG_xCG_t
Zoltan2::BasicIdentifierAdapter< userTypes_t > basic_id_t
Zoltan2::BasicVectorAdapter< tMVector_t > xCM_eCM_t
Created by mbenlioglu on Aug 31, 2020.