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