OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This class assembles source terms corresponding to sorption/desorption of water inside the catalyst layer. More...
#include <sorption_source_terms.h>
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 ¶m) const |
Declare parameters. More... | |
virtual void | initialize (ParameterHandler ¶m) |
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 [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_map & | get_internal_cell_couplings () const |
This function returns internal_cell_couplings of a derived equation class. More... | |
const couplings_map & | get_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 ¶m) |
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 ¶m_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, [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 |
from sorption isotherm, at all quadrature points in the cell. More... | |
std::vector< double > | dlambdaEq_dxWater_cell |
Derivative of w.r.t "water_molar_fraction" , at all quadrature points in the cell. More... | |
std::vector< double > | dlambdaEq_dT_cell |
Derivative of 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, [J/mol ], at all quadrature points in the cell. More... | |
std::vector< double > | dhsorp_dT_cell |
Derivative of w.r.t "temperature_of_REV" , at all quadrature points in the cell. More... | |
std::vector< std::vector < double > > | phi_T_cell |
shape functions. More... | |
std::vector< std::vector < double > > | phi_lambda_cell |
shape functions. More... | |
std::vector< std::vector < double > > | phi_xWater_cell |
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::SystemManagement * | system_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< BoundaryType > | boundary_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< OutputType > | output_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... | |
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, , water vapor (gas) is in equilibrium with , (sorbed water). This coupling is provided by the following term:
moles/
(cm^3-s
)].gm/cm^3
].1/s
]. Its value can be provided using the parameter file. It is recommended to use the default value, i.e. 10000.0, to guarantee effective coupling.error
.J/mol
] is retrieved from Material::Nafion class, and can be modified using the parameter file entries corresponding to Nafion class.make_cell_couplings
of SystemManagement at the application level.FuelCellShop::Equation::SorptionSourceTerms< dim >::SorptionSourceTerms | ( | FuelCell::SystemManagement & | system_management, |
boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData > | data = boost::shared_ptr< FuelCell::ApplicationCore::ApplicationData >() |
||
) |
Constructor.
|
virtual |
Destructor.
|
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.
internal_cell_couplings
is created, and BEFORE make_cell_couplings
of SystemManagement is called.
|
virtual |
Assemble local cell matrix.
Reimplemented from FuelCellShop::Equation::EquationBase< dim >.
|
virtual |
Assemble local cell residual.
Reimplemented from FuelCellShop::Equation::EquationBase< dim >.
|
protectedvirtual |
This function is specifically created for assembly of cell matrices for the following equations, viz.
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:
FuelCell::ApplicationCore::MatrixVector
which we need to fill.std::string
for the name of the equation for which we are doing the assembly. It should match with names mentioned above.FEValuesBase
(fe discretization) used for the test function i.e. equation for which assembly is being done.
|
virtual |
Declare parameters.
Reimplemented from FuelCellShop::Equation::EquationBase< dim >.
|
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.
|
inline |
Returns time constant [1/s
].
References FuelCellShop::Equation::SorptionSourceTerms< dim >::time_constant.
|
virtual |
Initialize parameters.
Reimplemented from FuelCellShop::Equation::EquationBase< dim >.
|
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 >.
|
protectedvirtual |
This function computes.
Local CG FEM based assemblers - variable data (cell)
.
Reimplemented from FuelCellShop::Equation::EquationBase< dim >.
|
protectedvirtual |
This function computes Local CG FEM based assemblers - constant data (generic).
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 >.
|
virtual |
This function prints out the info
for this class.
Reimplemented from FuelCellShop::Equation::EquationBase< dim >.
|
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.
|
protected |
Derivative of w.r.t "temperature_of_REV"
, at all quadrature points in the cell.
|
protected |
Derivative of w.r.t "temperature_of_REV"
, at all quadrature points in the cell.
|
protected |
Derivative of w.r.t "water_molar_fraction"
, at all quadrature points in the cell.
|
protected |
Equivalent weight of the polymer electrolyte material in the cell.
|
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().
|
protected |
Enthalpy of sorption of water, [J/mol
], at all quadrature points in the cell.
|
protected |
VariableInfo structure corresponding to "membrane_water_content"
.
|
protected |
from sorption isotherm, at all quadrature points in the 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.
|
protected |
shape functions.
phi_lambda_cell
[
q
]
[
k
] denotes -th shape function computed in -th quadrature point of the cell.
|
protected |
shape functions.
phi_T_cell
[
q
]
[
k
] denotes -th shape function computed in -th quadrature point of the cell.
|
protected |
shape functions.
phi_xWater_cell
[
q
]
[
k
] denotes -th shape function computed in -th quadrature point of the cell.
|
protected |
Density [gm/cm^3
] of the dry polymer electrolyte material in the cell.
|
protected |
VariableInfo structure corresponding to "temperature_of_REV"
.
|
protected |
Time constant, [1/s
].
Referenced by FuelCellShop::Equation::SorptionSourceTerms< dim >::get_time_constant().
|
protected |
VariableInfo structure corresponding to "water_molar_fraction"
.