Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_ConnManager.hpp
Go to the documentation of this file.
1 // @HEADER
2 // *****************************************************************************
3 // Panzer: A partial differential equation assembly
4 // engine for strongly coupled complex multiphysics systems
5 //
6 // Copyright 2011 NTESS and the Panzer contributors.
7 // SPDX-License-Identifier: BSD-3-Clause
8 // *****************************************************************************
9 // @HEADER
10 
11 #ifndef __Panzer_ConnManager_hpp__
12 #define __Panzer_ConnManager_hpp__
13 
14 #include <vector>
15 
16 // Teuchos includes
17 #include "Teuchos_RCP.hpp"
18 #include "Shards_CellTopology.hpp"
19 #include "PanzerDofMgr_config.hpp"
20 
21 namespace panzer {
22 
23 class FieldPattern; // from DOFManager
24 
26  class ConnManager {
27  public:
28 
29  using GlobalOrdinal = panzer::GlobalOrdinal;
30  using LocalOrdinal = int;
31 
32  virtual ~ConnManager() {}
33 
39  virtual void buildConnectivity(const FieldPattern & fp) = 0;
40 
46 
53  virtual LocalOrdinal getConnectivitySize(LocalOrdinal localElmtId) const = 0;
54 
62  virtual const GlobalOrdinal * getConnectivity(LocalOrdinal localElmtId) const = 0;
63 
68  virtual std::string getBlockId(LocalOrdinal localElmtId) const = 0;
69 
71  virtual std::size_t numElementBlocks() const = 0;
72 
74  virtual void getElementBlockIds(std::vector<std::string> & elementBlockIds) const = 0;
75 
77  virtual void getElementBlockTopologies(std::vector<shards::CellTopology> & elementBlockTopologies) const = 0;
78 
86  virtual const std::vector<LocalOrdinal> & getElementBlock(const std::string & blockID) const = 0;
87 
95  virtual const std::vector<LocalOrdinal> & getNeighborElementBlock(const std::string & blockID) const = 0;
96 
100  virtual const std::vector<LocalOrdinal>& getAssociatedNeighbors(const LocalOrdinal& el) const = 0;
101 
105  virtual bool hasAssociatedNeighbors() const = 0;
106  };
107 
108 }
109 
110 #endif
virtual const std::vector< LocalOrdinal > & getNeighborElementBlock(const std::string &blockID) const =0
virtual LocalOrdinal getConnectivitySize(LocalOrdinal localElmtId) const =0
virtual const std::vector< LocalOrdinal > & getAssociatedNeighbors(const LocalOrdinal &el) const =0
virtual const std::vector< LocalOrdinal > & getElementBlock(const std::string &blockID) const =0
virtual void getElementBlockIds(std::vector< std::string > &elementBlockIds) const =0
virtual Teuchos::RCP< ConnManager > noConnectivityClone() const =0
panzer::GlobalOrdinal GlobalOrdinal
Pure virtual base class for supplying mesh connectivity information to the DOF Manager.
virtual void getElementBlockTopologies(std::vector< shards::CellTopology > &elementBlockTopologies) const =0
virtual std::size_t numElementBlocks() const =0
virtual bool hasAssociatedNeighbors() const =0
virtual void buildConnectivity(const FieldPattern &fp)=0
virtual std::string getBlockId(LocalOrdinal localElmtId) const =0
virtual const GlobalOrdinal * getConnectivity(LocalOrdinal localElmtId) const =0