11#ifndef PANZER_PureBasis_HPP
12#define PANZER_PureBasis_HPP
15#include "Teuchos_RCP.hpp"
17#include "Phalanx_DataLayout.hpp"
19#include "Kokkos_DynRankView.hpp"
20#include "Intrepid2_Basis.hpp"
47 PureBasis(
const std::string & basis_type,
const int basis_order,
const int num_cells,
const Teuchos::RCP<const shards::CellTopology> & cell_topo);
67 std::string
type()
const;
73 std::string
name()
const;
81 Teuchos::RCP< Intrepid2::Basis<PHX::Device,double,double> >
84 template <
typename DeviceType,
typename OutputValueType,
typename Po
intValueType>
85 Teuchos::RCP< Intrepid2::Basis<DeviceType,OutputValueType,PointValueType> >
137 void initialize(
const std::string & basis_type,
const int basis_order);
161 {
return lhs.first<rhs.first;}
Data for determining cell topology and dimensionality.
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< Intrepid2::Basis< PHX::Device, double, double > > intrepid_basis_
Teuchos::RCP< Intrepid2::Basis< DeviceType, OutputValueType, PointValueType > > getIntrepid2Basis() 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, 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< PHX::DataLayout > local_mat_layout
<Cell,Basis,Basis>
Teuchos::RCP< PHX::DataLayout > coordinates
<Cell,Basis,Dim>
bool supportsGrad() const
std::string fieldNameD2() const
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
Teuchos::RCP< Intrepid2::Basis< DeviceType, OutputValueType, PointValueType > > createIntrepid2Basis(const std::string basis_type, int basis_order, const shards::CellTopology &cell_topology)
Creates an Intrepid2::Basis object given the basis, order and cell topology.
Simple binary comparison class to help with sorting.
bool operator()(const StrPureBasisPair &lhs, const StrPureBasisPair &rhs) const