137 Kokkos::DynRankView<int,PHX::Device> inCell(
"inCell", this->wda(d).cell_vertex_coordinates.extent_int(0), num_points);
138 Kokkos::DynRankView<double,PHX::Device> physical_points_cell(
"physical_points_cell", this->wda(d).cell_vertex_coordinates.extent_int(0), num_points, num_dim);
139 for (panzer::index_t cell(0); cell < d.
num_cells; ++cell)
140 for (
size_t dim=0; dim<num_dim; ++dim)
141 physical_points_cell(cell,0,dim) = point_[dim];
143 const double tol = 1.0e-12;
144 CTD::checkPointwiseInclusion(inCell,
145 physical_points_cell,
146 this->wda(d).cell_vertex_coordinates.get_view(),
152 bool haveProbe =
false;
153 for (index_t cell=0; cell<static_cast<int>(d.
num_cells); ++cell) {
160 if (inCell(cell,0) == 1) {
173 const size_t num_vertex = this->wda(d).cell_vertex_coordinates.extent(1);
174 Kokkos::DynRankView<double,PHX::Device> cell_coords(
175 "cell_coords", 1, num_vertex, num_dim);
176 for (
size_t i=0; i<num_vertex; ++i) {
177 for (
size_t j=0; j<num_dim; ++j) {
178 cell_coords(0,i,j) = this->wda(d).cell_vertex_coordinates(cellIndex_,i,j);
181 Kokkos::DynRankView<double,PHX::Device> physical_points(
182 "physical_points", 1, 1, num_dim);
183 for (
size_t i=0; i<num_dim; ++i)
184 physical_points(0,0,i) = physical_points_cell(0,0,i);
185 Kokkos::DynRankView<double,PHX::Device> reference_points(
186 "reference_points", 1, 1, num_dim);
187 CTD::mapToReferenceFrame(reference_points, physical_points, cell_coords,
189 Kokkos::DynRankView<double,PHX::Device> reference_points_cell(
190 "reference_points_cell", 1, num_dim);
191 for (
size_t i=0; i<num_dim; ++i)
192 reference_points_cell(0,i) = reference_points(0,0,i);
199 Kokkos::DynRankView<double,PHX::Device>
200 ref_basis_values(
"ref_basis_values", num_basis, 1);
201 basis_->getIntrepid2Basis()->getValues(ref_basis_values,
202 reference_points_cell,
203 Intrepid2::OPERATOR_VALUE);
206 FST::HGRADtransformVALUE<double>(basis_values_, ref_basis_values);
213 Kokkos::DynRankView<double,PHX::Device> ref_basis_values(
214 "ref_basis_values", num_basis, 1, num_dim);
215 basis_->getIntrepid2Basis()->getValues(ref_basis_values,
216 reference_points_cell,
217 Intrepid2::OPERATOR_VALUE);
220 Kokkos::DynRankView<double,PHX::Device>
jac
221 (
"jac", 1, 1, num_dim, num_dim);
222 CTD::setJacobian(
jac, reference_points, cell_coords, *topology_);
223 Kokkos::DynRankView<double,PHX::Device> basis_values_vec(
224 "basis_values_vec", 1, num_basis, 1, num_dim);
226 Kokkos::DynRankView<double,PHX::Device> jac_inv(
227 "jac_inv", 1, 1, num_dim, num_dim);
228 CTD::setJacobianInv(jac_inv,
jac);
229 FST::HCURLtransformVALUE<double>(basis_values_vec, jac_inv,
233 Kokkos::DynRankView<double,PHX::Device> jac_det(
235 CTD::setJacobianDet(jac_det,
jac);
236 FST::HDIVtransformVALUE<double>(basis_values_vec,
jac, jac_det,
241 std::vector<double> orientation;
242 globalIndexer_->getElementOrientation(cellIndex_, orientation);
243 std::string blockId = this->wda(d).block_id;
244 int fieldNum = globalIndexer_->getFieldNum(fieldName_);
245 const std::vector<int> & elmtOffset =
246 globalIndexer_->getGIDFieldOffsets(blockId,fieldNum);
249 for (
size_t i=0; i<num_basis; ++i) {
250 int offset = elmtOffset[i];
251 basis_values_(0,i,0) =
252 orientation[offset] * basis_values_vec(0,i,0,fieldComponent_);