18 #ifndef _FCST_FUELCELLSHOP_EQUATION_EQUATION_BASE_H_
19 #define _FCST_FUELCELLSHOP_EQUATION_EQUATION_BASE_H_
28 using namespace dealii;
29 using namespace AppFrame;
31 namespace FuelCellShop
163 <<
"The user-defined variable with name \"" << arg1 <<
"\" should be one of the solution variables for equation with name \"" << arg2 <<
"\"");
173 <<
"The index of variable \"" << arg1 <<
"\" do not match with the index of equation \"" << arg2 <<
"\"");
213 print_caller_name(__FUNCTION__);
223 print_caller_name(__FUNCTION__);
233 print_caller_name(__FUNCTION__);
243 print_caller_name(__FUNCTION__);
258 AssertThrow( !internal_cell_couplings.empty() , ExcInternalError() );
259 return internal_cell_couplings;
269 AssertThrow( !internal_flux_couplings.empty() , ExcInternalError() );
270 return internal_flux_couplings;
280 AssertThrow( !component_materialID_value.empty() , ExcInternalError() );
281 return component_materialID_value;
291 AssertThrow( !component_boundaryID_value.empty() , ExcInternalError() );
292 return component_boundaryID_value;
300 const std::vector< BoundaryType >& get_boundary_types()
const
302 return boundary_types;
310 const std::vector< std::vector< BoundaryType > >& get_multi_boundary_types()
const
312 return multi_boundary_types;
320 const std::vector< OutputType >& get_output_types()
const
330 const std::vector< std::vector< OutputType > >& get_multi_output_types()
const
332 return multi_output_types;
340 const std::string& get_equation_name()
const
342 return equation_name;
350 const std::vector<unsigned int>& get_matrix_block_indices()
const
352 return matrix_block_indices;
360 const std::vector<unsigned int>& get_residual_indices()
const
362 return residual_indices;
370 virtual void print_equation_info()
const
372 print_caller_name(__FUNCTION__);
395 virtual void declare_parameters(ParameterHandler& param)
const
397 print_caller_name(__FUNCTION__);
405 print_caller_name(__FUNCTION__);
417 virtual void make_assemblers_generic_constant_data()
419 print_caller_name(__FUNCTION__);
428 print_caller_name(__FUNCTION__);
437 print_caller_name(__FUNCTION__);
447 print_caller_name(__FUNCTION__);
457 print_caller_name(__FUNCTION__);
470 virtual void make_internal_cell_couplings()
472 print_caller_name(__FUNCTION__);
480 virtual void make_internal_flux_couplings()
482 print_caller_name(__FUNCTION__);
490 virtual void make_component_materialID_value()
492 print_caller_name(__FUNCTION__);
500 virtual void make_component_boundaryID_value()
502 print_caller_name(__FUNCTION__);
510 virtual void make_boundary_types()
512 print_caller_name(__FUNCTION__);
520 virtual void make_multi_boundary_types()
522 print_caller_name(__FUNCTION__);
530 virtual void make_output_types()
532 print_caller_name(__FUNCTION__);
540 virtual void make_multi_output_types()
542 print_caller_name(__FUNCTION__);
550 virtual void make_matrix_block_indices()
552 print_caller_name(__FUNCTION__);
560 virtual void make_residual_indices()
562 print_caller_name(__FUNCTION__);
599 const std::vector<unsigned int>& matrix_block_indices)
const;
616 const std::vector<unsigned int>& residual_indices)
const;
629 bool belongs_to_boundary(
const unsigned int& tria_boundary_id,
630 const unsigned int& param_boundary_id)
const
632 return tria_boundary_id == param_boundary_id;
646 void print_caller_name(
const std::string& caller_name)
const;