OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
simulation_selector.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 // C++ Interface: simulation_selector.h
3 //
4 // Description: Used to instantiate optimization routines
5 //
6 // Author: Peter Dobson <pdobson@ualberta.ca>, (C) 2011
7 // University of Alberta
8 //
9 // Copyright: See COPYING file that comes with this distribution
10 //
11 //---------------------------------------------------------------------------
12 
13 #ifndef _SIMULATION_TOOLS_H
14 #define _SIMULATION_TOOLS_H
15 
16 #include <string>
17 #include <iostream>
18 
19 #include <boost/shared_ptr.hpp>
20 
22 #include "adaptive_refinement.h"
23 
24 #include "newton_basic.h"
25 #include "newton_w_line_search.h"
26 #include "newton_w_3pp.h"
27 #include "newton_w_3ppC.h"
28 
29 #include "app_cathode.h"
30 #include "app_pemfc.h"
31 #include "app_laplace.h"
32 #include "app_read_mesh.h"
33 
34 //---------------------------------------------------------
42 template <int dim>
44 {
45 public:
46 
49 
52 
54  void declare_parameters(ParameterHandler& param) const;
55 
57  void initialize(ParameterHandler& param);
58 
73  boost::shared_ptr<AppFrame::OptimizationBlockMatrixApplication<dim> > select_application();
74 
78  //boost::shared_ptr<AppFrame::newtonBase > select_solver(AppFrame::OptimizationBlockMatrixApplication<dim>* app_lin);
79  boost::shared_ptr<AppFrame::ApplicationCopy > select_solver(AppFrame::OptimizationBlockMatrixApplication<dim>* app_lin);
80 
84  boost::shared_ptr<AppFrame::AdaptiveRefinement<dim> >
86  AppFrame::ApplicationCopy* newton_solver,
87  const AppFrame::FEVector& solution = AppFrame::FEVector());
88  //select_solver_method(AppFrame::OptimizationBlockMatrixApplication<dim>* app_lin, AppFrame::newtonBase* newton_solver);
89 
90 
91 protected:
95  std::string name_application;
96 
100  std::string name_solver;
101 
105  std::string name_solve_method;
106 };
107 
108 #endif