54 const Teuchos::ParameterList& p)
56 Teuchos::RCP<PHX::DataLayout> scalar_dl =
57 p.get< Teuchos::RCP<PHX::DataLayout> >(
"Data Layout Scalar");
59 Teuchos::RCP<PHX::DataLayout> vector_dl =
60 p.get< Teuchos::RCP<PHX::DataLayout> >(
"Data Layout Vector");
62 const std::vector<std::string>& scalar_names =
63 *(p.get< Teuchos::RCP<const std::vector<std::string> > >(
"Scalar Names"));
66 for (std::size_t i=0; i < scalar_names.size(); ++i)
68 PHX::MDField<ScalarT,Cell,Point>(scalar_names[i], scalar_dl);
71 PHX::MDField<const ScalarT,Cell,Point,Dim>(p.get<std::string>
72 (
"Vector Name"), vector_dl);
79 std::string n =
"VectorToScalar: " +
vector_field.fieldTag().name();
118 const int num_scalars = std::min(
static_cast<int>(
scalar_fields.size()),
125 for (
int sc = 0; sc < num_scalars; ++sc) {
127 Kokkos::parallel_for(workset.
num_cells, KOKKOS_LAMBDA (
const int cell) {
128 for (
int pt = 0; pt < num_points; ++pt)
129 local_scalar_field(cell,pt) = local_vector_field(cell,pt,sc);
134 for(
unsigned int sc = num_scalars; sc <
scalar_fields.size(); ++sc)