Panzer Version of the Day
Loading...
Searching...
No Matches
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
21namespace panzer {
22
23class FieldPattern; // from DOFManager
24
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
45 virtual Teuchos::RCP<ConnManager> noConnectivityClone() const = 0;
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
Pure virtual base class for supplying mesh connectivity information to the DOF Manager.
virtual const std::vector< LocalOrdinal > & getAssociatedNeighbors(const LocalOrdinal &el) const =0
virtual std::size_t numElementBlocks() const =0
virtual std::string getBlockId(LocalOrdinal localElmtId) const =0
virtual bool hasAssociatedNeighbors() const =0
virtual Teuchos::RCP< ConnManager > noConnectivityClone() const =0
panzer::GlobalOrdinal GlobalOrdinal
virtual const std::vector< LocalOrdinal > & getElementBlock(const std::string &blockID) const =0
virtual void buildConnectivity(const FieldPattern &fp)=0
virtual const GlobalOrdinal * getConnectivity(LocalOrdinal localElmtId) const =0
virtual void getElementBlockIds(std::vector< std::string > &elementBlockIds) const =0
virtual const std::vector< LocalOrdinal > & getNeighborElementBlock(const std::string &blockID) const =0
virtual void getElementBlockTopologies(std::vector< shards::CellTopology > &elementBlockTopologies) const =0
virtual LocalOrdinal getConnectivitySize(LocalOrdinal localElmtId) const =0