OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
data_out_capillary.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_capillary.h
11 // - Description: This file is used to output all the liquid water related variables for example, permeability, interfacial surface area.
12 // - Developers: J. Zhou and M. Secanell 2015
13 //
14 //---------------------------------------------------------------------------
15 
16 #ifndef _FUELCELLSHOP__POSTPROCESSING__DATA_OUT_CAPILARRY_H
17 #define _FUELCELLSHOP__POSTPROCESSING__DATA_OUT_CAPILARRY_H
18 
19 // deal.II parent class:
20 #include <deal.II/numerics/data_out.h>
21 
22 // OpenFCST example class:
24 
25 // Other required OpenFCST classes:
27 #include <layers/porous_layer.h>
28 #include <layers/catalyst_layer.h>
29 
30 using namespace dealii;
31 
32 namespace FuelCellShop
33 {
41  namespace PostProcessing
42  {
43 
80  template <int dim>
82  :
83  public dealii::DataPostprocessor<dim>
84  {
85  public:
86 
88 
89 
93  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
95  );
100 
106  virtual std::vector<std::string> get_names() const;
107 
111  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
112 
116  virtual UpdateFlags get_needed_update_flags() const;
117 
131  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
132  const std::vector< std::vector< Tensor< 1, dim > > > & duh,
133  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
134  const std::vector< Point< dim > > & /*normals*/,
135  const std::vector< Point<dim> > & /*evaluation_points*/,
136  const types::material_id & mat_id,
137  std::vector< Vector< double > > &computed_quantities) const;
138 
139 
140  private:
144  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
145 
150 
155 
156  };
157 
187  template <int dim>
189  :
190  public dealii::DataPostprocessor<dim>
191  {
192  public:
193 
195 
196 
200  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > ,
202  double,
203  double);
207  virtual ~PhaseChangeDataOut() {}
208 
214  virtual std::vector<std::string> get_names() const;
215 
219  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
220 
224  virtual UpdateFlags get_needed_update_flags() const;
225 
239  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
240  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
241  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
242  const std::vector< Point< dim > > & /*normals*/,
243  const std::vector< Point<dim> > & /*evaluation_points*/,
244  const types::material_id & mat_id,
245  std::vector< Vector< double > > &computed_quantities) const;
246 
247 
248  private:
252  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
253 
258 
263 
267  double kc;
268 
272  double ke;
273 
274  };
304  template <int dim>
305  class SaturationDataOut
306  :
307  public dealii::DataPostprocessorScalar<dim>
308  {
309  public:
310 
312 
313 
317  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > pls,
322  virtual ~SaturationDataOut() {}
323 
329  virtual std::vector<std::string> get_names() const;
330 
334  virtual std::vector<DataComponentInterpretation::DataComponentInterpretation> get_data_component_interpretation () const;
335 
339  virtual UpdateFlags get_needed_update_flags() const;
340 
344  virtual void compute_derived_quantities_vector (const std::vector< Vector< double > > &uh,
345  const std::vector< std::vector< Tensor< 1, dim > > > & /*duh*/,
346  const std::vector< std::vector< Tensor< 2, dim > > > & /*dduh*/,
347  const std::vector< Point< dim > > & /*normals*/,
348  const std::vector< Point<dim> > & /*evaluation_points*/,
349  const types::material_id & mat_id,
350  std::vector< Vector< double > > &computed_quantities) const;
351 
352 
353  private:
357  FuelCell::SystemManagement* system_management;
358 
362  std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer<dim> > > porous_layers;
363 
368 
369  };
370  }
371 }
372 #endif
double kc
Condensation rate constant.
Definition: data_out_capillary.h:267
Class used to store, read from file and define the operating conditions for a fuel cell...
Definition: operating_conditions.h:118
Class used to output saturation inside the layer.
Definition: data_out.h:541
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: data_out_capillary.h:262
Class used to evaluate the all liquid related the liquid velocity field in all the layers...
Definition: data_out_capillary.h:81
virtual ~LiquidVelocityPermeabilityDataOut()
Destructor.
Definition: data_out_capillary.h:99
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: data_out_capillary.h:257
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: data_out_capillary.h:252
virtual ~SaturationDataOut()
Destructor.
Definition: data_out_capillary.h:322
std::vector< boost::shared_ptr< FuelCellShop::Layer::PorousLayer< dim > > > porous_layers
Pointer to catalyst layer object.
Definition: data_out_capillary.h:144
double ke
Evaporation rate constant.
Definition: data_out_capillary.h:272
IMPORTANT: Add all new solution variables and equations here !
Definition: system_management.h:300
virtual ~PhaseChangeDataOut()
Destructor.
Definition: data_out_capillary.h:207
Virtual class used to implement properties that are characteristic of a porous layer.
Definition: porous_layer.h:75
FuelCell::SystemManagement * system_management
Pointer to system management.
Definition: data_out_capillary.h:149
Class used to evaluate the volumetric condensation and evaporation and the interfacial surface area...
Definition: data_out_capillary.h:188
FuelCell::OperatingConditions * opCond
Pointer to operating conditions class.
Definition: data_out_capillary.h:154