17 #ifndef _FUELCELLSHOP__DESIGN_MPL_H
18 #define _FUELCELLSHOP__DESIGN_MPL_H
23 using namespace dealii;
25 namespace FuelCellShop
155 void set_parameters (
const std::vector<std::string>& name_dvar,
const std::vector<double>& value_dvar,ParameterHandler ¶m);
162 void initialize (ParameterHandler ¶m);
179 virtual void effective_gas_diffusivity(
const double& property,
180 const double& saturation,
181 double& effective_property)
const;
187 virtual void effective_gas_diffusivity(
const double& property,
188 const double& saturation,
189 Tensor<2,dim>& effective_property)
const;
199 virtual void effective_gas_diffusivity(std::vector< Tensor<2,dim> >& )
const;
209 virtual void derivative_effective_gas_diffusivity(std::map<
VariableNames, std::vector< Tensor<2,dim> > >& )
const;
222 virtual void effective_gas_diffusivity(Table< 2, Tensor< 2, dim > > &D_eff)
const;
230 virtual void effective_electron_conductivity(
double& )
const;
237 virtual void effective_electron_conductivity(Tensor<2,dim>& )
const;
243 virtual void effective_thermal_conductivity(
double& )
const;
250 virtual void effective_thermal_conductivity(Tensor<2,dim>& )
const;
257 virtual void effective_thermal_conductivity(std::vector< Tensor<2,dim> >& )
const;
263 virtual void liquid_permeablity(std::vector< Tensor<2,dim> >& )
const;
269 virtual void derivative_liquid_permeablity(std::map<
VariableNames, std::vector< Tensor<2,dim> > >& )
const;
274 virtual void saturated_liquid_permeablity_PSD(
double&)
const;
275 virtual void relative_liquid_permeability_PSD(std::vector< Tensor<2,dim> >&)
const;
276 virtual void derivative_relative_liquid_permeablity_PSD(std::vector<double>&)
const;
277 virtual void derivative_relative_liquid_permeablity_PSD(std::map<
VariableNames, std::vector< Tensor<2,dim> > >&)
const;
283 virtual void pcapillary(std::vector<double>&)
const;
284 virtual void saturation_from_capillary_equation(std::vector<double>&)
const;
286 virtual void derivative_saturation_from_capillary_equation_PSD(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;
314 virtual void interfacial_surface_area_PSD(std::vector<double>&)
const;
320 virtual void derivative_interfacial_surface_area_PSD(std::vector<double>&)
const;
321 virtual void derivative_interfacial_surface_area_PSD(std::map<
VariableNames, std::vector<double> >&)
const;
330 virtual void effective_transport_property_solid(
const double& property,
331 double& effective_property)
const;
339 virtual void effective_transport_property_solid(
const Tensor<2,dim>& property,
340 Tensor<2,dim>& effective_property)
const;
353 void declare_parameters (
const std::string& mpl_section_name,
354 ParameterHandler ¶m)
const;
362 const std::vector<double>& value_dvar,
363 const std::string& name,
364 ParameterHandler ¶m)
const
366 const std::type_info& info =
typeid(*this);
368 <<
" called in Class "
369 << info.name() << std::endl;
375 virtual boost::shared_ptr<FuelCellShop::Layer::MicroPorousLayer<dim> >
create_replica (
const std::string &name)
455 #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:399
std::vector< double > D_O2
Oxygen Diffusion coefficient.
Definition: design_MPL.h:427
double s_irr
Irreducible liquid water saturation value in the MPL.
Definition: design_MPL.h:416
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:375
std::vector< double > fibre_th
Solid (electron conductive) network of the MPL threshold.
Definition: design_MPL.h:431
std::vector< double > abs_permeability
Absolute permeability [cm^2] of the layer.
Definition: design_MPL.h:436
std::vector< double > D_wv
Water vapour diffusion coefficient.
Definition: design_MPL.h:429
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:63
std::string method_rel_liquid_permeability
Method used to compute the relative liquid permeability.
Definition: design_MPL.h:414
Virtual class used to provide the interface for all MicroPorousLayer children.
Definition: micro_porous_layer.h:102
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: design_MPL.h:122
std::vector< double > porosity_gamma
Network constant gamma.
Definition: design_MPL.h:425
double thermal_conductivity
Thermal conductivity from the input file.
Definition: design_MPL.h:407
bool anisotropy
General properties.
Definition: design_MPL.h:393
void declare_parameters(ParameterHandler ¶m) const
Declare parameters for a parameter file.
Definition: design_MPL.h:148
double porosity
Porosity of the GDL.
Definition: design_MPL.h:395
std::string method_eff_property_fibres
Method used to compute the effective properties in the solid phase.
Definition: design_MPL.h:401
double compaction_pressure
MPL Compaction pressure, .
Definition: design_MPL.h:441
std::vector< double > porosity_th
Anisotropic properties.
Definition: design_MPL.h:421
This class defines an MPL where effective transport properties are computed using macro-homogeneous c...
Definition: design_MPL.h:101
double electrical_conductivity
Electrical conductivity from the input file.
Definition: design_MPL.h:405
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:411
std::vector< double > porosity_mu
Network constant.
Definition: design_MPL.h:423
std::string method_eff_thermal_conductivity
Method used to compute effective thermal conductivity.
Definition: design_MPL.h:403
double solid_phase
Volume fraction of solid phase, i.e.
Definition: design_MPL.h:397
static DesignMPL< dim > const * PROTOTYPE
Prototype declaration.
Definition: design_MPL.h:383
double kumbur_factor
Factor calculated based on Kumbur et al (2007), to be used in capillary pressure computation, given as: .
Definition: design_MPL.h:448
Tensor< 2, dim > matrix_electrical_conductivity
Electrical conductivity from the input file in the anisotripic case.
Definition: design_MPL.h:409
double PTFE_loading
PTFE loading (% wt) in the MPL.
Definition: design_MPL.h:443
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:361
~DesignMPL()
Destructor.
Definition: design_MPL.h:140
std::string method_capillary_function
Method used to compute capillary pressure as a function of saturation.
Definition: design_MPL.h:439
std::vector< double > fibre_mu
Solid (electron conductive) network constant.
Definition: design_MPL.h:433