Panzer  Version of the Day
Public Types | Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
panzer::PureBasis Class Reference

Description and data layouts associated with a particular basis. More...

#include <Panzer_PureBasis.hpp>

Public Types

enum  EElementSpace { HGRAD =0, HCURL =1, HDIV =2, CONST =3 }
 

Public Member Functions

 PureBasis (const std::string &basis_type, const int basis_order, const CellData &cell_data)
 
 PureBasis (const std::string &basis_type, const int basis_order, const int num_cells, const Teuchos::RCP< const shards::CellTopology > &cell_topo)
 
int cardinality () const
 Returns the number of basis coefficients. More...
 
int numCells () const
 Returns the number of cells in the data layouts. More...
 
int dimension () const
 Returns the dimension of the basis from the topology. More...
 
std::string type () const
 Returns the basis type. More...
 
int order () const
 Returns the polynomial order of the basis. More...
 
std::string name () const
 A unique key that is the combination of the basis type and basis order. More...
 
std::string fieldName () const
 
std::string fieldNameD1 () const
 
std::string fieldNameD2 () const
 
Teuchos::RCP< Intrepid2::Basis< double, Kokkos::DynRankView< double, PHX::Device > > > getIntrepid2Basis () const
 
template<typename ScalarT , typename ArrayT >
Teuchos::RCP< Intrepid2::Basis< ScalarT, ArrayT > > getIntrepid2Basis () const
 
EElementSpace getElementSpace () const
 
bool requiresOrientations () const
 
bool supportsGrad () const
 
bool supportsCurl () const
 
bool supportsDiv () const
 
bool isVectorBasis () const
 
bool isScalarBasis () const
 
int getBasisRank () const
 
bool supportsBasisCoordinates () const
 
Teuchos::RCP< const shards::CellTopology > getCellTopology () const
 

Public Attributes

Teuchos::RCP< PHX::DataLayout > cell_data
 <Cell> More...
 
Teuchos::RCP< PHX::DataLayout > functional
 <Cell,Basis> or <Cell,Basis> More...
 
Teuchos::RCP< PHX::DataLayout > functional_grad
 <Cell,Basis,Dim> More...
 
Teuchos::RCP< PHX::DataLayout > functional_D2
 <Cell,Basis,Dim> More...
 
Teuchos::RCP< PHX::DataLayout > coordinates
 <Cell,Basis,Dim> More...
 

Private Member Functions

void initialize (const std::string &basis_type, const int basis_order)
 Initialize the basis object. More...
 

Private Attributes

Teuchos::RCP< const shards::CellTopology > topology_
 
Teuchos::RCP< Intrepid2::Basis< double, Kokkos::DynRankView< double, PHX::Device > > > intrepid_basis_
 
std::string basis_type_
 
std::string basis_name_
 
std::string field_basis_name_
 
std::string field_basis_name_D1_
 
std::string field_basis_name_D2_
 
int num_cells_
 
EElementSpace element_space_
 
int basis_rank_
 

Detailed Description

Description and data layouts associated with a particular basis.

Definition at line 60 of file Panzer_PureBasis.hpp.

Member Enumeration Documentation

◆ EElementSpace

Enumerator
HGRAD 
HCURL 
HDIV 
CONST 

Definition at line 63 of file Panzer_PureBasis.hpp.

Constructor & Destructor Documentation

◆ PureBasis() [1/2]

panzer::PureBasis::PureBasis ( const std::string &  basis_type,
const int  basis_order,
const CellData cell_data 
)

Build a basis given a type, order and CellData object

Parameters
[in]basis_typeString name that describes the type of basis
[in]basis_orderOrder of the basis
[in]cell_dataDescription of the basis

Definition at line 63 of file Panzer_PureBasis.cpp.

◆ PureBasis() [2/2]

panzer::PureBasis::PureBasis ( const std::string &  basis_type,
const int  basis_order,
const int  num_cells,
const Teuchos::RCP< const shards::CellTopology > &  cell_topo 
)

Build a basis given a type, order, number of cells (for data layouts) and shards topology

Parameters
[in]basis_typeString name that describes the type of basis
[in]basis_orderOrder of the basis
[in]num_cellsNumber of cells used in the data layouts for this basis
[in]cell_topoA shards topology description

Definition at line 52 of file Panzer_PureBasis.cpp.

Member Function Documentation

◆ cardinality()

int panzer::PureBasis::cardinality ( ) const

Returns the number of basis coefficients.

Definition at line 157 of file Panzer_PureBasis.cpp.

◆ numCells()

int panzer::PureBasis::numCells ( ) const

Returns the number of cells in the data layouts.

Definition at line 162 of file Panzer_PureBasis.cpp.

◆ dimension()

int panzer::PureBasis::dimension ( ) const

Returns the dimension of the basis from the topology.

Definition at line 167 of file Panzer_PureBasis.cpp.

◆ type()

std::string panzer::PureBasis::type ( ) const

Returns the basis type.

Definition at line 172 of file Panzer_PureBasis.cpp.

◆ order()

int panzer::PureBasis::order ( ) const

Returns the polynomial order of the basis.

Definition at line 177 of file Panzer_PureBasis.cpp.

◆ name()

std::string panzer::PureBasis::name ( ) const

A unique key that is the combination of the basis type and basis order.

Definition at line 182 of file Panzer_PureBasis.cpp.

◆ fieldName()

std::string panzer::PureBasis::fieldName ( ) const

Definition at line 187 of file Panzer_PureBasis.cpp.

◆ fieldNameD1()

std::string panzer::PureBasis::fieldNameD1 ( ) const

Definition at line 192 of file Panzer_PureBasis.cpp.

◆ fieldNameD2()

std::string panzer::PureBasis::fieldNameD2 ( ) const

Definition at line 197 of file Panzer_PureBasis.cpp.

◆ getIntrepid2Basis() [1/2]

Teuchos::RCP< Intrepid2::Basis< double, Kokkos::DynRankView< double, PHX::Device > > > panzer::PureBasis::getIntrepid2Basis ( ) const

Definition at line 203 of file Panzer_PureBasis.cpp.

◆ getIntrepid2Basis() [2/2]

template<typename ScalarT , typename ArrayT >
Teuchos::RCP< Intrepid2::Basis<ScalarT,ArrayT> > panzer::PureBasis::getIntrepid2Basis ( ) const
inline

Definition at line 109 of file Panzer_PureBasis.hpp.

◆ getElementSpace()

EElementSpace panzer::PureBasis::getElementSpace ( ) const
inline

Definition at line 112 of file Panzer_PureBasis.hpp.

◆ requiresOrientations()

bool panzer::PureBasis::requiresOrientations ( ) const
inline

Definition at line 115 of file Panzer_PureBasis.hpp.

◆ supportsGrad()

bool panzer::PureBasis::supportsGrad ( ) const
inline

Definition at line 118 of file Panzer_PureBasis.hpp.

◆ supportsCurl()

bool panzer::PureBasis::supportsCurl ( ) const
inline

Definition at line 121 of file Panzer_PureBasis.hpp.

◆ supportsDiv()

bool panzer::PureBasis::supportsDiv ( ) const
inline

Definition at line 124 of file Panzer_PureBasis.hpp.

◆ isVectorBasis()

bool panzer::PureBasis::isVectorBasis ( ) const
inline

Definition at line 127 of file Panzer_PureBasis.hpp.

◆ isScalarBasis()

bool panzer::PureBasis::isScalarBasis ( ) const
inline

Definition at line 130 of file Panzer_PureBasis.hpp.

◆ getBasisRank()

int panzer::PureBasis::getBasisRank ( ) const
inline

Definition at line 133 of file Panzer_PureBasis.hpp.

◆ supportsBasisCoordinates()

bool panzer::PureBasis::supportsBasisCoordinates ( ) const

Definition at line 209 of file Panzer_PureBasis.cpp.

◆ getCellTopology()

Teuchos::RCP<const shards::CellTopology> panzer::PureBasis::getCellTopology ( ) const
inline

Definition at line 138 of file Panzer_PureBasis.hpp.

◆ initialize()

void panzer::PureBasis::initialize ( const std::string &  basis_type,
const int  basis_order 
)
private

Initialize the basis object.

Definition at line 70 of file Panzer_PureBasis.cpp.

Member Data Documentation

◆ cell_data

Teuchos::RCP<PHX::DataLayout> panzer::PureBasis::cell_data

<Cell>

Definition at line 143 of file Panzer_PureBasis.hpp.

◆ functional

Teuchos::RCP<PHX::DataLayout> panzer::PureBasis::functional

<Cell,Basis> or <Cell,Basis>

Definition at line 145 of file Panzer_PureBasis.hpp.

◆ functional_grad

Teuchos::RCP<PHX::DataLayout> panzer::PureBasis::functional_grad

<Cell,Basis,Dim>

Definition at line 147 of file Panzer_PureBasis.hpp.

◆ functional_D2

Teuchos::RCP<PHX::DataLayout> panzer::PureBasis::functional_D2

<Cell,Basis,Dim>

Definition at line 149 of file Panzer_PureBasis.hpp.

◆ coordinates

Teuchos::RCP<PHX::DataLayout> panzer::PureBasis::coordinates

<Cell,Basis,Dim>

Definition at line 151 of file Panzer_PureBasis.hpp.

◆ topology_

Teuchos::RCP<const shards::CellTopology> panzer::PureBasis::topology_
private

Definition at line 160 of file Panzer_PureBasis.hpp.

◆ intrepid_basis_

Teuchos::RCP< Intrepid2::Basis<double,Kokkos::DynRankView<double,PHX::Device> > > panzer::PureBasis::intrepid_basis_
private

Definition at line 161 of file Panzer_PureBasis.hpp.

◆ basis_type_

std::string panzer::PureBasis::basis_type_
private

Definition at line 163 of file Panzer_PureBasis.hpp.

◆ basis_name_

std::string panzer::PureBasis::basis_name_
private

Definition at line 164 of file Panzer_PureBasis.hpp.

◆ field_basis_name_

std::string panzer::PureBasis::field_basis_name_
private

Definition at line 165 of file Panzer_PureBasis.hpp.

◆ field_basis_name_D1_

std::string panzer::PureBasis::field_basis_name_D1_
private

Definition at line 166 of file Panzer_PureBasis.hpp.

◆ field_basis_name_D2_

std::string panzer::PureBasis::field_basis_name_D2_
private

Definition at line 167 of file Panzer_PureBasis.hpp.

◆ num_cells_

int panzer::PureBasis::num_cells_
private

Definition at line 169 of file Panzer_PureBasis.hpp.

◆ element_space_

EElementSpace panzer::PureBasis::element_space_
private

Definition at line 171 of file Panzer_PureBasis.hpp.

◆ basis_rank_

int panzer::PureBasis::basis_rank_
private

Definition at line 172 of file Panzer_PureBasis.hpp.


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