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

#include <Panzer_IntegrationRule.hpp>

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

Public Member Functions

 IntegrationRule (int cubature_degree, const panzer::CellData &cell_data)
 if side = -1 then we use the cell volume integration rule. More...
 
 IntegrationRule (const panzer::CellData &cell_data, const std::string &cv_type)
 
 IntegrationRule (const panzer::IntegrationDescriptor &description, const Teuchos::RCP< const shards::CellTopology > &cell_topology, const int num_cells, const int num_faces=-1)
 
void setup (int cubature_degree, const panzer::CellData &cell_data)
 
void setup_cv (const panzer::CellData &cell_data, std::string cv_type)
 
int order () const
 Returns the order of integration (cubature degree in intrepid lingo) More...
 
virtual void print (std::ostream &os)
 print information about the integration rule More...
 
void referenceCoordinates (Kokkos::DynRankView< double, PHX::Device > &container)
 Construct an array containing the reference coordinates. More...
 
int getPointOffset (const int subcell_index) const
 Returns the integration point offset for a given subcell_index (i.e. local face index) More...
 
- Public Member Functions inherited from panzer::PointRule
 PointRule (const std::string &ptName, int np, const panzer::CellData &cell_data)
 
 PointRule (const std::string &point_rule_name, const int num_cells, const int num_points_per_cell, const int num_faces, const int num_points_per_face, const Teuchos::RCP< const shards::CellTopology > &cell_topology)
 
 PointRule (const panzer::PointDescriptor &description, const Teuchos::RCP< const shards::CellTopology > &cell_topology, const int num_cells)
 
virtual ~PointRule ()
 Destructor (Satisfying the compiler) More...
 
void setup (const std::string &ptName, int np, const panzer::CellData &cell_data)
 
bool isSide () const
 
const std::string & getName () const
 
Teuchos::RCP< PHX::DataLayoutgetCellDataLayout () const
 
Teuchos::RCP< PHX::DataLayoutgetCellDataLayout (const int dim0) const
 
Teuchos::RCP< PHX::DataLayoutgetCellDataLayout (const int dim0, const int dim1) const
 
Teuchos::RCP< PHX::DataLayoutgetCellPointDataLayout () const
 
Teuchos::RCP< PHX::DataLayoutgetCellPointDataLayout (const int dim0) const
 
Teuchos::RCP< PHX::DataLayoutgetCellPointDataLayout (const int dim0, const int dim1) const
 
Teuchos::RCP< PHX::DataLayoutgetFaceDataLayout () const
 
Teuchos::RCP< PHX::DataLayoutgetFaceDataLayout (const int dim0) const
 
Teuchos::RCP< PHX::DataLayoutgetFaceDataLayout (const int dim0, const int dim1) const
 
Teuchos::RCP< PHX::DataLayoutgetFacePointDataLayout () const
 
Teuchos::RCP< PHX::DataLayoutgetFacePointDataLayout (const int dim0) const
 
Teuchos::RCP< PHX::DataLayoutgetFacePointDataLayout (const int dim0, const int dim1) const
 
- Public Member Functions inherited from panzer::IntegrationDescriptor
 IntegrationDescriptor ()
 Constructor for empty integrator. More...
 
virtual ~IntegrationDescriptor ()=default
 Destructor. More...
 
 IntegrationDescriptor (const int cubature_order, const int integration_type, const int side=-1)
 Constructor for integrator description. More...
 
const int & getType () const
 Get type of integrator. More...
 
const int & getOrder () const
 Get order of integrator. More...
 
const int & getSide () const
 Get side associated with integration - this is for backward compatibility. More...
 
std::size_t getKey () const
 Get unique key associated with integrator of this order and type The key is used to sort through a map of IntegrationDescriptors. More...
 

Public Attributes

int cubature_degree
 
std::string cv_type
 
- Public Attributes inherited from panzer::PointRule
Teuchos::RCP< const
shards::CellTopology > 
topology
 
Teuchos::RCP
< shards::CellTopology > 
side_topology
 
Teuchos::RCP< PHX::DataLayoutdl_scalar
 Data layout for scalar fields. More...
 
Teuchos::RCP< PHX::DataLayoutdl_vector
 Data layout for vector fields. More...
 
Teuchos::RCP< PHX::DataLayoutdl_tensor
 Data layout for rank-2 tensor fields. More...
 
Teuchos::RCP< PHX::DataLayoutdl_vector3
 Data layout for vector fields - full (x,y,z) More...
 
Teuchos::RCP< PHX::DataLayoutdl_tensor3x3
 Data layout for vector fields - full ((xx,xy,xz),(yx,yy,yz),(zx,zy,zz)) (or transpose?) More...
 
int spatial_dimension
 
int workset_size
 
int num_points
 
int side
 Defaults to -1 if this is volume and not sideset. More...
 

Protected Member Functions

void setup_surface (const Teuchos::RCP< const shards::CellTopology > &cell_topology, const int num_cells, const int num_faces)
 Setup a surface integration. More...
 
- Protected Member Functions inherited from panzer::PointRule
 PointRule ()
 
void setup (const std::string &point_rule_name, const int num_cells, const int num_points_per_cell, const int num_faces, const int num_points_per_face, const Teuchos::RCP< const shards::CellTopology > &cell_topology)
 
- Protected Member Functions inherited from panzer::IntegrationDescriptor
void setup (const int cubature_order, const int integration_type, const int side=-1)
 Setup function. More...
 

Protected Attributes

std::vector< int > _point_offsets
 
- Protected Attributes inherited from panzer::PointRule
int _num_faces
 
int _num_points_per_face
 
- Protected Attributes inherited from panzer::IntegrationDescriptor
int _integration_type
 Type of integration. More...
 
int _cubature_order
 Order of integration (Order of polynomial this integrator is designed for) More...
 
int _side
 Side associated with integration - this is for backward compatibility. More...
 
std::size_t _key
 Unique key associated with integrator. More...
 

Additional Inherited Members

- Public Types inherited from panzer::IntegrationDescriptor
enum  {
  NONE, VOLUME, SURFACE, SIDE,
  CV_VOLUME, CV_SIDE, CV_BOUNDARY
}
 Possible integration types. More...
 
- Static Protected Member Functions inherited from panzer::PointRule
static Teuchos::RCP
< shards::CellTopology > 
getSideTopology (const CellData &cell_data)
 

Detailed Description

Derived class for building a point rule based on a finite element integration rule.

Parameters
[in]cubature_degreeOrder of the cubature integration.
[in]cell_dataDescription of the cell.

Definition at line 73 of file Panzer_IntegrationRule.hpp.

Constructor & Destructor Documentation

panzer::IntegrationRule::IntegrationRule ( int  cubature_degree,
const panzer::CellData cell_data 
)

if side = -1 then we use the cell volume integration rule.

Definition at line 58 of file Panzer_IntegrationRule.cpp.

panzer::IntegrationRule::IntegrationRule ( const panzer::CellData cell_data,
const std::string &  cv_type 
)

Definition at line 70 of file Panzer_IntegrationRule.cpp.

panzer::IntegrationRule::IntegrationRule ( const panzer::IntegrationDescriptor description,
const Teuchos::RCP< const shards::CellTopology > &  cell_topology,
const int  num_cells,
const int  num_faces = -1 
)

Definition at line 92 of file Panzer_IntegrationRule.cpp.

Member Function Documentation

void panzer::IntegrationRule::setup ( int  cubature_degree,
const panzer::CellData cell_data 
)

Definition at line 130 of file Panzer_IntegrationRule.cpp.

void panzer::IntegrationRule::setup_cv ( const panzer::CellData cell_data,
std::string  cv_type 
)

Definition at line 221 of file Panzer_IntegrationRule.cpp.

int panzer::IntegrationRule::order ( ) const

Returns the order of integration (cubature degree in intrepid lingo)

Definition at line 265 of file Panzer_IntegrationRule.cpp.

void panzer::IntegrationRule::print ( std::ostream &  os)
virtual

print information about the integration rule

Reimplemented from panzer::PointRule.

Definition at line 277 of file Panzer_IntegrationRule.cpp.

void panzer::IntegrationRule::referenceCoordinates ( Kokkos::DynRankView< double, PHX::Device > &  container)

Construct an array containing the reference coordinates.

Definition at line 289 of file Panzer_IntegrationRule.cpp.

int panzer::IntegrationRule::getPointOffset ( const int  subcell_index) const

Returns the integration point offset for a given subcell_index (i.e. local face index)

Definition at line 269 of file Panzer_IntegrationRule.cpp.

void panzer::IntegrationRule::setup_surface ( const Teuchos::RCP< const shards::CellTopology > &  cell_topology,
const int  num_cells,
const int  num_faces 
)
protected

Setup a surface integration.

Definition at line 168 of file Panzer_IntegrationRule.cpp.

Member Data Documentation

int panzer::IntegrationRule::cubature_degree

Definition at line 101 of file Panzer_IntegrationRule.hpp.

std::string panzer::IntegrationRule::cv_type

Definition at line 105 of file Panzer_IntegrationRule.hpp.

std::vector<int> panzer::IntegrationRule::_point_offsets
protected

Definition at line 123 of file Panzer_IntegrationRule.hpp.


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