14 #include "Teuchos_Assert.hpp"
15 #include "Phalanx_DataLayout_MDALayout.hpp"
56 basis_name_ = basis_data_->name() +
":" + point_rule.
getName();
57 num_cells_ = point_rule.
dl_vector->extent(0);
59 dimension_ = point_rule.
dl_vector->extent(2);
64 basis_ref =
rcp(
new MDALayout<BASIS,IP>(cardinality(),
numPoints()));
67 rcp(
new MDALayout<Cell,BASIS,IP>(numCells(), cardinality(),
numPoints()));
70 rcp(
new MDALayout<BASIS,IP,Dim>(cardinality(),
numPoints(), dimension()));
72 basis_grad =
rcp(
new MDALayout<Cell,BASIS,IP,Dim>(numCells(),
77 basis_D2_ref =
rcp(
new MDALayout<BASIS,IP,Dim,Dim>(cardinality(),
82 basis_D2 =
rcp(
new MDALayout<Cell,BASIS,IP,Dim,Dim>(numCells(),
88 functional =
rcp(
new MDALayout<Cell,BASIS>(numCells(), cardinality()));
90 functional_grad =
rcp(
new MDALayout<Cell,BASIS,Dim>(numCells(),
94 functional_D2 =
rcp(
new MDALayout<Cell,BASIS,Dim,Dim>(numCells(),
106 return basis_data_->cardinality();
131 return basis_data_->fieldName();
136 return basis_data_->fieldNameD1();
141 return basis_data_->fieldNameD2();
147 return basis_data_->getIntrepid2Basis();
158 os <<
"Name = " << name()
159 <<
", Dimension = " << dimension()
160 <<
", Cells = " << numCells()
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > getIntrepid2Basis() const
BasisIRLayout(std::string basis_type, const int basis_order, const PointRule &int_rule)
void print(std::ostream &os) const
const std::string & getName() const
Teuchos::RCP< const PureBasis > getBasis() const
Teuchos::RCP< panzer::BasisIRLayout > basisIRLayout(std::string basis_type, const int basis_order, const PointRule &pt_rule)
Nonmember constructor.
std::string fieldNameD2() const
TEUCHOS_DEPRECATED RCP< T > rcp(T *p, Dealloc_T dealloc, bool owns_mem)
std::string fieldName() const
Teuchos::RCP< const shards::CellTopology > topology
std::string name() const
Unique key for workset indexing composed of basis name and point rule name.
Teuchos::RCP< PHX::DataLayout > dl_vector
Data layout for vector fields.
std::string fieldNameD1() const
void setup(const panzer::PointRule &int_rule)
Description and data layouts associated with a particular basis.
Teuchos::RCP< const PureBasis > basis_data_