Panzer  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Types | Public Member Functions | Public Attributes | Protected Attributes | List of all members
panzer::WorksetDetails Class Reference

#include <Panzer_Workset.hpp>

Inheritance diagram for panzer::WorksetDetails:
Inheritance graph
[legend]

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::SubcellConnectivitygetFaceConnectivity () const
 
const panzer::IntegrationRulegetIntegrationRule (const panzer::IntegrationDescriptor &description) const
 Grab the integration rule for a given integration description (throws error if integration doesn't exist) More...
 
const panzer::PureBasisgetBasis (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 SubcellConnectivitygetSubcellConnectivity (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_
 

Detailed Description

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.

Member Typedef Documentation

Definition at line 72 of file Panzer_Workset.hpp.

Constructor & Destructor Documentation

panzer::WorksetDetails::WorksetDetails ( )

Default constructor.

Definition at line 79 of file Panzer_Workset.cpp.

Member Function Documentation

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.

const std::string& panzer::WorksetDetails::getElementBlock ( ) const
inline

Get the element block id.

Definition at line 131 of file Panzer_Workset.hpp.

const std::string& panzer::WorksetDetails::getSideset ( ) const
inline

Get the sideset id (returns "" if not a sideset)

Definition at line 136 of file Panzer_Workset.hpp.

unsigned int panzer::WorksetDetails::numDimensions ( ) const
inline

Get the cell dimension for the mesh.

Definition at line 141 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::getSubcellIndex ( ) const
inline

Get the subcell index (returns -1 if not a subcell)

Definition at line 146 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::getSubcellDimension ( ) const
inline

Get the subcell dimension.

Definition at line 151 of file Panzer_Workset.hpp.

CellCoordArray panzer::WorksetDetails::getCellNodes ( ) const
inline

Get the node coordinates for the cells.

Definition at line 156 of file Panzer_Workset.hpp.

Kokkos::View<const int*,PHX::Device> panzer::WorksetDetails::getLocalCellIDs ( ) const
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:

| Subcell Name | Subcell Dimension

1D: | Node | 0

| Edge | 1

2D: | Node | 0 | Edge | 1

| Face | 2

3D: | Node | 0 | Edge | 1 | Face | 2

| Cell | 3

Exceptions
Ifsetup has not been called
Ifrequested subcell dimension larger than 'numDimensions()'
Parameters
[in]subcell_dimensionRequested subcell_dimension
Returns
SubcellConnectivity object containing connectivity information for 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.

Exceptions
Ifsetup has not been called
Parameters
[in]descriptionDescriptor for integration scheme
[in]lazy_versionGet an empty IntegrationValues2 object that will construct/allocate itself on demand (less memory - EXPERIMENTAL)
Returns
Object containing integration values

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)

Todo:
This needs to be const, but one path for workset construction requires non-const

Definition at line 406 of file Panzer_Workset.cpp.

int panzer::WorksetDetails::numCells ( ) const
inline

Number of total cells in workset (owned, ghost, and virtual)

Definition at line 274 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::numOwnedCells ( ) const
inline

Number of cells owned by this workset.

Definition at line 277 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::numGhostCells ( ) const
inline

Number of cells owned by a different workset.

Definition at line 280 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::numVirtualCells ( ) const
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.

Member Data Documentation

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.

PHX::View<const int*> panzer::WorksetDetails::cell_local_ids_k

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.

std::vector<Teuchos::RCP<panzer::IntegrationValues2<double> > > panzer::WorksetDetails::int_rules
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.

std::vector<Teuchos::RCP< panzer::BasisValues2<double> > > panzer::WorksetDetails::bases
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.

bool panzer::WorksetDetails::setup_
protected

Definition at line 292 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::num_owned_cells_
protected

Definition at line 294 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::num_ghost_cells_
protected

Definition at line 295 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::num_virtual_cells_
protected

Definition at line 296 of file Panzer_Workset.hpp.

int panzer::WorksetDetails::num_dimensions_
protected

Definition at line 298 of file Panzer_Workset.hpp.

std::string panzer::WorksetDetails::sideset_
protected

Definition at line 300 of file Panzer_Workset.hpp.

WorksetOptions panzer::WorksetDetails::options_
protected

Definition at line 302 of file Panzer_Workset.hpp.

Teuchos::RCP<const shards::CellTopology> panzer::WorksetDetails::cell_topology_
protected

Definition at line 304 of file Panzer_Workset.hpp.

std::map<size_t,Teuchos::RCP<const panzer::PureBasis > > panzer::WorksetDetails::_pure_basis_map
mutableprotected

Definition at line 308 of file Panzer_Workset.hpp.

std::map<size_t,Teuchos::RCP<const panzer::IntegrationRule > > panzer::WorksetDetails::_integration_rule_map
mutableprotected

Definition at line 309 of file Panzer_Workset.hpp.

std::map<size_t,Teuchos::RCP<const panzer::PointRule > > panzer::WorksetDetails::_point_rule_map
mutableprotected

Definition at line 310 of file Panzer_Workset.hpp.

std::map<size_t,Teuchos::RCP<const panzer::IntegrationValues2<double> > > panzer::WorksetDetails::integration_values_map_
mutableprotected

Definition at line 312 of file Panzer_Workset.hpp.

std::map<size_t,Teuchos::RCP<panzer::PointValues2<double> > > panzer::WorksetDetails::point_values_map_
mutableprotected

Definition at line 313 of file Panzer_Workset.hpp.

std::map<size_t,std::map<size_t,Teuchos::RCP<panzer::BasisValues2<double> > > > panzer::WorksetDetails::basis_integration_values_map_
mutableprotected

Definition at line 314 of file Panzer_Workset.hpp.

std::map<size_t,std::map<size_t,Teuchos::RCP<panzer::BasisValues2<double> > > > panzer::WorksetDetails::basis_point_values_map_
mutableprotected

Definition at line 315 of file Panzer_Workset.hpp.

Teuchos::RCP<panzer::SubcellConnectivity> panzer::WorksetDetails::face_connectivity_
protected

Definition at line 317 of file Panzer_Workset.hpp.


The documentation for this class was generated from the following files: