Panzer Version of the Day
Loading...
Searching...
No Matches
panzer::GeometricAggFieldPattern Class Reference

#include <Panzer_GeometricAggFieldPattern.hpp>

Inheritance diagram for panzer::GeometricAggFieldPattern:

Public Member Functions

 GeometricAggFieldPattern ()
 GeometricAggFieldPattern (std::vector< std::pair< FieldType, Teuchos::RCP< const FieldPattern > > > &patterns)
 GeometricAggFieldPattern (const FieldType &fieldType, const Teuchos::RCP< const FieldPattern > &pattern)
virtual ~GeometricAggFieldPattern ()
virtual void buildPattern (const std::vector< std::pair< FieldType, Teuchos::RCP< const FieldPattern > > > &patterns)
virtual void buildPattern (const FieldType &fieldType, const Teuchos::RCP< const FieldPattern > &pattern)
virtual int getSubcellCount (int dim) const
virtual const std::vector< int > & getSubcellIndices (int dim, int cellIndex) const
virtual void getSubcellClosureIndices (int, int, std::vector< int > &) const
virtual int getDimension () const
virtual shards::CellTopology getCellTopology () const
Public Member Functions inherited from panzer::FieldPattern
virtual ~FieldPattern ()=0
 Do nothing destructor.
virtual int numberIds () const
virtual bool sameGeometry (const FieldPattern &fp) const
virtual bool consistentSubcells () const
virtual void print (std::ostream &os) const
virtual bool equals (const FieldPattern &fp) const

Protected Attributes

bool patternBuilt_
std::size_t dimension_
std::vector< std::vector< std::vector< int > > > patternData_
shards::CellTopology cellTopo_

Detailed Description

This class takes a vector of field patterns and finds the union of all the patterns. That is the set of degrees of freedom needed to be specified on the mesh to encapsulate all the patterns.

For instance if one field pattern specifies one degrees of freedom per node and another one specifies one degree of freedom per edge, this pattern will specify one degree of freedom per node and one per edge.

Essentially if you took all of the FieldPatterns and stacked them on top of each other then the shadow cast would be the geometric field pattern.

Note
Because the GeometricAggFieldPattern is passed to the ConnManager this gives an implicit ordering to the mesh IDs that is associated with the logical progression of the sub cells.

Definition at line 71 of file Panzer_GeometricAggFieldPattern.hpp.

Constructor & Destructor Documentation

◆ GeometricAggFieldPattern() [1/3]

panzer::GeometricAggFieldPattern::GeometricAggFieldPattern ( )

Definition at line 49 of file Panzer_GeometricAggFieldPattern.cpp.

◆ GeometricAggFieldPattern() [2/3]

panzer::GeometricAggFieldPattern::GeometricAggFieldPattern ( std::vector< std::pair< FieldType, Teuchos::RCP< const FieldPattern > > > & patterns)

Construct the pattern, this automatically calls buildPattern() and is equivalent to calling the default constructor and then buildPattern().

Definition at line 53 of file Panzer_GeometricAggFieldPattern.cpp.

◆ GeometricAggFieldPattern() [3/3]

panzer::GeometricAggFieldPattern::GeometricAggFieldPattern ( const FieldType & fieldType,
const Teuchos::RCP< const FieldPattern > & pattern )

Construct the geometric version of this pattern, this automatically calls buildPattern() and is equivalent to calling the default constructor and then buildPattern().

Definition at line 59 of file Panzer_GeometricAggFieldPattern.cpp.

◆ ~GeometricAggFieldPattern()

virtual panzer::GeometricAggFieldPattern::~GeometricAggFieldPattern ( )
inlinevirtual

Definition at line 88 of file Panzer_GeometricAggFieldPattern.hpp.

Member Function Documentation

◆ buildPattern() [1/2]

void panzer::GeometricAggFieldPattern::buildPattern ( const std::vector< std::pair< FieldType, Teuchos::RCP< const FieldPattern > > > & patterns)
virtual

Construct the underlying data for this object. Before calling this function getDimension(), getSubcellCount() and getSubcellIndices methods will throw an exception.

Note
This can be called multiple times, however any previous state is not saved and the new state is constructed.

Definition at line 66 of file Panzer_GeometricAggFieldPattern.cpp.

◆ buildPattern() [2/2]

void panzer::GeometricAggFieldPattern::buildPattern ( const FieldType & fieldType,
const Teuchos::RCP< const FieldPattern > & pattern )
virtual

Convenience function, simply builds a vector and calls the vectorized form of buildPattern.

Definition at line 145 of file Panzer_GeometricAggFieldPattern.cpp.

◆ getSubcellCount()

int panzer::GeometricAggFieldPattern::getSubcellCount ( int dim) const
virtual

Returns the sub cell count (see FieldPattern) if buildPattern has been called. Otherwise it will throw an exception.

Implements panzer::FieldPattern.

Definition at line 153 of file Panzer_GeometricAggFieldPattern.cpp.

◆ getSubcellIndices()

const std::vector< int > & panzer::GeometricAggFieldPattern::getSubcellIndices ( int dim,
int cellIndex ) const
virtual

Returns the sub cell indices (see FieldPattern) if buildPattern has been called. Otherwise it will throw an exception.

Implements panzer::FieldPattern.

Definition at line 162 of file Panzer_GeometricAggFieldPattern.cpp.

◆ getSubcellClosureIndices()

virtual void panzer::GeometricAggFieldPattern::getSubcellClosureIndices ( int ,
int ,
std::vector< int > &  ) const
inlinevirtual

Definition at line 120 of file Panzer_GeometricAggFieldPattern.hpp.

◆ getDimension()

int panzer::GeometricAggFieldPattern::getDimension ( ) const
virtual

Returns the dimension (see FieldPattern) if buildPattern has been called. Otherwise it will throw an exception.

Implements panzer::FieldPattern.

Definition at line 171 of file Panzer_GeometricAggFieldPattern.cpp.

◆ getCellTopology()

shards::CellTopology panzer::GeometricAggFieldPattern::getCellTopology ( ) const
virtual

Returns cell topology from parent field parents

Implements panzer::FieldPattern.

Definition at line 180 of file Panzer_GeometricAggFieldPattern.cpp.

Member Data Documentation

◆ patternBuilt_

bool panzer::GeometricAggFieldPattern::patternBuilt_
protected

Definition at line 133 of file Panzer_GeometricAggFieldPattern.hpp.

◆ dimension_

std::size_t panzer::GeometricAggFieldPattern::dimension_
protected

Definition at line 134 of file Panzer_GeometricAggFieldPattern.hpp.

◆ patternData_

std::vector<std::vector<std::vector<int> > > panzer::GeometricAggFieldPattern::patternData_
protected

Definition at line 135 of file Panzer_GeometricAggFieldPattern.hpp.

◆ cellTopo_

shards::CellTopology panzer::GeometricAggFieldPattern::cellTopo_
protected

Definition at line 136 of file Panzer_GeometricAggFieldPattern.hpp.


The documentation for this class was generated from the following files: