Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Panzer_GeometricAggFieldPattern.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_GeometricAggFieldPattern_hpp__
12 #define __Panzer_GeometricAggFieldPattern_hpp__
13 
14 #include "Panzer_FieldPattern.hpp"
15 #include "Panzer_FieldType.hpp"
16 #include "Teuchos_RCP.hpp"
17 
18 namespace panzer {
19 
40 public:
42 
47  GeometricAggFieldPattern(std::vector<std::pair<FieldType,Teuchos::RCP<const FieldPattern>>> & patterns);
48 
53  GeometricAggFieldPattern(const FieldType& fieldType,
54  const Teuchos::RCP<const FieldPattern> & pattern);
55 
57 
67  virtual void buildPattern(const std::vector<std::pair<FieldType,Teuchos::RCP<const FieldPattern>>> & patterns);
68 
72  virtual void buildPattern(const FieldType& fieldType,
73  const Teuchos::RCP<const FieldPattern> & pattern);
74 
78  virtual int getSubcellCount(int dim) const;
79 
83  virtual const std::vector<int> & getSubcellIndices(int dim,int cellIndex) const;
84 
85  /* This function has no functionality in this case.
86  * If called it will throw an assertion failure
87  */
88  virtual void getSubcellClosureIndices(int /* dim */, int /* cellIndex */, std::vector<int>& /* indices */) const
89  { TEUCHOS_ASSERT(false); }
90 
94  virtual int getDimension() const;
95 
98  virtual shards::CellTopology getCellTopology() const;
99 
100 protected:
102  std::size_t dimension_;
103  std::vector<std::vector<std::vector<int> > > patternData_;
104  shards::CellTopology cellTopo_;
105 };
106 
107 }
108 
109 #endif
std::vector< std::vector< std::vector< int > > > patternData_
virtual const std::vector< int > & getSubcellIndices(int dim, int cellIndex) const
FieldType
The type of discretization to use for a field pattern.
virtual void getSubcellClosureIndices(int, int, std::vector< int > &) const
virtual void buildPattern(const std::vector< std::pair< FieldType, Teuchos::RCP< const FieldPattern >>> &patterns)
#define TEUCHOS_ASSERT(assertion_test)
virtual shards::CellTopology getCellTopology() const