43 #ifndef __Panzer_WorksetDescriptor_hpp__ 
   44 #define __Panzer_WorksetDescriptor_hpp__ 
  103                                    "WorksetDescriptor constr: Element block name must be non-empty!");
 
  116                     const std::string & sideset,
 
  126                                "WorksetDescriptor constr: Element block name must be non-empty!");
 
  128                                "WorksetDescriptor constr: Side set name must be non-empty!");
 
  147                     const std::string & sideset,
 
  159                                "WorksetDescriptor constr: Element block name must be non-empty!");
 
  161                                "WorksetDescriptor constr: Side set name must be non-empty!");
 
  183                     const std::string & elementBlock_1,
 
  184                     const std::string & sideset_0,
 
  185                     const std::string & sideset_1,
 
  199                                "WorksetDescriptor constr: Element block 0 name must be non-empty!");
 
  201                                "WorksetDescriptor constr: Side set 0 name must be non-empty!");
 
  203                                "WorksetDescriptor constr: Element block 1 name must be non-empty!");
 
  205                                "WorksetDescriptor constr: Side set 1 name must be non-empty!");
 
  318   std::size_t seed = 0;
 
  334     os << 
"Side descriptor: " 
  337     << 
"side assembly = " << (wd.
sideAssembly() ? 
"on" : 
"off");
 
  339     os << 
"Block descriptor: " 
  369 struct hash<panzer::WorksetDescriptor>
 
  373     std::size_t seed = 0;
 
Backwards compatibility mode that ignores the worksetSize in the WorksetDescriptor. 
 
WorksetSizeType
Special values for the workset size. When the workset size is set on the WorksetDescriptor an interge...
 
const std::string & getSideset(const int block=0) const 
Get sideset name. 
 
std::size_t hash_value(const WorksetDescriptor &wd)
Hash function that satisifies the stl hash interface. 
 
bool connectsElementBlocks() const 
Identifies this workset as an interface between two element blocks. 
 
bool applyOrientations_
Apply orientations - used for continuous discretizations with edge/face elements. ...
 
std::string sideset_
Side set, must be non-empty if useSideset_ is true. 
 
bool requiresPartitioning_
Marks if the mesh require partitioning before generating worksets. 
 
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
 
int worksetSize_
Requested workset size. 
 
const std::string & getElementBlock(const int block=0) const 
Get element block name. 
 
bool useSideset() const 
This descriptor is for a side set. 
 
WorksetDescriptor sidesetDescriptor(const std::string &eBlock, const std::string &sideset)
 
WorksetDescriptor(const std::string &elementBlock, const int worksetSize=WorksetSizeType::CLASSIC_MODE, const bool requiresPartitioning=false, const bool applyOrientations=true)
 
WorksetDescriptor(const std::string &elementBlock, const std::string &sideset, const int worksetSize=WorksetSizeType::CLASSIC_MODE, const bool requiresPartitioning=false, const bool applyOrientations=true)
 
bool operator==(const WorksetDescriptor &a, const WorksetDescriptor &b)
Equality operation for use with hash tables and maps. 
 
WorksetDescriptor(const std::string &elementBlock, const std::string &sideset, const bool sideAssembly)
 
std::size_t operator()(const panzer::WorksetDescriptor &wd) const 
 
WorksetDescriptor sidesetVolumeDescriptor(const std::string &eBlock, const std::string &sideset)
 
std::string elementBlock_
Element block, required to be non-empty. 
 
bool applyOrientations() const 
 
std::string sideset_2_
Side set on other side of side, must be non-empty if useSideset_ is true and elementBlock2_ is not em...
 
Workset size is set to zero. 
 
bool sideAssembly() const 
Expects side set assembly on volume. 
 
void hash_combine(std::size_t &seed, const T &v)
 
std::ostream & operator<<(std::ostream &os, const AssemblyEngineInArgs &in)
 
WorksetDescriptor(const std::string &elementBlock_0, const std::string &elementBlock_1, const std::string &sideset_0, const std::string &sideset_1, const int worksetSize=WorksetSizeType::CLASSIC_MODE, const bool requiresPartitioning=false, const bool applyOrientations=true)
 
WorksetDescriptor blockDescriptor(const std::string &eBlock)
 
const std::vector< std::pair< int, LocalOrdinal > > &pid_and_lid const
 
int getWorksetSize() const 
Get the requested workset size (default -2 (workset size is set elsewhere), -1 (largest possible work...
 
bool requiresPartitioning() const 
Do we need to partition the local mesh prior to generating worksets. 
 
std::string elementBlock_2_
Element block on other side of side. 
 
Workset size is set to the total number of local elements in the MPI process.