Panzer
Version of the Day
|
#include <Panzer_Workset.hpp>
Public Types | |
typedef PHX::MDField< double, Cell, NODE, Dim > | CellCoordArray |
Public Member Functions | |
WorksetDetails () | |
Default constructor. More... | |
void | setup (const LocalMeshPartition &partition, const WorksetOptions &options) |
Constructs the workset details from a given chunk of the mesh. More... | |
const panzer::SubcellConnectivity & | getFaceConnectivity () const |
const panzer::IntegrationRule & | getIntegrationRule (const panzer::IntegrationDescriptor &description) const |
Grab the integration rule for a given integration description (throws error if integration doesn't exist) More... | |
const panzer::PureBasis & | getBasis (const panzer::BasisDescriptor &description) const |
Grab the pure basis (contains data layouts) for a given basis description (throws error if integration doesn't exist) More... | |
const std::string & | getElementBlock () const |
Get the element block id. More... | |
const std::string & | getSideset () const |
Get the sideset id (returns "" if not a sideset) More... | |
unsigned int | numDimensions () const |
Get the cell dimension for the mesh. More... | |
int | getSubcellIndex () const |
Get the subcell index (returns -1 if not a subcell) More... | |
int | getSubcellDimension () const |
Get the subcell dimension. More... | |
CellCoordArray | getCellNodes () const |
Get the node coordinates for the cells. More... | |
Kokkos::View< const int *, PHX::Device > | getLocalCellIDs () const |
Get the local cell IDs for the workset. More... | |
const SubcellConnectivity & | getSubcellConnectivity (const unsigned int subcell_dimension) const |
Get the subcell connectivity for the workset topology. More... | |
bool | hasSubcellConnectivity (const unsigned int subcell_dimension) const |
Check if subcell connectivity exists for a given dimension. More... | |
const panzer::IntegrationValues2 < double > & | getIntegrationValues (const panzer::IntegrationDescriptor &description, const bool lazy_version=false) const |
Get the integration values for a given integration description. More... | |
const panzer::BasisValues2 < double > & | getBasisValues (const panzer::BasisDescriptor &basis_description, const bool lazy_version=false) const |
panzer::BasisValues2< double > & | getBasisValues (const panzer::BasisDescriptor &basis_description, const panzer::IntegrationDescriptor &integration_description, const bool lazy_version=false) const |
const panzer::BasisValues2 < double > & | getBasisValues (const panzer::BasisDescriptor &basis_description, const panzer::PointDescriptor &point_description, const bool lazy_version=false) const |
panzer::PointValues2< double > & | getPointValues (const panzer::PointDescriptor &point_description) const |
Grab the basis values for a given basis description and integration description (throws error if it doesn't exist) More... | |
int | numCells () const |
Number of total cells in workset (owned, ghost, and virtual) More... | |
int | numOwnedCells () const |
Number of cells owned by this workset. More... | |
int | numGhostCells () const |
Number of cells owned by a different workset. More... | |
int | numVirtualCells () const |
Number of cells not owned by any workset - these are used for boundary conditions. More... | |
void | setNumberOfCells (const int owned_cells, const int ghost_cells, const int virtual_cells) |
Provides access to set numbers of cells (required for backwards compatibility) More... | |
Public Attributes | |
int | num_cells |
DEPRECATED - use: numCells() More... | |
int | subcell_dim |
DEPRECATED - use: getSubcellDimension() More... | |
PHX::View< const int * > | cell_local_ids_k |
std::vector< size_t > | cell_local_ids |
CellCoordArray | cell_node_coordinates |
DEPRECATED - use: getCellNodes() More... | |
std::string | block_id |
DEPRECATED - use: getElementBlock() More... | |
int | subcell_index |
DEPRECATED - use: getSubcellIndex() More... | |
Teuchos::RCP< std::vector< int > > | ir_degrees |
If workset corresponds to a sub cell, what is the index? More... | |
std::vector< Teuchos::RCP < panzer::IntegrationValues2 < double > > > | int_rules |
Teuchos::RCP< std::vector < std::string > > | basis_names |
Value corresponds to basis type. Use the offest for indexing. More... | |
std::vector< Teuchos::RCP < panzer::BasisValues2< double > > > | bases |
Static basis function data, key is basis name, value is index in the static_bases vector. More... | |
Protected Attributes | |
bool | setup_ |
int | num_owned_cells_ |
int | num_ghost_cells_ |
int | num_virtual_cells_ |
int | num_dimensions_ |
std::string | sideset_ |
WorksetOptions | options_ |
Teuchos::RCP< const shards::CellTopology > | cell_topology_ |
std::map< size_t, Teuchos::RCP < const panzer::PureBasis > > | _pure_basis_map |
std::map< size_t, Teuchos::RCP < const panzer::IntegrationRule > > | _integration_rule_map |
std::map< size_t, Teuchos::RCP < const panzer::PointRule > > | _point_rule_map |
std::map< size_t, Teuchos::RCP < const panzer::IntegrationValues2 < double > > > | integration_values_map_ |
std::map< size_t, Teuchos::RCP < panzer::PointValues2< double > > > | point_values_map_ |
std::map< size_t, std::map < size_t, Teuchos::RCP < panzer::BasisValues2< double > > > > | basis_integration_values_map_ |
std::map< size_t, std::map < size_t, Teuchos::RCP < panzer::BasisValues2< double > > > > | basis_point_values_map_ |
Teuchos::RCP < panzer::SubcellConnectivity > | face_connectivity_ |
This is used within the workset to make edge based (DG like) assembly an easier task. This basically allows separation of the workset abstraction from how it is accessed.
Definition at line 70 of file Panzer_Workset.hpp.
typedef PHX::MDField<double,Cell,NODE,Dim> panzer::WorksetDetails::CellCoordArray |
Definition at line 72 of file Panzer_Workset.hpp.
panzer::WorksetDetails::WorksetDetails | ( | ) |
Default constructor.
Definition at line 79 of file Panzer_Workset.cpp.
void panzer::WorksetDetails::setup | ( | const LocalMeshPartition & | partition, |
const WorksetOptions & | options | ||
) |
Constructs the workset details from a given chunk of the mesh.
Definition at line 94 of file Panzer_Workset.cpp.
const panzer::SubcellConnectivity & panzer::WorksetDetails::getFaceConnectivity | ( | ) | const |
Grab the face connectivity for this workset DEPRECATED - use: workset.getSubcellConnectivity(workset.numDimensions()-1)
Definition at line 194 of file Panzer_Workset.cpp.
const panzer::IntegrationRule & panzer::WorksetDetails::getIntegrationRule | ( | const panzer::IntegrationDescriptor & | description | ) | const |
Grab the integration rule for a given integration description (throws error if integration doesn't exist)
Definition at line 508 of file Panzer_Workset.cpp.
const panzer::PureBasis & panzer::WorksetDetails::getBasis | ( | const panzer::BasisDescriptor & | description | ) | const |
Grab the pure basis (contains data layouts) for a given basis description (throws error if integration doesn't exist)
Definition at line 539 of file Panzer_Workset.cpp.
|
inline |
Get the element block id.
Definition at line 131 of file Panzer_Workset.hpp.
|
inline |
Get the sideset id (returns "" if not a sideset)
Definition at line 136 of file Panzer_Workset.hpp.
|
inline |
Get the cell dimension for the mesh.
Definition at line 141 of file Panzer_Workset.hpp.
|
inline |
Get the subcell index (returns -1 if not a subcell)
Definition at line 146 of file Panzer_Workset.hpp.
|
inline |
Get the subcell dimension.
Definition at line 151 of file Panzer_Workset.hpp.
|
inline |
Get the node coordinates for the cells.
Definition at line 156 of file Panzer_Workset.hpp.
|
inline |
Get the local cell IDs for the workset.
Definition at line 161 of file Panzer_Workset.hpp.
const SubcellConnectivity & panzer::WorksetDetails::getSubcellConnectivity | ( | const unsigned int | subcell_dimension | ) | const |
Get the subcell connectivity for the workset topology.
Subcells are node/edge/face in association with dimension of mesh.
For example:
1D: | Node | 0
2D: | Node | 0 | Edge | 1
3D: | Node | 0 | Edge | 1 | Face | 2
If | setup has not been called |
If | requested subcell dimension larger than 'numDimensions()' |
[in] | subcell_dimension | Requested subcell_dimension |
Definition at line 184 of file Panzer_Workset.cpp.
bool panzer::WorksetDetails::hasSubcellConnectivity | ( | const unsigned int | subcell_dimension | ) | const |
Check if subcell connectivity exists for a given dimension.
Definition at line 175 of file Panzer_Workset.cpp.
const panzer::IntegrationValues2< double > & panzer::WorksetDetails::getIntegrationValues | ( | const panzer::IntegrationDescriptor & | description, |
const bool | lazy_version = false |
||
) | const |
Get the integration values for a given integration description.
If | setup has not been called |
[in] | description | Descriptor for integration scheme |
[in] | lazy_version | Get an empty IntegrationValues2 object that will construct/allocate itself on demand (less memory - EXPERIMENTAL) |
Definition at line 202 of file Panzer_Workset.cpp.
const panzer::BasisValues2< double > & panzer::WorksetDetails::getBasisValues | ( | const panzer::BasisDescriptor & | basis_description, |
const bool | lazy_version = false |
||
) | const |
Definition at line 264 of file Panzer_Workset.cpp.
panzer::BasisValues2< double > & panzer::WorksetDetails::getBasisValues | ( | const panzer::BasisDescriptor & | basis_description, |
const panzer::IntegrationDescriptor & | integration_description, | ||
const bool | lazy_version = false |
||
) | const |
Definition at line 295 of file Panzer_Workset.cpp.
const panzer::BasisValues2< double > & panzer::WorksetDetails::getBasisValues | ( | const panzer::BasisDescriptor & | basis_description, |
const panzer::PointDescriptor & | point_description, | ||
const bool | lazy_version = false |
||
) | const |
Definition at line 438 of file Panzer_Workset.cpp.
panzer::PointValues2< double > & panzer::WorksetDetails::getPointValues | ( | const panzer::PointDescriptor & | point_description | ) | const |
Grab the basis values for a given basis description and integration description (throws error if it doesn't exist)
Definition at line 406 of file Panzer_Workset.cpp.
|
inline |
Number of total cells in workset (owned, ghost, and virtual)
Definition at line 274 of file Panzer_Workset.hpp.
|
inline |
Number of cells owned by this workset.
Definition at line 277 of file Panzer_Workset.hpp.
|
inline |
Number of cells owned by a different workset.
Definition at line 280 of file Panzer_Workset.hpp.
|
inline |
Number of cells not owned by any workset - these are used for boundary conditions.
Definition at line 283 of file Panzer_Workset.hpp.
void panzer::WorksetDetails::setNumberOfCells | ( | const int | owned_cells, |
const int | ghost_cells, | ||
const int | virtual_cells | ||
) |
Provides access to set numbers of cells (required for backwards compatibility)
Definition at line 558 of file Panzer_Workset.cpp.
int panzer::WorksetDetails::num_cells |
DEPRECATED - use: numCells()
Definition at line 83 of file Panzer_Workset.hpp.
int panzer::WorksetDetails::subcell_dim |
DEPRECATED - use: getSubcellDimension()
Definition at line 86 of file Panzer_Workset.hpp.
Definition at line 89 of file Panzer_Workset.hpp.
std::vector<size_t> panzer::WorksetDetails::cell_local_ids |
Definition at line 92 of file Panzer_Workset.hpp.
CellCoordArray panzer::WorksetDetails::cell_node_coordinates |
DEPRECATED - use: getCellNodes()
Definition at line 95 of file Panzer_Workset.hpp.
std::string panzer::WorksetDetails::block_id |
DEPRECATED - use: getElementBlock()
Definition at line 98 of file Panzer_Workset.hpp.
int panzer::WorksetDetails::subcell_index |
DEPRECATED - use: getSubcellIndex()
Definition at line 101 of file Panzer_Workset.hpp.
Teuchos::RCP< std::vector<int> > panzer::WorksetDetails::ir_degrees |
If workset corresponds to a sub cell, what is the index?
Value correspondes to integration order. Use the offest for indexing.
Definition at line 105 of file Panzer_Workset.hpp.
|
mutable |
Definition at line 108 of file Panzer_Workset.hpp.
Teuchos::RCP< std::vector<std::string> > panzer::WorksetDetails::basis_names |
Value corresponds to basis type. Use the offest for indexing.
Definition at line 112 of file Panzer_Workset.hpp.
|
mutable |
Static basis function data, key is basis name, value is index in the static_bases vector.
Definition at line 116 of file Panzer_Workset.hpp.
|
protected |
Definition at line 292 of file Panzer_Workset.hpp.
|
protected |
Definition at line 294 of file Panzer_Workset.hpp.
|
protected |
Definition at line 295 of file Panzer_Workset.hpp.
|
protected |
Definition at line 296 of file Panzer_Workset.hpp.
|
protected |
Definition at line 298 of file Panzer_Workset.hpp.
|
protected |
Definition at line 300 of file Panzer_Workset.hpp.
|
protected |
Definition at line 302 of file Panzer_Workset.hpp.
|
protected |
Definition at line 304 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 308 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 309 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 310 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 312 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 313 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 314 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 315 of file Panzer_Workset.hpp.
|
protected |
Definition at line 317 of file Panzer_Workset.hpp.