43 #ifndef PANZER_EVALUATOR_TENSOR_TO_STD_VECTOR_DECL_HPP
44 #define PANZER_EVALUATOR_TENSOR_TO_STD_VECTOR_DECL_HPP
49 #include "Phalanx_Evaluator_Macros.hpp"
50 #include "Phalanx_MDField.hpp"
64 template<
typename EvalT,
typename Traits>
67 public PHX::EvaluatorWithBaseImpl<Traits>,
68 public PHX::EvaluatorDerived<EvalT, Traits>
73 const Teuchos::ParameterList& p);
104 template <
typename EvalT,
typename Traits>
106 const std::string & vectorPrefix,
107 const std::vector<std::string> & postfix,
108 const Teuchos::RCP<const PHX::DataLayout> & tensorLayout,
109 const Teuchos::RCP<const PHX::DataLayout> & vectorLayout)
113 using Teuchos::rcp_const_cast;
115 RCP<std::vector<std::string> > vectorNames = rcp(
new std::vector<std::string>);
116 for(std::size_t i=0;i<postfix.size();i++)
117 vectorNames->push_back(vectorPrefix+postfix[i]);
119 Teuchos::ParameterList input;
120 input.set(
"Tensor Name", tensorName);
121 input.set(
"Vector Names", vectorNames.getConst());
122 input.set(
"Data Layout Tensor",rcp_const_cast<PHX::DataLayout>(tensorLayout));
123 input.set(
"Data Layout Vector",rcp_const_cast<PHX::DataLayout>(vectorLayout));
139 template <
typename EvalT,
typename Traits>
141 const std::vector<std::string> & postfix,
142 const Teuchos::RCP<const PHX::DataLayout> & tensorLayout,
143 const Teuchos::RCP<const PHX::DataLayout> & vectorLayout)
145 return tensorToStdVectorEvaluator<EvalT,Traits>(tensorName,tensorName,postfix,tensorLayout,vectorLayout);