Panzer
Version of the Day
|
#include <Panzer_GlobalIndexer.hpp>
Classes | |
class | CopyCellLIDsFunctor |
Public Member Functions | |
virtual | ~GlobalIndexer () |
Pure virtual destructor: prevents warnings with inline empty implementation. More... | |
virtual Teuchos::RCP < Teuchos::Comm< int > > | getComm () const =0 |
virtual int | getNumFields () const =0 |
virtual int | getFieldNum (const std::string &str) const =0 |
Get the number used for access to this field. More... | |
virtual void | getFieldOrder (std::vector< std::string > &fieldOrder) const =0 |
virtual const std::string & | getFieldString (int num) const =0 |
Reverse lookup of the field string from a field number. More... | |
virtual void | getElementBlockIds (std::vector< std::string > &elementBlockIds) const =0 |
virtual bool | fieldInBlock (const std::string &field, const std::string &block) const =0 |
virtual const std::vector< int > & | getBlockFieldNumbers (const std::string &blockId) const =0 |
virtual const std::vector< int > & | getGIDFieldOffsets (const std::string &blockId, int fieldNum) const =0 |
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 =0 |
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 int | getElementBlockGIDCount (const std::size_t &blockIndex) const =0 |
How any GIDs are associate with each element in a particular element block. More... | |
virtual void | getElementOrientation (panzer::LocalOrdinal localElmtId, std::vector< double > &gidsOrientation) const =0 |
Get a vector containg the orientation of the GIDs relative to the neighbors. More... | |
virtual const std::vector < panzer::LocalOrdinal > & | getElementBlock (const std::string &blockId) const =0 |
virtual void | getElementGIDs (panzer::LocalOrdinal localElmtId, std::vector< panzer::GlobalOrdinal > &gids, const std::string &blockIdHint="") const =0 |
Get the global IDs for a particular element. This function overwrites the gids variable. More... | |
virtual void | getOwnedIndices (std::vector< panzer::GlobalOrdinal > &indices) const =0 |
Get the set of indices owned by this processor. More... | |
virtual void | getGhostedIndices (std::vector< panzer::GlobalOrdinal > &indices) const =0 |
Get the set of indices ghosted for this processor. More... | |
virtual void | getOwnedAndGhostedIndices (std::vector< panzer::GlobalOrdinal > &indices) const =0 |
Get the set of owned and ghosted indices for this processor. More... | |
virtual int | getNumOwned () const =0 |
Get the number of indices owned by this processor. More... | |
virtual int | getNumGhosted () const =0 |
Get the number of indices ghosted for this processor. More... | |
virtual int | getNumOwnedAndGhosted () const =0 |
Get the number of owned and ghosted indices for this processor. More... | |
virtual void | ownedIndices (const std::vector< panzer::GlobalOrdinal > &indices, std::vector< bool > &isOwned) const =0 |
const Kokkos::View< const panzer::LocalOrdinal *, Kokkos::LayoutRight, PHX::Device > | getElementLIDs (panzer::LocalOrdinal localElmtId) const |
const Kokkos::View< const panzer::LocalOrdinal **, Kokkos::LayoutRight, PHX::Device > | getLIDs () const |
template<typename ArrayT > | |
void | getElementLIDs (PHX::View< const int * > cellIds, ArrayT lids, const int num_dofs=0) const |
virtual int | getElementBlockGIDCount (const std::string &blockId) const =0 |
How many GIDs are associated with each element in a particular element block. More... | |
virtual Teuchos::RCP< const ConnManager > | getConnManager () const =0 |
Returns the connection manager currently being used. More... | |
Protected Member Functions | |
void | buildLocalIds () |
void | buildLocalIdsFromOwnedElements (std::vector< std::vector< panzer::LocalOrdinal > > &localIDs) const |
void | setLocalIds (const std::vector< std::vector< panzer::LocalOrdinal > > &localIDs) |
void | shareLocalIDs (const GlobalIndexer &src) |
Private Attributes | |
Kokkos::View< const panzer::LocalOrdinal **, Kokkos::LayoutRight, PHX::Device > | localIDs_k_ |
Epetra related functions. NOTE: for use with Epetra only! Will be deprecated when we drop epetra support! | |
virtual void | getElementGIDsAsInt (panzer::LocalOrdinal localElmtId, std::vector< int > &gids, const std::string &blockIdHint="") const =0 |
Get the global IDs for a particular element. This function overwrites the gids variable. More... | |
virtual void | getOwnedIndicesAsInt (std::vector< int > &indices) const =0 |
Get the set of indices owned by this processor. More... | |
virtual void | getGhostedIndicesAsInt (std::vector< int > &indices) const =0 |
Get the set of indices ghosted for this processor. More... | |
virtual void | getOwnedAndGhostedIndicesAsInt (std::vector< int > &indices) const =0 |
Get the set of owned and ghosted indices for this processor. More... | |
Definition at line 27 of file Panzer_GlobalIndexer.hpp.
|
inlinevirtual |
Pure virtual destructor: prevents warnings with inline empty implementation.
Definition at line 30 of file Panzer_GlobalIndexer.hpp.
|
pure virtual |
Get communicator associated with this global indexer.
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Get the number of fields (total) stored by this DOF manager
Implemented in panzer::BlockedDOFManager, panzer::Filtered_GlobalIndexer, and panzer::DOFManager.
|
pure virtual |
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.
[in] | str | Human readable name of the field |
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Get the field order used by this global indexer.
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Reverse lookup of the field string from a field number.
[in] | num | Field number. Assumed to be a valid field number. Computed from getFieldNum . |
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
What are the blockIds included in this connection manager?
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Is the specified field in the element block?
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Get field numbers associated with a particular element block.
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Use the field pattern so that you can find a particular field in the GIDs array.
Implemented in panzer::Filtered_GlobalIndexer, panzer::DOFManager, and panzer::BlockedDOFManager.
|
pure virtual |
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.
[in] | blockId | |
[in] | fieldNum | |
[in] | subcellDim | |
[in] | subcellId |
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
How any GIDs are associate with each element in 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.
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get a vector containg the orientation of the GIDs relative to the neighbors.
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Get the local element IDs for a paricular element block.
[in] | blockId | Block ID |
Implemented in panzer::DOFManager, panzer::Filtered_GlobalIndexer, and panzer::BlockedDOFManager.
|
pure virtual |
Get the global IDs for a particular element. This function overwrites the gids
variable.
Implemented in panzer::Filtered_GlobalIndexer, panzer::DOFManager, and panzer::BlockedDOFManager.
|
pure virtual |
Get the set of indices owned by this processor.
[out] | A | vector that will be filled with the indices owned by this processor. |
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the set of indices ghosted for this processor.
[out] | A | vector that will be filled with the indices ghosted for this processor. |
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the set of owned and ghosted indices for this processor.
[out] | A | vector that will be filled with the owned and ghosted indices for this processor. |
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the global IDs for a particular element. This function overwrites the gids
variable.
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the set of indices owned by this processor.
[out] | A | vector that will be filled with the indices owned by this processor. |
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the set of indices ghosted for this processor.
[out] | A | vector that will be filled with the indices ghosted for this processor. |
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the set of owned and ghosted indices for this processor.
[out] | A | vector that will be filled with the owned and ghosted indices for this processor. |
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the number of indices owned by this processor.
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the number of indices ghosted for this processor.
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Get the number of owned and ghosted indices for this processor.
Implemented in panzer::BlockedDOFManager, panzer::Filtered_GlobalIndexer, and panzer::DOFManager.
|
pure virtual |
Get a yes/no on ownership for each index in a vector
Implemented in panzer::DOFManager, panzer::BlockedDOFManager, and panzer::Filtered_GlobalIndexer.
|
inline |
Access the local IDs for an element. The local ordering is according to the getOwnedAndGhostedIndices
method.
Definition at line 221 of file Panzer_GlobalIndexer.hpp.
|
inline |
Return all the element LIDS for a given indexer
Definition at line 226 of file Panzer_GlobalIndexer.hpp.
|
inline |
Access the local IDs for an element. The local ordering is according to the getOwnedAndGhostedIndices
method. Note
cellIds | [in] The list of cells we require LIDs for |
lids | [in/out] View to fill with LIDs. extent(1) MUST be sized correctly if num_dofs is not provided. |
num_dofs | [in] (optional) Number of DOFs in the current element block. |
NOTE: The internal array (global_lids/localIDs_k_) is sized for the max dofs across all element blocks in the dof manager. The copy needs the actual number of dofs in the particular element block to fill correctly. Either the caller must supply num_dofs
or the lids.extent(1)
must be sized correctly for the number of DOFs in the element block. We don't want to search on the element internally to find the element block as this will impact performance.
Definition at line 246 of file Panzer_GlobalIndexer.hpp.
|
pure virtual |
How many GIDs are associated with each element in 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.
Implemented in panzer::BlockedDOFManager, panzer::DOFManager, and panzer::Filtered_GlobalIndexer.
|
pure virtual |
Returns the connection manager currently being used.
Implemented in panzer::BlockedDOFManager, panzer::Filtered_GlobalIndexer, and panzer::DOFManager.
|
inlineprotected |
This method is used by derived classes to the construct the local IDs from the getOwnedAndGhostedIndices
method.
Definition at line 300 of file Panzer_GlobalIndexer.hpp.
|
inlineprotected |
This method is used by derived classes to the construct the local IDs from the getOwnedAndGhostedIndices
method.
Definition at line 357 of file Panzer_GlobalIndexer.hpp.
|
inlineprotected |
This method provides some capability to set the local IDs externally without using the default buildLocalIds. The point is that we want to keep "getElementLIDs" access exteremly fast.
Definition at line 321 of file Panzer_GlobalIndexer.hpp.
|
inlineprotected |
Access internal state and share the local ID fields. This allows decorators classes to be defined and still not loose the performance benefit of the fast getElementLIDs methods. Note that this copies from a distinct UGI into this object.
Definition at line 347 of file Panzer_GlobalIndexer.hpp.
|
private |
Definition at line 353 of file Panzer_GlobalIndexer.hpp.