17 #ifndef _FUELCELLSHOP__MEMBRANE_LAYER_H
18 #define _FUELCELLSHOP__MEMBRANE_LAYER_H
26 namespace FuelCellShop
139 iterator->second->declare_parameters(pem_section_name, param);
156 static boost::shared_ptr<FuelCellShop::Layer::MembraneLayer<dim> >
create_MembraneLayer (std::string pem_section_name,
157 ParameterHandler ¶m)
159 boost::shared_ptr<FuelCellShop::Layer::MembraneLayer<dim> > pointer;
161 std::string concrete_name;
162 param.enter_subsection(
"Fuel cell data");
164 param.enter_subsection(pem_section_name);
166 concrete_name = param.get(
"Membrane layer type");
169 param.leave_subsection();
171 param.leave_subsection();
177 if (iterator->second)
189 FcstUtilities::log<<
"Concrete name in FuelCellShop::Layer::MembraneLayer<dim>::create_MembraneLayer does not exist"<<std::endl;
193 pointer->initialize(param);
391 ParameterHandler ¶m)
const;
422 virtual boost::shared_ptr<FuelCellShop::Layer::MembraneLayer<dim> >
create_replica (std::string &
name)
424 const std::type_info& info =
typeid(*this);
426 <<
" called in Class "
427 << info.name() << std::endl;
442 boost::shared_ptr< FuelCellShop::Material::PolymerElectrolyteBase >
electrolyte;
virtual void effective_oxygen_diffusivity(double &) const
Compute the constant effective oxygen diffusivity of the membrane.
FuelCellShop::Material::PolymerElectrolyteBase * get_electrolyte() const
Method to provide access to the pointer to electrolyte material in the membrane layer.
Definition: membrane_layer.h:256
virtual void effective_thermoosmotic_diffusivity(std::vector< double > &) const
Compute the effective thermo-osmotic diffusivity of lambda (sorbed water), at all quadrature points i...
static boost::shared_ptr< FuelCellShop::Layer::MembraneLayer< dim > > create_MembraneLayer(std::string pem_section_name, ParameterHandler ¶m)
Function used to select the appropriate MembraneLayer type as specified in the ParameterHandler under...
Definition: membrane_layer.h:156
static _mapFactory * get_mapFactory()
Definition: membrane_layer.h:412
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:63
virtual void derivative_effective_proton_conductivity(std::map< VariableNames, std::vector< double > > &) const
Compute the derivative of effective proton conductivity of the membrane with respect to the flags set...
static void declare_MembraneLayer_parameters(std::string pem_section_name, ParameterHandler ¶m)
Function used to declare all the data necessary in the parameter files for all MembraneLayer children...
Definition: membrane_layer.h:133
virtual void set_constant_solution(const double &value, const VariableNames &name)
Set those solution variables which are constant in the particular application.
Definition: base_layer.h:113
const std::string name
Name of the layer.
Definition: base_layer.h:336
void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
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 cl...
Definition: membrane_layer.h:217
~MembraneLayer()
Destructor.
virtual void set_constant_solution(const double &value, const VariableNames &name)
Set those solution variables which are constant in the particular application.
Definition: membrane_layer.h:245
Definition: system_management.h:76
virtual boost::shared_ptr< FuelCellShop::Layer::MembraneLayer< dim > > create_replica(std::string &name)
This member function is used to create an object of type gas diffusion layer.
Definition: membrane_layer.h:422
virtual void set_derivative_flags(const std::vector< VariableNames > &flags)
Method used to set the variables for which you would like to compute the derivatives in the membrane ...
Definition: membrane_layer.h:226
virtual void derivative_effective_thermal_conductivity(std::vector< std::vector< double > > &) const
Compute the derivative of the effective thermal conductivity in the membrane layer for isotropic case...
void declare_parameters(ParameterHandler ¶m) const
Declare all necessary parameters in order to compute the coefficients.
Definition: membrane_layer.h:381
virtual void derivative_effective_water_diffusivity(std::map< VariableNames, std::vector< double > > &) const
Compute the derivative of effective water diffusivity of the membrane with respect to the flags set b...
boost::shared_ptr< FuelCellShop::Material::PolymerElectrolyteBase > electrolyte
Pointer to the electrolyte object used in the constructor, and it is used to calculate the effective ...
Definition: membrane_layer.h:442
virtual void effective_thermal_conductivity(double &) const
Compute the constant effective thermal conductivity of membrane layer.
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well.
This class implements the interface to compute the properties of a "standard" polymer electrolyte mem...
Definition: polymer_electrolyte_material_base.h:59
virtual void derivative_effective_oxygen_diffusivity(std::map< VariableNames, std::vector< double > > &) const
Compute the derivative of effective oxygen diffusivity of the membrane with respect to the flags set ...
std::string electrolyte_type
Type of membrane.
Definition: membrane_layer.h:436
std::map< std::string, MembraneLayer< dim > * > _mapFactory
This object is used to store all objects of type GasDiffusionLayer.
Definition: membrane_layer.h:407
Virtual class used to provide the interface for all MembraneLayer children.
Definition: membrane_layer.h:98
virtual void derivative_effective_thermoosmotic_diffusivity(std::map< VariableNames, std::vector< double > > &) const
Compute the derivative of the effective thermo-osmotic diffusivity of lambda (sorbed water) in the me...
MembraneLayer()
Replica Constructors.
virtual void effective_water_diffusivity(double &) const
Compute the constant effective water diffusivity of the membrane.
std::vector< VariableNames > derivative_flags
Flags for derivatives: These flags are used to request derivatives.
Definition: base_layer.h:348
Virtual class used to characterize a generic layer interface.
Definition: base_layer.h:58
virtual void effective_proton_conductivity(double &) const
Compute the constant effective proton conductivity of the membrane.