OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
Virtual class used to provide the interface for all MicroPorousLayer children. More...
#include <micro_porous_layer.h>
Public Member Functions | |
Initalization | |
void | initialize (ParameterHandler ¶m) |
Declare parameters for a parameter file. More... | |
Accessors and info | |
const std::type_info & | get_base_type () const |
This member function returns a type_info object with the name of the base layer type the inherited class belongs to, i.e. More... | |
Effective property calculators | |
virtual void | effective_gas_diffusivity (const double &, const double &, double &) const |
Compute the effective property in the pores of the MPL. More... | |
virtual void | effective_gas_diffusivity (const double &, const double &, Tensor< 2, dim > &) const |
Compute the effective property in the pores of the MPL. More... | |
virtual void | effective_gas_diffusivity (std::vector< Tensor< 2, dim > > &) const |
Return the effective diffusivity [m^2/s ] for nonisothermal with/without two-phase case in the MPL. More... | |
virtual void | derivative_effective_gas_diffusivity (std::map< VariableNames, std::vector< Tensor< 2, dim > > > &) const |
Return the derivative of effective diffusivity w.r.t solution variables/design parameters for nonisothermal with/without two-phase case in the MPL. More... | |
virtual void | effective_gas_diffusivity (Table< 2, Tensor< 2, dim > > &) const |
Compute the effective property in the pores. More... | |
virtual void | effective_electron_conductivity (double &) const |
Compute the effective conductivity. More... | |
virtual void | effective_electron_conductivity (Tensor< 2, dim > &) const |
Compute the effective conductivity. More... | |
virtual void | effective_thermal_conductivity (double &) const |
Compute the effective thermal conductivity. More... | |
virtual void | effective_thermal_conductivity (Tensor< 2, dim > &) const |
Compute the effective thermal conductivity. More... | |
virtual void | effective_thermal_conductivity (std::vector< Tensor< 2, dim > > &) const |
Compute the effective thermal conductivity. More... | |
virtual void | derivative_effective_thermal_conductivity (std::vector< Tensor< 2, dim > > &) const |
Compute the derivative of effective thermal conductivity with respect to temperature. More... | |
virtual void | liquid_permeablity (std::vector< Tensor< 2, dim > > &) const |
Compute the anisotropic MPL liquid permeability , at all quadrature points in the cell. More... | |
virtual void | derivative_liquid_permeablity (std::map< VariableNames, std::vector< Tensor< 2, dim > > > &) const |
Compute the derivative of the anisotropic liquid permeability in the MPL with respect to either the solution or design parameters, at all quadrature points in the cell. More... | |
virtual void | relative_liquid_permeability_PSD (std::vector< Tensor< 2, dim > > &) const |
Compute the derivative of the anisotropic liquid permeability in the GDL with respect to either the solution or design parameters, at all quadrature points in the cell. More... | |
virtual void | derivative_relative_liquid_permeablity_PSD (std::map< VariableNames, std::vector< Tensor< 2, dim > > > &) const |
virtual void | derivative_relative_liquid_permeablity_PSD (std::vector< double > &) const |
virtual void | saturated_liquid_permeablity_PSD (double &) const |
virtual void | pcapillary (std::vector< double > &) const |
Compute , at all quadrature points in the cell. More... | |
virtual void | saturation_from_capillary_equation (std::vector< double > &) const |
virtual void | derivative_saturation_from_capillary_equation_PSD (std::vector< double > &) const |
virtual void | dpcapillary_dsat (std::vector< double > &) const |
Compute , at all quadrature points in the MPL. More... | |
virtual void | derivative_dpcapillary_dsat (std::map< VariableNames, std::vector< double > > &) const |
Compute the derivative of in the MPL, with respect to either the solution or design parameters, at all quadrature points in the cell. More... | |
virtual void | interfacial_surface_area (std::vector< double > &) const |
Compute the liquid-gas interfacial surface area per unit volume, , at all quadrature points in the MPL. More... | |
virtual void | derivative_interfacial_surface_area (std::map< VariableNames, std::vector< double > > &) const |
Compute the derivative of the liquid-gas interfacial surface area per unit volume, with respect to either the solution variables or design parameters, at all quadrature points in the MPL. More... | |
virtual bool | set_method_effective_transport_property_solid (std::string) |
Specify the methodology to be used to compute the effective properties for the porous phase. More... | |
virtual void | effective_transport_property_solid (const double &property, double &effective_property) const |
Compute the effective property of a property that is defined by the network of fibres. More... | |
virtual void | effective_transport_property_solid (const Tensor< 2, dim > &property, Tensor< 2, dim > &effective_property) const |
Compute the effective property of a property that is defined by the network of fibres. More... | |
virtual void | interfacial_surface_area_PSD (std::vector< double > &) const |
Compute the liquid-gas interfacial surface area per unit volume, , at all quadrature points in the CL. More... | |
virtual void | derivative_interfacial_surface_area_PSD (std::map< VariableNames, std::vector< double > > &) const |
Compute the derivative of the liquid-gas interfacial surface area per unit volume, with respect to either the solution variables or design parameters, at all quadrature points in the CL. More... | |
virtual void | derivative_interfacial_surface_area_PSD (std::vector< double > &) const |
Public Member Functions inherited from FuelCellShop::Layer::PorousLayer< dim > | |
void | set_gases_and_compute (std::vector< FuelCellShop::Material::PureGas * > &gases_in, const double &pressure_in, const double &temperature_in) |
Member function used to store all the gases that are in the pore space in the gas diffusion layer as well as their temperature [Kelvin ] and total pressure [atm ]. More... | |
void | compute_gas_diffusion (FuelCellShop::Material::PureGas *solute_gas, FuelCellShop::Material::PureGas *solvent_gas) |
Member function used to compute bulk diffusion coefficients (and derivatives w.r.t temperature for non-isothermal case and store inside the layer). More... | |
void | set_gases (std::vector< FuelCellShop::Material::PureGas * > &gases_in, const double &pressure_in) |
Member function used to store all the gases that are in the pore space in the porous layer. More... | |
void | set_gas_mixture (FuelCellShop::Material::GasMixture &rgas_mixture) |
Set gas_mixture . More... | |
void | set_porosity_permeability_tortuosity_booleans (const bool &rporosity_is_constant, const bool &rpermeability_is_constant, const bool &rtortuosity_is_constant) |
Set. More... | |
void | set_pressure (const SolutionVariable &p_in) |
Member function used to set the temperature [Kelvin ] at every quadrature point inside the cell. More... | |
void | set_temperature (const SolutionVariable &T_in) |
Member function used to set the temperature [Kelvin ] at every quadrature point inside the cell. More... | |
void | set_saturation (const SolutionVariable &s_in) |
Member function used to set the liquid water saturation at every quadrature point inside the cell. More... | |
void | set_capillary_pressure (const SolutionVariable &p_in) |
Member function used to set the liquid water saturation at every quadrature point inside the cell. More... | |
FuelCellShop::Material::PureGas * | get_gas_pointer (int index) const |
Return the FuelCellShop::Material::PureGas pointer that is stored inside the class in the ith position. More... | |
std::vector < FuelCellShop::Material::PureGas * > | get_gases () const |
Returns the vector of FuelCellShop::Material::PureGas pointers stored in the porous layer. More... | |
const FuelCellShop::Material::GasMixture *const | get_gas_mixture () const |
This function returns gas_mixture . More... | |
void | get_gas_index (FuelCellShop::Material::PureGas *gas_type, int &index) const |
Return the gas index in the GDL class. More... | |
void | get_T_and_p (double &T, double &p) const |
Return the constant temperature [Kelvin ] and constant pressure [atm ] inside the layer. More... | |
void | get_p (double &p) const |
Return the constant pressure [atm ] inside the layer. More... | |
const bool & | get_porosity_is_constant () const |
This function returns porosity_is_constant . More... | |
const bool & | get_permeability_is_constant () const |
This function returns permeability_is_constant . More... | |
const bool & | get_tortuosity_is_constant () const |
This function returns tortuosity_is_constant . More... | |
double | get_porosity () const |
This function computes constant porosity in quadrature points of a mesh entity. More... | |
void | get_porosity (std::vector< double > &dst) const |
This function computes constant porosity in quadrature points of a mesh entity. More... | |
void | get_porosity (std::vector< double > &dst, const std::vector< Point< dim > > &points) const |
This function computes variable porosity in quadrature points of a mesh entity. More... | |
void | get_permeability (std::vector< SymmetricTensor< 2, dim > > &dst) const |
This function computes constant permeability in quadrature points of a mesh entity. More... | |
void | get_permeability (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const |
This function computes variable permeability in quadrature points of a mesh entity. More... | |
void | get_SQRT_permeability (std::vector< SymmetricTensor< 2, dim > > &dst) const |
This function computes square root of constant permeability in quadrature points of a mesh entity. More... | |
void | get_SQRT_permeability (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const |
This function computes square root of variable permeability in quadrature points of a mesh entity. More... | |
void | get_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst) const |
This function computes inverse of constant permeability in quadrature points of a mesh entity. More... | |
void | get_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const |
This function computes inverse of variable permeability in quadrature points of a mesh entity. More... | |
void | get_SQRT_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst) const |
This function computes inverse of square root of constant permeability in quadrature points of a mesh entity. More... | |
void | get_SQRT_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const |
This function computes inverse of square root of variable permeability in quadrature points of a mesh entity. More... | |
void | get_Forchheimer_permeability (std::vector< SymmetricTensor< 2, dim > > &dst) const |
This function computes constant Forchheimer permeability in quadrature points of a mesh entity. More... | |
void | get_Forchheimer_permeability (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const |
This function computes variable Forchheimer permeability in quadrature points of a mesh entity. More... | |
void | get_tortuosity (std::vector< SymmetricTensor< 2, dim > > &dst) const |
This function computes constant tortuosity in quadrature points of a mesh entity. More... | |
void | get_tortuosity (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const |
This function computes variable tortuosity in quadrature points of a mesh entity. More... | |
virtual void | effective_gas_diffusivity (Table< 2, double > &D_eff) const |
Return the effective diffusivty in the GDL for all the gases assigned to the layer using set_gases_and_compute. More... | |
virtual void | gas_diffusion_coefficient (std::vector< double > &D_b) const |
Member function used to compute diffusion for a solute_gas, solvent_gas combination at a given temperature and pressure. More... | |
virtual void | gas_diffusion_coefficient (std::vector< double > &D_b, std::vector< double > &dD_b_dT) const |
Member function used to compute diffusion for a solute_gas, solvent_gas combination at a given temperature and pressure. More... | |
void | molecular_gas_diffusion_coefficient (std::vector< double > &D_m) const |
Member function used to compute molecular diffusion for a solute_gas, solvent_gas combination at a given temperature and pressure. More... | |
void | molecular_gas_diffusion_coefficient (std::vector< double > &D_m, std::vector< double > &dD_m_dT) const |
Member function used to compute molecular diffusion for a solute_gas, solvent_gas combination at a given temperature and pressure. More... | |
void | Knudsen_diffusion (std::vector< double > &D) const |
Member function used to get the Knudsen diffusivity in the layer after calling compute_gas_diffusion. More... | |
void | Knudsen_diffusion (std::vector< double > &D, std::vector< double > &dD_dT) const |
Member function used to compute the Knudsen diffusivity in the layer.after calling compute_gas_diffusion. More... | |
void | compute_Knudsen_diffusion (const FuelCellShop::Material::PureGas *solute_gas, const SolutionVariable &T_in, std::vector< double > &D_k) const |
Member function used to compute the Knudsen diffusivity in the layer. More... | |
void | compute_Knudsen_diffusion (const FuelCellShop::Material::PureGas *solute_gas, const SolutionVariable &T_in, std::vector< double > &D_k, std::vector< double > &dD_k_dT) const |
Member function used to compute the Knudsen diffusivity in the layer. More... | |
virtual void | print_layer_properties () const |
This member function is a virtual class that can be used to output to screen information from the layer. More... | |
Public Member Functions inherited from FuelCellShop::Layer::BaseLayer< dim > | |
virtual void | set_derivative_flags (const std::vector< VariableNames > &flags) |
Set the variables for which you would like to compute the derivatives. More... | |
void | set_position (const std::vector< Point< dim > > &p) |
Member function used by some applications such as dummyGDL in order to know which value to return. More... | |
virtual void | set_local_material_id (const unsigned int &id) |
Function for setting local material id, for unit testing purposes. More... | |
void | unset_local_material_id () |
Function for unsetting local material id, so that it isn't incorrectly used later Once the key is "unset" to some invalid value, an error will be thrown if the key is requested again without being set. More... | |
virtual void | set_constant_solution (const double &value, const VariableNames &name) |
Set those solution variables which are constant in the particular application. More... | |
virtual void | set_solution (const std::vector< SolutionVariable > &) |
If the effective properties in the layer depend on the solution, the solution for a given cell should be passed to the class using this member function. More... | |
bool | belongs_to_material (const unsigned int material_id) |
Check if a given cell belongs to the catalyst layer and assign. More... | |
const std::string & | name_layer () const |
Return the name of the layer. More... | |
virtual bool | test_layer () |
This virtual class should be used for any derived class to be able to test the functionality of the class. More... | |
std::vector< unsigned int > | get_material_ids () |
Return the local material id of the layer. More... | |
unsigned int | local_material_id () const |
Return the local material id of the layer, performs a check. More... | |
Protected Attributes | |
Internal variables | |
bool | anisotropy |
Anisotropy variable. More... | |
Tensor< 2, dim > | oxygen_diffusivity |
Oxygen diffusion coefficient. More... | |
Tensor< 2, dim > | water_diffusivity |
Water diffusion coefficient. More... | |
Tensor< 2, dim > | electrical_conductivity |
Electrical conductivity from the input file in the anisotripic case. More... | |
Tensor< 2, dim > | thermal_conductivity |
Thermal conductivity from the input file in the anisotripic case. More... | |
Protected Attributes inherited from FuelCellShop::Layer::PorousLayer< dim > | |
FuelCellShop::Material::GasMixture * | gas_mixture |
Gas mixture. More... | |
std::vector < FuelCellShop::Material::PureGas * > | gases |
Gases inside a porous layer. More... | |
bool | porosity_is_constant |
Variable defining if the porosity is constant. More... | |
bool | permeability_is_constant |
Variable defining if the permeability is constant. More... | |
bool | tortuosity_is_constant |
Variable defining if the tortuosity is constant. More... | |
double | porosity |
User defined constant porosity. More... | |
bool | use_Bosanquet |
Boolean flag that specifies if Knudsen effects should be accounted for. More... | |
double | Knudsen_radius |
Parameter used to define Knudsen pore radius. More... | |
SymmetricTensor< 2, dim > | permeability |
User defined constant permeability, m^2. More... | |
SymmetricTensor< 2, dim > | SQRT_permeability |
Square root of user defined constant permeability, m. More... | |
SymmetricTensor< 2, dim > | permeability_INV |
Inverse of user defined constant permeability, 1/m^2. More... | |
SymmetricTensor< 2, dim > | SQRT_permeability_INV |
Inverse of square root of user defined constant permeability, 1/m. More... | |
SymmetricTensor< 2, dim > | Forchheimer_permeability |
User defined constant Forchheimer permeability, 1/m. More... | |
SymmetricTensor< 2, dim > | tortuosity |
User defined constant tortuosity. More... | |
std::string | diffusion_species_name |
If GDL properties are stored inside the class (e.g DummyGDL) then, return the property stored under coefficient_name name. More... | |
double | temperature |
Temperature [K ] used to compute gas diffusivity. More... | |
double | pressure |
Total pressure [atm ] used to compute gas diffusivity. More... | |
SolutionVariable | p_vector |
Pressure at every quadrature point inside the cell in [Pa]. More... | |
SolutionVariable | T_vector |
Temperature at every quadrature point inside the cell in [K]. More... | |
SolutionVariable | s_vector |
Liquid water saturation at every quadrature point inside the cell [-]. More... | |
SolutionVariable | capillary_pressure_vector |
Liquid water capillary pressure at every quadrature point inside the cell in [Pa]. More... | |
Table< 2, double > | D_ECtheory |
Tensor of diffusion coefficients This are computed with setting up the gas so that they do not need to be recomputed all the time. More... | |
std::vector< Table< 2, double > > | dD_ECtheory_dx |
Vector of tensors for the derivative of the diffusion coefficients – This are computed with setting up the gas so that they do not need to be recomputed all the time. More... | |
std::vector< double > | D_molecular |
Vector of molecular diffusion coefficients at every quadrature point inside the cell in m^2/s. More... | |
std::vector< double > | dD_molecular_dT |
Vector of derivatives for molecular diffusion coefficients w.r.t temperature, at every quadrature in m^2/s. More... | |
std::vector< double > | D_k |
Vector of Knudsen diffusion coefficients at every quadrature point inside the cell in m^2/s. More... | |
std::vector< double > | dD_k_dT |
Vector of derivatives for Knudsen diffusion coefficients w.r.t temperature, at every quadrature in m^2/s. More... | |
std::vector< double > | D_bulk |
Vector of bulk diffusion coefficients at every quadrature point inside the cell. More... | |
std::vector< double > | dD_bulk_dT |
Vector of derivative of bulk diffusion coefficients w.r.t temperature, at every quadrature point inside the cell. More... | |
bool | PSD_is_used |
Boolean flag to specify if a PSD is to be used to estimate saturation, permeability, etc. More... | |
std::string | PSD_type |
PSD class type from input file. More... | |
boost::shared_ptr < FuelCellShop::MicroScale::BasePSD < dim > > | PSD |
Pointer to the PSD object. More... | |
FuelCellShop::MicroScale::BasePSD < dim > * | psd_pointer |
Pointer to the PSD object. More... | |
FuelCellShop::Material::PureGas * | solute_gas |
Pointer used to store the solute gas for computing binary diffusion coefficients. More... | |
FuelCellShop::Material::PureGas * | solvent_gas |
Pointer used to store the solute gas for computing binary diffusion coefficients. More... | |
Protected Attributes inherited from FuelCellShop::Layer::BaseLayer< dim > | |
const std::string | name |
Name of the layer. More... | |
std::vector< unsigned int > | material_ids |
List of material IDs that belong to the layer. More... | |
std::vector< Point< dim > > | point |
Coordinates of the point where we would like to compute the effective properties. More... | |
std::vector< VariableNames > | derivative_flags |
Flags for derivatives: These flags are used to request derivatives. More... | |
std::map< VariableNames, double > | constant_solutions |
Map storing values of solution variables constant in a particular application. More... | |
Declaration | |
static const std::string | concrete_name |
Concrete name used for objects of this class. More... | |
MicroPorousLayer () | |
Replica Constructor. More... | |
MicroPorousLayer (const std::string &name) | |
Constructor. More... | |
~MicroPorousLayer () | |
Destructor. More... | |
void | declare_parameters (const std::string &name, ParameterHandler ¶m) const |
Declare parameters for a parameter file. More... | |
Instance Delivery | |
typedef std::map< std::string, MicroPorousLayer< dim > * > | _mapFactory |
This object is used to store all objects of type MicroPorousLayer. More... | |
static void | declare_MicroPorousLayer_parameters (const std::string &mpl_section_name, ParameterHandler ¶m) |
Function used to declare all the data necessary in the parameter files former all MicroPorousLayer children. More... | |
static boost::shared_ptr < FuelCellShop::Layer::MicroPorousLayer < dim > > | create_MicroPorousLayer (const std::string &mpl_section_name, ParameterHandler ¶m) |
Function used to select the appropriate MicroPorousLayer. More... | |
virtual boost::shared_ptr < FuelCellShop::Layer::MicroPorousLayer < dim > > | create_replica (const std::string &name) |
This member function is used to create an object of type micro porous layer. More... | |
static _mapFactory * | get_mapFactory () |
Return the map library that stores all childrens of this class. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from FuelCellShop::Layer::PorousLayer< dim > | |
PorousLayer (const std::string &name) | |
Constructor. More... | |
PorousLayer () | |
Constructor. More... | |
PorousLayer (const std::string &name, FuelCellShop::Material::GasMixture &gas_mixture) | |
Constructor. More... | |
virtual | ~PorousLayer () |
Destructor. More... | |
virtual void | declare_parameters (ParameterHandler ¶m) const |
Declare parameters for a parameter file. More... | |
void | print_caller_name (const std::string &caller_name) const |
This function is used to print out the name of another function that has been declared in the scope of this class, but not yet been implemented. More... | |
virtual void | gas_diffusion_coefficients (Table< 2, double > &) const |
Return the molecular diffusivty all the gases assigned to the layer using set_gases_and_compute. More... | |
virtual void | derivative_gas_diffusion_coefficients (std::vector< Table< 2, double > > &) const |
Return the derivative of the molecular diffusion coefficient with respect to the derivative flags for all the gases assigned to the layer using set_gases_and_compute. More... | |
Protected Member Functions inherited from FuelCellShop::Layer::BaseLayer< dim > | |
BaseLayer () | |
Constructor. More... | |
BaseLayer (const std::string &name) | |
Constructor. More... | |
virtual | ~BaseLayer () |
Destructor. More... | |
virtual void | set_parameters (const std::string &object_name, const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler ¶m) |
Member function used to change the values in the parameter file for a given list of parameters. More... | |
virtual void | set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler ¶m) |
Set parameters in parameter file. More... | |
Virtual class used to provide the interface for all MicroPorousLayer children.
No object of type MicroPorousLayer should ever be created, instead this layer is used to initialize pointers of type MicroPorousLayer. The class has a database of children such that it will declare all necessary parameters for all children in the input file, read the input file, create the appripriate children and return a pointer to MicroPorousLayer with the children selected.
All public functions are virtual but the static functions used to declare parameters and to initialize a pointer of MicroPorousLayer, i.e. declare_all_MicroPorousLayer_parameters, set_all_MicroPorousLayer_parameters and create_MicroPorousLayer.
In order to create a micro porous layer within an application, the following steps need to be taken.
First, in the application .h file, create a pointer to a MicroPorousLayer object, i.e.
This pointer object will be available anywhere inside the application. Because we do not want to worry about deleting the pointer afterwards, we use a Boost pointer which has its own memory management algorithms. See the Boost website for more information
Once the pointer is available, we need to do three things in the application
The object is ready for use now.
Here is a code example from app_cathode.cc:
|
protected |
This object is used to store all objects of type MicroPorousLayer.
This information in then used in layer_generator.h in order to create the correct object depending on the specified concrete type of layer selected such as DummyMPL or SGL24BC.
|
protected |
Replica Constructor.
Constructor used only to create a prototype. Do not use in general since this will not include the name of the section in the parameter file you need.
|
protected |
Constructor.
|
protected |
Destructor.
|
inlinestatic |
Function used to select the appropriate MicroPorousLayer.
References FuelCellShop::Layer::MicroPorousLayer< dim >::create_replica(), FuelCellShop::Layer::MicroPorousLayer< dim >::get_mapFactory(), and FcstUtilities::log.
|
inlineprotectedvirtual |
This member function is used to create an object of type micro porous layer.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >, FuelCellShop::Layer::SGL24BC< dim >, and FuelCellShop::Layer::DummyMPL< dim >.
References FcstUtilities::log.
Referenced by FuelCellShop::Layer::MicroPorousLayer< dim >::create_MicroPorousLayer().
|
inlinestatic |
Function used to declare all the data necessary in the parameter files former all MicroPorousLayer children.
This member function should be used instead of declare_parameters() when we want to use a MicroPorousLayer pointer that selects the type of MPL to run at runtime.
mpl_section_name | Name of the section that will encapuslate all the information about the CL |
param | ParameterHandler object used to store all information about the simulation. Used to read the parameter file. |
The parameter file would look as follows:
References FuelCellShop::Layer::MicroPorousLayer< dim >::get_mapFactory().
|
protectedvirtual |
Declare parameters for a parameter file.
The parameters that need to be declared are
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Referenced by FuelCellShop::Layer::SGL24BC< dim >::declare_parameters().
|
inlinevirtual |
Compute the derivative of in the MPL, with respect to either the solution or design parameters, at all quadrature points in the cell.
The parameters with respect to which the derivatives are computed are setup in FuelCellShop::Layer::set_derivative_flags()
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Return the derivative of effective diffusivity w.r.t solution variables/design parameters for nonisothermal with/without two-phase case in the MPL.
It transforms bulk diffusion properties computed using compute_gas_diffusion method and transforms it into an effective property, taking into account the porosity, saturation and MPL structure (Anisotropic case), at all quadrature points of the cell.
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >, and FuelCellShop::Layer::DummyMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the derivative of effective thermal conductivity with respect to temperature.
It will compute the derivative at all quadrature points. This function is used for the anisotropic MPL.
References FcstUtilities::log.
|
inlinevirtual |
Compute the derivative of the liquid-gas interfacial surface area per unit volume, with respect to either the solution variables or design parameters, at all quadrature points in the MPL.
The parameters with respect to which the derivatives are computed are setup in FuelCellShop::Layer::set_derivative_flags().
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the derivative of the liquid-gas interfacial surface area per unit volume, with respect to either the solution variables or design parameters, at all quadrature points in the CL.
The parameters with respect to which the derivatives are computed are setup in FuelCellShop::Layer::set_derivative_flags().
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the derivative of the anisotropic liquid permeability in the MPL with respect to either the solution or design parameters, at all quadrature points in the cell.
The parameters with respect to which the derivatives are computed are setup in FuelCellShop::Layer::set_derivative_flags()
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute , at all quadrature points in the MPL.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective conductivity.
To compute the effective properties it will use the method specified in set_method_effective_transport_property_solid . This function is used for the isotropic MPL
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective conductivity.
To compute the effective properties it will use the method specified in set_method_effective_transport_property_solid . This function is used for the anisotropic MPL.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >, FuelCellShop::Layer::SGL24BC< dim >, and FuelCellShop::Layer::DummyMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective property in the pores of the MPL.
This is used for example to compute effective diffusivity of gases. The method takes in bulk diffusion coefficient [m^2/s
] and liquid water saturation as the first and second argument respectively. This routine is used in the isotropic case.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective property in the pores of the MPL.
This is used for example to compute effective diffusivity of gases. The method takes in bulk diffusion coefficient [m^2/s
] and liquid water saturation as the first and second argument respectively. This routine can be used either in the isotropic or anisotripic case
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Return the effective diffusivity [m^2/s
] for nonisothermal with/without two-phase case in the MPL.
It takes bulk diffusivity, computed using compute_gas_diffusion method and transforms it into an effective property, taking into account the porosity, saturation and MPL structure (Anisotropic case), at all quadrature points of the cell.
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >, and FuelCellShop::Layer::DummyMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective property in the pores.
This is used to compute effective diffusivity of gases. This routine can be used either in the isotropic or anisotropic cases. Bulk diffusion coefficients or their derivatives are obtained from Mixure::BinaryDiffusion classes inside this method.
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >, FuelCellShop::Layer::SGL24BC< dim >, and FuelCellShop::Layer::DummyMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective thermal conductivity.
To compute the effective properties it will use the method specified in set_method_effective_transport_property_solid . This function is used for the isotropic MPL
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective thermal conductivity.
To compute the effective properties it will use the method specified in set_method_effective_transport_property_solid . This function is used for the anisotropic MPL.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >, FuelCellShop::Layer::SGL24BC< dim >, and FuelCellShop::Layer::DummyMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective thermal conductivity.
It will compute the thermal conductivity at all quadrature points. This function is used for the anisotropic MPL.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective property of a property that is defined by the network of fibres.
For example this could be used to compute the effective electron conductivity or heat conduction. NOTE: Isotropic case
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the effective property of a property that is defined by the network of fibres.
For example this could be used to compute the effective electron conductivity or heat conduction. Note: Anisotropic case.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
This member function returns a type_info object with the name of the base layer type the inherited class belongs to, i.e.
Note that this is necessary if we want to find out not the name of the actual class which can be obtain using
but the name of the parent class.
Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.
|
inlinestaticprotected |
Return the map library that stores all childrens of this class.
The declare_parameters of each one of the children that are in the map are called in declare_all_MicroPorousLayer_parameters.
Referenced by FuelCellShop::Layer::MicroPorousLayer< dim >::create_MicroPorousLayer(), and FuelCellShop::Layer::MicroPorousLayer< dim >::declare_MicroPorousLayer_parameters().
|
virtual |
Declare parameters for a parameter file.
Member function used to read in data and initialize the necessary data to compute the coefficients.
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::SGL24BC< dim >.
Referenced by FuelCellShop::Layer::SGL24BC< dim >::initialize().
|
inlinevirtual |
Compute the liquid-gas interfacial surface area per unit volume, , at all quadrature points in the MPL.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the liquid-gas interfacial surface area per unit volume, , at all quadrature points in the CL.
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the anisotropic MPL liquid permeability , at all quadrature points in the cell.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute , at all quadrature points in the cell.
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Compute the derivative of the anisotropic liquid permeability in the GDL with respect to either the solution or design parameters, at all quadrature points in the cell.
The parameters with respect to which the derivatives are computed are setup in FuelCellShop::Layer::set_derivative_flags()
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Reimplemented from FuelCellShop::Layer::PorousLayer< dim >.
Reimplemented in FuelCellShop::Layer::DesignMPL< dim >.
References FcstUtilities::log.
|
inlinevirtual |
Specify the methodology to be used to compute the effective properties for the porous phase.
Return true if the change has been succssful. The different methods are explained in declare_parameters
References FcstUtilities::log.
|
protected |
Anisotropy variable.
|
static |
Concrete name used for objects of this class.
This name is used when setting up the subsection where the data is stored in the input file.
The data will be store under
|
protected |
Electrical conductivity from the input file in the anisotripic case.
|
protected |
Oxygen diffusion coefficient.
|
protected |
Thermal conductivity from the input file in the anisotripic case.
|
protected |
Water diffusion coefficient.