Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Private Attributes | List of all members
panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > Class Template Reference

#include <Panzer_Filtered_UniqueGlobalIndexer.hpp>

Inheritance diagram for panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >:
Inheritance graph
[legend]

Public Member Functions

 Filtered_UniqueGlobalIndexer ()
 
void initialize (const Teuchos::RCP< const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &ugi, const std::vector< GlobalOrdinalT > &filteredIndices)
 
void getOwnedAndGhostedNotFilteredIndicator (std::vector< int > &indicator) const
 
void getFilteredOwnedAndGhostedIndices (std::vector< GlobalOrdinalT > &indices) const
 
virtual void getOwnedIndices (std::vector< GlobalOrdinalT > &indices) const
 Get the set of indices owned by this processor. More...
 
virtual void getGhostedIndices (std::vector< GlobalOrdinalT > &indices) const
 Get the set of indices ghosted for this processor. More...
 
virtual void getOwnedAndGhostedIndices (std::vector< GlobalOrdinalT > &indices) const
 Get the set of owned and ghosted indices for this processor. More...
 
virtual int getNumOwned () const
 Get the number of indices owned by this processor. More...
 
virtual int getNumGhosted () const
 Get the number of indices ghosted for this processor. More...
 
virtual int getNumOwnedAndGhosted () const
 Get the number of owned and ghosted indices for this processor. More...
 
virtual void ownedIndices (const std::vector< GlobalOrdinalT > &indices, std::vector< bool > &isOwned) const
 
virtual ~Filtered_UniqueGlobalIndexer ()
 
virtual Teuchos::RCP
< Teuchos::Comm< int > > 
getComm () const
 
virtual int getNumFields () const
 
virtual const std::string & getFieldString (int fieldNum) const
 Reverse lookup of the field string from a field number. More...
 
virtual int getFieldNum (const std::string &str) const
 Get the number used for access to this field. More...
 
virtual void getFieldOrder (std::vector< std::string > &fieldOrder) const
 
virtual void getElementBlockIds (std::vector< std::string > &elementBlockIds) const
 
virtual bool fieldInBlock (const std::string &field, const std::string &block) const
 
virtual const std::vector< int > & getBlockFieldNumbers (const std::string &blockId) const
 
virtual const std::vector< int > & getGIDFieldOffsets (const std::string &blockId, int fieldNum) const
 Use the field pattern so that you can find a particular field in the GIDs array. More...
 
virtual const std::pair
< std::vector< int >
, std::vector< int > > & 
getGIDFieldOffsets_closure (const std::string &blockId, int fieldNum, int subcellDim, int subcellId) const
 Use the field pattern so that you can find a particular field in the GIDs array. This version lets you specify the sub cell you are interested in and gets the closure. Meaning all the IDs of equal or lesser sub cell dimension that are contained within the specified sub cell. For instance for an edge, this function would return offsets for the edge and the nodes on that edge. More...
 
virtual void getElementOrientation (LocalOrdinalT localElmtId, std::vector< double > &gidsOrientation) const
 Get a vector containg the orientation of the GIDs relative to the neighbors. More...
 
virtual const std::vector
< LocalOrdinalT > & 
getElementBlock (const std::string &blockId) const
 
virtual void getElementGIDs (LocalOrdinalT localElmtId, std::vector< GlobalOrdinalT > &gids, const std::string &blockIdHint="") const
 Get the global IDs for a particular element. This function overwrites the gids variable. More...
 
virtual int getElementBlockGIDCount (const std::string &blockId) const
 How many GIDs are associate with a particular element block. More...
 
virtual int getElementBlockGIDCount (const std::size_t &blockIndex) const
 How any GIDs are associate with a particular element block. More...
 
virtual Teuchos::RCP< const
ConnManagerBase< LocalOrdinalT > > 
getConnManagerBase () const
 Returns the connection manager currently being used. More...
 
- Public Member Functions inherited from panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >
virtual ~UniqueGlobalIndexer ()=0
 Pure virtual destructor: prevents warnings with inline empty implementation. More...
 
const Kokkos::View< const
LocalOrdinalT
*, Kokkos::LayoutRight,
PHX::Device > 
getElementLIDs (LocalOrdinalT localElmtId) const
 
const Kokkos::View< const
LocalOrdinalT
**, Kokkos::LayoutRight,
PHX::Device > 
getLIDs () const
 
void getElementLIDs (Kokkos::View< const int *, PHX::Device > cellIds, Kokkos::View< LocalOrdinalT **, PHX::Device > lids) const
 
- Public Member Functions inherited from panzer::UniqueGlobalIndexerBase
virtual ~UniqueGlobalIndexerBase ()=0
 Pure virtual destructor: prevents warnings with inline empty implementation. More...
 

Private Attributes

Teuchos::RCP< const
UniqueGlobalIndexer
< LocalOrdinalT,
GlobalOrdinalT > > 
base_
 
std::vector< GlobalOrdinalT > owned_
 The list of owned indices. More...
 
std::vector< GlobalOrdinalT > ghosted_
 The list of ghosted indices. More...
 

Additional Inherited Members

- Protected Member Functions inherited from panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >
void buildLocalIds ()
 
void buildLocalIdsFromOwnedElements (std::vector< std::vector< LocalOrdinalT > > &localIDs) const
 
void setLocalIds (const std::vector< std::vector< LocalOrdinalT > > &localIDs)
 
void shareLocalIDs (const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > &src)
 

Detailed Description

template<typename LocalOrdinalT, typename GlobalOrdinalT>
class panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >

Definition at line 53 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

Constructor & Destructor Documentation

template<typename LocalOrdinalT , typename GlobalOrdinalT >
panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::Filtered_UniqueGlobalIndexer ( )

Default constructor

Definition at line 60 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::~Filtered_UniqueGlobalIndexer ( )
inlinevirtual

Definition at line 193 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

Member Function Documentation

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::initialize ( const Teuchos::RCP< const UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &  ugi,
const std::vector< GlobalOrdinalT > &  filteredIndices 
)

Initialize method that allows use of the default constructor and may help with further inheritence.

Parameters
[in]ugiThe global indexer to filter the global IDs of
[in]filteredIndicesIndices to be filtered out of the ugi argument
Note
Repeated or unused (not in ugi.getOwnedIndices)indices in filteredIndices are ignored without detection or impact.

Definition at line 71 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getOwnedAndGhostedNotFilteredIndicator ( std::vector< int > &  indicator) const

Get an indicator describing if a particular local GID has been filtered. This method requires communication.

Parameters
[out]indicatorVector the same length of output argument of getOwendAndGhostedIndices. If a value is one it is included (not filtered), if it is zero then the GID has been filtered out.

Definition at line 153 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getFilteredOwnedAndGhostedIndices ( std::vector< GlobalOrdinalT > &  indices) const

Get the set of filtered indices that are owned and ghosted.

Parameters
[out]indicesSet of filtered indices

Definition at line 200 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getOwnedIndices ( std::vector< GlobalOrdinalT > &  indices) const
inlinevirtual

Get the set of indices owned by this processor.

Note
This is the set of owned indices from the base UniqueGlobalIndexer with the filtered indices removed.
Parameters
[out]indicesA vector that will be filled with the indices owned by this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 101 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getGhostedIndices ( std::vector< GlobalOrdinalT > &  indices) const
inlinevirtual

Get the set of indices ghosted for this processor.

Note
This is the set of owned indices from the base UniqueGlobalIndexer (UGI) that have been filtered out, combined with the ghosted indices from the base UGI.
Parameters
[out]indicesA vector that will be filled with the indices ghosted for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 118 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getOwnedAndGhostedIndices ( std::vector< GlobalOrdinalT > &  indices) const
inlinevirtual

Get the set of owned and ghosted indices for this processor.

Note
This is the set of owned and ghosted indices from the base UniqueGlobalIndexer, regardless of filtering.
Parameters
[out]indicesA vector that will be filled with the owned and ghosted indices for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 134 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getNumOwned ( ) const
inlinevirtual

Get the number of indices owned by this processor.

Note
This is the number of owned indices from the base UniqueGlobalIndexer, less the number of filtered indices.
Returns
The number of indices owned by this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 154 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getNumGhosted ( ) const
inlinevirtual

Get the number of indices ghosted for this processor.

Note
This is the number of owned indices from the base UniqueGlobalIndexer (UGI) that have been filtered out, plus the number of ghosted indices from the base UGI.
Returns
The number of indices ghosted for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 169 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getNumOwnedAndGhosted ( ) const
inlinevirtual

Get the number of owned and ghosted indices for this processor.

Note
This is the number of owned and ghosted indices from the base UniqueGlobalIndexer, regardless of filtering.
Returns
The number of owned and ghosted indices for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 183 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::ownedIndices ( const std::vector< GlobalOrdinalT > &  indices,
std::vector< bool > &  isOwned 
) const
virtual

Get a yes/no on ownership for each index in a vector

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 222 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual Teuchos::RCP<Teuchos::Comm<int> > panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getComm ( ) const
inlinevirtual

Get communicator associated with this global indexer.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 195 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getNumFields ( ) const
inlinevirtual

Get the number of fields (total) stored by this DOF manager

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 198 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual const std::string& panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getFieldString ( int  num) const
inlinevirtual

Reverse lookup of the field string from a field number.

Parameters
[in]numField number. Assumed to be a valid field number. Computed from getFieldNum.
Returns
Field name.

Implements panzer::UniqueGlobalIndexerBase.

Definition at line 201 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getFieldNum ( const std::string &  str) const
inlinevirtual

Get the number used for access to this field.

Get the number used for access to this field. This is used as the input parameter to the other functions that provide access to the global unknowns.

Parameters
[in]strHuman readable name of the field
Returns
A unique integer associated with the field if the field exisits. Otherwise a -1 is returned.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 204 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getFieldOrder ( std::vector< std::string > &  fieldOrder) const
inlinevirtual

Get the field order used by this global indexer.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 207 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getElementBlockIds ( std::vector< std::string > &  elementBlockIds) const
inlinevirtual

What are the blockIds included in this connection manager?

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 210 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual bool panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::fieldInBlock ( const std::string &  field,
const std::string &  block 
) const
inlinevirtual

Is the specified field in the element block?

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 213 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual const std::vector<int>& panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getBlockFieldNumbers ( const std::string &  blockId) const
inlinevirtual

Get field numbers associated with a particular element block.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 216 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual const std::vector<int>& panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getGIDFieldOffsets ( const std::string &  blockId,
int  fieldNum 
) const
inlinevirtual

Use the field pattern so that you can find a particular field in the GIDs array.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 219 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual const std::pair<std::vector<int>,std::vector<int> >& panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getGIDFieldOffsets_closure ( const std::string &  blockId,
int  fieldNum,
int  subcellDim,
int  subcellId 
) const
inlinevirtual

Use the field pattern so that you can find a particular field in the GIDs array. This version lets you specify the sub cell you are interested in and gets the closure. Meaning all the IDs of equal or lesser sub cell dimension that are contained within the specified sub cell. For instance for an edge, this function would return offsets for the edge and the nodes on that edge.

Parameters
[in]blockId
[in]fieldNum
[in]subcellDim
[in]subcellId

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 223 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getElementOrientation ( LocalOrdinalT  localElmtId,
std::vector< double > &  gidsOrientation 
) const
inlinevirtual

Get a vector containg the orientation of the GIDs relative to the neighbors.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 227 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual const std::vector<LocalOrdinalT>& panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getElementBlock ( const std::string &  blockId) const
inlinevirtual

Get the local element IDs for a paricular element block.

Parameters
[in]blockIdBlock ID
Returns
Vector of local element IDs.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 230 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual void panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getElementGIDs ( LocalOrdinalT  localElmtId,
std::vector< GlobalOrdinalT > &  gids,
const std::string &  blockIdHint = "" 
) const
inlinevirtual

Get the global IDs for a particular element. This function overwrites the gids variable.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 233 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getElementBlockGIDCount ( const std::string &  blockId) const
inlinevirtual

How many GIDs are associate with a particular element block.

This is a per-element count. If you have a quad element with two piecewise bi-linear fields this method returns 8.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 236 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual int panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getElementBlockGIDCount ( const std::size_t &  blockIndex) const
inlinevirtual

How any GIDs are associate with a particular element block.

This is a per-element count. If you have a quad element with two piecewise bi-linear fields this method returns 8.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 239 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
virtual Teuchos::RCP<const ConnManagerBase<LocalOrdinalT> > panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::getConnManagerBase ( ) const
inlinevirtual

Returns the connection manager currently being used.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 242 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

Member Data Documentation

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP<const UniqueGlobalIndexer<LocalOrdinalT,GlobalOrdinalT> > panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::base_
private

Definition at line 247 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::vector<GlobalOrdinalT> panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::owned_
private

The list of owned indices.

The list of the owned indices from the base UniqueGlobalIndexer with the filtered indices removed.

Definition at line 255 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::vector<GlobalOrdinalT> panzer::Filtered_UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >::ghosted_
private

The list of ghosted indices.

The list of the owned indices from the base UniqueGlobalIndexer (UGI) that have been filtered out, combined with the ghosted indices from the base UGI.

Definition at line 264 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.


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