17 #ifndef _FUELCELLSHOP__DESIGN_MPL_H
18 #define _FUELCELLSHOP__DESIGN_MPL_H
25 #include <base/parameter_handler.h>
26 #include <base/point.h>
27 #include <base/function.h>
28 #include <lac/vector.h>
29 #include <fe/fe_values.h>
35 using namespace dealii;
37 namespace FuelCellShop
167 void set_parameters (
const std::vector<std::string>& name_dvar,
const std::vector<double>& value_dvar,ParameterHandler ¶m);
174 void initialize (ParameterHandler ¶m);
191 virtual void effective_gas_diffusivity(
const double& property,
192 const double& saturation,
193 double& effective_property)
const;
199 virtual void effective_gas_diffusivity(
const double& property,
200 const double& saturation,
201 Tensor<2,dim>& effective_property)
const;
211 virtual void effective_gas_diffusivity(std::vector< Tensor<2,dim> >& )
const;
221 virtual void derivative_effective_gas_diffusivity(std::map<
VariableNames, std::vector< Tensor<2,dim> > >& )
const;
234 virtual void effective_gas_diffusivity(Table< 2, Tensor< 2, dim > > &D_eff)
const;
242 virtual void effective_electron_conductivity(
double& )
const;
249 virtual void effective_electron_conductivity(Tensor<2,dim>& )
const;
255 virtual void effective_thermal_conductivity(
double& )
const;
262 virtual void effective_thermal_conductivity(Tensor<2,dim>& )
const;
269 virtual void effective_thermal_conductivity(std::vector< Tensor<2,dim> >& )
const;
275 virtual void liquid_permeablity(std::vector< Tensor<2,dim> >& )
const;
281 virtual void derivative_liquid_permeablity(std::map<
VariableNames, std::vector< Tensor<2,dim> > >& )
const;
286 virtual void pcapillary(std::vector<double>&)
const;
290 virtual void dpcapillary_dsat(std::vector<double> &)
const;
296 virtual void derivative_dpcapillary_dsat(std::map<
VariableNames, std::vector<double> > &)
const;
302 virtual void interfacial_surface_area(std::vector<double>&)
const;
308 virtual void derivative_interfacial_surface_area(std::map<
VariableNames, std::vector<double> >&)
const;
317 virtual void effective_transport_property_solid(
const double& property,
318 double& effective_property)
const;
326 virtual void effective_transport_property_solid(
const Tensor<2,dim>& property,
327 Tensor<2,dim>& effective_property)
const;
340 void declare_parameters (
const std::string& mpl_section_name,
341 ParameterHandler ¶m)
const;
349 const std::vector<double>& value_dvar,
350 const std::string& name,
351 ParameterHandler ¶m)
const
353 const std::type_info& info =
typeid(*this);
355 <<
" called in Class "
356 << info.name() << std::endl;
362 virtual boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> >
create_replica (
const std::string &name)
442 #endif // _FUELCELLSHOP__DESIGN_MPL_H
std::string method_eff_property_pores
Method used to compute the effective properties in the pores.
Definition: design_MPL.h:386
std::vector< double > D_O2
Oxygen Diffusion coefficient.
Definition: design_MPL.h:414
double s_irr
Irreducible liquid water saturation value in the MPL.
Definition: design_MPL.h:403
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.
Definition: design_MPL.h:362
std::vector< double > fibre_th
Solid (electron conductive) network of the MPL threshold.
Definition: design_MPL.h:418
std::vector< double > abs_permeability
Absolute permeability [cm^2] of the layer.
Definition: design_MPL.h:423
std::vector< double > D_wv
Water vapour diffusion coefficient.
Definition: design_MPL.h:416
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:62
std::string method_rel_liquid_permeability
Method used to compute the relative liquid permeability.
Definition: design_MPL.h:401
Virtual class used to provide the interface for all MicroPorousLayer children.
Definition: micro_porous_layer.h:116
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: design_MPL.h:134
std::vector< double > porosity_gamma
Network constant gamma.
Definition: design_MPL.h:412
double thermal_conductivity
Thermal conductivity from the input file.
Definition: design_MPL.h:394
bool anisotropy
General properties.
Definition: design_MPL.h:380
void declare_parameters(ParameterHandler ¶m) const
Declare parameters for a parameter file.
Definition: design_MPL.h:160
double porosity
Porosity of the GDL.
Definition: design_MPL.h:382
std::string method_eff_property_fibres
Method used to compute the effective properties in the solid phase.
Definition: design_MPL.h:388
double compaction_pressure
MPL Compaction pressure, .
Definition: design_MPL.h:428
std::vector< double > porosity_th
Anisotropic properties.
Definition: design_MPL.h:408
This class defines an MPL where effective transport properties are computed using macro-homogeneous c...
Definition: design_MPL.h:113
double electrical_conductivity
Electrical conductivity from the input file.
Definition: design_MPL.h:392
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well.
Tensor< 2, dim > matrix_thermal_conductivity
Thermal conductivity from the input file in the anisotripic case.
Definition: design_MPL.h:398
std::vector< double > porosity_mu
Network constant.
Definition: design_MPL.h:410
std::string method_eff_thermal_conductivity
Method used to compute effective thermal conductivity.
Definition: design_MPL.h:390
double solid_phase
Volume fraction of solid phase, i.e.
Definition: design_MPL.h:384
static DesignMPL< dim > const * PROTOTYPE
Prototype declaration.
Definition: design_MPL.h:370
double kumbur_factor
Factor calculated based on Kumbur et al (2007), to be used in capillary pressure computation, given as: .
Definition: design_MPL.h:435
Tensor< 2, dim > matrix_electrical_conductivity
Electrical conductivity from the input file in the anisotripic case.
Definition: design_MPL.h:396
double PTFE_loading
PTFE loading (% wt) in the MPL.
Definition: design_MPL.h:430
void set_parameters(const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, const std::string &name, ParameterHandler ¶m) const
Member function used to set new parameters values in the optimization loop.
Definition: design_MPL.h:348
~DesignMPL()
Destructor.
Definition: design_MPL.h:152
std::string method_capillary_function
Method used to compute capillary pressure as a function of saturation.
Definition: design_MPL.h:426
std::vector< double > fibre_mu
Solid (electron conductive) network constant.
Definition: design_MPL.h:420