43 #ifndef PANZER_PureBasis_HPP
44 #define PANZER_PureBasis_HPP
49 #include "Phalanx_DataLayout.hpp"
51 #include "Kokkos_DynRankView.hpp"
52 #include "Intrepid2_Basis.hpp"
58 class BasisDescriptor;
99 std::string
type()
const;
105 std::string
name()
const;
116 template <
typename ExecutionSpace,
typename OutputValueType,
typename Po
intValueType>
119 {
return panzer::createIntrepid2Basis<ExecutionSpace,OutputValueType,PointValueType>(
type(),
order(), *(
getCellTopology())); }
169 void initialize(
const std::string & basis_type,
const int basis_order);
193 {
return lhs.first<rhs.first;}
std::string name() const
A unique key that is the combination of the basis type and basis order.
bool supportsCurl() const
bool supportsGrad() const
Simple binary comparison class to help with sorting.
EElementSpace getElementSpace() const
std::string field_basis_name_D1_
int order() const
Returns the polynomial order of the basis.
int cardinality() const
Returns the number of basis coefficients.
Teuchos::RCP< PHX::DataLayout > cell_data
<Cell>
std::string fieldName() const
int dimension() const
Returns the dimension of the basis from the topology.
bool requiresOrientations() const
bool supportsBasisCoordinates() const
std::string type() const
Returns the basis type.
Teuchos::RCP< const shards::CellTopology > getCellTopology() const
std::string field_basis_name_
Data for determining cell topology and dimensionality.
Teuchos::RCP< PHX::DataLayout > coordinates
<Cell,Basis,Dim>
PureBasis(const std::string &basis_type, const int basis_order, const CellData &cell_data)
bool isVectorBasis() const
Teuchos::RCP< Intrepid2::Basis< ExecutionSpace, OutputValueType, PointValueType > > getIntrepid2Basis() const
Teuchos::RCP< PHX::DataLayout > functional_grad
<Cell,Basis,Dim>
Teuchos::RCP< PHX::DataLayout > functional_D2
<Cell,Basis,Dim>
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > getIntrepid2Basis() const
int numCells() const
Returns the number of cells in the data layouts.
bool operator()(const StrPureBasisPair &lhs, const StrPureBasisPair &rhs) const
bool isScalarBasis() const
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > intrepid_basis_
Teuchos::RCP< PHX::DataLayout > local_mat_layout
<Cell,Basis,Basis>
std::pair< std::string, Teuchos::RCP< panzer::PureBasis > > StrPureBasisPair
EElementSpace element_space_
void initialize(const std::string &basis_type, const int basis_order)
Initialize the basis object.
Description and data layouts associated with a particular basis.
Teuchos::RCP< PHX::DataLayout > functional
<Cell,Basis> or <Cell,Basis>
std::string fieldNameD1() const
Teuchos::RCP< const shards::CellTopology > topology_
std::string field_basis_name_D2_
std::string fieldNameD2() const