OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
response_capillary_related.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: data_out.h
11 // - Description:
12 // - Developers: M. Secanell
13 //
14 //---------------------------------------------------------------------------
15 
16 #ifndef _FUELCELLSHOP__POSTPROCESSING__RESPONSE_CAPILARRY_RELATED_H
17 #define _FUELCELLSHOP__POSTPROCESSING__RESPONSE_CAPILARRY_RELATED_H
18 
19 // Include OpenFCST routines:
21 
22 // Equation Classes
31 
32 #include <layers/porous_layer.h>
34 
35 #include <materials/PureGas.h>
39 
41 
42 using namespace dealii;
43 
44 namespace FuelCellShop
45 {
53  namespace PostProcessing
54  {
55 
94  template <int dim>
96  :
97  public dealii::DataPostprocessor<dim>
98  {
99  public:
100 
102 
103 
107  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
112  virtual ~PermeabilityDataOut() {}
113 
119  virtual std::vector<std::string> get_names() const;
120 
124  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
125 
129  virtual UpdateFlags get_needed_update_flags() const;
130 
144  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
145  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
146  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
147  const std::vector< Point< dim > > & /*normals*/,
148  const std::vector< Point<dim> > & /*evaluation_points*/,
149  const types::material_id & mat_id,
150  std::vector< Vector< double > > &computed_quantities) const;
151 
152 
153  private:
157  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
158 
163 
168 
169  };
170 
171 
172  template <int dim>
173  class RHSDataOut
174  :
175  public dealii::DataPostprocessor<dim>
176  {
177  public:
178 
180 
181 
185  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
190  virtual ~RHSDataOut() {}
191 
197  virtual std::vector<std::string> get_names() const;
198 
202  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
203 
207  virtual UpdateFlags get_needed_update_flags() const;
208 
222  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
223  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
224  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
225  const std::vector< Point< dim > > & /*normals*/,
226  const std::vector< Point<dim> > & /*evaluation_points*/,
227  const types::material_id & mat_id,
228  std::vector< Vector< double > > &computed_quantities) const;
229 
230 
231  private:
235  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
236 
241 
246 
247  };
248 
249  template <int dim>
251  :
252  public dealii::DataPostprocessor<dim>
253  {
254  public:
255 
257 
258 
262  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
264  );
268  virtual ~LHS_Pc_DataOut() {}
269 
275  virtual std::vector<std::string> get_names() const;
276 
280  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
281 
285  virtual UpdateFlags get_needed_update_flags() const;
286 
300  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
301  const std::vector< std::vector< Tensor< 1, dim > > > & duh,
302  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
303  const std::vector< Point< dim > > & /*normals*/,
304  const std::vector< Point<dim> > & /*evaluation_points*/,
305  const types::material_id & mat_id,
306  std::vector< Vector< double > > &computed_quantities) const;
307 
308 
309  private:
313  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
314 
319 
324 
325  };
326 
327  template <int dim>
329  :
330  public dealii::DataPostprocessor<dim>
331  {
332  public:
333 
335 
336 
340  boost::shared_ptr< FuelCellShop::Layer::CatalystLayer<dim> > ,
345  virtual ~ORRSOURCEDataOut() {}
346 
352  virtual std::vector<std::string> get_names() const;
353 
357  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
358 
362  virtual UpdateFlags get_needed_update_flags() const;
363 
377  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
378  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
379  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
380  const std::vector< Point< dim > > & /*normals*/,
381  const std::vector< Point<dim> > & /*evaluation_points*/,
382  const types::material_id & mat_id,
383  std::vector< Vector< double > > &computed_quantities) const;
384 
385 
386  private:
390  boost::shared_ptr< FuelCellShop::Layer::CatalystLayer<dim> > catalyst_layer;
391 
396 
401 
402  };
403 
404  template <int dim>
406  :
407  public dealii::DataPostprocessor<dim>
408  {
409  public:
410 
412 
413 
417  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
422  virtual ~RHSData_KelvinOut() {}
423 
429  virtual std::vector<std::string> get_names() const;
430 
434  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
435 
439  virtual UpdateFlags get_needed_update_flags() const;
440 
454  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
455  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
456  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
457  const std::vector< Point< dim > > & /*normals*/,
458  const std::vector< Point<dim> > & /*evaluation_points*/,
459  const types::material_id & mat_id,
460  std::vector< Vector< double > > &computed_quantities) const;
461 
462 
463  private:
467  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
468 
473 
478 
479  };
480 
481 
482  template <int dim>
484  :
485  public dealii::DataPostprocessor<dim>
486  {
487  public:
488 
490 
491 
495  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
501 
507  virtual std::vector<std::string> get_names() const;
508 
512  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
513 
517  virtual UpdateFlags get_needed_update_flags() const;
518 
532  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
533  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
534  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
535  const std::vector< Point< dim > > & /*normals*/,
536  const std::vector< Point<dim> > & /*evaluation_points*/,
537  const types::material_id & mat_id,
538  std::vector< Vector< double > > &computed_quantities) const;
539 
540 
541  private:
545  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
546 
551 
556 
557  };
558 
559  }
560 
561 }
562 
563 
564 
565 #endif
Definition: response_capillary_related.h:173
virtual ~RHSData_KelvinOut()
Destructor.
Definition: response_capillary_related.h:422
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: response_capillary_related.h:240
Class used to store, read from file and define the operating conditions for a fuel cell...
Definition: operating_conditions.h:118
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: response_capillary_related.h:157
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: response_capillary_related.h:323
Definition: response_capillary_related.h:328
Definition: response_capillary_related.h:250
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: response_capillary_related.h:395
Class used to evaluate the ORR current density, overpotential, effectiveness and the oxygen coverages...
Definition: response_capillary_related.h:95
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: response_capillary_related.h:545
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: response_capillary_related.h:167
boost::shared_ptr< FuelCellShop::Layer::CatalystLayer< dim > > catalyst_layer
Pointer to catalyst layer object.
Definition: response_capillary_related.h:390
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: response_capillary_related.h:162
virtual ~ORRSOURCEDataOut()
Destructor.
Definition: response_capillary_related.h:345
virtual ~LHS_Pc_DataOut()
Destructor.
Definition: response_capillary_related.h:268
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: response_capillary_related.h:550
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: response_capillary_related.h:235
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: response_capillary_related.h:313
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: response_capillary_related.h:400
virtual ~RHSDataOut()
Destructor.
Definition: response_capillary_related.h:190
Definition: response_capillary_related.h:405
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: response_capillary_related.h:555
IMPORTANT: Add all new solution variables and equations here !
Definition: system_management.h:300
virtual ~PermeabilityDataOut()
Destructor.
Definition: response_capillary_related.h:112
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: response_capillary_related.h:477
virtual ~RHSData_KelvinOut_NoTem()
Destructor.
Definition: response_capillary_related.h:500
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: response_capillary_related.h:318
Virtual class used to implement properties that are characteristic of a porous layer.
Definition: porous_layer.h:75
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: response_capillary_related.h:467
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: response_capillary_related.h:245
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: response_capillary_related.h:472
Virtual class used to provide the interface for all CatalystLayer children.
Definition: catalyst_layer.h:124
Definition: response_capillary_related.h:483