Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Attributes | List of all members
panzer::GeometricAggFieldPattern Class Reference

#include <Panzer_GeometricAggFieldPattern.hpp>

Inheritance diagram for panzer::GeometricAggFieldPattern:
Inheritance graph
[legend]

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. More...
 
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 39 of file Panzer_GeometricAggFieldPattern.hpp.

Constructor & Destructor Documentation

panzer::GeometricAggFieldPattern::GeometricAggFieldPattern ( )

Definition at line 17 of file Panzer_GeometricAggFieldPattern.cpp.

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 21 of file Panzer_GeometricAggFieldPattern.cpp.

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 27 of file Panzer_GeometricAggFieldPattern.cpp.

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

Definition at line 56 of file Panzer_GeometricAggFieldPattern.hpp.

Member Function Documentation

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 34 of file Panzer_GeometricAggFieldPattern.cpp.

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 113 of file Panzer_GeometricAggFieldPattern.cpp.

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 121 of file Panzer_GeometricAggFieldPattern.cpp.

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 130 of file Panzer_GeometricAggFieldPattern.cpp.

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

Get the set of indices that are on the sub cell. The ``closure'' means that this set includes indices of all the child sub cells as well.

Parameters
[in]dimDimension of the sub cell of interest
[in]cellIndexIndex of the sub cell (must be lest than getSubcellCount(dim) and greater than or equal to 0.
[out]indicesVector, to be overwritten, containing the closure indices on return.

Implements panzer::FieldPattern.

Definition at line 88 of file Panzer_GeometricAggFieldPattern.hpp.

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 139 of file Panzer_GeometricAggFieldPattern.cpp.

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

Returns cell topology from parent field parents

Implements panzer::FieldPattern.

Definition at line 148 of file Panzer_GeometricAggFieldPattern.cpp.

Member Data Documentation

bool panzer::GeometricAggFieldPattern::patternBuilt_
protected

Definition at line 101 of file Panzer_GeometricAggFieldPattern.hpp.

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

Definition at line 102 of file Panzer_GeometricAggFieldPattern.hpp.

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

Definition at line 103 of file Panzer_GeometricAggFieldPattern.hpp.

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

Definition at line 104 of file Panzer_GeometricAggFieldPattern.hpp.


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