46 #include "Teuchos_Assert.hpp" 47 #include "Phalanx_DataLayout_MDALayout.hpp" 54 Teuchos::RCP<panzer::BasisIRLayout>
60 Teuchos::RCP<panzer::BasisIRLayout>
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(),
131 const Teuchos::RCP<const shards::CellTopology>& topology = basis_data_->getCellTopology();
138 return basis_data_->cardinality();
163 return basis_data_->fieldName();
168 return basis_data_->fieldNameD1();
173 return basis_data_->fieldNameD2();
176 Teuchos::RCP< Intrepid2::Basis<PHX::Device::execution_space,double,double> >
179 return basis_data_->getIntrepid2Basis();
182 Teuchos::RCP< const panzer::PureBasis>
190 os <<
"Name = " << name()
191 <<
", Dimension = " << dimension()
192 <<
", Cells = " << numCells()
void print(std::ostream &os) const
std::string fieldNameD1() const
BasisIRLayout(std::string basis_type, const int basis_order, const PointRule &int_rule)
Teuchos::RCP< const PureBasis > getBasis() const
std::string fieldNameD2() const
Teuchos::RCP< panzer::BasisIRLayout > basisIRLayout(std::string basis_type, const int basis_order, const PointRule &pt_rule)
Nonmember constructor.
Teuchos::RCP< const shards::CellTopology > topology
Teuchos::RCP< PHX::DataLayout > dl_vector
Data layout for vector fields.
std::string name() const
Unique key for workset indexing composed of basis name and point rule name.
void setup(const panzer::PointRule &int_rule)
const std::string & getName() const
Description and data layouts associated with a particular basis.
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > getIntrepid2Basis() const
Teuchos::RCP< const PureBasis > basis_data_
std::string fieldName() const