25 const Teuchos::ParameterList& p)
29 Teuchos::RCP<const panzer::PointRule> pointRule
30 = p.get< Teuchos::RCP<const panzer::PointRule> >(
"Point Rule");
31 Teuchos::RCP<const Kokkos::DynRankView<double,PHX::Device> > userArray
32 = p.get<Teuchos::RCP<const Kokkos::DynRankView<double,PHX::Device> > >(
"Point Array");
34 initialize(pointRule,userArray.ptr(),Teuchos::null);
60 const Teuchos::RCP<const panzer::PureBasis> & pureBasis)
64 Teuchos::Ptr<const PHX::MDField<double, panzer::IP, panzer::Dim> > userArray;
65 initialize(pointRule,userArray,pureBasis);
72 const Teuchos::Ptr<const ArrayT> & userArray,
73 const Teuchos::RCP<const panzer::PureBasis> & pureBasis)
77 if(userArray!=Teuchos::null && basis==Teuchos::null)
78 useBasisValuesRefArray =
false;
79 else if(userArray==Teuchos::null && basis!=Teuchos::null)
80 useBasisValuesRefArray =
true;
83 TEUCHOS_ASSERT(
false);
87 if(userArray!=Teuchos::null) {
88 TEUCHOS_ASSERT(userArray->rank()==2);
91 refPointArray = md_af.
buildStaticArray<double,
NODE,
Dim>(
"refPointArray",userArray->extent(0),userArray->extent(1));
92 Kokkos::deep_copy(PHX::as_view(refPointArray), PHX::as_view(*userArray));
98 pointValues.setupArrays(pointRule);
101 this->addEvaluatedField(pointValues.coords_ref);
102 this->addEvaluatedField(pointValues.node_coordinates);
103 this->addEvaluatedField(pointValues.jac);
104 this->addEvaluatedField(pointValues.jac_inv);
105 this->addEvaluatedField(pointValues.jac_det);
106 this->addEvaluatedField(pointValues.point_coords);
108 std::string n =
"PointValues_Evaluator: " + pointRule->getName();
121 this->utils.setFieldData(pointValues.coords_ref,fm);
122 this->utils.setFieldData(pointValues.node_coordinates,fm);
123 this->utils.setFieldData(pointValues.jac,fm);
124 this->utils.setFieldData(pointValues.jac_inv,fm);
125 this->utils.setFieldData(pointValues.jac_det,fm);
126 this->utils.setFieldData(pointValues.point_coords,fm);
128 if(useBasisValuesRefArray) {
133 TEUCHOS_ASSERT(basis->supportsBasisCoordinates());
void evaluateValues(const PHX::MDField< Scalar, IP, Dim > &cub_points, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac, const PHX::MDField< Scalar, Cell, IP > &jac_det, const PHX::MDField< Scalar, Cell, IP, Dim, Dim > &jac_inv, const int in_num_cells=-1)
std::vector< std::string >::size_type getPureBasisIndex(std::string basis_name, const panzer::Workset &workset, WorksetDetailsAccessor &wda)
Returns the index in the workset bases for a particular PureBasis name.