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 103 of file Panzer_Workset.hpp.
typedef PHX::MDField<double,Cell,NODE,Dim> panzer::WorksetDetails::CellCoordArray |
Definition at line 105 of file Panzer_Workset.hpp.
panzer::WorksetDetails::WorksetDetails | ( | ) |
Default constructor.
Definition at line 111 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 126 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 226 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 540 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 571 of file Panzer_Workset.cpp.
|
inline |
Get the element block id.
Definition at line 164 of file Panzer_Workset.hpp.
|
inline |
Get the sideset id (returns "" if not a sideset)
Definition at line 169 of file Panzer_Workset.hpp.
|
inline |
Get the cell dimension for the mesh.
Definition at line 174 of file Panzer_Workset.hpp.
|
inline |
Get the subcell index (returns -1 if not a subcell)
Definition at line 179 of file Panzer_Workset.hpp.
|
inline |
Get the subcell dimension.
Definition at line 184 of file Panzer_Workset.hpp.
|
inline |
Get the node coordinates for the cells.
Definition at line 189 of file Panzer_Workset.hpp.
|
inline |
Get the local cell IDs for the workset.
Definition at line 194 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 216 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 207 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 234 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 296 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 327 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 470 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 438 of file Panzer_Workset.cpp.
|
inline |
Number of total cells in workset (owned, ghost, and virtual)
Definition at line 307 of file Panzer_Workset.hpp.
|
inline |
Number of cells owned by this workset.
Definition at line 310 of file Panzer_Workset.hpp.
|
inline |
Number of cells owned by a different workset.
Definition at line 313 of file Panzer_Workset.hpp.
|
inline |
Number of cells not owned by any workset - these are used for boundary conditions.
Definition at line 316 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 590 of file Panzer_Workset.cpp.
int panzer::WorksetDetails::num_cells |
DEPRECATED - use: numCells()
Definition at line 116 of file Panzer_Workset.hpp.
int panzer::WorksetDetails::subcell_dim |
DEPRECATED - use: getSubcellDimension()
Definition at line 119 of file Panzer_Workset.hpp.
Definition at line 122 of file Panzer_Workset.hpp.
std::vector<size_t> panzer::WorksetDetails::cell_local_ids |
Definition at line 125 of file Panzer_Workset.hpp.
CellCoordArray panzer::WorksetDetails::cell_node_coordinates |
DEPRECATED - use: getCellNodes()
Definition at line 128 of file Panzer_Workset.hpp.
std::string panzer::WorksetDetails::block_id |
DEPRECATED - use: getElementBlock()
Definition at line 131 of file Panzer_Workset.hpp.
int panzer::WorksetDetails::subcell_index |
DEPRECATED - use: getSubcellIndex()
Definition at line 134 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 138 of file Panzer_Workset.hpp.
|
mutable |
Definition at line 141 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 145 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 149 of file Panzer_Workset.hpp.
|
protected |
Definition at line 325 of file Panzer_Workset.hpp.
|
protected |
Definition at line 327 of file Panzer_Workset.hpp.
|
protected |
Definition at line 328 of file Panzer_Workset.hpp.
|
protected |
Definition at line 329 of file Panzer_Workset.hpp.
|
protected |
Definition at line 331 of file Panzer_Workset.hpp.
|
protected |
Definition at line 333 of file Panzer_Workset.hpp.
|
protected |
Definition at line 335 of file Panzer_Workset.hpp.
|
protected |
Definition at line 337 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 341 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 342 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 343 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 345 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 346 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 347 of file Panzer_Workset.hpp.
|
mutableprotected |
Definition at line 348 of file Panzer_Workset.hpp.
|
protected |
Definition at line 350 of file Panzer_Workset.hpp.