18 #ifndef _FUELCELLSHOP__BASE__LAYER_H
19 #define _FUELCELLSHOP__BASE__LAYER_H
22 #include <base/parameter_handler.h>
23 #include <base/point.h>
24 #include <base/function.h>
25 #include <lac/vector.h>
26 #include <fe/fe_values.h>
36 using namespace dealii;
38 namespace FuelCellShop
65 virtual void set_derivative_flags(
const std::vector<VariableNames>& flags)
67 this->derivative_flags = flags;
74 void set_position(std::vector<Point<dim> > &p)
91 virtual void set_constant_solution(
const double& value,
const VariableNames& name)
93 constant_solutions[name] = value;
105 virtual void set_solution(
const std::vector< SolutionVariable >&)
107 const std::type_info& info =
typeid(*this);
108 deallog <<
"Pure function " << __FUNCTION__
109 <<
" called in Class "
110 << info.
name() << std::endl;
120 bool belongs_to_material(
const char material_id);
125 inline const std::string& name_material();
149 virtual const std::type_info& get_base_type()
const
151 const std::type_info& info =
typeid(*this);
152 deallog <<
"Pure function " << __FUNCTION__
153 <<
" called in Class "
154 << info.name() << std::endl;
161 virtual void print_layer_properties()
const;
166 virtual bool test_layer()
168 const std::type_info& info =
typeid(*this);
169 deallog <<
"Pure function " << __FUNCTION__
170 <<
" called in Class "
171 << info.name() << std::endl;
179 unsigned int get_material_id()
210 virtual void declare_parameters (
const std::string &object_name, ParameterHandler ¶m)
const
212 param.enter_subsection(
"Fuel cell data");
214 param.enter_subsection(object_name);
216 param.declare_entry(
"Material id",
218 Patterns::Integer(0),
219 "Id number used to identify this layer");
221 param.leave_subsection();
223 param.leave_subsection();
231 virtual void declare_parameters (ParameterHandler ¶m)
const
233 this->declare_parameters(this->name,param);
246 virtual void set_parameters(
const std::string &object_name,
247 const std::vector<std::string>& name_dvar,
248 const std::vector<double>& value_dvar,
249 ParameterHandler ¶m)
251 param.enter_subsection(
"Fuel cell data");
253 param.enter_subsection(object_name);
258 param.leave_subsection();
260 param.leave_subsection();
268 virtual void set_parameters(
const std::vector<std::string>& name_dvar,
269 const std::vector<double>& value_dvar,
270 ParameterHandler ¶m)
272 param.enter_subsection(
"Fuel cell data");
274 param.enter_subsection(this->name);
279 param.leave_subsection();
281 param.leave_subsection();
288 virtual void initialize (ParameterHandler ¶m);
312 #endif // _FUELCELLSHOP__GENERIC__LAYER_H