OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
lambda_transport_equation.h
Go to the documentation of this file.
1 //---------------------------------------------------------------------------
2 //
3 // FCST: Fuel Cell Simulation Toolbox
4 //
5 // Copyright (C) 2013 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: lambda_transport_equation.h
11 // - Description: Equation class for Lambda Transport (using Springer Model)
12 // - Developers: Madhur Bhaiya
13 // - Id: $Id: lambda_transport_equation.h 1465 2013-08-30 22:42:25Z madhur $
14 //
15 //---------------------------------------------------------------------------
16 
17 #ifndef _FCST_FUELCELLSHOP_EQUATION_LAMBDA_TRANSPORT_EQUATION_H_
18 #define _FCST_FUELCELLSHOP_EQUATION_LAMBDA_TRANSPORT_EQUATION_H_
19 
20 // FCST includes
21 #include "utils/fcst_constants.h"
22 #include "utils/fcst_utilities.h"
23 
25 
26 #include "layers/catalyst_layer.h"
27 #include "layers/membrane_layer.h"
28 
29 // STD
30 #include <sstream>
31 #include <string>
32 
33 namespace FuelCellShop
34 {
35  namespace Equation
36  {
126  template<int dim>
128  {
129  public:
130 
132 
133 
138 
142  virtual ~LambdaTransportEquation();
143 
147  virtual void declare_parameters(ParameterHandler& param) const;
148 
152  virtual void initialize(ParameterHandler& param);
153 
155 
156 
158 
161  virtual void assemble_cell_matrix(AppFrame::MatrixVector& cell_matrices,
162  const typename AppFrame::DoFApplication<dim>::CellInfo& cell_info,
164 
168  virtual void assemble_cell_residual(AppFrame::FEVector& cell_rhs,
169  const typename AppFrame::DoFApplication<dim>::CellInfo& cell_info,
171 
176  virtual void assemble_bdry_matrix(AppFrame::MatrixVector& bdry_matrices,
177  const typename AppFrame::DoFApplication<dim>::FaceInfo& bdry_info,
178  FuelCellShop::Layer::BaseLayer<dim>* const layer){};
179 
185  const typename AppFrame::DoFApplication<dim>::FaceInfo& bdry_info,
186  FuelCellShop::Layer::BaseLayer<dim>* const layer){};
187 
189 
191 
192 
196  virtual void print_equation_info() const;
197 
199 
200  protected:
201 
203 
204 
210 
219  virtual void make_assemblers_cell_constant_data(const typename AppFrame::DoFApplication<dim>::CellInfo& cell_info);
220 
232 
239 
247  FuelCellShop::Layer::BaseLayer<dim>* const layer){};
248 
250 
252 
253 
258  virtual void make_internal_cell_couplings();
259 
266  virtual void make_boundary_types(){};
267 
274  virtual void make_output_types()
275  {};
276 
278 
280 
281 
287  const std::string name_base_variable;
288 
293 
298 
303 
307  double F;
308 
310 
312 
313 
317  double rho_dry_cell;
318 
322  double EW_cell;
323 
327  std::vector<double> nDrag_cell;
328 
333  std::vector<double> dnDrag_dlambda_cell;
334 
339  std::vector<double> sigmaMeff_cell;
340 
346  std::vector<double> dsigmaMeff_dT_cell;
347 
353  std::vector<double> dsigmaMeff_dlambda_cell;
354 
359  std::vector<double> Dlambdaeff_cell;
360 
366  std::vector<double> dDlambdaeff_dT_cell;
367 
373  std::vector<double> dDlambdaeff_dlambda_cell;
374 
379  std::vector< Tensor<1,dim> > grad_phiM_cell_old;
380 
385  std::vector< Tensor<1,dim> > grad_T_cell_old;
386 
394  std::vector< std::vector<double> > phi_lambda_cell;
395 
403  std::vector< std::vector< Tensor<1,dim> > > grad_phi_lambda_cell;
404 
412  std::vector< std::vector< Tensor<1,dim> > > grad_phi_T_cell;
413 
421  std::vector< std::vector< Tensor<1,dim> > > grad_phi_phiM_cell;
422 
424 
430 
435  unsigned int last_iter_cell;
436 
437  };
438  } // Equation
439 } // FuelCellShop
440 
441 #endif