Zoltan2
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Zoltan2_Model.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_MODEL_HPP_
15 #define _ZOLTAN2_MODEL_HPP_
16 
17 #include <Zoltan2_Standards.hpp>
18 #include <bitset>
19 
20 namespace Zoltan2 {
21 
25 {
31 };
32 
33 
34 
39  // General flags
42  // Graph model flags
55 };
56 
57 typedef std::bitset<NUM_MODEL_FLAGS> modelFlag_t;
58 
73 template <typename Adapter>
74 class Model
75 {
76 public:
77 
78 #ifndef DOXYGEN_SHOULD_SKIP_THIS
79  typedef typename Adapter::lno_t lno_t;
80  typedef typename Adapter::gno_t gno_t;
81  typedef typename Adapter::scalar_t scalar_t;
82  typedef typename Adapter::user_t user_t;
83  typedef typename Adapter::userCoord_t userCoord_t;
84 #endif
85 
88  virtual ~Model() {};
89 
92  Model() {}
93 
100  virtual size_t getLocalNumObjects() const = 0;
101 
108  virtual global_size_t getGlobalNumObjects() const = 0;
109 
110 protected:
111 
112 private:
113 
114 };
115 
116 } // namespace Zoltan2
117 
118 #endif
use columns as graph vertices
ModelFlags
Flags are set by a Problem to tell a Model what transformations it may need to do on the user&#39;s input...
ignore invalid neighbors
use mesh nodes as vertices
ModelType
An identifier for the general type of model.
virtual ~Model()
algorithm requires consecutive ids
std::bitset< NUM_MODEL_FLAGS > modelFlag_t
model must symmetrize input
map_t::global_ordinal_type gno_t
Definition: mapRemotes.cpp:27
model must symmetrize input
virtual global_size_t getGlobalNumObjects() const =0
Return the global number of objects.
use matrix rows as graph vertices
algorithm requires no self edges
use nonzeros as graph vertices
map_t::local_ordinal_type lno_t
Definition: mapRemotes.cpp:26
use mesh elements as vertices
Gathering definitions used in software development.
virtual size_t getLocalNumObjects() const =0
Return the local number of objects.
The base class for all model classes.
Tpetra::global_size_t global_size_t
model represents graph within only one rank
Zoltan2::BasicUserTypes< zscalar_t, zlno_t, zgno_t > user_t
Definition: Metric.cpp:39