15 #ifndef FUEL_CELL__WATER_AGGLOMERATE_1D__H
16 #define FUEL_CELL__WATER_AGGLOMERATE_1D__H
39 namespace FuelCellShop
163 param.declare_entry(
"Relative core charge factor",
"0.0", Patterns::Double(0.0,1.0),
164 "Factor dictating the amount of negative charged ions existing in the "
165 "water filled core. Fraction of film sulphonic concentration.");
167 param.leave_subsection();
182 param.leave_subsection();
234 virtual boost::shared_ptr<FuelCellShop::MicroScale::MicroScaleBase>
create_replica ()
248 void fsub (
double &,
double [],
double [],
double [] );
250 static void fsub_wrapper (
double &,
double [],
double [],
double [] );
259 void dfsub (
double &,
double [],
double [],
double [] );
261 static void dfsub_wrapper (
double &,
double [],
double [],
double [] );
269 void gsub (
int &,
double [],
double & );
271 static void gsub_wrapper (
int &,
double [],
double & );
278 void dgsub (
int &,
double [],
double [] );
288 void guess (
double &,
double [],
double [],
double [] );
290 static void guess_wrapper (
double &,
double [],
double [],
double [] );
int cont_tolerance(double start_tol, double end_tol)
Function which implements a continuation based on the tolerance.
double DO2_Water
Definition: agglomerate_water_1D.h:304
static void guess_wrapper(double &, double[], double[], double[])
int cont_cd()
Function which implements a continuation based on lambda - modifying the source terms to scale back t...
static void dfsub_wrapper(double &, double[], double[], double[])
std::vector< std::string > derivative_flags
Definition: agglomerate_water_1D.h:314
void set_structure()
Set the composition and structure of the agglomerate.
Base class for numerical agglomerates.
Definition: numerical_agglomerate_base.h:59
void gsub(int &, double[], double &)
Define the boundary conditions.
virtual double get_radius()
Definition: agglomerate_water_1D.h:139
FuelCellShop::Material::LiquidWater water
Object to store information on water, necessary for water filled agglomerate.
Definition: agglomerate_water_1D.h:295
virtual void initialize(ParameterHandler ¶m)
Class that solves a water-filled agglomerate problem in 1D.
Definition: agglomerate_water_1D.h:67
virtual void declare_parameters(ParameterHandler ¶m) const
double D_H_NAF
Proton Diffusivity in Nafion and water.
Definition: agglomerate_water_1D.h:299
double D_H_Water
Definition: agglomerate_water_1D.h:300
Convenient storage object for SolutionVariables.
Definition: fcst_variables.h:457
virtual std::string get_name()
Return name of class instance, i.e.
Definition: agglomerate_water_1D.h:87
Properties
Definition: multi_scale_CL.h:202
static const std::string concrete_name
Definition: agglomerate_water_1D.h:73
static void fsub_wrapper(double &, double[], double[], double[])
double r_agg
Definition: agglomerate_base.h:177
void setup_DAE_solver()
Setup the variables in the problem required by the DAE Solver.
WaterAgglomerate(int verbose=1)
Constructors.
FuelCellShop::Layer::MultiScaleCL< deal_II_dimension > * layer
Definition: micro_scale_base.h:354
virtual boost::shared_ptr< FuelCellShop::MicroScale::MicroScaleBase > create_replica()
This member function is used to create an object of type MicroScaleBase.
Definition: agglomerate_water_1D.h:234
double epsilon_agg
Definition: agglomerate_base.h:188
double core_charge_factor
Definition: agglomerate_water_1D.h:312
void dgsub(int &, double[], double[])
The derivatives of the boundary conditions.
double compute_thickness_agg()
Member function to compute the thickness of the agglomerate thin film based on the radius and structu...
double lambda2
Definition: agglomerate_water_1D.h:321
void declare_parameters(ParameterHandler ¶m) const
Declare all necessary parameters in order to compute the coefficients.
This class is to be used as a wrapper for the functions needed in the DAESolver.
Definition: DAE_wrapper.h:82
static void dgsub_wrapper(int &, double[], double[])
double rel_permittivity_Naf
Definition: agglomerate_water_1D.h:311
double D_O2_N
Oxygen Diffusivity in Nafion and water.
Definition: agglomerate_water_1D.h:303
virtual double compute_epsilon_agg()
Compute the volume fraction of nafion inside the agglomerate given the catalyst layer ionomer volume ...
virtual double aux_volume_fraction()
MicroScale object may have extra contribution to volume of layer, e.g.
Definition: agglomerate_water_1D.h:97
static WaterAgglomerate const * PROTOTYPE
Definition: agglomerate_water_1D.h:229
LiquidWater as a publicly derived class of Pureliquid.
Definition: PureLiquid.h:62
double HO2N
Henry's Constant for oxygen in nafion.
Definition: agglomerate_water_1D.h:307
double delta_agg
Definition: agglomerate_base.h:183
virtual double get_film_thickness()
Definition: agglomerate_water_1D.h:131
double H_tol
absolute tolerance in proton concentration
Definition: agglomerate_water_1D.h:317
double lambda
Definition: agglomerate_water_1D.h:320
void fsub(double &, double[], double[], double[])
Define the DAE function.
void guess(double &, double[], double[], double[])
The initial guess.
void dfsub(double &, double[], double[], double[])
The Jacobian of fsub.
double rel_permittivity_water
Definition: agglomerate_water_1D.h:310
void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
virtual SolutionMap compute_current()
Main function of the class used to compute the current over the whole agglomerate at the local operat...
virtual void declare_parameters(ParameterHandler ¶m) const
Definition: agglomerate_water_1D.h:157
static void gsub_wrapper(int &, double[], double &)
virtual void initialize(ParameterHandler ¶m)
Definition: agglomerate_water_1D.h:174
std::map< Properties, double > get_properties()
Definition: multi_scale_CL.h:216