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::AnodeMPL< dim > Class Template Reference

This function generates a grid for an anode including gas diffusion, microporous, and catalyst layers. More...

#include <geometries.h>

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

Public Member Functions

 AnodeMPL (const bool create_replica)
 PROTOTYPE constructor.
 
virtual void generate_grid (Triangulation< dim > &triangulation) const
 This function generates the anode side of the PEMFC grid including gas diffusion, microporous, and catalyst layers.
 
- 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

 AnodeMPL ()
 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 AnodeMPL< 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::AnodeMPL< dim >

This function generates a grid for an anode including gas diffusion, microporous, 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::AnodeMPL< dim >::AnodeMPL ( const bool  create_replica)
inline

PROTOTYPE constructor.

Warning
For internal use only. Use create_GridGenerator instead.

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

Here is the call graph for this function:

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

Default constructor.

Member Function Documentation

template<int dim>
virtual boost::shared_ptr<FuelCellShop::Geometry::GridBase<dim> > FuelCellShop::Geometry::AnodeMPL< 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::AnodeMPL< dim >::generate_grid ( Triangulation< dim > &  triangulation) const
virtual

This function generates the anode side of the PEMFC grid including gas diffusion, microporous, and catalyst layers.

The grid contains all material IDs and boundary IDs and default values are shown below Material ID:

  • Anode CL 6
  • Anode MPL 7
  • Anode GDL 8

    Boundary ID:

  • Anode CL/Membrane 5
  • Anode CL/MPL 11
  • Anode MPL/GDL 12
  • Anode GDL/BPP 7
  • Anode GDL/Gas Channel 8

    Lengths:

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

    Cells:

  • 6 cells tall
  • Anode GDL 4 cells wide
  • Anode MPL 1 cell wide
  • Anode CL 1 cell wide

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

    Low Priority Todo:
    Generate a grid for an Anode with an MPL

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

Member Data Documentation

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

Create prototype for the layer.


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