17 #ifndef _FUELCELLSHOP__LAYER__MULTISCALE_CL__LAYER_H
18 #define _FUELCELLSHOP__LAYER__MULTISCALE_CL__LAYER_H
21 #include <boost/smart_ptr.hpp>
33 namespace FuelCellShop
115 virtual void current_density (std::vector<double>& current, std::vector<double>& effectiveness );
163 inline boost::shared_ptr<T>
166 boost::shared_ptr<void> ptr;
187 std::string msg = std::string(
typeid(*this).name()) +
" does not have object type " + std::string(
typeid(T).name());
188 throw std::runtime_error(msg);
191 return boost::static_pointer_cast<T>(ptr);
218 std::map<Properties, double> properties;
310 ParameterHandler ¶m)
const;
321 virtual boost::shared_ptr<FuelCellShop::Layer::CatalystLayer<dim> >
create_replica (
const std::string &cl_section_name)
349 SolutionMap micro_scale_current(std::map<VariableNames ,SolutionVariable>& solutionMap,
const unsigned int& sol_index,
const unsigned int& thread_index);
369 std::map<unsigned int, std::vector<boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase>>>
micro;
virtual SolutionMap get_coverages()
Method for getting coverages from micro scale objects Overloaded here since kinetics cannot be used d...
This class characterizes a catalyst layer and uses this information to compute effective transport pr...
Definition: multi_scale_CL.h:50
boost::shared_ptr< FuelCellShop::Material::CatalystBase > catalyst
Pointer to the catalyst object created in the application that is used to store the properties of the...
Definition: catalyst_layer.h:1091
SolutionMap coverage_map
Definition: multi_scale_CL.h:372
virtual void set_cell_id(const unsigned int &id)
Function for setting current cell_id from applications.
Definition: multi_scale_CL.h:79
void compute_void_fraction()
Compute porosity and volume fraction of solid and ionomer in the catalyst layer.
void initialize_micro_scale(ParameterHandler ¶m)
Creates the microscale objects populating the microscale object.
std::map< unsigned int, double > epsilon_N
Volume fraction of Nafion in the cathode catalyst layer.
Definition: conventional_CL.h:544
Definition: multi_scale_CL.h:203
std::map< unsigned int, double > epsilon_S
Solid volume fraction in the catalyst layer.
Definition: conventional_CL.h:548
VariableNames
The enumeration containing the names of some of the available FCST solution variables and their deriv...
Definition: system_management.h:63
Convenient storage object for SolutionVariables.
Definition: fcst_variables.h:457
boost::shared_ptr< T > get_resource()
Definition: multi_scale_CL.h:164
virtual void derivative_current_density(std::map< VariableNames, std::vector< double > > &)
This member function will use a FuelCellShop::Kinetics class in order to compute the derivative of th...
This class implements the interface to compute the properties of a "standard" catalyst.
Definition: catalyst_base.h:65
static MultiScaleCL< dim > const * PROTOTYPE
Definition: multi_scale_CL.h:331
Properties
Definition: multi_scale_CL.h:202
const std::string name
Name of the layer.
Definition: base_layer.h:336
virtual void current_density(std::vector< double > ¤t)
This member function will use a FuelCellShop::Kinetics class in order to compute the current density ...
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: multi_scale_CL.h:69
std::map< unsigned int, double > epsilon_V
Void volume fraction (Porosity) of the catalyst layer.
Definition: conventional_CL.h:546
This class characterizes a catalyst layer and uses this information to compute effective transport pr...
Definition: conventional_CL.h:48
std::map< VariableNames, double > constant_solutions
Map storing values of solution variables constant in a particular application.
Definition: base_layer.h:352
This class implements the interface to compute the properties of a "standard" catalyst support...
Definition: catalyst_support_base.h:47
void solve_current_derivatives_at_each_node(std::map< VariableNames, std::vector< double > > &Dcurrent)
Private member functions for solving for current derivatives in a per node approach.
void solve_current_derivatives_average(std::map< VariableNames, std::vector< double > > &Dcurrent)
Private member functions for solving for current derivatives in an averaging approach.
std::map< unsigned int, std::vector< boost::shared_ptr< FuelCellShop::MicroScale::MicroScaleBase > > > micro
Vector of shared_ptr microscale objects used for calculating current density and current density deri...
Definition: multi_scale_CL.h:369
Definition: multi_scale_CL.h:207
std::map< unsigned int, double > Av
Active area of catalyst per unit volume of catalyst layer.
Definition: conventional_CL.h:564
virtual void print_layer_properties() const
Print out composition and micro-structural properties of the catalyst layer.
This class implements the interface to compute the properties of a "standard" polymer electrolyte mem...
Definition: polymer_electrolyte_material_base.h:59
boost::shared_ptr< FuelCellShop::Material::CatalystSupportBase > catalyst_support
Pointer to the catalyst support object created in the application that is used to calculate the carbo...
Definition: catalyst_layer.h:1085
Virtual class used to provide the interface for all kinetic/reaction children.
Definition: base_kinetics.h:102
~MultiScaleCL()
Destructor.
Definition: multi_scale_CL.h:205
SolutionMap micro_scale_current(std::map< VariableNames, SolutionVariable > &solutionMap, const unsigned int &sol_index, const unsigned int &thread_index)
Private member functions for solving current density given an microscale.
Definition: system_management.h:92
void declare_parameters(ParameterHandler ¶m) const
Declare all necessary parameters in order to compute the coefficients.
Definition: multi_scale_CL.h:261
bool average_cell_current
Boolean value to choose whether to average the current over the cell.
Definition: multi_scale_CL.h:364
void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
boost::shared_ptr< FuelCellShop::Kinetics::BaseKinetics > kinetics
Pointer to a kinetics object.
Definition: catalyst_layer.h:1094
unsigned int cell_id_
Definition: multi_scale_CL.h:374
Definition: multi_scale_CL.h:206
unsigned int local_material_id() const
Return the local material id of the layer, performs a check.
Definition: base_layer.h:215
MultiScaleCL()
Prototype Constructor.
virtual boost::shared_ptr< FuelCellShop::Layer::CatalystLayer< dim > > create_replica(const std::string &cl_section_name)
This member function is used to create an object of type gas diffusion layer.
Definition: multi_scale_CL.h:321
Definition: multi_scale_CL.h:208
boost::shared_ptr< FuelCellShop::Material::PolymerElectrolyteBase > electrolyte
Pointer to the electrolyte object created in the application that is used to calculate the properties...
Definition: catalyst_layer.h:1079
Definition: multi_scale_CL.h:204
std::map< Properties, double > get_properties()
Definition: multi_scale_CL.h:216