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;}
bool supportsBasisCoordinates() const
Simple binary comparison class to help with sorting.
std::string name() const
A unique key that is the combination of the basis type and basis order.
std::string fieldNameD1() const
std::string field_basis_name_D1_
Teuchos::RCP< PHX::DataLayout > cell_data
<Cell>
bool supportsGrad() const
bool isVectorBasis() const
bool requiresOrientations() 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)
EElementSpace getElementSpace() 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
std::string fieldNameD2() const
int dimension() const
Returns the dimension of the basis from the topology.
std::string fieldName() const
bool isScalarBasis() const
int numCells() const
Returns the number of cells in the data layouts.
std::string type() const
Returns the basis type.
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > intrepid_basis_
int order() const
Returns the polynomial order of the basis.
Teuchos::RCP< const shards::CellTopology > getCellTopology() const
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>
int cardinality() const
Returns the number of basis coefficients.
Teuchos::RCP< const shards::CellTopology > topology_
std::string field_basis_name_D2_
bool operator()(const StrPureBasisPair &lhs, const StrPureBasisPair &rhs) const
bool supportsCurl() const
Teuchos::RCP< Intrepid2::Basis< ExecutionSpace, OutputValueType, PointValueType > > getIntrepid2Basis() const