1 #ifndef VERTEXCFD_GENERALSCALARPARAMETER_IMPL_HPP
2 #define VERTEXCFD_GENERALSCALARPARAMETER_IMPL_HPP
9 template<
class EvalType>
10 GeneralScalarParameter<EvalType>::GeneralScalarParameter(
11 const std::string& name, scalar_type& ref_to_parameter)
13 , _ref_to_parameter(ref_to_parameter)
18 template<
class EvalType>
19 const std::string& GeneralScalarParameter<EvalType>::name()
const
25 template<
class EvalType>
26 void GeneralScalarParameter<EvalType>::update(
27 const panzer::Workset& workset,
28 const std::unordered_map<std::string, std::unordered_map<std::string, double>>&
29 general_scalar_params)
32 auto param_values = general_scalar_params.find(_name);
33 if (param_values == general_scalar_params.end())
35 const std::string msg =
"GeneralScalar parameter " + _name
37 throw std::runtime_error(msg);
41 auto block_name = workset.getElementBlock();
42 auto block_value = param_values->second.find(block_name);
45 if (block_value != param_values->second.end())
47 _ref_to_parameter = block_value->second;
54 auto default_value = param_values->second.find(
"Default Value");
55 if (default_value != param_values->second.end())
57 _ref_to_parameter = default_value->second;
61 const std::string msg =
"GeneralScalar parameter " + _name
62 +
" does not have a value for block "
64 +
" and is also missing a default value";
65 throw std::runtime_error(msg);
75 #endif // end VERTEXCFD_GENERALSCALARPARAMETER_IMPL_HPP