17 #ifndef POLYAGGLOMERATE_H_ 
   18 #define POLYAGGLOMERATE_H_ 
   22 namespace FuelCellShop
 
   46     inline void  push_back(
const double & volumeFraction, boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase> micro){
 
   50         Assert(micro, ExcMessage(
"boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase> with null pointer out of range for MicroMap."));
 
   52         vols.push_back(volumeFraction);
 
   69     inline unsigned int size()
 const{
 
   73     inline  boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase>& 
at(
unsigned int idx){
 
   74         Assert(idx < 
size_, ExcMessage(
"Index out of range for MicroMap."));
 
   78     inline  double& 
volAt(
unsigned int idx){
 
   79         Assert(idx < 
size_, ExcMessage(
"Index out of range for MicroMap."));
 
   86     std::vector<boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase>> 
micros;
 
  158     virtual void set_solution(
const std::map<VariableNames,SolutionVariable>& sols,
const VariableNames& name, 
const int& index);
 
  183         Assert(
false, ExcPureFunctionCalled());
 
  184         return std::vector<double>(3, 0.0);
 
  215         for(
unsigned int i = 0; i < 
micro.
size(); i++){
 
  218             micro.
at(i)->print_properties();
 
  231     virtual void make_thread_safe(ParameterHandler ¶m, 
unsigned int thread_index);
 
  253     virtual void initialize (ParameterHandler ¶m);
 
virtual void declare_parameters(ParameterHandler ¶m) const 
 
double & volAt(unsigned int idx)
Definition: poly_agglomerate.h:78
 
void push_back(const double &volumeFraction, boost::shared_ptr< FuelCellShop::MicroScale::MicroScaleBase > micro)
Definition: poly_agglomerate.h:46
 
MicroSet()
Definition: poly_agglomerate.h:40
 
virtual bool has_derivatives()
Returns true if the class instance can calculate current density derivatives. 
Definition: poly_agglomerate.h:195
 
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
 
std::vector< boost::shared_ptr< FuelCellShop::MicroScale::MicroScaleBase > > micros
Definition: poly_agglomerate.h:86
 
virtual void initialize(ParameterHandler ¶m)
 
~MicroSet()
Definition: poly_agglomerate.h:44
 
MicroSet micro
Definition: poly_agglomerate.h:281
 
static bool inf_loop_preventor
Definition: poly_agglomerate.h:284
 
virtual boost::shared_ptr< MicroScaleBase > create_replica()
This member function is used to create an object of MicroScaleBase. 
Definition: poly_agglomerate.h:272
 
static int num_sub_micro
Definition: poly_agglomerate.h:287
 
virtual std::string get_name()
Return name of class instance, i.e. 
Definition: poly_agglomerate.h:203
 
PolyAgglomerate()
Definition: poly_agglomerate.h:141
 
virtual void set_solution(const std::map< VariableNames, SolutionVariable > &sols, const VariableNames &name, const int &index)
Function for setting the solution map(reactant concentration, phi_s, phi_m, etc.). 
 
virtual void set_structure()
 
virtual double aux_volume_fraction()
MicroScale object may have extra contribution to volume of layer, e.g. 
 
An agglomerate model which considers a combination of agglomerates. 
Definition: poly_agglomerate.h:133
 
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well. 
 
std::vector< double > vols
Definition: poly_agglomerate.h:87
 
unsigned int size() const 
Definition: poly_agglomerate.h:69
 
The base class for micro scale objects in OpenFCST. 
Definition: micro_scale_base.h:134
 
virtual SolutionMap compute_current()
Function used to compute the current density produced by the micro structure. 
 
virtual void print_properties()
Print out key micro-structural dimensions, defined by child. 
Definition: poly_agglomerate.h:210
 
static PolyAgglomerate const * PROTOTYPE
Definition: poly_agglomerate.h:238
 
unsigned int size_
Definition: poly_agglomerate.h:85
 
boost::shared_ptr< FuelCellShop::MicroScale::MicroScaleBase > & at(unsigned int idx)
Definition: poly_agglomerate.h:73
 
Definition: poly_agglomerate.h:28
 
static const std::string concrete_name
Definition: poly_agglomerate.h:139
 
void normalize_vols()
Definition: poly_agglomerate.h:58
 
virtual ~PolyAgglomerate()
 
virtual std::vector< double > compute_derivative_current()
Function to compute the derivative of the current density at the local operating conditions. 
Definition: poly_agglomerate.h:181
 
virtual void make_thread_safe(ParameterHandler ¶m, unsigned int thread_index)