OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SimulationSelector< dim > Class Template Reference

This class selects an openFCST application which will run. More...

#include <simulation_selector.h>

Public Member Functions

 SimulationSelector (boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > data=boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >())
 Constructor. More...
 
 ~SimulationSelector ()
 Destructor. More...
 
void declare_parameters (ParameterHandler &param) const
 Declare parameters. More...
 
void initialize (ParameterHandler &param)
 Initialize parameters. More...
 
boost::shared_ptr
< FuelCell::ApplicationCore::OptimizationBlockMatrixApplication
< dim > > 
select_application ()
 Assign the application you would like to solve. More...
 
boost::shared_ptr
< FuelCell::ApplicationCore::ApplicationWrapper
select_solver (FuelCell::ApplicationCore::OptimizationBlockMatrixApplication< dim > *app_lin)
 Select solver. More...
 
boost::shared_ptr
< FuelCell::ApplicationCore::AdaptiveRefinement
< dim > > 
select_solver_method (FuelCell::ApplicationCore::OptimizationBlockMatrixApplication< dim > *app_lin, FuelCell::ApplicationCore::ApplicationWrapper *newton_solver, const FuelCell::ApplicationCore::FEVector &solution=FuelCell::ApplicationCore::FEVector())
 Select the solution method. More...
 

Protected Member Functions

const std::string get_simulator_names () const
 This function forms the string of names. More...
 
const std::string get_simulator_specifications () const
 This function forms the string of names. More...
 
const std::string get_nonlinear_solver_names () const
 This function forms the string of names. More...
 
const std::string get_refinement_methods () const
 This function forms the string of names. More...
 

Protected Attributes

boost::shared_ptr
< FuelCell::ApplicationCore::ApplicationData
data
 Data structure storing information to be shared between applications. More...
 
std::string name_application
 Name of application. More...
 
std::string app_specification
 Variable storing the name of the concrete application to be solved from the broader class of applications defined by name_application. More...
 
std::string name_nonlinear_solver
 The name of a nonlinear solver. More...
 
std::string name_refinement_method
 Name of refinement method. More...
 

Detailed Description

template<int dim>
class SimulationSelector< dim >

This class selects an openFCST application which will run.

Author
P. Dobson, M. Secanell, A. Koupaei, V. Zingan, M. Bhaiya, ESDLab 2006-2015

Constructor & Destructor Documentation

template<int dim>
SimulationSelector< dim >::SimulationSelector ( boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData data = boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >())

Constructor.

template<int dim>
SimulationSelector< dim >::~SimulationSelector ( )

Destructor.

Member Function Documentation

template<int dim>
void SimulationSelector< dim >::declare_parameters ( ParameterHandler &  param) const

Declare parameters.

template<int dim>
const std::string SimulationSelector< dim >::get_nonlinear_solver_names ( ) const
inlineprotected

This function forms the string of names.

template<int dim>
const std::string SimulationSelector< dim >::get_refinement_methods ( ) const
inlineprotected

This function forms the string of names.

template<int dim>
const std::string SimulationSelector< dim >::get_simulator_names ( ) const
inlineprotected

This function forms the string of names.

template<int dim>
const std::string SimulationSelector< dim >::get_simulator_specifications ( ) const
inlineprotected

This function forms the string of names.

template<int dim>
void SimulationSelector< dim >::initialize ( ParameterHandler &  param)

Initialize parameters.

template<int dim>
boost::shared_ptr< FuelCell::ApplicationCore::OptimizationBlockMatrixApplication<dim> > SimulationSelector< dim >::select_application ( )

Assign the application you would like to solve.

All applications should be inherited from FuelCell::ApplicationCore::OptimizationBlockMatrixApplication<dim>.

If you develop a new application, you would assign the application an application name and add the following to this section:

* else if(name_application.compare("app_cathode") == 0)
* {
* FcstUtilities::log << "YOU ARE CURRENTLY SOLVING A CATHODE MODEL" << std::endl;
* return shared_ptr< FuelCell::Application::AppCathode<dim> > (new FuelCell::Application::AppCathode<dim>);
* }
*

Select solver.

Select the solution method.

Only adaptive refinement is available.

Member Data Documentation

template<int dim>
std::string SimulationSelector< dim >::app_specification
protected

Variable storing the name of the concrete application to be solved from the broader class of applications defined by name_application.

Example: name_application = app_incompressible_flows and app_specification = Poiseuille.

template<int dim>
boost::shared_ptr<FuelCell::ApplicationCore::ApplicationData> SimulationSelector< dim >::data
protected

Data structure storing information to be shared between applications.

template<int dim>
std::string SimulationSelector< dim >::name_application
protected

Name of application.

template<int dim>
std::string SimulationSelector< dim >::name_nonlinear_solver
protected

The name of a nonlinear solver.

template<int dim>
std::string SimulationSelector< dim >::name_refinement_method
protected

Name of refinement method.


The documentation for this class was generated from the following file: