OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This function generates a PEMFC grid including gas diffusion and catalyst layers. More...
#include <geometries.h>
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 ¶m, 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 ¶m, 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 ¶m) |
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 ¶m) |
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 ¶m) |
Used for optimization. | |
static boost::shared_ptr < FuelCellShop::Geometry::GridBase < dim > > | create_GridGenerator (ParameterHandler ¶m) |
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 _mapFactory * | get_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< dim > | center |
Centre point of the circular/spherical domain. | |
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.
|
inline |
PROTOTYPE constructor.
References FuelCellShop::Geometry::Pemfc< dim >::concrete_name, and FuelCellShop::Geometry::GridBase< dim >::get_mapFactory().
|
inlineprotected |
Default constructor.
|
inlineprotectedvirtual |
This member function is used to create an object of type micro porous layer.
Reimplemented from FuelCellShop::Geometry::GridBase< dim >.
|
virtual |
This function builds a grid for a standard PEMFC with gas diffusion layers (GDL) and catalyst layers (CL)
Material ID:
Anode GDL 8
Boundary ID:
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:
Bipolar Plate Rib 0.1cm
Cells:
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 >.
|
static |
Referenced by FuelCellShop::Geometry::Pemfc< dim >::Pemfc().
|
staticprotected |
Create prototype for the layer.