44#ifndef PANZER_BASIS_HPP
45#define PANZER_BASIS_HPP
48#include "Teuchos_RCP.hpp"
49#include "Phalanx_DataLayout.hpp"
50#include "Kokkos_DynRankView.hpp"
51#include "Intrepid2_Basis.hpp"
60 class CellTopologyInfo;
64 Teuchos::RCP<panzer::BasisIRLayout>
65 basisIRLayout(std::string basis_type,
const int basis_order,
const PointRule& pt_rule);
68 Teuchos::RCP<panzer::BasisIRLayout>
69 basisIRLayout(
const Teuchos::RCP<const PureBasis> & b,
const PointRule& pt_rule);
89 std::string
name()
const;
97 Teuchos::RCP< Intrepid2::Basis<PHX::Device::execution_space,double,double> >
100 Teuchos::RCP<const PureBasis>
getBasis()
const;
102 void print(std::ostream & os)
const;
113 Teuchos::RCP<PHX::DataLayout>
basis;
141 typedef std::pair<std::string,Teuchos::RCP<panzer::BasisIRLayout> >
StrBasisPair;
146 {
return lhs.first<rhs.first;}
Teuchos::RCP< PHX::DataLayout > basis_grad
<Cell,BASIS,IP,Dim>
Teuchos::RCP< const PureBasis > basis_data_
std::string name() const
Unique key for workset indexing composed of basis name and point rule name.
std::string fieldNameD2() const
Teuchos::RCP< PHX::DataLayout > functional
<Cell,Basis>
Teuchos::RCP< const CellTopologyInfo > getCellTopologyInfo() const
BasisIRLayout(const Teuchos::RCP< const PureBasis > &b, const PointRule &int_rule)
Teuchos::RCP< const PureBasis > getBasis() const
Teuchos::RCP< const CellTopologyInfo > cell_topo_info
Teuchos::RCP< PHX::DataLayout > basis_D2
<Cell,BASIS,IP,Dim,Dim>
Teuchos::RCP< PHX::DataLayout > functional_D2
<Cell,Basis,Dim,Dim>
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > getIntrepid2Basis() const
Teuchos::RCP< PHX::DataLayout > basis_D2_ref
<BASIS,IP,Dim,Dim>
Teuchos::RCP< PHX::DataLayout > basis_grad_ref
<BASIS,IP,Dim>
std::string fieldNameD1() const
Teuchos::RCP< PHX::DataLayout > basis_ref
<BASIS,IP>
std::string fieldName() const
Teuchos::RCP< PHX::DataLayout > basis
<Cell,BASIS,IP>
void setup(const panzer::PointRule &int_rule)
void print(std::ostream &os) const
Teuchos::RCP< PHX::DataLayout > functional_grad
<Cell,Basis,Dim>
Teuchos::RCP< panzer::BasisIRLayout > basisIRLayout(std::string basis_type, const int basis_order, const PointRule &pt_rule)
Nonmember constructor.
std::pair< std::string, Teuchos::RCP< panzer::BasisIRLayout > > StrBasisPair
Simple binary comparison class to help with sorting.
bool operator()(const StrBasisPair &lhs, const StrBasisPair &rhs) const