Panzer  Version of the Day
Classes | Public Types | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT > Class Template Reference

#include <Panzer_L2Projection.hpp>

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

Classes

class  ElementBlockAccess
 

Public Types

typedef GlobalOrdinalT GO
 
typedef LocalOrdinalT LO
 

Public Member Functions

virtual ~DOFManager ()
 
 DOFManager ()
 
 DOFManager (const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &connMngr, MPI_Comm mpiComm)
 
void setConnManager (const Teuchos::RCP< ConnManager< LO, GO > > &connMngr, MPI_Comm mpiComm)
 Adds a Connection Manager that will be associated with this DOFManager. More...
 
Teuchos::RCP< ConnManager< LO, GO > > getConnManager () const
 
virtual Teuchos::RCP< const ConnManagerBase< LocalOrdinalT > > getConnManagerBase () const
 Returns the connection manager currently being used. More...
 
int addField (const std::string &str, const Teuchos::RCP< const FieldPattern > &pattern, const panzer::FieldType &type=panzer::FieldType::CG)
 Add a field to the DOF manager. More...
 
int addField (const std::string &blockID, const std::string &str, const Teuchos::RCP< const FieldPattern > &pattern, const panzer::FieldType &type=panzer::FieldType::CG)
 Add a field with an option for specifying the block. More...
 
Teuchos::RCP< const FieldPatterngetFieldPattern (const std::string &name) const
 Find a field pattern stored for a particular block and field number. This will retrive the pattern added with addField(blockId,fieldNum). More...
 
Teuchos::RCP< const FieldPatterngetFieldPattern (const std::string &blockId, const std::string &fieldName) const
 Find a field pattern stored for a particular block and field number. This will retrive the pattern added with addField(blockId,fieldNum). More...
 
void getOwnedIndices (std::vector< GlobalOrdinalT > &indices) const
 Get the set of indices owned by this processor. More...
 
void getGhostedIndices (std::vector< GlobalOrdinalT > &indices) const
 Get the set of indices ghosted for this processor. More...
 
void getOwnedAndGhostedIndices (std::vector< GlobalOrdinalT > &indices) const
 Get the set of owned and ghosted indices for this processor. More...
 
int getNumOwned () const
 Get the number of indices owned by this processor. More...
 
int getNumGhosted () const
 Get the number of indices ghosted for this processor. More...
 
int getNumOwnedAndGhosted () const
 Get the number of owned and ghosted indices for this processor. More...
 
int getNumFields () const
 gets the number of fields More...
 
const std::vector< int > & getGIDFieldOffsets (const std::string &blockID, int fieldNum) const
 
const Kokkos::View< const int *, PHX::Device > getGIDFieldOffsetsKokkos (const std::string &blockID, int fieldNum) const
 
void getElementGIDs (LO localElementID, std::vector< GO > &gids, const std::string &blockIdHint="") const
 get associated GIDs for a given local element More...
 
void buildGlobalUnknowns ()
 builds the global unknowns array More...
 
void buildGlobalUnknowns (const Teuchos::RCP< const FieldPattern > &geomPattern)
 builds the global unknowns array More...
 
int getFieldNum (const std::string &string) const
 Get the number used for access to this field. More...
 
Teuchos::RCP< Teuchos::Comm< int > > getComm () const
 
Teuchos::RCP< const FieldPatterngetGeometricFieldPattern () const
 
void getElementBlockIds (std::vector< std::string > &elementBlockIds) const
 
bool fieldInBlock (const std::string &field, const std::string &block) const
 
const std::vector< int > & getBlockFieldNumbers (const std::string &blockId) const
 
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...
 
const std::vector< LocalOrdinalT > & getElementBlock (const std::string &blockId) const
 Get the owned element block. More...
 
void ownedIndices (const std::vector< GlobalOrdinalT > &indices, std::vector< bool > &isOwned) const
 
void setFieldOrder (const std::vector< std::string > &fieldOrder)
 
void getFieldOrder (std::vector< std::string > &fieldOrder) const
 
bool validFieldOrder (const std::vector< std::string > &proposed_fieldOrder)
 
void buildUnknownsOrientation ()
 
bool getOrientationsRequired () const
 
void setOrientationsRequired (bool ro)
 
void getElementOrientation (LocalOrdinalT localElmtId, std::vector< double > &gidsOrientation) const
 Get a vector containg the orientation of the GIDs relative to the neighbors. More...
 
const std::string & getFieldString (int num) const
 Reverse lookup of the field string from a field number. More...
 
Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > resetIndices ()
 Reset the indices for this DOF manager. More...
 
virtual int getElementBlockGIDCount (const std::string &blockId) const
 How any 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...
 
void printFieldInformation (std::ostream &os) const
 
void enableTieBreak (bool enable)
 
void useNeighbors (bool flag)
 
std::size_t getNumberElementGIDArrays () const
 
- 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...
 

Protected Member Functions

Teuchos::RCP< const Tpetra::Map< LO, GO, panzer::TpetraNodeType > > runLocalRCMReordering (const Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, panzer::TpetraNodeType > > &)
 
std::size_t blockIdToIndex (const std::string &blockId) const
 
Teuchos::RCP< const Tpetra::Map< LO, GO, panzer::TpetraNodeType > > buildOverlapMapFromElements (const ElementBlockAccess &access) const
 
Teuchos::RCP< Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > > buildTaggedMultiVector (const ElementBlockAccess &access)
 
std::pair< Teuchos::RCP< Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > >, Teuchos::RCP< Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > > > buildGlobalUnknowns_GUN (const Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > &tagged_overlap_mv, Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > &overlap_mv) const
 
void fillGIDsFromOverlappedMV (const ElementBlockAccess &access, std::vector< std::vector< GO > > &elementGIDs, const Tpetra::Map< LO, GO, panzer::TpetraNodeType > &overlapmap, const Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > &overlap_mv) const
 
void buildLocalIdsFromOwnedAndGhostedElements ()
 
- 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)
 

Protected Attributes

Teuchos::RCP< ConnManager< LO, GO > > connMngr_
 
Teuchos::RCP< Teuchos::Comm< int > > communicator_
 
std::vector< Teuchos::RCP< const FieldPattern > > fieldPatterns_
 
std::vector< FieldTypefieldTypes_
 
std::map< std::string, int > fieldNameToAID_
 
std::vector< std::string > blockOrder_
 
std::map< std::string, int > blockNameToID_
 
std::vector< std::vector< int > > blockToAssociatedFP_
 
std::vector< std::string > fieldStringOrder_
 
std::vector< int > fieldAIDOrder_
 
Teuchos::RCP< const panzer::FieldPatternga_fp_
 
std::vector< Teuchos::RCP< panzer::FieldAggPattern > > fa_fps_
 
std::vector< GOowned_
 
std::vector< GOghosted_
 
std::vector< std::vector< GO > > elementGIDs_
 
std::vector< int > elementBlockGIDCount_
 
int numFields_
 
bool buildConnectivityRun_
 
bool requireOrientations_
 
std::vector< std::vector< signed char > > orientation_
 
bool useTieBreak_
 
bool useNeighbors_
 

Detailed Description

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

Definition at line 26 of file Panzer_L2Projection.hpp.

Member Typedef Documentation

◆ GO

template<typename LocalOrdinalT, typename GlobalOrdinalT>
typedef GlobalOrdinalT panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::GO

Definition at line 70 of file Panzer_DOFManager.hpp.

◆ LO

template<typename LocalOrdinalT, typename GlobalOrdinalT>
typedef LocalOrdinalT panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::LO

Definition at line 71 of file Panzer_DOFManager.hpp.

Constructor & Destructor Documentation

◆ ~DOFManager()

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

Definition at line 73 of file Panzer_DOFManager.hpp.

◆ DOFManager() [1/2]

template<typename LO , typename GO >
panzer::DOFManager< LO, GO >::DOFManager ( )

Definition at line 151 of file Panzer_DOFManager_impl.hpp.

◆ DOFManager() [2/2]

template<typename LO , typename GO >
panzer::DOFManager< LO, GO >::DOFManager ( const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &  connMngr,
MPI_Comm  mpiComm 
)

Constructor that sets the connection manager and communicator objects. This is equivalent to calling the default constructor and then "setConnManager(...)" routine.

Definition at line 156 of file Panzer_DOFManager_impl.hpp.

Member Function Documentation

◆ setConnManager()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::setConnManager ( const Teuchos::RCP< ConnManager< LO, GO > > &  connMngr,
MPI_Comm  mpiComm 
)

Adds a Connection Manager that will be associated with this DOFManager.

Definition at line 163 of file Panzer_DOFManager_impl.hpp.

◆ getConnManager()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
Teuchos::RCP<ConnManager<LO,GO> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::getConnManager ( ) const
inline

Definition at line 86 of file Panzer_DOFManager.hpp.

◆ getConnManagerBase()

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

Returns the connection manager currently being used.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 89 of file Panzer_DOFManager.hpp.

◆ addField() [1/2]

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::addField ( const std::string &  str,
const Teuchos::RCP< const FieldPattern > &  pattern,
const panzer::FieldType type = panzer::FieldType::CG 
)

Add a field to the DOF manager.

Add a field to the DOF manager. Immediately after adding the field the field number and field size will be available for a user to access

Parameters
[in]strHuman readable name of the field
[in]patternPattern defining the basis function to be used
[in]typeType of the Field (CG/DG) for generating GIDs
Note
addField cannot be called after buildGlobalUnknowns or registerFields.

Definition at line 183 of file Panzer_DOFManager_impl.hpp.

◆ addField() [2/2]

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::addField ( const std::string &  blockID,
const std::string &  str,
const Teuchos::RCP< const FieldPattern > &  pattern,
const panzer::FieldType type = panzer::FieldType::CG 
)

Add a field with an option for specifying the block.

Add a field to the DOF manager. Immediately after adding the field the field number and field size will be available for a user to access

Parameters
[in]blockIDName of the element block that this field should be added to
[in]strHuman readable name of the field
[in]patternPattern defining the basis function to be used
[in]typeType of the Field (CG/DG) for generating GIDs
Note
addField cannot be called after buildGlobalUnknowns or registerFields.

Definition at line 207 of file Panzer_DOFManager_impl.hpp.

◆ getFieldPattern() [1/2]

template<typename LO , typename GO >
Teuchos::RCP< const FieldPattern > panzer::DOFManager< LO, GO >::getFieldPattern ( const std::string &  name) const

Find a field pattern stored for a particular block and field number. This will retrive the pattern added with addField(blockId,fieldNum).

Find a field pattern stored for a particular block and field number. This will retrive the pattern added with addField(blockId,fieldNum). If no pattern is found this function returns Teuchos::null.

Parameters
[in]blockIdElement block id
[in]fieldNumField integer identifier
Returns
Pointer to FieldPattern requested if the field exists, otherwise Teuchos::null is returned.

Definition at line 257 of file Panzer_DOFManager_impl.hpp.

◆ getFieldPattern() [2/2]

template<typename LO , typename GO >
Teuchos::RCP< const FieldPattern > panzer::DOFManager< LO, GO >::getFieldPattern ( const std::string &  blockId,
const std::string &  fieldName 
) const

Find a field pattern stored for a particular block and field number. This will retrive the pattern added with addField(blockId,fieldNum).

Find a field pattern stored for a particular block and field number. This will retrive the pattern added with addField(blockId,fieldNum). If no pattern is found this function returns Teuchos::null.

Parameters
[in]blockIdElement block id
[in]fieldNameField string identifier
Returns
Pointer to FieldPattern requested if the field exists, otherwise Teuchos::null is returned.

Definition at line 271 of file Panzer_DOFManager_impl.hpp.

◆ getOwnedIndices()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::getOwnedIndices ( std::vector< GlobalOrdinalT > &  indices) const
virtual

Get the set of indices owned by this processor.

Parameters
[out]indicesA vector that will be fille with the indices owned by this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 308 of file Panzer_DOFManager_impl.hpp.

◆ getGhostedIndices()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::getGhostedIndices ( std::vector< GlobalOrdinalT > &  indices) const
virtual

Get the set of indices ghosted for this processor.

Parameters
[out]indicesA vector that will be fille with the indices ghosted for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 322 of file Panzer_DOFManager_impl.hpp.

◆ getOwnedAndGhostedIndices()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::getOwnedAndGhostedIndices ( std::vector< GlobalOrdinalT > &  indices) const
virtual

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

Parameters
[out]indicesA vector that will be fille with the owned and ghosted indices for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 336 of file Panzer_DOFManager_impl.hpp.

◆ getNumOwned()

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::getNumOwned ( ) const
virtual

Get the number of indices owned by this processor.

Returns
The number of indices owned by this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 355 of file Panzer_DOFManager_impl.hpp.

◆ getNumGhosted()

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::getNumGhosted ( ) const
virtual

Get the number of indices ghosted for this processor.

Returns
The number of indices ghosted for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 368 of file Panzer_DOFManager_impl.hpp.

◆ getNumOwnedAndGhosted()

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::getNumOwnedAndGhosted ( ) const
virtual

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

Returns
The number of owned and ghosted indices for this processor.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 381 of file Panzer_DOFManager_impl.hpp.

◆ getNumFields()

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::getNumFields ( ) const
virtual

gets the number of fields

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 388 of file Panzer_DOFManager_impl.hpp.

◆ getGIDFieldOffsets()

template<typename LO , typename GO >
const std::vector< int > & panzer::DOFManager< LO, GO >::getGIDFieldOffsets ( const std::string &  blockID,
int  fieldNum 
) const
virtual

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

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 394 of file Panzer_DOFManager_impl.hpp.

◆ getGIDFieldOffsetsKokkos()

template<typename LO , typename GO >
const Kokkos::View< const int *, PHX::Device > panzer::DOFManager< LO, GO >::getGIDFieldOffsetsKokkos ( const std::string &  blockID,
int  fieldNum 
) const

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

Definition at line 411 of file Panzer_DOFManager_impl.hpp.

◆ getElementGIDs()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::getElementGIDs ( LO  localElementID,
std::vector< GO > &  gids,
const std::string &  blockIdHint = "" 
) const
virtual

get associated GIDs for a given local element

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 427 of file Panzer_DOFManager_impl.hpp.

◆ buildGlobalUnknowns() [1/2]

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::buildGlobalUnknowns ( )

builds the global unknowns array

Definition at line 433 of file Panzer_DOFManager_impl.hpp.

◆ buildGlobalUnknowns() [2/2]

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::buildGlobalUnknowns ( const Teuchos::RCP< const FieldPattern > &  geomPattern)

builds the global unknowns array

Definition at line 458 of file Panzer_DOFManager_impl.hpp.

◆ getFieldNum()

template<typename LO , typename GO >
int panzer::DOFManager< LO, GO >::getFieldNum ( const std::string &  str) const
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.

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 979 of file Panzer_DOFManager_impl.hpp.

◆ getComm()

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

Get communicator associated with this global indexer.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 234 of file Panzer_DOFManager.hpp.

◆ getGeometricFieldPattern()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
Teuchos::RCP<const FieldPattern> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::getGeometricFieldPattern ( ) const
inline

Definition at line 237 of file Panzer_DOFManager.hpp.

◆ getElementBlockIds()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
void panzer::DOFManager< 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 240 of file Panzer_DOFManager.hpp.

◆ fieldInBlock()

template<typename LO , typename GO >
bool panzer::DOFManager< LO, GO >::fieldInBlock ( const std::string &  field,
const std::string &  block 
) const
virtual

Is the specified field in the element block?

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 1006 of file Panzer_DOFManager_impl.hpp.

◆ getBlockFieldNumbers()

template<typename LO , typename GO >
const std::vector< int > & panzer::DOFManager< LO, GO >::getBlockFieldNumbers ( const std::string &  blockId) const
virtual

Get field numbers associated with a particular element block.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 1035 of file Panzer_DOFManager_impl.hpp.

◆ getGIDFieldOffsets_closure()

template<typename LO , typename GO >
const std::pair< std::vector< int >, std::vector< int > > & panzer::DOFManager< LO, GO >::getGIDFieldOffsets_closure ( const std::string &  blockId,
int  fieldNum,
int  subcellDim,
int  subcellId 
) const
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.

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

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 1055 of file Panzer_DOFManager_impl.hpp.

◆ getElementBlock()

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

Get the owned element block.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 265 of file Panzer_DOFManager.hpp.

◆ ownedIndices()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::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 1071 of file Panzer_DOFManager_impl.hpp.

◆ setFieldOrder()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::setFieldOrder ( const std::vector< std::string > &  fieldOrder)

Definition at line 1083 of file Panzer_DOFManager_impl.hpp.

◆ getFieldOrder()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::getFieldOrder ( std::vector< std::string > &  fieldOrder) const
virtual

Get the field order used by this global indexer.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 998 of file Panzer_DOFManager_impl.hpp.

◆ validFieldOrder()

template<typename LO , typename GO >
bool panzer::DOFManager< LO, GO >::validFieldOrder ( const std::vector< std::string > &  proposed_fieldOrder)

Definition at line 1102 of file Panzer_DOFManager_impl.hpp.

◆ buildUnknownsOrientation()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::buildUnknownsOrientation ( )

Definition at line 1135 of file Panzer_DOFManager_impl.hpp.

◆ getOrientationsRequired()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
bool panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::getOrientationsRequired ( ) const
inline

Definition at line 279 of file Panzer_DOFManager.hpp.

◆ setOrientationsRequired()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
void panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::setOrientationsRequired ( bool  ro)
inline

Definition at line 282 of file Panzer_DOFManager.hpp.

◆ getElementOrientation()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::getElementOrientation ( LocalOrdinalT  localElmtId,
std::vector< double > &  gidsOrientation 
) const
virtual

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

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT >.

Definition at line 1206 of file Panzer_DOFManager_impl.hpp.

◆ getFieldString()

template<typename LO , typename GO >
const std::string & panzer::DOFManager< LO, GO >::getFieldString ( int  num) const
virtual

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 1121 of file Panzer_DOFManager_impl.hpp.

◆ resetIndices()

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::resetIndices ( )

Reset the indices for this DOF manager.

This method resets the indices and wipes out internal state. This method does preserve the fields and the patterns added to the object. Also the old connection manager is returned.

Returns
Old connection manager.

Definition at line 1219 of file Panzer_DOFManager_impl.hpp.

◆ getElementBlockGIDCount() [1/2]

template<typename LocalOrdinalT, typename GlobalOrdinalT>
virtual int panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::getElementBlockGIDCount ( const std::string &  blockId) 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 306 of file Panzer_DOFManager.hpp.

◆ getElementBlockGIDCount() [2/2]

template<typename LocalOrdinalT, typename GlobalOrdinalT>
virtual int panzer::DOFManager< 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 314 of file Panzer_DOFManager.hpp.

◆ printFieldInformation()

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::printFieldInformation ( std::ostream &  os) const

Prints to an output stream the information about the aggregated field.

Definition at line 1246 of file Panzer_DOFManager_impl.hpp.

◆ enableTieBreak()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
void panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::enableTieBreak ( bool  enable)
inline

Turn on/off the use of a tie break object in the createOneToOne algorithm. Turning this one gives better load balancing.

Definition at line 326 of file Panzer_DOFManager.hpp.

◆ useNeighbors()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
void panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::useNeighbors ( bool  flag)
inline

Turn on/off the use of neighbor elements in the construction of the global ids. If on, then the ghosted GIDs will include GIDs from neighbor elements, and you will be able to call getElement(G/L)IDs for elements in the one ring of this processor.

Definition at line 334 of file Panzer_DOFManager.hpp.

◆ getNumberElementGIDArrays()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::size_t panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::getNumberElementGIDArrays ( ) const
inline

Definition at line 343 of file Panzer_DOFManager.hpp.

◆ runLocalRCMReordering()

template<typename LocalOrdinalT, typename GlobalOrdinalT>
Teuchos::RCP<const Tpetra::Map<LO,GO,panzer::TpetraNodeType> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::runLocalRCMReordering ( const Teuchos::RCP< const Tpetra::Map< LocalOrdinalT, GlobalOrdinalT, panzer::TpetraNodeType > > &  )
protected

Use Zoltan2 to locally reorder with RCM.

◆ blockIdToIndex()

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::size_t panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::blockIdToIndex ( const std::string &  blockId) const
protected

Using the natural ordering associated with the std::vector retrieved from the connection manager

Definition at line 1237 of file Panzer_DOFManager_impl.hpp.

◆ buildOverlapMapFromElements()

template<typename LO , typename GO >
Teuchos::RCP< const Tpetra::Map< LO, GO, panzer::TpetraNodeType > > panzer::DOFManager< LO, GO >::buildOverlapMapFromElements ( const ElementBlockAccess access) const
protected

Build the overlapped communication map given an element access object. This map is used to construct the GIDs, and also to communicate the used GIDs. (this is steps 1 and 2)

Definition at line 1266 of file Panzer_DOFManager_impl.hpp.

◆ buildTaggedMultiVector()

template<typename LO , typename GO >
Teuchos::RCP< Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > > panzer::DOFManager< LO, GO >::buildTaggedMultiVector ( const ElementBlockAccess access)
protected

Build a tagged multivector (as defined in GUN paper) to use in global unknown numbering algorithm. Note that this is non-const. It does modify the elementBlockGIDCount member variable.

Definition at line 870 of file Panzer_DOFManager_impl.hpp.

◆ buildGlobalUnknowns_GUN()

template<typename LO , typename GO >
std::pair< Teuchos::RCP< Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > >, Teuchos::RCP< Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > > > panzer::DOFManager< LO, GO >::buildGlobalUnknowns_GUN ( const Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > &  tagged_overlap_mv,
Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > &  overlap_mv 
) const
protected

Build global unknowns using the algorithm in the Global Unknowns Numbering paper (GUN). This
returns a non-overlapped multi-vector with the unique global IDs as owned by this processor. The input tagged overlapped multi-vector (overlap_mv) is overwritten with the global IDs. Note fields on geometric entities that are not assigned a global ID are given an entry of -1.

Definition at line 702 of file Panzer_DOFManager_impl.hpp.

◆ fillGIDsFromOverlappedMV()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::fillGIDsFromOverlappedMV ( const ElementBlockAccess access,
std::vector< std::vector< GO > > &  elementGIDs,
const Tpetra::Map< LO, GO, panzer::TpetraNodeType > &  overlapmap,
const Tpetra::MultiVector< GO, LO, GO, panzer::TpetraNodeType > &  overlap_mv 
) const
protected

Definition at line 1299 of file Panzer_DOFManager_impl.hpp.

◆ buildLocalIdsFromOwnedAndGhostedElements()

template<typename LO , typename GO >
void panzer::DOFManager< LO, GO >::buildLocalIdsFromOwnedAndGhostedElements ( )
protected

Definition at line 1356 of file Panzer_DOFManager_impl.hpp.

Member Data Documentation

◆ connMngr_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
Teuchos::RCP<ConnManager<LO,GO> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::connMngr_
protected

Definition at line 408 of file Panzer_DOFManager.hpp.

◆ communicator_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
Teuchos::RCP<Teuchos::Comm<int> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::communicator_
protected

Definition at line 409 of file Panzer_DOFManager.hpp.

◆ fieldPatterns_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<Teuchos::RCP<const FieldPattern> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldPatterns_
protected

Definition at line 413 of file Panzer_DOFManager.hpp.

◆ fieldTypes_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<FieldType> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldTypes_
protected

Definition at line 414 of file Panzer_DOFManager.hpp.

◆ fieldNameToAID_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::map<std::string,int> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldNameToAID_
protected

Definition at line 415 of file Panzer_DOFManager.hpp.

◆ blockOrder_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<std::string> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::blockOrder_
protected

Definition at line 417 of file Panzer_DOFManager.hpp.

◆ blockNameToID_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::map<std::string,int> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::blockNameToID_
protected

Definition at line 418 of file Panzer_DOFManager.hpp.

◆ blockToAssociatedFP_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<std::vector<int> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::blockToAssociatedFP_
protected

Definition at line 419 of file Panzer_DOFManager.hpp.

◆ fieldStringOrder_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<std::string> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldStringOrder_
protected

Definition at line 421 of file Panzer_DOFManager.hpp.

◆ fieldAIDOrder_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<int> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldAIDOrder_
protected

Definition at line 422 of file Panzer_DOFManager.hpp.

◆ ga_fp_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
Teuchos::RCP<const panzer::FieldPattern> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::ga_fp_
protected

Definition at line 425 of file Panzer_DOFManager.hpp.

◆ fa_fps_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<Teuchos::RCP<panzer::FieldAggPattern> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::fa_fps_
protected

Definition at line 426 of file Panzer_DOFManager.hpp.

◆ owned_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<GO> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::owned_
protected

Definition at line 428 of file Panzer_DOFManager.hpp.

◆ ghosted_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<GO> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::ghosted_
protected

Definition at line 429 of file Panzer_DOFManager.hpp.

◆ elementGIDs_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<std::vector< GO > > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::elementGIDs_
protected

Definition at line 432 of file Panzer_DOFManager.hpp.

◆ elementBlockGIDCount_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<int> panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::elementBlockGIDCount_
protected

Definition at line 436 of file Panzer_DOFManager.hpp.

◆ numFields_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
int panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::numFields_
protected

Definition at line 438 of file Panzer_DOFManager.hpp.

◆ buildConnectivityRun_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
bool panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::buildConnectivityRun_
protected

Definition at line 440 of file Panzer_DOFManager.hpp.

◆ requireOrientations_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
bool panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::requireOrientations_
protected

Definition at line 442 of file Panzer_DOFManager.hpp.

◆ orientation_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
std::vector<std::vector<signed char> > panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::orientation_
protected

Definition at line 443 of file Panzer_DOFManager.hpp.

◆ useTieBreak_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
bool panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::useTieBreak_
protected

Definition at line 445 of file Panzer_DOFManager.hpp.

◆ useNeighbors_

template<typename LocalOrdinalT, typename GlobalOrdinalT>
bool panzer::DOFManager< LocalOrdinalT, GlobalOrdinalT >::useNeighbors_
protected

Definition at line 446 of file Panzer_DOFManager.hpp.


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