17 #ifndef _FUELCELLSHOP__DUAL_PATH_KINETICS_H
18 #define _FUELCELLSHOP__DUAL_PATH_KINETICS_H
24 #include <base/parameter_handler.h>
25 #include <base/point.h>
26 #include <base/function.h>
27 #include <lac/vector.h>
28 #include <fe/fe_values.h>
34 using namespace dealii;
36 namespace FuelCellShop
79 virtual void set_reaction_kinetics(
const std::string& name)
82 name_reaction_kinetics = name;
86 const std::type_info& info =
typeid(*this);
87 deallog <<
"Only HOR reaction is to be implemented in " << __FUNCTION__ <<
" called in Class " << info.name() << std::endl;
98 virtual void current_density (std::vector<double>&);
106 virtual void derivative_current (std::map<
VariableNames, std::vector<double> >&);
132 virtual void declare_parameters(ParameterHandler ¶m)
const;
138 virtual void set_parameters(
const std::vector<std::string>&,
139 const std::vector<double>&,
140 ParameterHandler&)
const{};
146 virtual void initialize(ParameterHandler ¶m);
157 virtual boost::shared_ptr<FuelCellShop::Kinetics::BaseKinetics > create_replica ()
173 virtual void init_kin_param()
175 Assert( !kin_param_initialized, ExcInternalError() );
176 Assert( catalyst != NULL, ExcMessage(
"Catalyst object not initialized in the DualPathKinetics object.") );
177 Assert( catalyst->get_reaction_name() ==
"HOR", ExcMessage(
"Catalyst object in the DualPathKinetics not set to HOR reaction name.") );
178 Assert( phi_m.is_initialized() && phi_s.is_initialized() && T.is_initialized(), ExcMessage(
"Either phi_m/phi_s/T is not set in the DualPathKinetics object.") );
179 Assert( reactants_map.find(
hydrogen_concentration) != reactants_map.end(), ExcMessage(
"Hydrogen concentration is not set in the DualPathKinetics object.") );
182 std::map< VariableNames, double > cref_map;
183 catalyst->reference_concentration(names, cref_map);
186 kin_param_initialized =
true;
213 #endif //_FUELCELLSHOP__DUAL_PATH_KINETICS_H