1 #ifndef VERTEXCFD_SCALARPARAMETERMANAGER_IMPL_HPP
2 #define VERTEXCFD_SCALARPARAMETERMANAGER_IMPL_HPP
11 template<
class EvalType>
12 ScalarParameterManager<EvalType>::ScalarParameterManager(
13 const ParameterDatabase& parameter_db)
16 auto general_scalar_params = parameter_db.generalScalarParameters();
17 if (Teuchos::nonnull(general_scalar_params))
20 for (
const auto& gp : *general_scalar_params)
23 std::unordered_map<std::string, double> block_values;
24 auto param_values = general_scalar_params->sublist(gp.first);
25 for (
const auto& bv : param_values)
28 block_values.emplace(bv.first, bv.second.getValue<
double>(0));
32 _general_parameter_data.emplace(gp.first, std::move(block_values));
38 template<
class EvalType>
39 void ScalarParameterManager<EvalType>::addObserver(
40 const Teuchos::RCP<ScalarParameterObserver<EvalType>>& observer)
42 _observers.emplace_back(observer);
46 template<
class EvalType>
47 void ScalarParameterManager<EvalType>::update(
48 const panzer::GlobalData& global_data,
const panzer::Workset& workset)
50 for (
auto& o : _observers)
52 o->update(global_data, workset, _general_parameter_data);
61 #endif // end VERTEXCFD_SCALARPARAMETERMANAGER_IMPL_HPP