43 #ifndef __Panzer_FieldAggPattern_hpp__ 
   44 #define __Panzer_FieldAggPattern_hpp__ 
   54 #include "Teuchos_Tuple.hpp" 
   55 #include "Phalanx_KokkosDeviceTypes.hpp" 
   94    virtual const std::vector<int> & 
getSubcellIndices(
int dimension, 
int subcell) 
const;
 
   99    virtual void print(std::ostream & os) 
const;
 
  150    const std::vector<int> & 
localOffsets(
int fieldId) 
const;
 
  193    const std::pair<std::vector<int>,std::vector<int> > &
 
  250    std::vector<std::tuple<int,panzer::FieldType,Teuchos::RCP<const FieldPattern> > > 
patterns_;
 
  261    mutable std::map<Teuchos::Tuple<int,3>, std::pair<std::vector<int>,std::vector<int> >,
LessThan>
 
void buildFieldPatternData()
 
const std::pair< std::vector< int >, std::vector< int > > & localOffsets_closure(int fieldId, int subcellDim, int subcellId) const 
 
std::map< int, std::vector< int > > fieldOffsets_
Stores the Field offsets for the fieldId key. Note that the key is the fieldId, not the index into th...
 
std::map< int, Kokkos::View< int *, PHX::Device > > fieldOffsetsKokkos_
Stores the Field offsets for the fieldId key. Note that the key is the fieldId, not the index into th...
 
virtual ~FieldAggPattern()
 
std::map< Teuchos::Tuple< int, 3 >, std::pair< std::vector< int >, std::vector< int > >, LessThan > fieldSubcellOffsets_closure_
 
const std::vector< int > & numFieldsPerId() const 
Lenght of vector is number of Ids, value is how many ids per field. 
 
std::vector< int > numFields_
 
virtual Teuchos::RCP< const FieldPattern > getFieldPattern(int fieldId) const 
 
virtual Teuchos::RCP< const FieldPattern > getGeometricAggFieldPattern() const 
 
std::map< int, int > fieldIdToPatternIdx_
 
virtual int getSubcellCount(int dimension) const 
 
std::vector< std::vector< std::vector< int > > > patternData_
 
FieldType
The type of discretization to use for a field pattern. 
 
const Kokkos::View< const int *, PHX::Device > localOffsetsKokkos(int fieldId) const 
 
virtual FieldType getFieldType(int fieldId) const 
 
virtual int getDimension() const 
 
Teuchos::RCP< const FieldPattern > geomAggPattern_
 
virtual void getSubcellClosureIndices(int, int, std::vector< int > &) const 
 
virtual void buildPattern(const std::vector< std::tuple< int, panzer::FieldType, Teuchos::RCP< const FieldPattern > > > &patterns, const Teuchos::RCP< const FieldPattern > &geomAggPattern=Teuchos::null)
 
void buildFieldIdToPatternIdx()
 
void addAllPatternSubcellIndices(int dim, int sc, std::vector< int > &indices)
 
void localOffsets_build(int fieldId, std::vector< int > &offsets) const 
 
const std::vector< int > & fieldIds() const 
 
virtual void print(std::ostream &os) const 
Print this pattern. 
 
std::vector< std::tuple< int, panzer::FieldType, Teuchos::RCP< const FieldPattern > > > patterns_
 
bool operator()(const Teuchos::Tuple< int, 3 > &a, const Teuchos::Tuple< int, 3 > &b) const 
 
void buildFieldIdsVector()
 
virtual const std::vector< int > & getSubcellIndices(int dimension, int subcell) const 
 
Teuchos::RCP< const FieldPattern > FPPtr
 
virtual shards::CellTopology getCellTopology() const 
 
Kokkos::View< const int *, PHX::Device > offsets
 
std::vector< int > fieldIds_
 
void mergeFieldPatterns(const FieldType &fieldType)
 
const std::vector< int > & localOffsets(int fieldId) const