|
Panzer
Version of the Day
|
Go to the documentation of this file.
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: "
373 std::size_t seed = 0;
WorksetDescriptor(const std::string &elementBlock, const int worksetSize=WorksetSizeType::CLASSIC_MODE, const bool requiresPartitioning=false, const bool applyOrientations=true)
bool applyOrientations_
Apply orientations - used for continuous discretizations with edge/face elements.
WorksetDescriptor(const std::string &elementBlock, const std::string &sideset, const int worksetSize=WorksetSizeType::CLASSIC_MODE, const bool requiresPartitioning=false, const bool applyOrientations=true)
int getWorksetSize() const
Get the requested workset size (default -2 (workset size is set elsewhere), -1 (largest possible work...
std::size_t operator()(const panzer::WorksetDescriptor &wd) const
bool requiresPartitioning_
Marks if the mesh require partitioning before generating worksets.
const std::string & getElementBlock(const int block=0) const
Get element block name.
void hash_combine(std::size_t &seed, const T &v)
Backwards compatibility mode that ignores the worksetSize in the WorksetDescriptor.
bool operator==(const WorksetDescriptor &a, const WorksetDescriptor &b)
Equality operation for use with hash tables and maps.
std::size_t hash_value(const WorksetDescriptor &wd)
Hash function that satisifies the stl hash interface.
std::ostream & operator<<(std::ostream &os, const AssemblyEngineInArgs &in)
int worksetSize_
Requested workset size.
bool connectsElementBlocks() const
Identifies this workset as an interface between two element blocks.
Workset size is set to the total number of local elements in the MPI process.
WorksetDescriptor blockDescriptor(const std::string &eBlock)
bool requiresPartitioning() const
Do we need to partition the local mesh prior to generating worksets.
bool applyOrientations() const
Workset size is set to zero.
std::string elementBlock_2_
Element block on other side of side.
std::string elementBlock_
Element block, required to be non-empty.
WorksetDescriptor sidesetDescriptor(const std::string &eBlock, const std::string &sideset)
WorksetSizeType
Special values for the workset size. When the workset size is set on the WorksetDescriptor an interge...
bool useSideset() const
This descriptor is for a side set.
std::string sideset_2_
Side set on other side of side, must be non-empty if useSideset_ is true and elementBlock2_ is not em...
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 sidesetVolumeDescriptor(const std::string &eBlock, const std::string &sideset)
std::string sideset_
Side set, must be non-empty if useSideset_ is true.
WorksetDescriptor(const std::string &elementBlock, const std::string &sideset, const bool sideAssembly)
bool sideAssembly() const
Expects side set assembly on volume.
const std::string & getSideset(const int block=0) const
Get sideset name.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)