43 #ifndef PANZER_DOF_BASIS_TO_BASIS_IMPL_HPP
44 #define PANZER_DOF_BASIS_TO_BASIS_IMPL_HPP
48 #include "Intrepid2_FunctionSpaceTools.hpp"
49 #include "Phalanx_DataLayout_MDALayout.hpp"
50 #include "Intrepid2_Basis.hpp"
51 #include "Teuchos_Assert.hpp"
56 template <
typename EvalT,
typename TRAITST>
67 dof_source_coeff = PHX::MDField<const ScalarT>(fieldName,sourceBasis.
functional);
68 dof_target_coeff = PHX::MDField<ScalarT>(fieldName,targetBasis.
functional);
70 this->addDependentField(dof_source_coeff);
71 this->addEvaluatedField(dof_target_coeff);
76 Kokkos::DynRankView<double,PHX::Device>intrpCoords =
77 Kokkos::DynRankView<double,PHX::Device>(
"intrpCoords",targetBasis.
cardinality(),targetBasis.
dimension());
79 targetBasis.
getIntrepid2Basis<PHX::exec_space,double,
double>()->getDofCoords(intrpCoords);
84 Kokkos::DynRankView<double,PHX::Device> basisRef =
87 sourceBasis.
getIntrepid2Basis()->getValues(basisRef, intrpCoords, Intrepid2::OPERATOR_VALUE);
93 Intrepid2::FunctionSpaceTools<PHX::exec_space>::HGRADtransformVALUE(basis,basisRef);
95 std::string n =
"DOF_BasisToBasis: " + dof_target_coeff.fieldTag().name();
100 template <
typename EvalT,
typename TRAITST>
104 dof_target_coeff.deep_copy(
ScalarT(0.0));
106 if(workset.num_cells>0) {
109 Intrepid2::FunctionSpaceTools<PHX::exec_space>::evaluate(dof_target_coeff.get_view(),
110 dof_source_coeff.get_view(),
int cardinality() const
Returns the number of basis coefficients.
int dimension() const
Returns the dimension of the basis from the topology.
DOF_BasisToBasis(const std::string &fieldName, const PureBasis &sourceBasis, const PureBasis &targetBasis)
Ctor.
Teuchos::RCP< Intrepid2::Basis< PHX::Device::execution_space, double, double > > getIntrepid2Basis() const
int numCells() const
Returns the number of cells in the data layouts.
void evaluateFields(typename TRAITST::EvalData workset)
Description and data layouts associated with a particular basis.
#define TEUCHOS_ASSERT(assertion_test)
Teuchos::RCP< PHX::DataLayout > functional
<Cell,Basis> or <Cell,Basis>