Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
panzer::DOFManager Class Reference

#include <Panzer_DOFManager.hpp>

Inheritance diagram for panzer::DOFManager:
Inheritance graph
[legend]

Classes

class  ElementBlockAccess
 

Public Member Functions

virtual ~DOFManager ()
 
 DOFManager ()
 
 DOFManager (const Teuchos::RCP< ConnManager > &connMngr, MPI_Comm mpiComm)
 
void setConnManager (const Teuchos::RCP< ConnManager > &connMngr, MPI_Comm mpiComm)
 Adds a Connection Manager that will be associated with this DOFManager. More...
 
Teuchos::RCP< const ConnManagergetConnManager () 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< panzer::GlobalOrdinal > &indices) const
 Get the set of indices owned by this processor. More...
 
void getGhostedIndices (std::vector< panzer::GlobalOrdinal > &indices) const
 Get the set of indices ghosted for this processor. More...
 
void getOwnedAndGhostedIndices (std::vector< panzer::GlobalOrdinal > &indices) const
 Get the set of owned and ghosted indices for this processor. More...
 
void getElementGIDsAsInt (panzer::LocalOrdinal localElementID, std::vector< int > &gids, const std::string &blockIdHint="") const
 Get the global IDs for a particular element. This function overwrites the gids variable. More...
 
void getOwnedIndicesAsInt (std::vector< int > &indices) const
 Get the set of indices owned by this processor. More...
 
void getGhostedIndicesAsInt (std::vector< int > &indices) const
 Get the set of indices ghosted for this processor. More...
 
void getOwnedAndGhostedIndicesAsInt (std::vector< int > &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 PHX::View< const int * > getGIDFieldOffsetsKokkos (const std::string &blockID, int fieldNum) const
 
const PHX::ViewOfViews3
< 1, PHX::View< const int * > > 
getGIDFieldOffsetsKokkos (const std::string &blockID, const std::vector< int > &fieldNum) const
 
void getElementGIDs (panzer::LocalOrdinal localElementID, std::vector< panzer::GlobalOrdinal > &gids, const std::string &blockIdHint="") const
 get associated GIDs for a given local element More...
 
virtual void buildGlobalUnknowns ()
 builds the global unknowns array More...
 
virtual 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
< panzer::LocalOrdinal > & 
getElementBlock (const std::string &blockId) const
 Get the owned element block. More...
 
void ownedIndices (const std::vector< panzer::GlobalOrdinal > &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 (panzer::LocalOrdinal 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< ConnManagerresetIndices ()
 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::GlobalIndexer
virtual ~GlobalIndexer ()
 Pure virtual destructor: prevents warnings with inline empty implementation. More...
 
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
 

Protected Member Functions

Teuchos::RCP< const
Tpetra::Map
< panzer::LocalOrdinal,
panzer::GlobalOrdinal,
panzer::TpetraNodeType > > 
runLocalRCMReordering (const Teuchos::RCP< const Tpetra::Map< panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > > &)
 
std::size_t blockIdToIndex (const std::string &blockId) const
 
virtual Teuchos::RCP< const
Tpetra::Map
< panzer::LocalOrdinal,
panzer::GlobalOrdinal,
panzer::TpetraNodeType > > 
buildOverlapMapFromElements (const ElementBlockAccess &access) const
 
virtual Teuchos::RCP
< Tpetra::MultiVector
< panzer::GlobalOrdinal,
panzer::LocalOrdinal,
panzer::GlobalOrdinal,
panzer::TpetraNodeType > > 
buildTaggedMultiVector (const ElementBlockAccess &access)
 
virtual std::pair
< Teuchos::RCP
< Tpetra::MultiVector
< panzer::GlobalOrdinal,
panzer::LocalOrdinal,
panzer::GlobalOrdinal,
panzer::TpetraNodeType >
>, Teuchos::RCP
< Tpetra::MultiVector
< panzer::GlobalOrdinal,
panzer::LocalOrdinal,
panzer::GlobalOrdinal,
panzer::TpetraNodeType > > > 
buildGlobalUnknowns_GUN (const Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &tagged_overlap_mv, Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &overlap_mv) const
 
virtual void fillGIDsFromOverlappedMV (const ElementBlockAccess &access, std::vector< std::vector< panzer::GlobalOrdinal > > &elementGIDs, const Tpetra::Map< panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &overlapmap, const Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &overlap_mv) const
 
void buildLocalIdsFromOwnedAndGhostedElements ()
 
- Protected Member Functions inherited from panzer::GlobalIndexer
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)
 

Protected Attributes

Teuchos::RCP< ConnManagerconnMngr_
 
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::FieldPattern
ga_fp_
 
std::vector< Teuchos::RCP
< panzer::FieldAggPattern > > 
fa_fps_
 
std::vector
< panzer::GlobalOrdinal > 
owned_
 
std::vector
< panzer::GlobalOrdinal > 
ghosted_
 
std::vector< std::vector
< panzer::GlobalOrdinal > > 
elementGIDs_
 
std::vector< int > elementBlockGIDCount_
 
int numFields_
 
bool buildConnectivityRun_
 
bool requireOrientations_
 
std::vector< std::vector
< signed char > > 
orientation_
 
bool useTieBreak_
 
bool useNeighbors_
 

Detailed Description

Definition at line 67 of file Panzer_DOFManager.hpp.

Constructor & Destructor Documentation

virtual panzer::DOFManager::~DOFManager ( )
inlinevirtual

Definition at line 70 of file Panzer_DOFManager.hpp.

panzer::DOFManager::DOFManager ( )

Definition at line 148 of file Panzer_DOFManager.cpp.

panzer::DOFManager::DOFManager ( const Teuchos::RCP< ConnManager > &  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 153 of file Panzer_DOFManager.cpp.

Member Function Documentation

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

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

Definition at line 160 of file Panzer_DOFManager.cpp.

Teuchos::RCP<const ConnManager> panzer::DOFManager::getConnManager ( ) const
inlinevirtual

Returns the connection manager currently being used.

Implements panzer::GlobalIndexer.

Definition at line 83 of file Panzer_DOFManager.hpp.

int panzer::DOFManager::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 179 of file Panzer_DOFManager.cpp.

int panzer::DOFManager::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 203 of file Panzer_DOFManager.cpp.

Teuchos::RCP< const FieldPattern > panzer::DOFManager::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 250 of file Panzer_DOFManager.cpp.

Teuchos::RCP< const FieldPattern > panzer::DOFManager::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 263 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getOwnedIndices ( std::vector< panzer::GlobalOrdinal > &  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::GlobalIndexer.

Definition at line 293 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getGhostedIndices ( std::vector< panzer::GlobalOrdinal > &  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::GlobalIndexer.

Definition at line 299 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getOwnedAndGhostedIndices ( std::vector< panzer::GlobalOrdinal > &  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::GlobalIndexer.

Definition at line 305 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getElementGIDsAsInt ( panzer::LocalOrdinal  localElmtId,
std::vector< int > &  gids,
const std::string &  blockIdHint = "" 
) const
virtual

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

Implements panzer::GlobalIndexer.

Definition at line 316 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getOwnedIndicesAsInt ( std::vector< int > &  indices) const
virtual

Get the set of indices owned by this processor.

Parameters
[out]Avector that will be filled with the indices owned by this processor.

Implements panzer::GlobalIndexer.

Definition at line 325 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getGhostedIndicesAsInt ( std::vector< int > &  indices) const
virtual

Get the set of indices ghosted for this processor.

Parameters
[out]Avector that will be filled with the indices ghosted for this processor.

Implements panzer::GlobalIndexer.

Definition at line 333 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getOwnedAndGhostedIndicesAsInt ( std::vector< int > &  indices) const
virtual

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

Parameters
[out]Avector that will be filled with the owned and ghosted indices for this processor.

Implements panzer::GlobalIndexer.

Definition at line 341 of file Panzer_DOFManager.cpp.

int panzer::DOFManager::getNumOwned ( ) const
virtual

Get the number of indices owned by this processor.

Returns
The number of indices owned by this processor.

Implements panzer::GlobalIndexer.

Definition at line 351 of file Panzer_DOFManager.cpp.

int panzer::DOFManager::getNumGhosted ( ) const
virtual

Get the number of indices ghosted for this processor.

Returns
The number of indices ghosted for this processor.

Implements panzer::GlobalIndexer.

Definition at line 357 of file Panzer_DOFManager.cpp.

int panzer::DOFManager::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::GlobalIndexer.

Definition at line 363 of file Panzer_DOFManager.cpp.

int panzer::DOFManager::getNumFields ( ) const
virtual

gets the number of fields

Implements panzer::GlobalIndexer.

Definition at line 369 of file Panzer_DOFManager.cpp.

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

Returns a std::vector of GID field offsets for a field in an element block.

Parameters
[in]blockID- The element block id
[in]fieldNum- The field number

Implements panzer::GlobalIndexer.

Definition at line 376 of file Panzer_DOFManager.cpp.

const PHX::View< const int * > panzer::DOFManager::getGIDFieldOffsetsKokkos ( const std::string &  blockID,
int  fieldNum 
) const

Returns a device View of GID field offsets for a field in an element block.

Parameters
[in]blockID- The element block id
[in]fieldNum- The field number

Definition at line 393 of file Panzer_DOFManager.cpp.

const PHX::ViewOfViews3< 1, PHX::View< const int * > > panzer::DOFManager::getGIDFieldOffsetsKokkos ( const std::string &  blockID,
const std::vector< int > &  fieldNum 
) const

Returns a View-of-Views of the GID field offsets for a vector of fields in an element block.

Parameters
[in]blockID- The element block id
[in]fieldNum- A vector field numbers

Definition at line 412 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getElementGIDs ( panzer::LocalOrdinal  localElementID,
std::vector< panzer::GlobalOrdinal > &  gids,
const std::string &  blockIdHint = "" 
) const
virtual

get associated GIDs for a given local element

Implements panzer::GlobalIndexer.

Definition at line 443 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::buildGlobalUnknowns ( )
virtual

builds the global unknowns array

Definition at line 449 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::buildGlobalUnknowns ( const Teuchos::RCP< const FieldPattern > &  geomPattern)
virtual

builds the global unknowns array

Definition at line 473 of file Panzer_DOFManager.cpp.

int panzer::DOFManager::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::GlobalIndexer.

Definition at line 974 of file Panzer_DOFManager.cpp.

Teuchos::RCP<Teuchos::Comm<int> > panzer::DOFManager::getComm ( ) const
inlinevirtual

Get communicator associated with this global indexer.

Implements panzer::GlobalIndexer.

Definition at line 237 of file Panzer_DOFManager.hpp.

Teuchos::RCP<const FieldPattern> panzer::DOFManager::getGeometricFieldPattern ( ) const
inline

Definition at line 240 of file Panzer_DOFManager.hpp.

void panzer::DOFManager::getElementBlockIds ( std::vector< std::string > &  elementBlockIds) const
inlinevirtual

What are the blockIds included in this connection manager?

Implements panzer::GlobalIndexer.

Definition at line 243 of file Panzer_DOFManager.hpp.

bool panzer::DOFManager::fieldInBlock ( const std::string &  field,
const std::string &  block 
) const
virtual

Is the specified field in the element block?

Implements panzer::GlobalIndexer.

Definition at line 1001 of file Panzer_DOFManager.cpp.

const std::vector< int > & panzer::DOFManager::getBlockFieldNumbers ( const std::string &  blockId) const
virtual

Get field numbers associated with a particular element block.

Implements panzer::GlobalIndexer.

Definition at line 1030 of file Panzer_DOFManager.cpp.

const std::pair< std::vector< int >, std::vector< int > > & panzer::DOFManager::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::GlobalIndexer.

Definition at line 1050 of file Panzer_DOFManager.cpp.

const std::vector<panzer::LocalOrdinal>& panzer::DOFManager::getElementBlock ( const std::string &  blockId) const
inlinevirtual

Get the owned element block.

Implements panzer::GlobalIndexer.

Definition at line 268 of file Panzer_DOFManager.hpp.

void panzer::DOFManager::ownedIndices ( const std::vector< panzer::GlobalOrdinal > &  indices,
std::vector< bool > &  isOwned 
) const
virtual

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

Implements panzer::GlobalIndexer.

Definition at line 1066 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::setFieldOrder ( const std::vector< std::string > &  fieldOrder)

Definition at line 1078 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::getFieldOrder ( std::vector< std::string > &  fieldOrder) const
virtual

Get the field order used by this global indexer.

Implements panzer::GlobalIndexer.

Definition at line 993 of file Panzer_DOFManager.cpp.

bool panzer::DOFManager::validFieldOrder ( const std::vector< std::string > &  proposed_fieldOrder)

Definition at line 1096 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::buildUnknownsOrientation ( )

Definition at line 1129 of file Panzer_DOFManager.cpp.

bool panzer::DOFManager::getOrientationsRequired ( ) const
inline

Definition at line 282 of file Panzer_DOFManager.hpp.

void panzer::DOFManager::setOrientationsRequired ( bool  ro)
inline

Definition at line 285 of file Panzer_DOFManager.hpp.

void panzer::DOFManager::getElementOrientation ( panzer::LocalOrdinal  localElmtId,
std::vector< double > &  gidsOrientation 
) const
virtual

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

Implements panzer::GlobalIndexer.

Definition at line 1200 of file Panzer_DOFManager.cpp.

const std::string & panzer::DOFManager::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::GlobalIndexer.

Definition at line 1115 of file Panzer_DOFManager.cpp.

Teuchos::RCP< ConnManager > panzer::DOFManager::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 1212 of file Panzer_DOFManager.cpp.

virtual int panzer::DOFManager::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::GlobalIndexer.

Definition at line 309 of file Panzer_DOFManager.hpp.

virtual int panzer::DOFManager::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::GlobalIndexer.

Definition at line 317 of file Panzer_DOFManager.hpp.

void panzer::DOFManager::printFieldInformation ( std::ostream &  os) const

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

Definition at line 1239 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::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 329 of file Panzer_DOFManager.hpp.

void panzer::DOFManager::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 337 of file Panzer_DOFManager.hpp.

std::size_t panzer::DOFManager::getNumberElementGIDArrays ( ) const
inline

Definition at line 346 of file Panzer_DOFManager.hpp.

Teuchos::RCP<const Tpetra::Map<panzer::LocalOrdinal,panzer::GlobalOrdinal,panzer::TpetraNodeType> > panzer::DOFManager::runLocalRCMReordering ( const Teuchos::RCP< const Tpetra::Map< panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > > &  )
protected

Use Zoltan2 to locally reorder with RCM.

std::size_t panzer::DOFManager::blockIdToIndex ( const std::string &  blockId) const
protected

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

Definition at line 1230 of file Panzer_DOFManager.cpp.

Teuchos::RCP< const Tpetra::Map< panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > > panzer::DOFManager::buildOverlapMapFromElements ( const ElementBlockAccess access) const
protectedvirtual

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 1258 of file Panzer_DOFManager.cpp.

Teuchos::RCP< Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > > panzer::DOFManager::buildTaggedMultiVector ( const ElementBlockAccess access)
protectedvirtual

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 867 of file Panzer_DOFManager.cpp.

std::pair< Teuchos::RCP< Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > >, Teuchos::RCP< Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > > > panzer::DOFManager::buildGlobalUnknowns_GUN ( const Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &  tagged_overlap_mv,
Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &  overlap_mv 
) const
protectedvirtual

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 718 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::fillGIDsFromOverlappedMV ( const ElementBlockAccess access,
std::vector< std::vector< panzer::GlobalOrdinal > > &  elementGIDs,
const Tpetra::Map< panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &  overlapmap,
const Tpetra::MultiVector< panzer::GlobalOrdinal, panzer::LocalOrdinal, panzer::GlobalOrdinal, panzer::TpetraNodeType > &  overlap_mv 
) const
protectedvirtual

Definition at line 1291 of file Panzer_DOFManager.cpp.

void panzer::DOFManager::buildLocalIdsFromOwnedAndGhostedElements ( )
protected

Definition at line 1348 of file Panzer_DOFManager.cpp.

Member Data Documentation

Teuchos::RCP<ConnManager> panzer::DOFManager::connMngr_
protected

Definition at line 412 of file Panzer_DOFManager.hpp.

Teuchos::RCP<Teuchos::Comm<int> > panzer::DOFManager::communicator_
protected

Definition at line 413 of file Panzer_DOFManager.hpp.

std::vector<Teuchos::RCP<const FieldPattern> > panzer::DOFManager::fieldPatterns_
protected

Definition at line 417 of file Panzer_DOFManager.hpp.

std::vector<FieldType> panzer::DOFManager::fieldTypes_
protected

Definition at line 418 of file Panzer_DOFManager.hpp.

std::map<std::string,int> panzer::DOFManager::fieldNameToAID_
protected

Definition at line 419 of file Panzer_DOFManager.hpp.

std::vector<std::string> panzer::DOFManager::blockOrder_
protected

Definition at line 421 of file Panzer_DOFManager.hpp.

std::map<std::string,int> panzer::DOFManager::blockNameToID_
protected

Definition at line 422 of file Panzer_DOFManager.hpp.

std::vector<std::vector<int> > panzer::DOFManager::blockToAssociatedFP_
protected

Definition at line 423 of file Panzer_DOFManager.hpp.

std::vector<std::string> panzer::DOFManager::fieldStringOrder_
protected

Definition at line 425 of file Panzer_DOFManager.hpp.

std::vector<int> panzer::DOFManager::fieldAIDOrder_
protected

Definition at line 426 of file Panzer_DOFManager.hpp.

Teuchos::RCP<const panzer::FieldPattern> panzer::DOFManager::ga_fp_
protected

Definition at line 429 of file Panzer_DOFManager.hpp.

std::vector<Teuchos::RCP<panzer::FieldAggPattern> > panzer::DOFManager::fa_fps_
protected

Definition at line 430 of file Panzer_DOFManager.hpp.

std::vector<panzer::GlobalOrdinal> panzer::DOFManager::owned_
protected

Definition at line 432 of file Panzer_DOFManager.hpp.

std::vector<panzer::GlobalOrdinal> panzer::DOFManager::ghosted_
protected

Definition at line 433 of file Panzer_DOFManager.hpp.

std::vector<std::vector< panzer::GlobalOrdinal > > panzer::DOFManager::elementGIDs_
protected

Definition at line 436 of file Panzer_DOFManager.hpp.

std::vector<int> panzer::DOFManager::elementBlockGIDCount_
protected

Definition at line 440 of file Panzer_DOFManager.hpp.

int panzer::DOFManager::numFields_
protected

Definition at line 442 of file Panzer_DOFManager.hpp.

bool panzer::DOFManager::buildConnectivityRun_
protected

Definition at line 444 of file Panzer_DOFManager.hpp.

bool panzer::DOFManager::requireOrientations_
protected

Definition at line 446 of file Panzer_DOFManager.hpp.

std::vector<std::vector<signed char> > panzer::DOFManager::orientation_
protected

Definition at line 447 of file Panzer_DOFManager.hpp.

bool panzer::DOFManager::useTieBreak_
protected

Definition at line 449 of file Panzer_DOFManager.hpp.

bool panzer::DOFManager::useNeighbors_
protected

Definition at line 450 of file Panzer_DOFManager.hpp.


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