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"
65 template<
typename EvalT,
typename Traits>
69 : responseName_(name), ir_order_(ir_order)
81 std::string n =
"IPCoordinates Response Scatter: " + name;
85 template<
typename EvalT,
typename Traits>
95 template<
typename EvalT,
typename Traits>
103 template<
typename EvalT,
typename Traits>
110 if (tmpCoords_.size() != Teuchos::as<std::size_t>(iv.
ip_coordinates.extent(2))) {
112 for(std::size_t dim=0;dim<tmpCoords_.size();dim++)
113 tmpCoords_[dim].clear();
120 for (index_t cell = 0; cell < workset.
num_cells; ++cell)
122 tmpCoords_[dim].push_back(iv.
ip_coordinates(static_cast<int>(cell),ip,dim));
126 template<
typename EvalT,
typename Traits>
130 std::vector<panzer::Traits::Residual::ScalarT> & coords = *responseObj_->getNonconstCoords();
133 for (std::size_t dim = 0; dim < tmpCoords_.size(); ++dim) {
134 for (
typename std::vector<ScalarT>::const_iterator x=tmpCoords_[dim].begin(); x != tmpCoords_[dim].end(); ++ x)
135 coords.push_back(Sacado::ScalarValue<ScalarT>::eval(*x));