43 #ifndef PANZER_PointValues_Evaluator_IMPL_HPP 44 #define PANZER_PointValues_Evaluator_IMPL_HPP 58 Teuchos::RCP<const panzer::PointRule>
pointRule 59 = p.get< Teuchos::RCP<const panzer::PointRule> >(
"Point Rule");
60 Teuchos::RCP<const Kokkos::DynRankView<double,PHX::Device> > userArray
61 = p.get<Teuchos::RCP<const Kokkos::DynRankView<double,PHX::Device> > >(
"Point Array");
67 template <
typename EvalT,
typename TRAITST>
69 const Kokkos::DynRankView<double,PHX::Device> & userArray)
77 template <
typename EvalT,
typename TRAITST>
79 const PHX::MDField<double, panzer::IP, panzer::Dim> & userArray)
87 template <
typename EvalT,
typename TRAITST>
89 const Teuchos::RCP<const panzer::PureBasis> & pureBasis)
93 Teuchos::Ptr<const PHX::MDField<double, panzer::IP, panzer::Dim> > userArray;
98 template <
typename EvalT,
typename TRAITST>
99 template <
typename ArrayT>
101 const Teuchos::Ptr<const ArrayT> & userArray,
103 const Teuchos::RCP<const panzer::PureBasis> & pureBasis)
107 if(userArray!=Teuchos::null &&
basis==Teuchos::null)
109 else if(userArray==Teuchos::null &&
basis!=Teuchos::null)
113 TEUCHOS_ASSERT(
false);
119 if(userArray!=Teuchos::null) {
120 TEUCHOS_ASSERT(userArray->rank()==2);
121 refPointArray = Kokkos::DynRankView<double,PHX::Device>(
"refPointArray",userArray->dimension(0),userArray->dimension(1));
123 for(
int i=0;i<userArray->extent_int(0);i++)
124 for(
int j=0;j<userArray->extent_int(1);j++)
139 std::string n =
"PointValues_Evaluator: " +
pointRule->getName();
159 TEUCHOS_ASSERT(
basis->supportsBasisCoordinates());
Array< Scalar, Cell, IP, Dim, void, void, void, void, void > point_coords
bool useBasisValuesRefArray
Array< Scalar, Cell, IP, Dim, Dim, void, void, void, void > jac_inv
PointValues2< ScalarT, PHX::MDField > pointValues
Interpolates basis DOF values to IP DOF values.
void initialize(const Teuchos::RCP< const panzer::PointRule > &pointRule, const Teuchos::RCP< const panzer::PureBasis > &basis, bool derivativesRequired)
Initialization method to unify the constructors.
PointValues_Evaluator(const Teuchos::RCP< const panzer::PointRule > &pointRule, const Kokkos::DynRankView< double, PHX::Device > &userArray)
std::vector< std::string >::size_type getPureBasisIndex(std::string basis_name, panzer::Workset &workset, WorksetDetailsAccessor &wda)
Returns the index in the workset bases for a particular PureBasis name.
Kokkos::DynRankView< double, PHX::Device > refPointArray
Teuchos::RCP< const panzer::PointRule > pointRule
Array< Scalar, Cell, NODE, Dim, void, void, void, void, void > node_coordinates
Array< Scalar, Cell, IP, void, void, void, void, void, void > jac_det
void evaluateValues(const NodeCoordinateArray &node_coordinates, const PointCoordinateArray &point_coordinates)
PHX_EVALUATOR_CTOR(BasisValues_Evaluator, p)
Teuchos::RCP< BasisValues2< ScalarT > > basisValues
PHX_EVALUATE_FIELDS(BasisValues_Evaluator, workset)
Teuchos::RCP< const panzer::PureBasis > basis
Interpolates basis DOF values to IP DOF values.
Array< Scalar, Cell, IP, Dim, Dim, void, void, void, void > jac
void setupArrays(const Teuchos::RCP< const panzer::PointRule > &pr, const ArrayFactory &af)
Sizes/allocates memory for arrays.
PHX_POST_REGISTRATION_SETUP(BasisValues_Evaluator, sd, fm)
Array< Scalar, IP, Dim, void, void, void, void, void, void > coords_ref