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