11#ifndef PANZER_MULTIVARIATE_PARAMETER_IMPL_HPP
12#define PANZER_MULTIVARIATE_PARAMETER_IMPL_HPP
14#include "PanzerDiscFE_config.hpp"
25template<
typename EvalT,
typename TRAITS>
29 const std::string field_name,
30 const Teuchos::RCP<PHX::DataLayout>& data_layout,
33 target_field = PHX::MDField<ScalarT, Cell, Point>(field_name, data_layout);
36 param.resize(num_param);
37 for (
int i=0; i<num_param; ++i) {
39 ss << parameter_name <<
"_" << i;
46 std::string n =
"Multi-variate Parameter Evaluator";
51template<
typename EvalT,
typename TRAITS>
56 const int num_param =
param.size();
57 for (
int i=0; i<num_param; ++i)
58 sum +=
param[i]->getValue();
60 for (index_t cell = 0; cell < workset.num_cells; ++cell) {
61 for (
typename PHX::MDField<ScalarT, Cell, Point>::size_type pt = 0;
Teuchos::Array< Teuchos::RCP< panzer::ScalarParameterEntry< EvalT > > > param
PHX::MDField< ScalarT, Cell, Point > target_field
void evaluateFields(typename TRAITS::EvalData ud)
MultiVariateParameter(const std::string parameter_name, const int num_param, const std::string field_name, const Teuchos::RCP< PHX::DataLayout > &data_layout, panzer::ParamLib ¶m_lib)
Teuchos::RCP< panzer::ScalarParameterEntry< EvaluationType > > createAndRegisterScalarParameter(const std::string name, panzer::ParamLib &pl)
Sacado::ScalarParameterLibrary< panzer::EvaluationTraits > ParamLib
Panzer's registry of named scalar parameters (see panzer::ScalarParameterEntry), keyed and evaluated ...