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

#include <Panzer_GatherSolution_BlockedTpetra.hpp>

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

Classes

struct  LessThan
 

Public Types

typedef std::pair< int,
GlobalOrdinalT > 
GlobalOrdinal
 
typedef LocalOrdinalT LocalOrdinal
 
typedef std::map< int,
std::string >::const_iterator 
const_field_iterator
 

Public Member Functions

virtual ~BlockedDOFManager ()
 
 BlockedDOFManager ()
 
 BlockedDOFManager (const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &connMngr, MPI_Comm mpiComm)
 
virtual Teuchos::RCP
< Teuchos::Comm< int > > 
getComm () const
 
int getFieldNum (const std::string &str) const
 Get the number used for access to this field. More...
 
const std::string & getFieldString (int num) const
 Get the string name associated with a field number. More...
 
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
< LocalOrdinal > & 
getElementBlock (const std::string &blockId) const
 
virtual const std::vector< int > & getBlockFieldNumbers (const std::string &block) const
 
void getElementGIDs (LocalOrdinalT localElmtId, std::vector< GlobalOrdinal > &gids, const std::string &blockIdHint="") const
 Get the global IDs for a particular element. This function overwrites the gids variable. 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< 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. The first vector returned contains the index into the GIDs array. The second vector specifies the basis function IDs. More...
 
virtual void getOwnedIndices (std::vector< GlobalOrdinal > &indices) const
 Get the set of indices owned by this processor. More...
 
virtual void getGhostedIndices (std::vector< GlobalOrdinal > &indices) const
 Get the set of indices ghosted for this processor. More...
 
virtual void getOwnedAndGhostedIndices (std::vector< GlobalOrdinal > &indices) const
 Get the set of owned and ghosted indices for this processor. More...
 
virtual int getNumOwned () const
 Get the number of indices owned by this processor. More...
 
virtual int getNumGhosted () const
 Get the number of indices ghosted for this processor. More...
 
virtual int getNumOwnedAndGhosted () const
 Get the number of owned and ghosted indices for this processor. More...
 
virtual void ownedIndices (const std::vector< GlobalOrdinal > &indices, std::vector< bool > &isOwned) const
 
void setUseDOFManagerFEI (bool useFEI)
 Use the FEI DOF manager internally, or the standard version. More...
 
bool getUseDOFManagerFEI () const
 which DOF Manager is used internally? More...
 
void setConnManager (const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &connMngr, MPI_Comm mpiComm)
 Set the connection manager and MPI_Comm objects. More...
 
Teuchos::RCP< const FieldPatterngetGeometricFieldPattern () const
 
Teuchos::RCP< ConnManager
< LocalOrdinalT,
GlobalOrdinalT > > 
resetIndices ()
 Reset the indicies for this DOF manager. More...
 
void addField (const std::string &str, const Teuchos::RCP< const FieldPattern > &pattern)
 Add a field to the DOF manager. More...
 
void addField (const std::string &blockId, const std::string &str, const Teuchos::RCP< const FieldPattern > &pattern)
 
void setFieldOrder (const std::vector< std::vector< std::string > > &fieldOrder)
 
int getNumFieldBlocks () const
 
void getFieldOrder (std::vector< std::vector< std::string > > &fieldOrder) const
 
void getFieldOrder (std::vector< std::string > &) const
 
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...
 
int getNumFields () const
 How many fields are handled by this manager. More...
 
Teuchos::RCP< const
ConnManager< LocalOrdinalT,
GlobalOrdinalT > > 
getConnManager () const
 
Teuchos::RCP< ConnManager
< LocalOrdinalT,
GlobalOrdinalT > > 
getConnManager ()
 
virtual Teuchos::RCP< const
ConnManagerBase< LocalOrdinalT > > 
getConnManagerBase () const
 Returns the connection manager currently being used. More...
 
virtual void buildGlobalUnknowns ()
 
virtual void buildGlobalUnknowns (const Teuchos::RCP< const FieldPattern > &geomPattern)
 
virtual void buildGlobalUnknowns (const std::vector< Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > > &fieldBlockManagers)
 
void printFieldInformation (std::ostream &os) const
 
bool validFieldOrder (const std::vector< std::vector< std::string > > &fieldOrder_ut, const std::set< std::string > &fields) const
 
void registerFields (bool buildSubUGIs)
 
bool fieldsRegistered () const
 
const std::vector
< Teuchos::RCP
< UniqueGlobalIndexer
< LocalOrdinalT,
GlobalOrdinalT > > > & 
getFieldDOFManagers () const
 
int getMaxSubFieldNumber () const
 
int getFieldBlock (int fieldNum) const
 
int getBlockGIDOffset (const std::string &elementBlock, int fieldBlock) const
 
bool getOrientationsRequired () const
 
void setOrientationsRequired (bool ro)
 
void enableTieBreak (bool useTieBreak)
 
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...
 
- Public Member Functions inherited from panzer::UniqueGlobalIndexer< LocalOrdinalT, std::pair< int, 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
 
void getElementLIDs (Kokkos::View< const int *, PHX::Device > cellIds, Kokkos::View< LocalOrdinalT **, PHX::Device > lids) const
 
const Kokkos::View< const
LocalOrdinalT
**, Kokkos::LayoutRight,
PHX::Device > 
getLIDs () const
 
- Public Member Functions inherited from panzer::UniqueGlobalIndexerBase
virtual ~UniqueGlobalIndexerBase ()=0
 Pure virtual destructor: prevents warnings with inline empty implementation. More...
 

Protected Types

typedef std::map
< Teuchos::Tuple< int, 3 >
, std::pair< std::vector< int >
, std::vector< int >
>, LessThan
TupleToVectorPairMap
 

Protected Member Functions

Teuchos::RCP
< UniqueGlobalIndexer
< LocalOrdinalT,
GlobalOrdinalT > > 
buildNewIndexer (const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &connManager, MPI_Comm mpiComm) const
 
void setOrientationsRequired (const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &indexer, bool required) const
 
void buildGlobalUnknowns (const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &indexer, const Teuchos::RCP< const FieldPattern > &geomPattern) const
 
int getElementBlockGIDCount (const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &indexer, const std::string &elementBlock) const
 
int getElementBlockGIDCount (const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &indexer, const std::size_t &blockIndex) const
 
void printFieldInformation (const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &indexer, std::ostream &os) const
 
void addFieldsToFieldBlockManager (const std::vector< std::string > &activeFields, UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > &fieldBlockManager) const
 
void addFieldsToFieldBlockManager (const std::vector< std::string > &activeFields, DOFManager< LocalOrdinalT, GlobalOrdinalT > &fieldBlockManager) const
 
- Protected Member Functions inherited from panzer::UniqueGlobalIndexer< LocalOrdinalT, std::pair< int, 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, std::pair< int, GlobalOrdinalT > > &src)
 

Protected Attributes

Teuchos::RCP< ConnManager
< LocalOrdinalT,
GlobalOrdinalT > > 
connMngr_
 
std::map< std::string, int > fieldStrToNum_
 field string ==> field number More...
 
std::map< int, std::string > fieldNumToStr_
 field number ==> field string More...
 
std::map< int, int > fieldNumToFieldBlk_
 field number ==> field block More...
 
std::map< std::pair
< std::string, std::string >
, Teuchos::RCP< const
FieldPattern > > 
fieldStringToPattern_
 (block ID x field string) ==> pattern More...
 
std::map< std::string,
std::set< std::string > > 
blockIdToFieldStrings_
 block ID ==> field strings More...
 
std::map< std::string,
std::vector< int > > 
blockIdToFieldNumbers_
 block ID ==> field numbers More...
 
std::map< std::pair
< std::string, int >, int > 
blockGIDOffset_
 (element block,field block) ==> gid offset More...
 
std::unordered_set
< GlobalOrdinal,
panzer::pair_hash
ownedGIDHashTable_
 
std::vector< std::vector
< std::string > > 
fieldOrder_
 
bool fieldsRegistered_
 
Teuchos::RCP< const FieldPatterngeomPattern_
 
Teuchos::RCP< Teuchos::MpiComm
< int > > 
communicator_
 
std::vector< Teuchos::RCP
< UniqueGlobalIndexer
< LocalOrdinalT,
GlobalOrdinalT > > > 
fieldBlockManagers_
 
MPI_Comm mpiComm_
 
int maxSubFieldNum_
 
std::map< std::string,
std::map< int, std::vector
< int > > > 
gidFieldOffsets_
 
std::map< std::string,
TupleToVectorPairMap
gidFieldOffsets_closure_
 
bool requireOrientations_
 
bool useDOFManagerFEI_
 
bool useTieBreak_
 

Detailed Description

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

Definition at line 68 of file Panzer_GatherSolution_BlockedTpetra.hpp.

Member Typedef Documentation

template<typename LocalOrdinalT , typename GlobalOrdinalT >
typedef std::pair<int,GlobalOrdinalT> panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::GlobalOrdinal

Definition at line 72 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
typedef LocalOrdinalT panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::LocalOrdinal

Definition at line 73 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
typedef std::map<int,std::string>::const_iterator panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::const_field_iterator

Definition at line 74 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
typedef std::map<Teuchos::Tuple<int,3>, std::pair<std::vector<int>,std::vector<int> >,LessThan> panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::TupleToVectorPairMap
protected

Definition at line 577 of file Panzer_BlockedDOFManager.hpp.

Constructor & Destructor Documentation

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

Definition at line 76 of file Panzer_BlockedDOFManager.hpp.

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

Definition at line 63 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::BlockedDOFManager ( 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 68 of file Panzer_BlockedDOFManager_impl.hpp.

Member Function Documentation

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::setUseDOFManagerFEI ( bool  useFEI)
inline

Use the FEI DOF manager internally, or the standard version.

Definition at line 245 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
bool panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getUseDOFManagerFEI ( ) const
inline

which DOF Manager is used internally?

Definition at line 250 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::setConnManager ( const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &  connMngr,
MPI_Comm  mpiComm 
)

Set the connection manager and MPI_Comm objects.

Set the connection manager and MPI_Comm objects. If this method is called more than once, the behavior is to reset the indices in the DOF manager. However, the fields will be the same (this assumes that the element blocks are consistent with the fields). The indices will need to be rebuilt by calling buildGlobalUnknowns.

Parameters
[in]connMngrConnection manager to use.
[in]mpiCommCommunicator to use.

Definition at line 482 of file Panzer_BlockedDOFManager_impl.hpp.

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

Get the FieldPattern describing the geometry used for this problem. If it has not been constructed then null is returned.

Definition at line 272 of file Panzer_BlockedDOFManager.hpp.

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

Reset the indicies 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 503 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::addField ( const std::string &  str,
const Teuchos::RCP< const FieldPattern > &  pattern 
)

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
Note
addField cannot be called after buildGlobalUnknowns or registerFields.

Definition at line 515 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::addField ( const std::string &  blockId,
const std::string &  str,
const Teuchos::RCP< const FieldPattern > &  pattern 
)

Definition at line 527 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::setFieldOrder ( const std::vector< std::vector< std::string > > &  fieldOrder)

Set the ordering of the fields to be used internally. This controls to some extent the local ordering (on a node or edge) of the individual fields.

Parameters
[in]fieldOrderVector of field IDs order in the correct way
Note
If no ordering is set then the default ordering is alphabetical on the field names (as dictated by std::map<std::string,*>).

Definition at line 858 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getNumFieldBlocks ( ) const

Return the number of field blocks associated with this manager. If the field order has not been set then this method returns 1.

Definition at line 1131 of file Panzer_BlockedDOFManager_impl.hpp.

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

Get the field order used. Return the field strings.

Definition at line 866 of file Panzer_BlockedDOFManager_impl.hpp.

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

Get the field order used by this global indexer.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, std::pair< int, GlobalOrdinalT > >.

Definition at line 320 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP< const FieldPattern > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::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 1092 of file Panzer_BlockedDOFManager_impl.hpp.

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

How many fields are handled by this manager.

How many fields are handled by this manager.

Returns
The number of fields used by this manager.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, std::pair< int, GlobalOrdinalT > >.

Definition at line 872 of file Panzer_BlockedDOFManager_impl.hpp.

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

Returns the connection manager current being used.

Definition at line 348 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP<ConnManager<LocalOrdinalT,GlobalOrdinalT> > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getConnManager ( )
inline

Returns the connection manager current being used.

Definition at line 353 of file Panzer_BlockedDOFManager.hpp.

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

Returns the connection manager currently being used.

Implements panzer::UniqueGlobalIndexer< LocalOrdinalT, std::pair< int, GlobalOrdinalT > >.

Definition at line 356 of file Panzer_BlockedDOFManager.hpp.

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

build the global unknown numberings

  1. this builds the pattens
  2. Build a default geometric pattern to pass to the connection manager
  3. initializes the connectivity
  4. calls initComplete

Definition at line 1035 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::buildGlobalUnknowns ( const Teuchos::RCP< const FieldPattern > &  geomPattern)
virtual

build the global unknown numberings

  1. this builds the pattens
  2. calls initComplete

This method allows a different geometric field pattern to used. It does not call the ConnManger::buildConnectivity, and just uses the provided field pattern as a the geometric pattern. Note this requires that ConnManager::buildConnectivity has already been called.

Note
It might be useful (and fun!) to add a listener on to this function to notify interested parties of possible changes to the unknown structure and CRS matrix graph.

Definition at line 1000 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::buildGlobalUnknowns ( const std::vector< Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > > &  fieldBlockManagers)
virtual

This method simply builds the global unknowns by using the passed in global indexers. The internal connection manager must use the underlying connection manager for all the global indexers. Finally only global indexers of type DOFManager can be used at the moment.

Note
The type of global indexer, and agreement with the geometric field pattern are all checked.

Definition at line 892 of file Panzer_BlockedDOFManager_impl.hpp.

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

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

Definition at line 1062 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
bool panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::validFieldOrder ( const std::vector< std::vector< std::string > > &  fieldOrder_ut,
const std::set< std::string > &  fields 
) const

Check the validity of a field order. This is used internally as a sanity check. Checks for no repeats, bogus fields, and all fields being included.

Parameters
[in]fieldOrder_utField order vector under test (ut).
Returns
true if the vector is valid, false otherwise.

Definition at line 1112 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::registerFields ( bool  buildSubUGIs)

This builds all numbers for the fields as well as constructing a default field orderand validating the user specified field order.

Definition at line 539 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
bool panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldsRegistered ( ) const
inline

Has the method registerFields been called?

Definition at line 416 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
const std::vector<Teuchos::RCP<UniqueGlobalIndexer<LocalOrdinalT,GlobalOrdinalT> > >& panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getFieldDOFManagers ( ) const
inline

Extract the field DOFManagers used underneath to define the global unknowns.

Definition at line 423 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getMaxSubFieldNumber ( ) const
inline

Return the maximum field number returned by any sub DOFManager. Mostly exposed for testing purposes.

Definition at line 429 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getFieldBlock ( int  fieldNum) const
inline

Get field block associated with this field number.

Note
No bounds checking is performed in this method

Definition at line 436 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getBlockGIDOffset ( const std::string &  elementBlock,
int  fieldBlock 
) const
inline

Get GID offset for a particular field block.

Note
No bounds checking is performed in this method

Definition at line 443 of file Panzer_BlockedDOFManager.hpp.

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

Return if the orientations have been set to required.

Definition at line 456 of file Panzer_BlockedDOFManager.hpp.

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

Enable computation of the orientations.

Definition at line 461 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::enableTieBreak ( bool  useTieBreak)
inline

Enable TieBreak in sub dofmanger

Definition at line 466 of file Panzer_BlockedDOFManager.hpp.

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

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, std::pair< int, GlobalOrdinalT > >.

Definition at line 778 of file Panzer_BlockedDOFManager_impl.hpp.

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

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, std::pair< int, GlobalOrdinalT > >.

Definition at line 789 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::buildNewIndexer ( const Teuchos::RCP< ConnManager< LocalOrdinalT, GlobalOrdinalT > > &  connManager,
MPI_Comm  mpiComm 
) const
protected

Build a new indexer. The concrete type is specified internally by this object (FEI version standard)

Definition at line 679 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::setOrientationsRequired ( const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &  indexer,
bool  required 
) const
protected

Do appropriate casting below and set orientations for a particular indexer. (handles FEI versus standard DOFManager)

Definition at line 691 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::buildGlobalUnknowns ( const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &  indexer,
const Teuchos::RCP< const FieldPattern > &  geomPattern 
) const
protected

Do appropriate casting below and call buildGlobalUnknowns for a particular indexer. (handles FEI versus standard DOFManager)

Definition at line 712 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getElementBlockGIDCount ( const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &  indexer,
const std::string &  elementBlock 
) const
protected

Do appropriate casting below and call getElementBlockGIDCount for a particular indexer. (handles FEI versus standard DOFManager)

Definition at line 754 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::getElementBlockGIDCount ( const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &  indexer,
const std::size_t &  blockIndex 
) const
protected

Do appropriate casting below and call getElementBlockGIDCount for a particular indexer. (handles FEI versus standard DOFManager)

Definition at line 766 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::printFieldInformation ( const Teuchos::RCP< UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > > &  indexer,
std::ostream &  os 
) const
protected

Do appropriate casting below and call printFieldInformation for a particular indexer. (handles FEI versus standard DOFManager)

Definition at line 733 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::addFieldsToFieldBlockManager ( const std::vector< std::string > &  activeFields,
UniqueGlobalIndexer< LocalOrdinalT, GlobalOrdinalT > &  fieldBlockManager 
) const
protected

This routine calls the addField method on the fieldBlockManager adding all the fields it is supposed to control, and then calls registerFields.

This method assumes that the activeFields are a legitimate ordering for the local field block.

Definition at line 800 of file Panzer_BlockedDOFManager_impl.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
void panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::addFieldsToFieldBlockManager ( const std::vector< std::string > &  activeFields,
DOFManager< LocalOrdinalT, GlobalOrdinalT > &  fieldBlockManager 
) const
protected

This routine calls the addField method on the fieldBlockManager adding all the fields it is supposed to control, and then calls registerFields.

This method assumes that the activeFields are a legitimate ordering for the local field block.

Definition at line 825 of file Panzer_BlockedDOFManager_impl.hpp.

Member Data Documentation

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP<ConnManager<LocalOrdinalT,GlobalOrdinalT> > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::connMngr_
protected

Definition at line 528 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::unordered_set<GlobalOrdinal,panzer::pair_hash> panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::ownedGIDHashTable_
protected

Definition at line 556 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::vector<std::vector<std::string> > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldOrder_
protected

Definition at line 558 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
bool panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldsRegistered_
protected

Definition at line 560 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP<const FieldPattern> panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::geomPattern_
protected

Definition at line 562 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
Teuchos::RCP<Teuchos::MpiComm<int> > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::communicator_
protected

Definition at line 563 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::vector<Teuchos::RCP<UniqueGlobalIndexer<LocalOrdinalT,GlobalOrdinalT> > > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::fieldBlockManagers_
protected

Definition at line 565 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
MPI_Comm panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::mpiComm_
protected

Definition at line 567 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
int panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::maxSubFieldNum_
protected

Definition at line 568 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::map<std::string,std::map<int,std::vector<int> > > panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::gidFieldOffsets_
mutableprotected

Maps: elem block ids ==> (fieldNum ==> gidFieldOffsets vector) This uses lazy evaluation for construction.

Definition at line 573 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
std::map<std::string,TupleToVectorPairMap> panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::gidFieldOffsets_closure_
mutableprotected

Maps: elem block ids ==> ( (fieldNum,subcellDim,subcellId) ==> closure vector pair) This uses lazy evaluation for construction.

Definition at line 582 of file Panzer_BlockedDOFManager.hpp.

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

Definition at line 584 of file Panzer_BlockedDOFManager.hpp.

template<typename LocalOrdinalT , typename GlobalOrdinalT >
bool panzer::BlockedDOFManager< LocalOrdinalT, GlobalOrdinalT >::useDOFManagerFEI_
protected

Definition at line 586 of file Panzer_BlockedDOFManager.hpp.

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

Definition at line 587 of file Panzer_BlockedDOFManager.hpp.


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