Panzer  Version of the Day
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
 
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 void getOwnedAndGhostedIndices (std::vector< GlobalOrdinalT > &indices) const
 
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 std::vector< LocalOrdinalT > & getElementLIDs (LocalOrdinalT localElmtId) 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_
 

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

◆ Filtered_UniqueGlobalIndexer()

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

Default constructor

Definition at line 59 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

◆ ~Filtered_UniqueGlobalIndexer()

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

Definition at line 98 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

Member Function Documentation

◆ initialize()

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 65 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

◆ getOwnedAndGhostedNotFilteredIndicator()

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 97 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

◆ getFilteredOwnedAndGhostedIndices()

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 144 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

◆ getOwnedIndices()

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

Get set of indices owned by this processor

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 166 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

◆ ownedIndices()

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 177 of file Panzer_Filtered_UniqueGlobalIndexer_impl.hpp.

◆ getComm()

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 100 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getNumFields()

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 103 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getFieldString()

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 106 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getFieldNum()

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 109 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getFieldOrder()

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 112 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getElementBlockIds()

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 115 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ fieldInBlock()

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 118 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getBlockFieldNumbers()

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 121 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getGIDFieldOffsets()

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 124 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getGIDFieldOffsets_closure()

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 128 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getElementOrientation()

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 132 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getElementBlock()

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 135 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getElementGIDs()

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 138 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getOwnedAndGhostedIndices()

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.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 141 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getElementBlockGIDCount() [1/2]

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 144 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getElementBlockGIDCount() [2/2]

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 147 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ getConnManagerBase()

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 150 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

Member Data Documentation

◆ base_

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

Definition at line 155 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.

◆ owned_

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

Definition at line 157 of file Panzer_Filtered_UniqueGlobalIndexer.hpp.


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