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

This function generates a PEMFC grid including gas diffusion and catalyst layers. More...

#include <geometries.h>

Inheritance diagram for FuelCellShop::Geometry::Pemfc< dim >:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Geometry::Pemfc< dim >:
Collaboration graph
[legend]

Public Member Functions

 Pemfc (const bool create_replica)
 PROTOTYPE constructor.
 
virtual void generate_grid (Triangulation< dim > &triangulation) const
 This function builds a grid for a standard PEMFC with gas diffusion layers (GDL) and catalyst layers (CL)
 
- Public Member Functions inherited from FuelCellShop::Geometry::GridBase< dim >
unsigned int get_material_id (ParameterHandler &param, const std::string material) const
 Return material id.
 
virtual unsigned int get_material_id (const std::string) const
 Return material id.
 
unsigned int get_boundary_id (ParameterHandler &param, const std::string boundary) const
 Return boundary id.
 
unsigned int get_boundary_id (const std::string) const
 Return boundary id.
 
void output_grid (const Triangulation< dim > &triangulation, const std::string filename) const
 Output the grid.
 
void refine_area (Triangulation< dim > &triangulation, const unsigned int material_id)
 Refine a certain part of the grid depending on material_ID given.
 
std::string get_mesh_type ()
 Return the type of mesh that is being used.
 
double L_channel_c ()
 Return the Width of the cathode gas channel.
 
double L_land_c ()
 Return the Width of the cathode current collector.
 
double L_gdl_c ()
 Return the Thickness of the cathode gas diffusion layer.
 
double L_cat_c ()
 Return the thickness of the cathode catalyst layer.
 
double L_mpl_c ()
 Return the Thickness of the cathode microporous layer.
 
double L_mem ()
 Return the Thickness of the membrane.
 
double L_cat_a ()
 Return the Thickness of the anode catalyst layer.
 
double L_mpl_a ()
 Return the Thickness of the anode microporous layer.
 
double L_gdl_a ()
 Return the Thickness of the anode gas diffusion layer.
 
double L_channel_a ()
 Return the Width of the anode gas channel.
 
double L_land_a ()
 Return the Width of the anode current collector.
 

Static Public Attributes

static const std::string concrete_name
 

Protected Member Functions

 Pemfc ()
 Default constructor.
 
Instance Delivery (function)
virtual boost::shared_ptr
< FuelCellShop::Geometry::GridBase
< dim > > 
create_replica ()
 This member function is used to create an object of type micro porous layer.
 
- Protected Member Functions inherited from FuelCellShop::Geometry::GridBase< dim >
 GridBase ()
 Constructor.
 
virtual ~GridBase ()
 Destructor.
 
void initialize (ParameterHandler &param)
 
void print_material_id_and_boundary_id (const Triangulation< dim > &triangulation) const
 

Static Protected Attributes

Instance Delivery (Data member)
static Pemfc< dim > const * PROTOTYPE
 Create prototype for the layer.
 

Additional Inherited Members

- Static Public Member Functions inherited from FuelCellShop::Geometry::GridBase< dim >
static void declare_GridGenerator_parameters (ParameterHandler &param)
 Function used to declare all the data necessary in the parameter files for all GridBase children.
 
static void set_GridGenerator_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler &param)
 Used for optimization.
 
static boost::shared_ptr
< FuelCellShop::Geometry::GridBase
< dim > > 
create_GridGenerator (ParameterHandler &param)
 
- Public Attributes inherited from FuelCellShop::Geometry::GridBase< dim >
bool read_from_file
 
- Protected Types inherited from FuelCellShop::Geometry::GridBase< dim >
typedef std::map< std::string,
GridBase< dim > * > 
_mapFactory
 This object is used to store all objects of type GasDiffusionLayer.
 
- Static Protected Member Functions inherited from FuelCellShop::Geometry::GridBase< dim >
static _mapFactoryget_mapFactory ()
 
- Protected Attributes inherited from FuelCellShop::Geometry::GridBase< dim >
std::string mesh_type_name
 Specify if you would like to load a mesh from file or if you would like a module from the mesh generator Options: File | Cathode | Anode | CathodeMPL | Pemfc | PemfcMPL.
 
std::string mesh_name
 Name of the mesh file.
 
std::string mesh_type
 Specify if it is a UNV file, MSH file, etc.
 
unsigned int num_refine
 Initial number of refinements.
 
double l_channel_c
 Width of the cathode gas channel.
 
double l_land_c
 Width of the cathode current collector.
 
double l_gdl_c
 Thickness of the cathode gas diffusion layer.
 
double l_mpl_c
 Thickness of the cathode microporous layer.
 
double l_cat_c
 Thickness of the cathode catalyst layer.
 
double l_mem
 Thickness of the membrane.
 
double l_cat_a
 Thickness of the anode catalyst layer.
 
double l_mpl_a
 Thickness of the anode microporous layer.
 
double l_gdl_a
 Thickness of the anode gas diffusion layer.
 
double l_channel_a
 Width of the anode gas channel.
 
double l_land_a
 Width of the anode current collector.
 
unsigned int num_vert
 Number of cells tall the initial grid.
 
unsigned int num_c_GDL
 Number of cells wide cathode gas diffusion layer.
 
unsigned int num_c_MPL
 Number of cells wide cathode microporous layer.
 
unsigned int num_c_CL
 Number of cells wide cathode catalyst layer.
 
unsigned int num_membrane
 Number of cells wide membrane layer.
 
unsigned int num_a_CL
 Number of cells wide anode catalyst layer.
 
unsigned int num_a_MPL
 Number of cells wide anode microporous layer.
 
unsigned int num_a_GDL
 Number of cells wide anode gas diffusion layer.
 
unsigned int test_mid
 Material id for test cell (GridTest app)
 
unsigned int c_CC_mid
 Material id cathode current collector.
 
unsigned int c_GC_mid
 Material id cathode gas channel.
 
unsigned int c_GDL_mid
 Material id cathode GDL.
 
unsigned int c_MPL_mid
 Material id cathode MPL.
 
unsigned int c_CL_mid
 Material id cathode catalyst layer.
 
unsigned int membrane_mid
 Material id membrane.
 
unsigned int a_CL_mid
 Material id anode catalyst layer.
 
unsigned int a_MPL_mid
 Material id anode MPL.
 
unsigned int a_GDL_mid
 Material id anode GDL.
 
unsigned int a_CC_mid
 Material id anode current collector.
 
unsigned int a_GC_mid
 Material id anode gas channel.
 
unsigned int c_Ch_GDL_bid
 Boundary id cathode channel and GDL.
 
unsigned int c_BPP_GDL_bid
 Boundary id cathode BPP and GDL.
 
unsigned int c_GDL_CL_bid
 Boundary id cathode GDL and CL.
 
unsigned int c_CL_Membrane_bid
 Boundary id cathode CL and membrane.
 
unsigned int c_GDL_MPL_bid
 Boundary id cathode GDL and MPL.
 
unsigned int c_MPL_CL_bid
 Boundary id cathode MPL and CL.
 
unsigned int a_Membrane_CL_bid
 Boundary id anode membrane and CL.
 
unsigned int a_CL_GDL_bid
 Boundary id anode CL and GDL.
 
unsigned int a_GDL_BPP_bid
 Boundary id anode GDL and BPP.
 
unsigned int a_GDL_Ch_bid
 Boundary id anode GDL and channel.
 
unsigned int a_MPL_GDL_bid
 Boundary id anode GDL and MPL.
 
unsigned int a_CL_MPL_bid
 Boundary id anode MPL and CL.
 
double r_agg
 Agglomerate radius.
 
double delta_agg
 Electrolyte thin film thickness.
 
unsigned int r_agg_mid
 Porous Agglomerate Material ID.
 
unsigned int delta_agg_mid
 Electrolyte Thin Film Material ID.
 
unsigned int r_delta_bid
 Boundary ID for agglomerate/thin film boundary.
 
unsigned int delta_bid
 Boundary ID for thin film external boundary.
 
Point< dimcenter
 Centre point of the circular/spherical domain.
 

Detailed Description

template<int dim>
class FuelCellShop::Geometry::Pemfc< dim >

This function generates a PEMFC grid including gas diffusion and catalyst layers.

The grid contains all material IDs and boundary IDs and default values are shown below in the generate_grid() function.

Constructor & Destructor Documentation

template<int dim>
FuelCellShop::Geometry::Pemfc< dim >::Pemfc ( const bool  create_replica)
inline

PROTOTYPE constructor.

Warning
For internal use only. Use create_GridGenerator instead.

References FuelCellShop::Geometry::Pemfc< dim >::concrete_name, and FuelCellShop::Geometry::GridBase< dim >::get_mapFactory().

Here is the call graph for this function:

template<int dim>
FuelCellShop::Geometry::Pemfc< dim >::Pemfc ( )
inlineprotected

Default constructor.

Member Function Documentation

template<int dim>
virtual boost::shared_ptr<FuelCellShop::Geometry::GridBase<dim> > FuelCellShop::Geometry::Pemfc< dim >::create_replica ( )
inlineprotectedvirtual

This member function is used to create an object of type micro porous layer.

Warning
This class MUST be redeclared in every child.

Reimplemented from FuelCellShop::Geometry::GridBase< dim >.

template<int dim>
virtual void FuelCellShop::Geometry::Pemfc< dim >::generate_grid ( Triangulation< dim > &  triangulation) const
virtual

This function builds a grid for a standard PEMFC with gas diffusion layers (GDL) and catalyst layers (CL)

Material ID:

  • Cathode GDL 2
  • Cathode CL 4
  • Membrane 5
  • Anode CL 6
  • Anode GDL 8

    Boundary ID:

  • Cathode GDL/BPP 1
  • Cathode GDL/Gas Channel 2
  • Cathode GDL/CL 3
  • Cathode CL/Membrane 4
  • Anode CL/Membrane 5
  • Anode CL/GDL 6
  • Anode GDL/BPP 7
  • Anode GDL/Gas Channel 8
  • Symmetric 0

    Schematic | | | | | |

    BID 2 8
    GDL CL Mem CL GDL

    MID | 2 | 4 | 5 | 6 | 8 | | | | | | | BID 1 3 4 5 6 7 | | | | | | Cathode Anode

    Lengths:

  • Cathode + Anode GDL 2.0E-2cm
  • Cathode + Anode CL 1.0E-3cm
  • Membrane 2.0E-2cm
  • Gas Channel 0.1cm
  • Bipolar Plate Rib 0.1cm

    Cells:

  • 6 cells tall
  • Cathode + Anode GDL 4 cells wide
  • Cathode + Anode CL 1 cell wide
  • Membrane 4 cells wide

    Note: to automatically refine the grid after grid creation set the number of initial refeinements parameter

Reimplemented from FuelCellShop::Geometry::GridBase< dim >.

Member Data Documentation

template<int dim>
const std::string FuelCellShop::Geometry::Pemfc< dim >::concrete_name
static
template<int dim>
Pemfc<dim> const* FuelCellShop::Geometry::Pemfc< dim >::PROTOTYPE
staticprotected

Create prototype for the layer.


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