43#ifndef PANZER_RESPONSE_SCATTER_EVALUATOR_IPCoordinates_IMPL_HPP
44#define PANZER_RESPONSE_SCATTER_EVALUATOR_IPCoordinates_IMPL_HPP
49#include "PanzerDiscFE_config.hpp"
51#include "Phalanx_Evaluator_Macros.hpp"
52#include "Phalanx_MDField.hpp"
53#include "Phalanx_DataLayout_MDALayout.hpp"
65template<
typename EvalT,
typename Traits>
77 RCP<PHX::DataLayout> dl_dummy = rcp(
new PHX::MDALayout<panzer::Dummy>(0));
81 std::string n =
"IPCoordinates Response Scatter: " + name;
85template<
typename EvalT,
typename Traits>
90 responseObj_ = Teuchos::rcp_dynamic_cast<Response_IPCoordinates<EvalT> >(
95template<
typename EvalT,
typename Traits>
103template<
typename EvalT,
typename Traits>
112 for(std::size_t dim=0;dim<
tmpCoords_.size();dim++)
116 auto ip_coordinates_h = Kokkos::create_mirror_view(PHX::as_view(iv.
ip_coordinates));
117 Kokkos::deep_copy(ip_coordinates_h, PHX::as_view(iv.
ip_coordinates));
123 for (index_t cell = 0; cell < workset.
num_cells; ++cell)
125 tmpCoords_[dim].push_back(ip_coordinates_h(
static_cast<int>(cell),ip,dim));
129template<
typename EvalT,
typename Traits>
133 std::vector<panzer::Traits::Residual::ScalarT> & coords = *
responseObj_->getNonconstCoords();
136 for (std::size_t dim = 0; dim <
tmpCoords_.size(); ++dim) {
137 for (
typename std::vector<ScalarT>::const_iterator x=
tmpCoords_[dim].begin(); x !=
tmpCoords_[dim].end(); ++ x)
138 coords.push_back(Sacado::scalarValue(*x));
WorksetDetailsAccessor wda
Array_CellIPDim ip_coordinates
static std::string buildLookupName(const std::string &responseName)
void postEvaluate(typename Traits::PostEvalData d)
void evaluateFields(typename Traits::EvalData d)
std::vector< std::vector< ScalarT > > tmpCoords_
void postRegistrationSetup(typename Traits::SetupData d, PHX::FieldManager< Traits > &fm)
void preEvaluate(typename Traits::PreEvalData d)
Teuchos::RCP< PHX::FieldTag > scatterHolder_
ResponseScatterEvaluator_IPCoordinates(const std::string &name, int ir_order)
A constructor with concrete arguments instead of a parameter list.
Teuchos::RCP< Response_IPCoordinates< EvalT > > responseObj_
std::string responseName_
int num_cells
DEPRECATED - use: numCells()
std::vector< int >::size_type getIntegrationRuleIndex(int ir_degree, const panzer::Workset &workset, WorksetDetailsAccessor &wda)
Teuchos::RCP< GlobalEvaluationDataContainer > gedc
Teuchos::RCP< const std::vector< panzer::Workset > > worksets_
const panzer::Workset & EvalData