48#include "Teuchos_Assert.hpp"
49#include "Phalanx_DataLayout_MDALayout.hpp"
54 const int basis_order,
56 const Teuchos::RCP<const shards::CellTopology> & cell_topology) :
64PureBasis(
const std::string & in_basis_type,
65 const int in_basis_order,
75 const Teuchos::RCP<const shards::CellTopology> & cell_topology,
86 std::string basis_type = in_basis_type;
87 int basis_order = in_basis_order;
89 if (basis_type==
"Q1" || basis_type==
"T1") {
93 else if (basis_type ==
"Q2" || basis_type==
"T2") {
97 else if (basis_type ==
"TEdge1" || basis_type==
"QEdge1") {
101 else if(basis_type ==
"Const") {
102 basis_type =
"Const";
111 std::ostringstream os;
129 else { TEUCHOS_TEST_FOR_EXCEPTION(
true,std::invalid_argument,
130 "PureBasis::initializeIntrospection - Invalid basis name \""
150 TEUCHOS_ASSERT(
false);
155 using PHX::MDALayout;
174 local_mat_layout = Teuchos::rcp(
new PHX::MDALayout<panzer::Cell, panzer::BASIS, panzer::BASIS>(
224Teuchos::RCP< Intrepid2::Basis<PHX::Device::execution_space,double,double> >
int getOrder() const
Get order of basis.
const std::string & getType() const
Get type of basis.
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< const shards::CellTopology > getCellTopology() const
std::string field_basis_name_D1_
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.
std::string field_basis_name_
Teuchos::RCP< const shards::CellTopology > topology_
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>
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_
Teuchos::RCP< PHX::DataLayout > functional_D2
<Cell,Basis,Dim>
Teuchos::RCP< Intrepid2::Basis< ExecutionSpace, 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.