Panzer
Version of the Day
|
#include <Panzer_WorksetDescriptor.hpp>
Public Member Functions | |
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 bool sideAssembly) | |
WorksetDescriptor (const std::string &elementBlock, const std::string &sideset, const int worksetSize=WorksetSizeType::CLASSIC_MODE, const bool requiresPartitioning=false, const bool applyOrientations=true) | |
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 (const WorksetDescriptor &src)=default | |
Copy constructor. More... | |
const std::string & | getElementBlock (const int block=0) const |
Get element block name. More... | |
const std::string & | getSideset (const int block=0) const |
Get sideset name. More... | |
bool | sideAssembly () const |
Expects side set assembly on volume. More... | |
bool | connectsElementBlocks () const |
Identifies this workset as an interface between two element blocks. More... | |
bool | requiresPartitioning () const |
Do we need to partition the local mesh prior to generating worksets. More... | |
bool | useSideset () const |
This descriptor is for a side set. More... | |
int | getWorksetSize () const |
Get the requested workset size (default -2 (workset size is set elsewhere), -1 (largest possible workset size), >0 (workset size)) More... | |
bool | applyOrientations () const |
Private Attributes | |
std::string | elementBlock_ |
Element block, required to be non-empty. More... | |
std::string | elementBlock_2_ |
Element block on other side of side. More... | |
std::string | sideset_ |
Side set, must be non-empty if useSideset_ is true. More... | |
std::string | sideset_2_ |
Side set on other side of side, must be non-empty if useSideset_ is true and elementBlock2_ is not empty. More... | |
int | worksetSize_ |
Requested workset size. More... | |
bool | requiresPartitioning_ |
Marks if the mesh require partitioning before generating worksets. More... | |
bool | applyOrientations_ |
Apply orientations - used for continuous discretizations with edge/face elements. More... | |
bool | sideAssembly_ |
Class provides a simple description of the types of worksets that need to be constructed and used. This is a generalization of using strings and pairs of string to represent the element blocks and sidesets. It is primarily used in specifying the "domain" of the assembly algorithm, that is which elements will be used in the assembly process.
There are currently two construction paths supported, a CLASSIC path that is the legacy code that constructs worksets out of locally owned elements. The new path uses the PARTITIONED approach. The PARTITIONED approach supports creating worksets that might require ghosted and/or virtual cells commonly used in DG methods. For the CLASSIC mode, the workset size is determined by the deprecated CellData object in the WorksetNeeds. This is the current default for backwards compatibility. NOTE: For CLASSIC, this means that the worksetSize in this object is ignored! For PARTITIONED, used by DG codes, the worksetSize in the WorksetDescriptor is always used.
Definition at line 50 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Constructor specifying a lone element block with a requested workset size.
[in] | elementBlock | Name of the element block |
[in] | worksetSize | Requested workset size. This is an integer > 0 for a user specified size or can be of type WorksetSizeType for special cases |
[in] | requiresPartitioning | If set to true, uses the new path for building worksets with partitioning |
[in] | applyOrientations | If set to true, computes and applies orientations to relevant bases |
Definition at line 60 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Constructor that defines a side set. Note that the specified sideset must be a non-empty string.
[in] | elementBlock | Element block that includes the side |
[in] | sideset | Side set that is being used |
[in] | sideAssembly | Are integration rules and basis functions evaluated on the side or on the volume of the element. |
Definition at line 83 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Constructor that defines a side set. Note that the specified sideset must be a non-empty string.
Options for workset_size: EMPTY, FULL, SPECIAL, >0 EMPTY -> workset size is set by cellData in WorksetNeeds FULL -> workset size is set to largest possible value SPECIAL -> Special case >0 -> workset size is set to this value (overwrites WorksetNeeds)
[in] | element_block | Element block that includes the side |
[in] | sideset | Side set that is being used |
[in] | worksetSize | Requested workset size. This is an integer > 0 for a user specified size or can be of type WorksetSizeType for special cases |
[in] | requiresPartitioning | If set to true, uses the new path for building worksets with partitioning |
[in] | applyOrientations | If set to true, computes and applies orientations to relevant bases |
Definition at line 114 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Constructor that defines a side set. Note that the specified sideset must be a non-empty string.
Options for workset_size: -2, -1, 0, >0 -2 -> workset size is set by cellData in WorksetNeeds -1 -> workset size is set to largest possible value 0 -> Special case >0 -> workset size is set to this value (overwrites WorksetNeeds)
[in] | element_block_0 | Element block on one side of sideset_0 |
[in] | element_block_1 | Element block on other side of sideset_1 |
[in] | sideset_0 | Sideset of interest attached to element_block_0 |
[in] | sideset_1 | Sideset of interest attached to element_block_1 |
[in] | worksetSize | Requested workset size. This is an integer > 0 for a user specified size or can be of type WorksetSizeType for special cases |
[in] | requiresPartitioning | If set to true, uses the new path for building worksets with partitioning |
[in] | applyOrientations | If set to true, computes and applies orientations to relevant bases |
Definition at line 150 of file Panzer_WorksetDescriptor.hpp.
|
default |
Copy constructor.
Get element block name.
Only set block if this is an interface between two element blocks
[in] | block | Block id (0 or 1). |
Definition at line 186 of file Panzer_WorksetDescriptor.hpp.
Get sideset name.
Only set block if this is an interface between two element blocks
[in] | block | Block id (0 or 1). |
Definition at line 196 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Expects side set assembly on volume.
Definition at line 201 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Identifies this workset as an interface between two element blocks.
Definition at line 209 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Do we need to partition the local mesh prior to generating worksets.
Note that this is required if running surface integrals on a discontinuous discretization.
Definition at line 220 of file Panzer_WorksetDescriptor.hpp.
|
inline |
This descriptor is for a side set.
Definition at line 226 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Get the requested workset size (default -2 (workset size is set elsewhere), -1 (largest possible workset size), >0 (workset size))
Definition at line 231 of file Panzer_WorksetDescriptor.hpp.
|
inline |
Definition at line 234 of file Panzer_WorksetDescriptor.hpp.
|
private |
Element block, required to be non-empty.
Definition at line 239 of file Panzer_WorksetDescriptor.hpp.
|
private |
Element block on other side of side.
Definition at line 242 of file Panzer_WorksetDescriptor.hpp.
|
private |
Side set, must be non-empty if useSideset_
is true.
Definition at line 245 of file Panzer_WorksetDescriptor.hpp.
|
private |
Side set on other side of side, must be non-empty if useSideset_
is true and elementBlock2_
is not empty.
Definition at line 248 of file Panzer_WorksetDescriptor.hpp.
|
private |
Requested workset size.
Definition at line 251 of file Panzer_WorksetDescriptor.hpp.
|
private |
Marks if the mesh require partitioning before generating worksets.
Definition at line 254 of file Panzer_WorksetDescriptor.hpp.
|
private |
Apply orientations - used for continuous discretizations with edge/face elements.
Definition at line 257 of file Panzer_WorksetDescriptor.hpp.
|
private |
This indicates if side quadrature rules are constructed or volume rules are constructued. Ignored if useSideset_ is false.
Definition at line 263 of file Panzer_WorksetDescriptor.hpp.