18 #ifndef _FUELCELLSHOP__MICRO_POROUS_LAYER_H
19 #define _FUELCELLSHOP__MICRO_POROUS_LAYER_H
27 #include <base/parameter_handler.h>
28 #include <base/point.h>
29 #include <base/function.h>
30 #include <lac/vector.h>
31 #include <fe/fe_values.h>
37 using namespace dealii;
39 namespace FuelCellShop
187 static void declare_MicroPorousLayer_parameters (
const std::string& mpl_section_name,
188 ParameterHandler ¶m)
194 iterator->second->declare_parameters(mpl_section_name, param);
208 static void set_MicroPorousLayer_parameters (
const std::vector<std::string>& name_dvar,
209 const std::vector<double>& value_dvar,
210 const std::string& mpl_section_name,
211 ParameterHandler ¶m)
217 iterator->second->set_parameters(name_dvar, value_dvar, mpl_section_name, param);
224 static boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > create_MicroPorousLayer (
const std::string& mpl_section_name,
225 ParameterHandler ¶m)
227 boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > pointer;
229 std::string concrete_name;
230 param.enter_subsection(
"Fuel cell data");
232 param.enter_subsection(mpl_section_name);
234 concrete_name = param.get(
"Micro porous layer type");
235 deallog <<
"name: "<<concrete_name.c_str()<<std::endl;
237 param.leave_subsection();
239 param.leave_subsection();
245 if (iterator->second)
251 deallog<<
"Pointer not initialized"<<std::endl;
257 deallog<<
"Concrete name in FuelCellShop::Layer::MicroPorousLayer<dim>::create_MicroPorousLayer does not exist"<<std::endl;
261 pointer->initialize(param);
275 void declare_parameters (ParameterHandler ¶m)
const
308 const std::type_info& get_base_type()
const
321 virtual void effective_gas_diffusivity(
const double& property,
322 double& effective_property)
const
324 const std::type_info& info =
typeid(*this);
325 deallog <<
"Pure function " << __FUNCTION__
326 <<
" called in Class "
327 << info.name() << std::endl;
335 virtual void effective_gas_diffusivity(
const double& property,
338 const std::type_info& info =
typeid(*this);
339 deallog <<
"Pure function " << __FUNCTION__
340 <<
" called in Class "
341 << info.name() << std::endl;
356 const std::type_info& info =
typeid(*this);
357 deallog <<
"Pure function " << __FUNCTION__
358 <<
" called in Class "
359 << info.name() << std::endl;
367 virtual void effective_electron_conductivity(
double& )
const
369 const std::type_info& info =
typeid(*this);
370 deallog <<
"Pure function " << __FUNCTION__
371 <<
" called in Class "
372 << info.name() << std::endl;
382 const std::type_info& info =
typeid(*this);
383 deallog <<
"Pure function " << __FUNCTION__
384 <<
" called in Class "
385 << info.name() << std::endl;
394 virtual bool set_method_effective_transport_property_solid(std::string)
396 const std::type_info& info =
typeid(*this);
397 deallog <<
"Pure function " << __FUNCTION__
398 <<
" called in Class "
399 << info.name() << std::endl;
409 virtual void effective_transport_property_solid(
const double& property,
410 double& effective_property)
const
412 const std::type_info& info =
typeid(*this);
413 deallog <<
"Pure function " << __FUNCTION__
414 <<
" called in Class "
415 << info.name() << std::endl;
425 virtual void effective_transport_property_solid(
const Tensor<2,dim>& property,
428 const std::type_info& info =
typeid(*this);
429 deallog <<
"Pure function " << __FUNCTION__
430 <<
" called in Class "
431 << info.name() << std::endl;
472 void declare_parameters (
const std::string& name,
473 ParameterHandler ¶m)
const;
480 void set_parameters (
const std::vector<std::string>& name_dvar,
481 const std::vector<double>& value_dvar,
482 const std::string& name,
483 ParameterHandler ¶m)
const
495 typedef std::map< std::string, MicroPorousLayer<dim>* >
_mapFactory;
554 virtual boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> > create_replica (
const std::string &name)
556 const std::type_info& info =
typeid(*this);
557 deallog <<
"Pure function " << __FUNCTION__
558 <<
" called in Class "
559 << info.name() << std::endl;
568 #endif // _FUELCELLSHOP__MICRO_POROUS_LAYER_H