Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_BasisDescriptor.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_BASIS_DESCRIPTOR_HPP
12 #define PANZER_BASIS_DESCRIPTOR_HPP
13 
14 #include <string>
15 #include <functional>
16 
18 
19 namespace panzer {
20 
22 {
23 public:
24 
29 
33  virtual ~BasisDescriptor() = default;
34 
40  BasisDescriptor(const int basis_order, const std::string & basis_type);
41 
46  const std::string & getType() const {return _basis_type;}
47 
52  int getOrder() const {return _basis_order;}
53 
59  std::size_t getKey() const {return _key;}
60 
66 
67 protected:
68 
70  std::string _basis_type;
71 
72  // Basis order (>0)
74 
75  // Unique key associated with basis.
76  std::size_t _key;
77 };
78 
79 bool operator==(const panzer::BasisDescriptor& left,
80  const panzer::BasisDescriptor& right);
81 
82 } // namespace panzer
83 
84 namespace std {
85  template <>
86  struct hash<panzer::BasisDescriptor>
87  {
88  std::size_t operator()(const panzer::BasisDescriptor& desc) const;
89  };
90 }
91 
92 
93 #endif
PointDescriptor getPointDescriptor() const
Build a point descriptor that builds reference points for the DOF locations. This method throws if no...
std::string _basis_type
Basis type (HGrad, HDiv, HCurl, HVol)
std::size_t getKey() const
Get unique key associated with basis of this order and type The key is used to sort through a map of ...
const std::string & getType() const
Get type of basis.
virtual ~BasisDescriptor()=default
Destructor.
int getOrder() const
Get order of basis.
bool operator==(const panzer::BasisDescriptor &left, const panzer::BasisDescriptor &right)
BasisDescriptor()
Constructor for empty basis.