OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
FuelCell Geometry information class. More...
#include <geometry.h>
Public Member Functions | |
virtual void | generate_grid (Triangulation< dim > &) |
Function is empty and must be reimplemented in derived classes. More... | |
void | generate_grid_with_curved_boundaries (Triangulation< dim > &triangulation, const types::boundary_id &bdry_id, boost::shared_ptr< Boundary< dim > > boundary) const |
This function is like the previous one generate_grid() but allows to assign a curved boundary boundary to that with the boundary id bdry_id . More... | |
std::vector< unsigned int > | get_material_id (const std::string) const |
Return a vector with all material ids associated with string. More... | |
unsigned int | get_boundary_id (ParameterHandler ¶m, const std::string boundary) const |
Return boundary id. More... | |
unsigned int | get_boundary_id (const std::string) const |
Return boundary id. More... | |
void | output_grid (const Triangulation< dim > &triangulation, const std::string filename) const |
Output the grid. More... | |
void | refine_area (Triangulation< dim > &triangulation, const unsigned int material_id) |
Refine a certain part of the grid depending on material_ID given. More... | |
std::string | get_mesh_type () |
Return the type of mesh that is being used. More... | |
Geometric data | |
double | L_channel_c () |
Return the Width of the cathode gas channel. More... | |
double | L_channelLength_c () |
Return the Length of the cathode gas channel. More... | |
double | L_channelHeight_c () |
Return the Height of the cathode gas channel. More... | |
double | L_channelEntrance_c () |
Return the Entrance Length of the cathode gas channel. More... | |
double | L_channelExit_c () |
Return the Exit Length of the cathode gas channel. More... | |
double | L_land_c () |
Return the Width of the cathode current collector. More... | |
double | L_gdl_c () |
Return the Thickness of the cathode gas diffusion layer. More... | |
std::vector< double > | L_cat_c () |
Return the thickness of the cathode catalyst layer. More... | |
double | L_mpl_c () |
Return the Thickness of the cathode microporous layer. More... | |
double | L_mem () |
Return the Thickness of the membrane. More... | |
double | L_cat_a () |
Return the Thickness of the anode catalyst layer. More... | |
double | L_mpl_a () |
Return the Thickness of the anode microporous layer. More... | |
double | L_gdl_a () |
Return the Thickness of the anode gas diffusion layer. More... | |
double | L_channel_a () |
Return the Width of the anode gas channel. More... | |
double | L_land_a () |
Return the Width of the anode current collector. More... | |
Static Public Member Functions | |
Instance Delivery (Public functions) | |
static void | declare_GridGenerator_parameters (ParameterHandler ¶m) |
Function used to declare all the data necessary in the parameter files for all GridBase children. More... | |
static boost::shared_ptr < FuelCellShop::Geometry::GridBase < dim > > | create_GridGenerator (ParameterHandler ¶m) |
Generate the appropriate mesh generator object based on the parameters in the input file. More... | |
Public Attributes | |
bool | read_from_file |
boost::shared_ptr< GridIn< dim > > | grid_in |
GridIn class object of dealii which allows to read various types of mesh formats. More... | |
Protected Types | |
Instance Delivery (Types) | |
typedef std::map< std::string, GridBase< dim > * > | _mapFactory |
This object is used to store all objects of type GasDiffusionLayer. More... | |
Protected Member Functions | |
Constructors, destructor, and initalization | |
GridBase () | |
Constructor. More... | |
virtual | ~GridBase () |
Destructor. More... | |
void | initialize (ParameterHandler ¶m) |
Instance Delivery (Private functions) | |
virtual boost::shared_ptr < FuelCellShop::Geometry::GridBase < dim > > | create_replica (const std::string &name) |
This member function is used to create an object of type gas diffusion layer. More... | |
Internal functions | |
void | print_material_id_and_boundary_id (const Triangulation< dim > &triangulation) const |
Static Protected Member Functions | |
Instance Delivery (Private and static) | |
static _mapFactory * | get_mapFactory () |
Protected Attributes | |
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. More... | |
std::string | mesh_name |
Name of the mesh file. More... | |
std::string | mesh_type |
Specify if it is a UNV file, MSH file, etc. More... | |
unsigned int | num_refine |
Initial number of refinements. More... | |
PEMFC Data (Dimensions) | |
double | l_channel_c |
Width of the cathode gas channel. More... | |
double | l_channelLength_c |
Length of the cathode gas channel. More... | |
double | l_channelHeight_c |
Height of the cathode gas channel. More... | |
double | l_channelEntrance_c |
Entrance length of the cathode gas channel. More... | |
double | l_channelExit_c |
Exit Length of the cathode gas channel. More... | |
double | l_land_c |
Width of the cathode current collector. More... | |
double | l_gdl_c |
Thickness of the cathode gas diffusion layer. More... | |
double | l_mpl_c |
Thickness of the cathode microporous layer. More... | |
std::vector< double > | l_cat_c |
Thickness of the cathode catalyst layer. More... | |
double | l_mem |
Thickness of the membrane. More... | |
double | l_cat_a |
Thickness of the anode catalyst layer. More... | |
double | l_mpl_a |
Thickness of the anode microporous layer. More... | |
double | l_gdl_a |
Thickness of the anode gas diffusion layer. More... | |
double | l_channel_a |
Width of the anode gas channel. More... | |
double | l_land_a |
Width of the anode current collector. More... | |
double | l_cube |
Cube edge for HyperCube mesh. More... | |
Internal Mesh Generator Data | |
unsigned int | num_vert |
Number of cells tall the initial grid. More... | |
unsigned int | num_c_Channel |
Number of cells wide cathode channel. More... | |
unsigned int | num_c_GDL |
Number of cells wide cathode gas diffusion layer. More... | |
unsigned int | num_c_MPL |
Number of cells wide cathode microporous layer. More... | |
unsigned int | num_c_CL |
Number of cells wide cathode catalyst layer. More... | |
unsigned int | num_membrane |
Number of cells wide membrane layer. More... | |
unsigned int | num_a_CL |
Number of cells wide anode catalyst layer. More... | |
unsigned int | num_a_MPL |
Number of cells wide anode microporous layer. More... | |
unsigned int | num_a_GDL |
Number of cells wide anode gas diffusion layer. More... | |
Material ID Data | |
unsigned int | test_mid |
Material id for test cell (GridTest app) More... | |
unsigned int | c_CC_mid |
Material id cathode current collector. More... | |
unsigned int | c_GC_mid |
Material id cathode gas channel. More... | |
unsigned int | c_GDL_mid |
Material id cathode GDL. More... | |
unsigned int | c_MPL_mid |
Material id cathode MPL. More... | |
std::vector< unsigned int > | c_CL_mid |
Material id cathode catalyst layer. More... | |
unsigned int | membrane_mid |
Material id membrane. More... | |
unsigned int | a_CL_mid |
Material id anode catalyst layer. More... | |
unsigned int | a_MPL_mid |
Material id anode MPL. More... | |
unsigned int | a_GDL_mid |
Material id anode GDL. More... | |
unsigned int | a_CC_mid |
Material id anode current collector. More... | |
unsigned int | a_GC_mid |
Material id anode gas channel. More... | |
Boundary ID Data | |
unsigned int | c_Ch_Inlet_bid |
Boundary id cathode channel inlet. More... | |
unsigned int | c_Ch_Outlet_bid |
Boundary id cathode channel outlet. More... | |
unsigned int | c_Ch_base_bid |
Boundary id cathode channel entrance/exit base. More... | |
unsigned int | c_Ch_roof_bid |
Boundary id cathode channel entrance/exit roof. More... | |
unsigned int | c_Ch_GDL_bid |
Boundary id cathode channel and GDL. More... | |
unsigned int | c_BPP_GDL_bid |
Boundary id cathode BPP and GDL. More... | |
unsigned int | c_GDL_CL_bid |
Boundary id cathode GDL and CL. More... | |
unsigned int | c_CL_Membrane_bid |
Boundary id cathode CL and membrane. More... | |
unsigned int | c_GDL_MPL_bid |
Boundary id cathode GDL and MPL. More... | |
unsigned int | c_MPL_CL_bid |
Boundary id cathode MPL and CL. More... | |
unsigned int | a_Membrane_CL_bid |
Boundary id anode membrane and CL. More... | |
unsigned int | a_CL_GDL_bid |
Boundary id anode CL and GDL. More... | |
unsigned int | a_GDL_BPP_bid |
Boundary id anode GDL and BPP. More... | |
unsigned int | a_GDL_Ch_bid |
Boundary id anode GDL and channel. More... | |
unsigned int | a_MPL_GDL_bid |
Boundary id anode GDL and MPL. More... | |
unsigned int | a_CL_MPL_bid |
Boundary id anode MPL and CL. More... | |
unsigned int | a_Ch_Inlet_bid |
Boundary id cathode channel inlet. More... | |
unsigned int | a_Ch_Outlet_bid |
Boundary id cathode channel outlet. More... | |
unsigned int | a_Ch_base_bid |
Boundary id cathode channel entrance/exit base. More... | |
unsigned int | a_Ch_roof_bid |
Boundary id cathode channel entrance/exit roof. More... | |
Agglomerate Data | |
double | r_agg |
Agglomerate radius. More... | |
double | delta_agg |
Electrolyte thin film thickness. More... | |
unsigned int | r_agg_mid |
Porous Agglomerate Material ID. More... | |
unsigned int | delta_agg_mid |
Electrolyte Thin Film Material ID. More... | |
unsigned int | r_delta_bid |
Boundary ID for agglomerate/thin film boundary. More... | |
unsigned int | delta_bid |
Boundary ID for thin film external boundary. More... | |
Point< dim > | center |
Centre point of the circular/spherical domain. More... | |
FuelCell Geometry information class.
Class used to store the geometry and grid information for an application
Derived classes should contain the specific implementation of mesh generation and manipulation of the triangulation object.
GridBase is a virtual class that contains a map to all children applications. Using the map, GridBase can pass the user a pointer to the desired class as specified in the input file.
All children use the parameters in declare_GridGenerator_parameters; however, they have a re-implementation of the function generate_grid and other functions.
To use the class, first create a pointer to the base object using:
Then, declare the data in the input file using:
Finally, read the ParameterHandler object to initalize the grid. Then, use the objec to generate the desired grid:
|
protected |
This object is used to store all objects of type GasDiffusionLayer.
|
protected |
Constructor.
|
protectedvirtual |
Destructor.
|
inlinestatic |
Generate the appropriate mesh generator object based on the parameters in the input file.
References FuelCellShop::Geometry::GridBase< dim >::create_replica(), FuelCellShop::Geometry::GridBase< dim >::get_mapFactory(), and FcstUtilities::log.
|
inlineprotectedvirtual |
This member function is used to create an object of type gas diffusion layer.
Reimplemented in FuelCellShop::Geometry::GridTest< dim >, FuelCellShop::Geometry::Agglomerate< dim >, FuelCellShop::Geometry::PemfcMPL< dim >, FuelCellShop::Geometry::CathodeMPL< dim >, FuelCellShop::Geometry::HyperCube< dim >, and FuelCellShop::Geometry::GridExternal< dim >.
References FcstUtilities::log.
Referenced by FuelCellShop::Geometry::GridBase< dim >::create_GridGenerator().
|
static |
Function used to declare all the data necessary in the parameter files for all GridBase children.
|
inlinevirtual |
Function is empty and must be reimplemented in derived classes.
Reimplemented in FuelCellShop::Geometry::GridTest< dim >, FuelCellShop::Geometry::Agglomerate< dim >, FuelCellShop::Geometry::PemfcMPL< dim >, FuelCellShop::Geometry::CathodeMPL< dim >, FuelCellShop::Geometry::HyperCube< dim >, and FuelCellShop::Geometry::GridExternal< dim >.
References FcstUtilities::log.
|
inline |
This function is like the previous one generate_grid()
but allows to assign a curved boundary boundary
to that with the boundary id bdry_id
.
References FcstUtilities::log.
unsigned int FuelCellShop::Geometry::GridBase< dim >::get_boundary_id | ( | ParameterHandler & | param, |
const std::string | boundary | ||
) | const |
Return boundary id.
unsigned int FuelCellShop::Geometry::GridBase< dim >::get_boundary_id | ( | const std::string | ) | const |
Return boundary id.
|
inlinestaticprotected |
Referenced by FuelCellShop::Geometry::Agglomerate< dim >::Agglomerate(), FuelCellShop::Geometry::CathodeMPL< dim >::CathodeMPL(), FuelCellShop::Geometry::GridBase< dim >::create_GridGenerator(), FuelCellShop::Geometry::GridExternal< dim >::GridExternal(), FuelCellShop::Geometry::GridTest< dim >::GridTest(), FuelCellShop::Geometry::HyperCube< dim >::HyperCube(), and FuelCellShop::Geometry::PemfcMPL< dim >::PemfcMPL().
std::vector<unsigned int> FuelCellShop::Geometry::GridBase< dim >::get_material_id | ( | const std::string | ) | const |
Return a vector with all material ids associated with string.
|
inline |
Return the type of mesh that is being used.
Options: GridExternal | CathodeMPL | PemfcMPL
|
protected |
|
inline |
Return the Thickness of the anode catalyst layer.
|
inline |
Return the thickness of the cathode catalyst layer.
|
inline |
Return the Width of the anode gas channel.
|
inline |
Return the Width of the cathode gas channel.
|
inline |
Return the Entrance Length of the cathode gas channel.
|
inline |
Return the Exit Length of the cathode gas channel.
|
inline |
Return the Height of the cathode gas channel.
|
inline |
Return the Length of the cathode gas channel.
|
inline |
Return the Thickness of the anode gas diffusion layer.
|
inline |
Return the Thickness of the cathode gas diffusion layer.
|
inline |
Return the Width of the anode current collector.
|
inline |
Return the Width of the cathode current collector.
|
inline |
Return the Thickness of the membrane.
|
inline |
Return the Thickness of the anode microporous layer.
|
inline |
Return the Thickness of the cathode microporous layer.
void FuelCellShop::Geometry::GridBase< dim >::output_grid | ( | const Triangulation< dim > & | triangulation, |
const std::string | filename | ||
) | const |
Output the grid.
|
protected |
void FuelCellShop::Geometry::GridBase< dim >::refine_area | ( | Triangulation< dim > & | triangulation, |
const unsigned int | material_id | ||
) |
Refine a certain part of the grid depending on material_ID given.
|
protected |
Material id anode current collector.
|
protected |
Boundary id cathode channel entrance/exit base.
|
protected |
Boundary id cathode channel inlet.
|
protected |
Boundary id cathode channel outlet.
|
protected |
Boundary id cathode channel entrance/exit roof.
|
protected |
Boundary id anode CL and GDL.
|
protected |
Material id anode catalyst layer.
|
protected |
Boundary id anode MPL and CL.
|
protected |
Material id anode gas channel.
|
protected |
Boundary id anode GDL and BPP.
|
protected |
Boundary id anode GDL and channel.
|
protected |
Material id anode GDL.
|
protected |
Boundary id anode membrane and CL.
|
protected |
Boundary id anode GDL and MPL.
|
protected |
Material id anode MPL.
|
protected |
Boundary id cathode BPP and GDL.
|
protected |
Material id cathode current collector.
|
protected |
Boundary id cathode channel entrance/exit base.
|
protected |
Boundary id cathode channel and GDL.
|
protected |
Boundary id cathode channel inlet.
|
protected |
Boundary id cathode channel outlet.
|
protected |
Boundary id cathode channel entrance/exit roof.
|
protected |
Boundary id cathode CL and membrane.
|
protected |
Material id cathode catalyst layer.
|
protected |
Material id cathode gas channel.
|
protected |
Boundary id cathode GDL and CL.
|
protected |
Material id cathode GDL.
|
protected |
Boundary id cathode GDL and MPL.
|
protected |
Boundary id cathode MPL and CL.
|
protected |
Material id cathode MPL.
|
protected |
Centre point of the circular/spherical domain.
|
protected |
Electrolyte thin film thickness.
|
protected |
Electrolyte Thin Film Material ID.
|
protected |
Boundary ID for thin film external boundary.
boost::shared_ptr<GridIn<dim> > FuelCellShop::Geometry::GridBase< dim >::grid_in |
GridIn class object of dealii which allows to read various types of mesh formats.
|
protected |
Thickness of the anode catalyst layer.
|
protected |
Thickness of the cathode catalyst layer.
|
protected |
Width of the anode gas channel.
|
protected |
Width of the cathode gas channel.
|
protected |
Entrance length of the cathode gas channel.
|
protected |
Exit Length of the cathode gas channel.
|
protected |
Height of the cathode gas channel.
|
protected |
Length of the cathode gas channel.
|
protected |
Cube edge for HyperCube mesh.
Cube will go from -l_cube to l_cube
|
protected |
Thickness of the anode gas diffusion layer.
|
protected |
Thickness of the cathode gas diffusion layer.
|
protected |
Width of the anode current collector.
|
protected |
Width of the cathode current collector.
|
protected |
Thickness of the membrane.
|
protected |
Thickness of the anode microporous layer.
|
protected |
Thickness of the cathode microporous layer.
|
protected |
Material id membrane.
|
protected |
Name of the mesh file.
|
protected |
Specify if it is a UNV file, MSH file, etc.
|
protected |
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.
|
protected |
Number of cells wide anode catalyst layer.
|
protected |
Number of cells wide anode gas diffusion layer.
|
protected |
Number of cells wide anode microporous layer.
|
protected |
Number of cells wide cathode channel.
|
protected |
Number of cells wide cathode catalyst layer.
|
protected |
Number of cells wide cathode gas diffusion layer.
|
protected |
Number of cells wide cathode microporous layer.
|
protected |
Number of cells wide membrane layer.
|
protected |
Initial number of refinements.
|
protected |
Number of cells tall the initial grid.
|
protected |
Agglomerate radius.
|
protected |
Porous Agglomerate Material ID.
|
protected |
Boundary ID for agglomerate/thin film boundary.
bool FuelCellShop::Geometry::GridBase< dim >::read_from_file |
|
protected |