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
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>
70 class GeometricGenerator;
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>
82 class BasicIdentifierAdapter;
83
84 template<typename T1>
85 class XpetraMultiVectorAdapter;
86
87 template<typename T1, typename T2>
88 class XpetraCrsGraphAdapter;
89
90 template<typename T1, typename T2>
91 class XpetraCrsMatrixAdapter;
92
93 template<typename T1>
94 class BasicVectorAdapter;
95
96 #ifdef HAVE_ZOLTAN2_PAMGEN
97 template<typename T1>
98 class PamgenMeshAdapter;
99 #endif
100
101 template<typename T1>
102 class Problem;
103
104 template<typename T1>
105 class PartitioningProblem;
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...
This class represents a mesh.
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.