54 std::string basis_type = in_basis_type;
55 int basis_order = in_basis_order;
57 if (basis_type==
"Q1" || basis_type==
"T1") {
61 else if (basis_type ==
"Q2" || basis_type==
"T2") {
65 else if (basis_type ==
"TEdge1" || basis_type==
"QEdge1") {
69 else if(basis_type ==
"Const") {
75 intrepid_basis_ = panzer::createIntrepid2Basis<PHX::Device::execution_space,double,double>(basis_type, basis_order, *topology_);
77 basis_type_ = basis_type;
79 std::ostringstream os;
80 os << basis_type_ <<
":" << basis_order;
81 basis_name_ = os.str();
83 field_basis_name_ =
"Basis: " + basis_name_;
84 field_basis_name_D1_ =
"Grad Basis: " + basis_name_;
85 field_basis_name_D2_ =
"D2 Basis: " + basis_name_;
87 if( basis_type_ ==
"HGrad")
88 element_space_ = HGRAD;
89 else if(basis_type_==
"HCurl")
90 element_space_ = HCURL;
91 else if(basis_type_==
"HDiv")
92 element_space_ = HDIV;
93 else if(basis_type_==
"Const")
94 element_space_ = CONST;
95 else if(basis_type_==
"HVol")
96 element_space_ = HVOL;
97 else { TEUCHOS_TEST_FOR_EXCEPTION(
true,std::invalid_argument,
98 "PureBasis::initializeIntrospection - Invalid basis name \""
99 << basis_type_ <<
"\""); }
101 switch(getElementSpace()) {
118 TEUCHOS_ASSERT(
false);
123 using PHX::MDALayout;
125 cell_data = rcp(
new MDALayout<Cell>(numCells()));
127 functional = rcp(
new MDALayout<Cell,BASIS>(numCells(), cardinality()));
129 functional_grad = rcp(
new MDALayout<Cell,BASIS,Dim>(numCells(),
133 coordinates = rcp(
new MDALayout<Cell,BASIS,Dim>(numCells(),
137 functional_D2 = rcp(
new MDALayout<Cell,BASIS,Dim,Dim>(numCells(),
142 local_mat_layout = Teuchos::rcp(
new PHX::MDALayout<panzer::Cell, panzer::BASIS, panzer::BASIS>(
143 this->numCells(), this->cardinality(), this->cardinality()));