OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Protected Attributes | List of all members
FuelCellShop::Equation::SorptionSourceTerms< dim > Class Template Reference

This class assembles source terms corresponding to sorption/desorption of water inside the catalyst layer. More...

#include <sorption_source_terms.h>

Inheritance diagram for FuelCellShop::Equation::SorptionSourceTerms< dim >:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Equation::SorptionSourceTerms< dim >:
Collaboration graph
[legend]

Public Member Functions

Constructors, destructor, and initalization
 SorptionSourceTerms (FuelCell::SystemManagement &system_management, boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > data=boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >())
 Constructor. More...
 
virtual ~SorptionSourceTerms ()
 Destructor. More...
 
virtual void declare_parameters (ParameterHandler &param) const
 Declare parameters. More...
 
virtual void initialize (ParameterHandler &param)
 Initialize parameters. More...
 
Local CG FEM based assemblers
virtual void assemble_cell_matrix (FuelCell::ApplicationCore::MatrixVector &cell_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local cell matrix. More...
 
virtual void assemble_cell_residual (FuelCell::ApplicationCore::FEVector &cell_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local cell residual. More...
 
Accessors & Info
virtual void adjust_internal_cell_couplings (std::vector< couplings_map > &) const
 This function is used to adjust std::vector < internal_cell_couplings >, which is generated after getting internal_cell_couplings from all the equations being used in the application. More...
 
virtual void print_equation_info () const
 This function prints out the info for this class. More...
 
double get_time_constant () const
 Returns time constant $ k $ [1/s]. More...
 
bool get_flag_sorp_heat_cl () const
 Method to get whether the heat release/absorption due to sorption/desorption, inside the catalyst layers is ON or OFF (flag_sorp_heat_cl). More...
 
- Public Member Functions inherited from FuelCellShop::Equation::EquationBase< dim >
virtual void assemble_bdry_matrix (FuelCell::ApplicationCore::MatrixVector &bdry_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local boundary matrix. More...
 
virtual void assemble_bdry_residual (FuelCell::ApplicationCore::FEVector &bdry_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local boundary residual. More...
 
const couplings_mapget_internal_cell_couplings () const
 This function returns internal_cell_couplings of a derived equation class. More...
 
const couplings_mapget_internal_flux_couplings () const
 This function returns internal_flux_couplings (DG FEM only) of a derived equation class. More...
 
const
component_materialID_value_map
get_component_materialID_value () const
 This function returns component_materialID_value of a derived equation class. More...
 
const
component_boundaryID_value_map
get_component_boundaryID_value () const
 This function returns component_boundaryID_value of a derived equation class. More...
 
const std::vector< BoundaryType > & get_boundary_types () const
 This function returns boundary_types of a derived equation class. More...
 
const std::vector< std::vector
< BoundaryType > > & 
get_multi_boundary_types () const
 This function returns multi_boundary_types of a derived equation class. More...
 
const std::vector< OutputType > & get_output_types () const
 This function returns output_types of a derived equation class. More...
 
const std::vector< std::vector
< OutputType > > & 
get_multi_output_types () const
 This function returns multi_output_types of a derived equation class. More...
 
const std::string & get_equation_name () const
 This function returns equation_name of a derived equation class. More...
 
const std::vector< unsigned int > & get_matrix_block_indices () const
 This function returns matrix_block_indices of a derived equation class. More...
 
const std::vector< unsigned int > & get_residual_indices () const
 This function returns residual_indices of a derived equation class. More...
 

Protected Member Functions

Local CG FEM based assemblers - make_ functions
virtual void make_assemblers_generic_constant_data ()
 This function computes Local CG FEM based assemblers - constant data (generic). More...
 
virtual void make_assemblers_cell_constant_data (const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info)
 This function computes. More...
 
virtual void make_assemblers_cell_variable_data (const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 This function computes. More...
 
virtual void assemble_matrix_for_equation (FuelCell::ApplicationCore::MatrixVector &cell_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, const std::string &eq_name, const FEValuesBase< dim > &test_fe, const std::vector< std::vector< double > > &test_shape_functions, const double &sourceterm_factor)
 This function is specifically created for assembly of cell matrices for the following equations, viz. More...
 
- Protected Member Functions inherited from FuelCellShop::Equation::EquationBase< dim >
 EquationBase (FuelCell::SystemManagement &sys_management, boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > data=boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >())
 Constructor. More...
 
virtual ~EquationBase ()
 Destructor. More...
 
virtual void set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler &param)
 Set parameters using the parameter file, in order to run parametric/optimization studies. More...
 
virtual void make_assemblers_bdry_constant_data (const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info)
 
virtual void make_assemblers_bdry_variable_data (const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 
void select_cell_assemblers (const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 This routine is used to select the make_assembly routines that need to be called inside assemble_cell_matrix to compute. More...
 
virtual void make_internal_cell_couplings ()
 This function fills out internal_cell_couplings of a derived equation class. More...
 
virtual void make_internal_flux_couplings ()
 This function fills out internal_flux_couplings (DG FEM only) of a derived equation class. More...
 
virtual void make_component_materialID_value ()
 This function fills out component_materialID_value of a derived equation class. More...
 
virtual void make_component_boundaryID_value ()
 This function fills out component_boundaryID_value of a derived equation class. More...
 
virtual void make_boundary_types ()
 This function fills out boundary_types of a derived equation class. More...
 
virtual void make_multi_boundary_types ()
 This function fills out multi_boundary_types of a derived equation class. More...
 
virtual void make_output_types ()
 This function fills out output_types of a derived equation class. More...
 
virtual void make_multi_output_types ()
 This function fills out multi_output_types of a derived equation class. More...
 
virtual void make_matrix_block_indices ()
 This function is only needed to provide the last argument to dealII_to_appframe. More...
 
virtual void make_residual_indices ()
 This function is only needed to provide the last argument to dealII_to_appframe. More...
 
virtual void assemble_cell_Jacobian_matrix (FuelCell::ApplicationCore::MatrixVector &cell_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble the local Jacobian Matrix for Non-Linear problems. More...
 
virtual void assemble_bdry_Jacobian_matrix (FuelCell::ApplicationCore::MatrixVector &bdry_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local Jacobian boundary matrix for Non-Linear problems. More...
 
virtual void assemble_cell_linear_matrix (FuelCell::ApplicationCore::MatrixVector &cell_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble the local cell matrix for Linear problems. More...
 
virtual void assemble_cell_residual_rhs (FuelCell::ApplicationCore::FEVector &cell_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local cell RHS for nonlinear problems. More...
 
virtual void assemble_cell_linear_rhs (FuelCell::ApplicationCore::FEVector &cell_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local cell RHS for Linear problems. More...
 
virtual void assemble_bdry_linear_matrix (FuelCell::ApplicationCore::MatrixVector &bdry_matrices, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local boundary matrix for linear problems. More...
 
virtual void assemble_bdry_linear_rhs (FuelCell::ApplicationCore::FEVector &bdry_residual, const typename FuelCell::ApplicationCore::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer)
 Assemble local boundary RHS for linear problems. More...
 
void standard_to_block_wise (FullMatrix< double > &target) const
 This function changes the order of dealii::FullMatrix<double> target from standard to block-wise. More...
 
void standard_to_block_wise (Vector< double > &target) const
 This function changes the order of dealii::Vector<double> target from standard to block-wise. More...
 
void dealII_to_appframe (FuelCell::ApplicationCore::MatrixVector &dst, const FullMatrix< double > &src, const std::vector< unsigned int > &matrix_block_indices) const
 This function converts the standard ordered structure dealii::FullMatrix<double> src into the block-wise ordered structure FuelCell::ApplicationCore::MatrixVector dst. More...
 
void dealII_to_appframe (FuelCell::ApplicationCore::FEVector &dst, const Vector< double > &src, const std::vector< unsigned int > &residual_indices) const
 This function converts the standard ordered structure dealii::Vector<double> src into the block-wise ordered structure FuelCell::ApplicationCore::FEVector dst. More...
 
bool belongs_to_boundary (const unsigned int &tria_boundary_id, const unsigned int &param_boundary_id) const
 This function returns true if a boundary indicator of an external face on the triangulation coincides with a boundary indicator defined in the parameters file of a derived equation class. More...
 
void print_caller_name (const std::string &caller_name) const
 This function is used to print out the name of another function that has been declared in the scope of this class, but not yet been implemented. More...
 

Protected Attributes

bool cell_residual_counter
 Counter set to TRUE when cell_residual is being assembled. More...
 
unsigned int last_iter_cell
 Variable used to store the index in cell_info->global_data of the previous Newton solution The solution at the previous iteration is used to compute cell_matrix and cell_residual. More...
 
Boolean flags for Reaction heat source terms
bool flag_sorp_heat_cl
 This boolean data member indicates that the heat release/absorption, due to sorption/desorption inside the catalyst layers is ON or OFF. More...
 
Generic Constant Data
VariableInfo x_water
 VariableInfo structure corresponding to "water_molar_fraction". More...
 
VariableInfo lambda
 VariableInfo structure corresponding to "membrane_water_content". More...
 
VariableInfo t_rev
 VariableInfo structure corresponding to "temperature_of_REV". More...
 
double time_constant
 Time constant, $ k $ [1/s]. More...
 
Local CG FEM based assemblers - variable data (cell)
double rho_dry_cell
 Density [gm/cm^3] of the dry polymer electrolyte material in the cell. More...
 
double EW_cell
 Equivalent weight of the polymer electrolyte material in the cell. More...
 
std::vector< double > lambda_eq_cell
 $ \mathbf{\lambda_{eq}} $ from sorption isotherm, at all quadrature points in the cell. More...
 
std::vector< double > dlambdaEq_dxWater_cell
 Derivative of $ \mathbf{\lambda_{eq}} $ w.r.t "water_molar_fraction", at all quadrature points in the cell. More...
 
std::vector< double > dlambdaEq_dT_cell
 Derivative of $ \mathbf{\lambda_{eq}} $ w.r.t "temperature_of_REV", at all quadrature points in the cell. More...
 
std::vector< double > h_sorp_cell
 Enthalpy of sorption of water, $ \Delta h_{sorp} $ [J/mol], at all quadrature points in the cell. More...
 
std::vector< double > dhsorp_dT_cell
 Derivative of $ \Delta h_{sorp} $ w.r.t "temperature_of_REV", at all quadrature points in the cell. More...
 
std::vector< std::vector
< double > > 
phi_T_cell
 $ \mathbf{T} $ shape functions. More...
 
std::vector< std::vector
< double > > 
phi_lambda_cell
 $ \mathbf{\lambda} $ shape functions. More...
 
std::vector< std::vector
< double > > 
phi_xWater_cell
 $ \mathbf{x_{H_2O}} $ shape functions. More...
 
- Protected Attributes inherited from FuelCellShop::Equation::EquationBase< dim >
unsigned int dofs_per_cell
 Number of degrees of freedom per cell. More...
 
unsigned int n_q_points_cell
 Number of quadrature points per cell. More...
 
unsigned int n_q_points_bdry
 Number of quadrature points per boundary. More...
 
DoFHandler< dim >
::active_cell_iterator 
cell
 Currently active DoFHandler<dim> active cell iterator. More...
 
DoFHandler< dim >
::active_face_iterator 
bdry
 Currently active DoFHandler<dim> active boundary iterator. More...
 
std::vector< double > JxW_cell
 Jacobian of mapping by Weight in the quadrature points of a cell. More...
 
std::vector< double > JxW_bdry
 Jacobian of mapping by Weight in the quadrature points of a boundary. More...
 
std::vector< Point< dim > > normal_vectors
 Normal vectors in the quadrature points of a boundary. More...
 
std::vector< std::vector
< Point< dim > > > 
tangential_vectors
 Tangential vectors in the quadrature points of a boundary. More...
 
FuelCell::SystemManagementsystem_management
 Pointer to the external YourApplication<dim>::system_management object. More...
 
couplings_map internal_cell_couplings
 This object contains the info on how the equations and solution variables of a derived equation class are coupled. More...
 
couplings_map internal_flux_couplings
 This object contains the info on how the "X" and "Y" of a derived equation class are coupled (DG FEM only). More...
 
component_materialID_value_map component_materialID_value
 This object reflects the following structure (see FuelCell::InitialAndBoundaryData namespace docs): More...
 
component_boundaryID_value_map component_boundaryID_value
 This object reflects the following structure (see FuelCell::InitialAndBoundaryData namespace docs): More...
 
std::vector< BoundaryTypeboundary_types
 The list of boundary types of a derived equation class. More...
 
std::vector< std::vector
< BoundaryType > > 
multi_boundary_types
 The list of multiple boundary types of a derived equation class. More...
 
std::vector< OutputTypeoutput_types
 The list of output types of a derived equation class. More...
 
std::vector< std::vector
< OutputType > > 
multi_output_types
 The list of multiple output types of a derived equation class. More...
 
std::string equation_name
 The name of a derived equation class. More...
 
std::string name_base_variable
 Const std::string member storing name of the base solution variable corresponding to the equation represented by this class. More...
 
std::vector< unsigned int > matrix_block_indices
 The system matrix block indices (a derived equation class) drawn from the global structure (a derived equation class + other active equation classes included into the computation). More...
 
std::vector< unsigned int > residual_indices
 The residual indices (a derived equation class) drawn from the global structure (a derived equation class + other active equation classes included into the computation). More...
 
std::vector< bool > counter
 This vector contains the collection of internal "counters" used by the derived equation classes. More...
 
EquationFlags assemble_flags
 This vector contains a collection of internal flags to tell derived equation classes what needs to be re-computed. More...
 
boost::shared_ptr
< FuelCell::ApplicationCore::ApplicationData
data
 Data object for the application data to be passed to the equation classes. More...
 
std::string solution_vector_name
 The name of the solution vector in FEVectors. More...
 
std::string residual_vector_name
 The name of the residual vector name in FEVectors. More...
 

Additional Inherited Members

- Public Attributes inherited from FuelCellShop::Equation::EquationBase< dim >
bool variable_initial_data
 true, if variable initial data is prescribed on a part of the domain. More...
 
bool variable_boundary_data
 true, if variable Dirichlet boundary conditions are prescribed on a part of the boundary. More...
 

Detailed Description

template<int dim>
class FuelCellShop::Equation::SorptionSourceTerms< dim >

This class assembles source terms corresponding to sorption/desorption of water inside the catalyst layer.

Here, a vapor equilibriated membrane model is being used. Under steady state operation, $ x_{H_2O} $, water vapor (gas) is in equilibrium with $ \lambda $, (sorbed water). This coupling is provided by the following term:

$ S_{\lambda} = k \frac{\rho_{dry}}{EW} ( \lambda_{eq} - \lambda ) \quad \in \quad \Omega $

Remarks
  • This is technically not an Equation class. It is only used to assemble source terms in conjunction with other equation classes.
  • The coupling term is valid only for Membrane Water Content Transport Equation and Ficks Transport Equation - water, hence it is necessary to have both equations being solved for while using this class.
  • Besides this, it also has the provision for accounting for heat relase during the sorption/desorption process. This can be enabled by setting the flag to TRUE in the parameter file. It is necessary to have Thermal Transport Equation being solved for when the flag is set to TRUE, otherwise code will throw an error.
  • Enthalpy of sorption [J/mol] is retrieved from Material::Nafion class, and can be modified using the parameter file entries corresponding to Nafion class.
  • This class works with the following layer class only:
    • FuelCellShop::Layer::CatalystLayer<dim>
  • VERY IMPORTANT: If this class is being considered, it's very important to use adjust_internal_cell_couplings method of this class, before using make_cell_couplings of SystemManagement at the application level.

Usage details

* // Creating source terms object (in Application Header file)
*
* // Declare parameters in application
* sorption_source.declare_parameters(param);
*
* // Initialize in application
* sorption_source.initialize(param);
*
* // Create a temporary vector in the application for storing couplings_map from all the equation used in the application.
* std::vector<couplings_map> tmp;
*
* ... // get_internal_cell_couplings from all the equations
*
* sorption_source.adjust_internal_cell_couplings(tmp);
*
* // Making cell couplings using SystemManagement object created in the application
*
* // cell_matrix in application
* // Do a check against layer and it should match with the layers currently working for this equation class.
* // for eg: CCL is FuelCellShop::Layer::HomogeneousCL<dim> object.
* sorption_source.assemble_cell_matrix(cell_matrices, cell_info, &CCL);
*
* // cell_residual in application
* sorption_source.assemble_cell_residual(cell_vector, cell_info, &CCL);
*
Author
Madhur Bhaiya, 2013

Constructor & Destructor Documentation

Constructor.

template<int dim>
virtual FuelCellShop::Equation::SorptionSourceTerms< dim >::~SorptionSourceTerms ( )
virtual

Destructor.

Member Function Documentation

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::adjust_internal_cell_couplings ( std::vector< couplings_map > &  ) const
virtual

This function is used to adjust std::vector < internal_cell_couplings >, which is generated after getting internal_cell_couplings from all the equations being used in the application.

Note
It's very important to use this function, if we are considering source terms due to water sorption/desorption in the catalyst layers. It's also noteworthy that this function should be used after whole vector of internal_cell_couplings is created, and BEFORE make_cell_couplings of SystemManagement is called.
template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::assemble_cell_matrix ( FuelCell::ApplicationCore::MatrixVector cell_matrices,
const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &  cell_info,
FuelCellShop::Layer::BaseLayer< dim > *const  layer 
)
virtual

Assemble local cell matrix.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::assemble_cell_residual ( FuelCell::ApplicationCore::FEVector cell_residual,
const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &  cell_info,
FuelCellShop::Layer::BaseLayer< dim > *const  layer 
)
virtual

Assemble local cell residual.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::assemble_matrix_for_equation ( FuelCell::ApplicationCore::MatrixVector cell_matrices,
const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &  cell_info,
const std::string &  eq_name,
const FEValuesBase< dim > &  test_fe,
const std::vector< std::vector< double > > &  test_shape_functions,
const double &  sourceterm_factor 
)
protectedvirtual

This function is specifically created for assembly of cell matrices for the following equations, viz.

  • "Ficks Transport Equation - water"
  • "Membrane Water Content Transport Equation"
  • "Thermal Transport Equation

Cell matrix terms for the abovementioned equations follow a similar pattern, using different factors; hence this function avoids using repeated lines of code for each of these equations in assemble_cell_matrix method. The argument list is defined as follows:

  • first corresponds to FuelCell::ApplicationCore::MatrixVector which we need to fill.
  • second corresponds to typename FuelCell::ApplicationCore::DoFApplication<dim>::CellInfo object; used to access fe elements for variables other than test function.
  • second corresponds to std::string for the name of the equation for which we are doing the assembly. It should match with names mentioned above.
  • third corresponds to FEValuesBase (fe discretization) used for the test function i.e. equation for which assembly is being done.
  • fourth corresponds to shape functions for the test function, filled already by make_assemblers_cell_variable_data.
  • fifth corresponds to the factor used to multiply with the source term $~ \mathbf{\delta} \left( \frac{k \rho_{dry}}{EW} ( \lambda_{eq} - \lambda ) \right) $ for Membrane Water Content Transport Equation and Ficks Transport Equation - water.
Warning
For the DEVELOPERS: This function should only be used after make_assemblers_cell_variable_data has been called in assemble_cell_matrix, otherwise it is bound to give wrong results.
template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::declare_parameters ( ParameterHandler &  param) const
virtual

Declare parameters.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
bool FuelCellShop::Equation::SorptionSourceTerms< dim >::get_flag_sorp_heat_cl ( ) const
inline

Method to get whether the heat release/absorption due to sorption/desorption, inside the catalyst layers is ON or OFF (flag_sorp_heat_cl).

The typical use of this method is for the post-processing routines in the application.

References FuelCellShop::Equation::SorptionSourceTerms< dim >::flag_sorp_heat_cl.

template<int dim>
double FuelCellShop::Equation::SorptionSourceTerms< dim >::get_time_constant ( ) const
inline
template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::initialize ( ParameterHandler &  param)
virtual

Initialize parameters.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::make_assemblers_cell_constant_data ( const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &  cell_info)
protectedvirtual

This function computes.

Local CG FEM based assemblers - constant data (cell)

and allocates the memory for shape functions, shape function gradients, and JxW_cell in

Local CG FEM based assemblers - variable data (cell)

.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::make_assemblers_cell_variable_data ( const typename FuelCell::ApplicationCore::DoFApplication< dim >::CellInfo &  cell_info,
FuelCellShop::Layer::BaseLayer< dim > *const  layer 
)
protectedvirtual

This function computes.

Local CG FEM based assemblers - variable data (cell)

.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::make_assemblers_generic_constant_data ( )
protectedvirtual

This function computes Local CG FEM based assemblers - constant data (generic).

Warning
For the DEVELOPERS: block_index for VariableInfo are not filled here, but indices_exist flag is set to TRUE (as it is needed at other places before cell_matrix or cell_residual assembly). Developers need to be wary of this fact that the block_indices are still not filled yet, and they need to fill them before doing cell_matrix assembly.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

template<int dim>
virtual void FuelCellShop::Equation::SorptionSourceTerms< dim >::print_equation_info ( ) const
virtual

This function prints out the info for this class.

Reimplemented from FuelCellShop::Equation::EquationBase< dim >.

Member Data Documentation

template<int dim>
bool FuelCellShop::Equation::SorptionSourceTerms< dim >::cell_residual_counter
protected

Counter set to TRUE when cell_residual is being assembled.

This ensures that derivatives of source terms are computed only when cell_matrix is being assembled, in make_assemblers_cell_variable_data.

template<int dim>
std::vector<double> FuelCellShop::Equation::SorptionSourceTerms< dim >::dhsorp_dT_cell
protected

Derivative of $ \Delta h_{sorp} $ w.r.t "temperature_of_REV", at all quadrature points in the cell.

template<int dim>
std::vector<double> FuelCellShop::Equation::SorptionSourceTerms< dim >::dlambdaEq_dT_cell
protected

Derivative of $ \mathbf{\lambda_{eq}} $ w.r.t "temperature_of_REV", at all quadrature points in the cell.

template<int dim>
std::vector<double> FuelCellShop::Equation::SorptionSourceTerms< dim >::dlambdaEq_dxWater_cell
protected

Derivative of $ \mathbf{\lambda_{eq}} $ w.r.t "water_molar_fraction", at all quadrature points in the cell.

template<int dim>
double FuelCellShop::Equation::SorptionSourceTerms< dim >::EW_cell
protected

Equivalent weight of the polymer electrolyte material in the cell.

template<int dim>
bool FuelCellShop::Equation::SorptionSourceTerms< dim >::flag_sorp_heat_cl
protected

This boolean data member indicates that the heat release/absorption, due to sorption/desorption inside the catalyst layers is ON or OFF.

Referenced by FuelCellShop::Equation::SorptionSourceTerms< dim >::get_flag_sorp_heat_cl().

template<int dim>
std::vector<double> FuelCellShop::Equation::SorptionSourceTerms< dim >::h_sorp_cell
protected

Enthalpy of sorption of water, $ \Delta h_{sorp} $ [J/mol], at all quadrature points in the cell.

template<int dim>
VariableInfo FuelCellShop::Equation::SorptionSourceTerms< dim >::lambda
protected

VariableInfo structure corresponding to "membrane_water_content".

template<int dim>
std::vector<double> FuelCellShop::Equation::SorptionSourceTerms< dim >::lambda_eq_cell
protected

$ \mathbf{\lambda_{eq}} $ from sorption isotherm, at all quadrature points in the cell.

template<int dim>
unsigned int FuelCellShop::Equation::SorptionSourceTerms< dim >::last_iter_cell
protected

Variable used to store the index in cell_info->global_data of the previous Newton solution The solution at the previous iteration is used to compute cell_matrix and cell_residual.

template<int dim>
std::vector< std::vector<double> > FuelCellShop::Equation::SorptionSourceTerms< dim >::phi_lambda_cell
protected

$ \mathbf{\lambda} $ shape functions.

phi_lambda_cell [ q ] [ k ] denotes $ k $-th $ \mathbf{\lambda} $ shape function computed in $ q $-th quadrature point of the cell.

template<int dim>
std::vector< std::vector<double> > FuelCellShop::Equation::SorptionSourceTerms< dim >::phi_T_cell
protected

$ \mathbf{T} $ shape functions.

phi_T_cell [ q ] [ k ] denotes $ k $-th $ \mathbf{T} $ shape function computed in $ q $-th quadrature point of the cell.

template<int dim>
std::vector< std::vector<double> > FuelCellShop::Equation::SorptionSourceTerms< dim >::phi_xWater_cell
protected

$ \mathbf{x_{H_2O}} $ shape functions.

phi_xWater_cell [ q ] [ k ] denotes $ k $-th $ \mathbf{x_{H_2O}} $ shape function computed in $ q $-th quadrature point of the cell.

template<int dim>
double FuelCellShop::Equation::SorptionSourceTerms< dim >::rho_dry_cell
protected

Density [gm/cm^3] of the dry polymer electrolyte material in the cell.

template<int dim>
VariableInfo FuelCellShop::Equation::SorptionSourceTerms< dim >::t_rev
protected

VariableInfo structure corresponding to "temperature_of_REV".

template<int dim>
double FuelCellShop::Equation::SorptionSourceTerms< dim >::time_constant
protected
template<int dim>
VariableInfo FuelCellShop::Equation::SorptionSourceTerms< dim >::x_water
protected

VariableInfo structure corresponding to "water_molar_fraction".


The documentation for this class was generated from the following file: