OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
app_step3.h
Go to the documentation of this file.
1 // ----------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2014 by Energy Systems Design Laboratory, University of Alberta
6 //
7 // This software is distributed under the MIT License
8 // For more information, see the README file in /doc/LICENSE
9 //
10 // - Class: app_block_matrix_step3.cc
11 // - Description: Test for application framework. Solves deal.II step-3 tutorial
12 // - Developers: Marc Secanell, University of Alberta
13 // - $Id: app_step3.h 2605 2014-08-15 03:36:44Z secanell $
14 //
15 // ----------------------------------------------------------------------------
16 
17 // deal.II routines:
18 #include <base/parameter_handler.h>
19 #include <base/function_lib.h>
20 #include <base/function.h>
21 #include <base/quadrature_lib.h>
22 #include <lac/block_vector.h>
23 #include <lac/solver_cg.h>
24 #include <lac/precondition.h>
25 #include <lac/vector.h>
27 #include <numerics/vector_tools.h>
28 #include <grid/grid_generator.h>
29 #include <fe/fe_values.h>
30 
31 using namespace FuelCell::ApplicationCore;
32 
33 namespace FuelCell
34 {
35  namespace Application
36  {
37 
50  template <int dim>
51  class AppStep3 :
52  public BlockMatrixApplication<dim>
53  {
54  public:
58  AppStep3 ();
59 
63  void initialize(ParameterHandler& param);
64 
69  virtual void cell_matrix(MatrixVector& cell_matrices,
70  const typename DoFApplication<dim>::CellInfo& cell);
71 
76  virtual void cell_residual(FEVector& cell_vector,
77  const typename DoFApplication<dim>::CellInfo& cell);
78 
82  virtual void dirichlet_bc(std::map<unsigned int, double>& boundary_values) const;
83 
87  virtual double evaluate (const FEVectors& src);
88  };
89  }
90 }
Application handling matrices and assembling linear systems of equations.
Definition: block_matrix_application.h:83
This class is created for the objects handed to the mesh loops.
Definition: mesh_loop_info_objects.h:625
std::vector< MatrixBlock< FullMatrix< double > > > MatrixVector
The matrix vector used in the mesh loops.
Definition: matrix_block.h:102
BlockVector< double > FEVector
The vector class used by applications.
Definition: application_data.h:39
The data type used in function calls of Application.
Definition: fe_vectors.h:59
This class is used to test the application framework by solving Step-3 of the deal.II finite element libraries.
Definition: app_step3.h:51