43#ifndef PANZER_GATHER_INTEGRATION_COORDINATES_IMPL_HPP
44#define PANZER_GATHER_INTEGRATION_COORDINATES_IMPL_HPP
46#include "Teuchos_Assert.hpp"
47#include "Phalanx_DataLayout.hpp"
52#include "Teuchos_FancyOStream.hpp"
54template<
typename EvalT,
typename TRAITS>
60 ss <<
"IR_" << degree <<
" IntegrationCoordinates";
64template<
typename EvalT,
typename TRAITS>
70 quadCoordinates_ = PHX::MDField<ScalarT,Cell,Point,Dim>(fieldName(quadDegree_),quad.
dl_vector);
72 this->addEvaluatedField(quadCoordinates_);
74 this->setName(
"Gather "+fieldName(quadDegree_));
78template<
typename EvalT,
typename TRAITS>
87template<
typename EvalT,
typename TRAITS>
94 auto d_quadCoordinates = quadCoordinates_.get_static_view();
97 Kokkos::parallel_for(
"GatherIntegrationCoords", s_ip_coordinates.extent_int(0), KOKKOS_LAMBDA (
int i) {
98 for(
int j=0;j<s_ip_coordinates.extent_int(1);j++)
99 for(
int k=0;k<s_ip_coordinates.extent_int(2);k++)
100 d_quadCoordinates(i,j,k) = s_ip_coordinates(i,j,k);
void postRegistrationSetup(typename TRAITS::SetupData d, PHX::FieldManager< TRAITS > &vm)
void evaluateFields(typename TRAITS::EvalData d)
GatherIntegrationCoordinates()
static std::string fieldName(int degree)
Array_CellIPDim ip_coordinates
Teuchos::RCP< PHX::DataLayout > dl_vector
Data layout for vector fields.
std::vector< int >::size_type getIntegrationRuleIndex(int ir_degree, const panzer::Workset &workset, WorksetDetailsAccessor &wda)