46 #include "Teuchos_Assert.hpp"
47 #include "Phalanx_DataLayout_MDALayout.hpp"
88 basis_name_ = basis_data_->name() +
":" + point_rule.
getName();
89 num_cells_ = point_rule.
dl_vector->extent(0);
91 dimension_ = point_rule.
dl_vector->extent(2);
96 basis_ref =
rcp(
new MDALayout<BASIS,IP>(cardinality(),
numPoints()));
99 rcp(
new MDALayout<Cell,BASIS,IP>(numCells(), cardinality(),
numPoints()));
102 rcp(
new MDALayout<BASIS,IP,Dim>(cardinality(),
numPoints(), dimension()));
104 basis_grad =
rcp(
new MDALayout<Cell,BASIS,IP,Dim>(numCells(),
109 basis_D2_ref =
rcp(
new MDALayout<BASIS,IP,Dim,Dim>(cardinality(),
114 basis_D2 =
rcp(
new MDALayout<Cell,BASIS,IP,Dim,Dim>(numCells(),
120 functional =
rcp(
new MDALayout<Cell,BASIS>(numCells(), cardinality()));
122 functional_grad =
rcp(
new MDALayout<Cell,BASIS,Dim>(numCells(),
126 functional_D2 =
rcp(
new MDALayout<Cell,BASIS,Dim,Dim>(numCells(),
138 return basis_data_->cardinality();
163 return basis_data_->fieldName();
168 return basis_data_->fieldNameD1();
173 return basis_data_->fieldNameD2();
179 return basis_data_->getIntrepid2Basis();
190 os <<
"Name = " << name()
191 <<
", Dimension = " << dimension()
192 <<
", 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_