Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Functions
Functions for indexing into a GID array ordered according to this pattern

Functions

const std::vector< int > & panzer::FieldAggPattern::localOffsets (int fieldId) const
 
const Kokkos::View< const int
*, PHX::Device > 
panzer::FieldAggPattern::localOffsetsKokkos (int fieldId) const
 
const std::pair< std::vector
< int >, std::vector< int > > & 
panzer::FieldAggPattern::localOffsets_closure (int fieldId, int subcellDim, int subcellId) const
 

Detailed Description

Function Documentation

const std::vector< int > & panzer::FieldAggPattern::localOffsets ( int  fieldId) const

This function produces a map between the ordering specified by this pattern and an ordering required by the pattern associated with fieldId.

For instance if you have a vector called GIDs of length this->numberIds() and you want the GIDs associated with fieldId = 0 . Simply take the offsets vector and index it into the GIDs vector: GIDs[offsets[*]].

Parameters
[in]fieldIdField to look up
Returns
offsets Offsets into global IDs vector. The order of this vector is defined by the underlying FieldPattern defining the requested field. For the Intrepid2FieldPattern this will correspond to the required order of the basis functions

Definition at line 277 of file Panzer_FieldAggPattern.cpp.

const Kokkos::View< const int *, PHX::Device > panzer::FieldAggPattern::localOffsetsKokkos ( int  fieldId) const

This function produces a map between the ordering specified by this pattern and an ordering required by the pattern associated with fieldId.

For instance if you have a vector called GIDs of length this->numberIds() and you want the GIDs associated with fieldId = 0 . Simply take the offsets vector and index it into the GIDs vector: GIDs[offsets[*]].

Parameters
[in]fieldIdField to look up
Returns
offsets Offsets into global IDs vector. The order of this vector is defined by the underlying FieldPattern defining the requested field. For the Intrepid2FieldPattern this will correspond to the required order of the basis functions

Definition at line 289 of file Panzer_FieldAggPattern.cpp.

const std::pair< std::vector< int >, std::vector< int > > & panzer::FieldAggPattern::localOffsets_closure ( int  fieldId,
int  subcellDim,
int  subcellId 
) const

Returns a pair of vectors. The first is the offsets into the global ID array for the field and subcell specified. This will be the indexing in the GIDs vector (see localOffsets). Notice that this returns the "closure". Meaning that all offsets for a particular subcell and the IDs that are on lower dimensional sub cells will be returned. This function has no (currently) specified order. The second vector is the index of the field's basis functions for the closure indices. The first and second vectors should have the same size.

Note
You cannot depend on the order of the IDs remaining consistent in future versions.
This function is normally used for applying boundary conditions. For DG fields, all the DOFs in the FieldPattern are added to the interior cell (subcell index equal to the dimension of the cell). However these DOFs are associated with lower subcells of the element (edges, faces and nodes) in teh actual FieldPatter. When applying boundary conditions, these interior DOFs of DG field that are associated with lower subcells must be returned in this function call to be set properly.

Definition at line 327 of file Panzer_FieldAggPattern.cpp.