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

#include <Panzer_FieldPattern.hpp>

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

Public Member Functions

virtual ~FieldPattern ()=0
 Do nothing destructor. More...
 
virtual int getSubcellCount (int dim) const =0
 
virtual const std::vector< int > & getSubcellIndices (int dim, int cellIndex) const =0
 
virtual void getSubcellClosureIndices (int dim, int cellIndex, std::vector< int > &indices) const =0
 
virtual int getDimension () const =0
 
virtual shards::CellTopology getCellTopology () const =0
 
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
 

Detailed Description

Definition at line 21 of file Panzer_FieldPattern.hpp.

Constructor & Destructor Documentation

panzer::FieldPattern::~FieldPattern ( )
pure virtual

Do nothing destructor.

Definition at line 15 of file Panzer_FieldPattern.cpp.

Member Function Documentation

virtual int panzer::FieldPattern::getSubcellCount ( int  dim) const
pure virtual

How many sub cells of a particular dimension are there? For instance a "quad" element as four sub cells of dimension 0 (node type),four sub cells of dimension one (edge type), and one sub cell of dimension two (area type).

Parameters
[in]dimDimension of the sub cell of interest
Returns
Number of sub cells of dimension dim

Implemented in panzer::GeometricAggFieldPattern, panzer::FieldAggPattern, panzer::EdgeFieldPattern, panzer::ElemFieldPattern, panzer::FaceFieldPattern, panzer::NodalFieldPattern, and panzer::Intrepid2FieldPattern.

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

Get the local indices associated with a particular sub cell. The sub cell is specified through its dimension and cell index. A vector is returned that gives the indices.

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.
Returns
A vector of indices for the specified sub cell.

Implemented in panzer::GeometricAggFieldPattern, panzer::EdgeFieldPattern, panzer::ElemFieldPattern, panzer::FaceFieldPattern, panzer::NodalFieldPattern, panzer::FieldAggPattern, and panzer::Intrepid2FieldPattern.

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

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.

Implemented in panzer::GeometricAggFieldPattern, panzer::EdgeFieldPattern, panzer::ElemFieldPattern, panzer::FaceFieldPattern, panzer::NodalFieldPattern, panzer::FieldAggPattern, and panzer::Intrepid2FieldPattern.

virtual int panzer::FieldPattern::getDimension ( ) const
pure virtual

What is the dimension of this pattern. For instance a "quad" element is two dimensional. This is a purely geometric quantity.

Implemented in panzer::GeometricAggFieldPattern, panzer::EdgeFieldPattern, panzer::ElemFieldPattern, panzer::FaceFieldPattern, panzer::NodalFieldPattern, panzer::FieldAggPattern, and panzer::Intrepid2FieldPattern.

virtual shards::CellTopology panzer::FieldPattern::getCellTopology ( ) const
pure virtual
int panzer::FieldPattern::numberIds ( ) const
virtual

How many degrees of freedom are associated with this pattern. In this terminology an ID is a single degree of freedom defined at the element level. By default this is the sum of the size of all the sub cells. Where the sub cells are defined by the getSubcellIndices.

Returns
The number of IDs associated with this pattern.

Definition at line 17 of file Panzer_FieldPattern.cpp.

bool panzer::FieldPattern::sameGeometry ( const FieldPattern fp) const
virtual

Do these patterns share the same geometry? Meaning are these two element shapes (on the canonical domain) the same?

Returns
True if both geometries are the same, false otherwise.

Definition at line 49 of file Panzer_FieldPattern.cpp.

bool panzer::FieldPattern::consistentSubcells ( ) const
virtual

Are the subcells consistent for each dimension. A set of sub cells is consistent if they have the same number of IDs. The default behavior calls getSubcellIndices for each dimension and cell index, and gurantees the number of IDs are equal.

Returns
True if the pattern has consistent sub cells.

Definition at line 64 of file Panzer_FieldPattern.cpp.

void panzer::FieldPattern::print ( std::ostream &  os) const
virtual

Print this pattern to a stream.

Parameters
[in]osDesired output stream.

Reimplemented in panzer::FieldAggPattern.

Definition at line 31 of file Panzer_FieldPattern.cpp.

bool panzer::FieldPattern::equals ( const FieldPattern fp) const
virtual

Definition at line 80 of file Panzer_FieldPattern.cpp.


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