18 #ifndef FUEL_CELL__IONOMER_AGGLOMERATE_NUMERICAL_1D__H
19 #define FUEL_CELL__IONOMER_AGGLOMERATE_NUMERICAL_1D__H
31 namespace FuelCellShop
120 virtual boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase>
create_replica ()
137 param.declare_entry(
"Proton Conductivity factor",
"1.0",
139 param.declare_entry(
"Non Equilibrium BC Rate constant",
"1.0", Patterns::Double());
140 param.declare_entry(
"Use non equilibrium BC",
"false",
143 param.leave_subsection();
157 cond_factor = param.get_double(
"Proton Conductivity factor");
158 k_O2 = param.get_double(
"Non Equilibrium BC Rate constant");
159 non_equil_bc = param.get_bool(
"Use non equilibrium BC");
161 param.leave_subsection();
177 void fsub (
double &,
double [],
double [],
double [] );
179 static void fsub_wrapper (
double &,
double [],
double [],
double [] );
188 void dfsub (
double &,
double [],
double [],
double [] );
190 static void dfsub_wrapper (
double &,
double [],
double [],
double [] );
198 void gsub (
int &,
double [],
double & );
200 static void gsub_wrapper (
int &,
double [],
double & );
207 void dgsub (
int &,
double [],
double [] );
217 void guess (
double &,
double [],
double [],
double [] );
219 static void guess_wrapper (
double &,
double [],
double [],
double [] );
static const std::string concrete_name
Definition: agglomerate_ionomer_1D.h:60
virtual void initialize(ParameterHandler ¶m)
Definition: agglomerate_ionomer_1D.h:153
Base class for numerical agglomerates.
Definition: numerical_agglomerate_base.h:59
virtual void initialize(ParameterHandler ¶m)
virtual void declare_parameters(ParameterHandler ¶m) const
static void gsub_wrapper(int &, double[], double &)
virtual void set_structure()
Set the composition and structure of the agglomerate.
Convenient storage object for SolutionVariables.
Definition: fcst_variables.h:457
static void fsub_wrapper(double &, double[], double[], double[])
double lambda
Definition: agglomerate_ionomer_1D.h:234
IonomerAgglomerate(int verbose=1)
Constructors.
double prev_effectiveness
Definition: agglomerate_ionomer_1D.h:237
static void dfsub_wrapper(double &, double[], double[], double[])
double r_agg
Definition: agglomerate_base.h:177
static IonomerAgglomerate const * PROTOTYPE
Definition: agglomerate_ionomer_1D.h:115
virtual void declare_parameters(ParameterHandler ¶m) const
Definition: agglomerate_ionomer_1D.h:133
void guess(double &, double[], double[], double[])
The initial guess.
bool non_equil_bc
Bool to determine if the non-equilibrium boundary condition is used.
Definition: agglomerate_ionomer_1D.h:229
double k_O2
Rate constant for non-equilibrium boundary condition.
Definition: agglomerate_ionomer_1D.h:226
void fsub(double &, double[], double[], double[])
Define the DAE function.
virtual double get_film_thickness()
Definition: agglomerate_ionomer_1D.h:98
void dfsub(double &, double[], double[], double[])
The Jacobian of fsub.
static void guess_wrapper(double &, double[], double[], double[])
This class is to be used as a wrapper for the functions needed in the DAESolver.
Definition: DAE_wrapper.h:82
Class that solves an ionomer-filled agglomerate problem in 1D.
Definition: agglomerate_ionomer_1D.h:55
virtual boost::shared_ptr< FuelCellShop::MicroScale::MicroScaleBase > create_replica()
This member function is used to create an object of type MicroScaleBase.
Definition: agglomerate_ionomer_1D.h:120
double endTol
Definition: agglomerate_ionomer_1D.h:236
void dgsub(int &, double[], double[])
The derivatives of the boundary conditions.
double delta_agg
Definition: agglomerate_base.h:183
virtual double aux_volume_fraction()
MicroScale object may have extra contribution to volume of layer, e.g.
Definition: agglomerate_ionomer_1D.h:80
bool uFD
Definition: agglomerate_ionomer_1D.h:235
static void dgsub_wrapper(int &, double[], double[])
int cont_tolerance(double start_tol, double end_tol)
Function which implements a continuation based on the tolerance.
void setup_DAE_solver()
Setup the variables in the problem required by the DAE Solver.
virtual SolutionMap compute_current()
Main function of the class used to compute the current over the whole agglomerate at the local operat...
void gsub(int &, double[], double &)
Define the boundary conditions.
double cond_factor
Used to modify the proton conductivity in agglomerate.
Definition: agglomerate_ionomer_1D.h:223
double sigma_p
Proton conductivity.
Definition: agglomerate_ionomer_1D.h:233
virtual std::string get_name()
Return name of class instance, i.e.
Definition: agglomerate_ionomer_1D.h:71
virtual double get_radius()
Definition: agglomerate_ionomer_1D.h:106