OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This class contains generic data and methods heavily used by all derived equation classes. More...
#include <equation_base.h>
Public Member Functions | |
Local CG FEM based assemblers | |
virtual void | assemble_cell_matrix (AppFrame::MatrixVector &cell_matrices, const typename AppFrame::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer) |
Assemble local cell matrix. | |
virtual void | assemble_cell_residual (AppFrame::FEVector &cell_residual, const typename AppFrame::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer) |
Assemble local cell residual. | |
virtual void | assemble_bdry_matrix (AppFrame::MatrixVector &bdry_matrices, const typename AppFrame::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer) |
Assemble local boundary matrix. | |
virtual void | assemble_bdry_residual (AppFrame::FEVector &bdry_residual, const typename AppFrame::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer) |
Assemble local boundary residual. | |
Accessors and info | |
const couplings_map & | get_internal_cell_couplings () const |
This function returns internal_cell_couplings of a derived equation class. | |
const couplings_map & | get_internal_flux_couplings () const |
This function returns internal_flux_couplings (DG FEM only) of a derived equation class. | |
const component_materialID_value_map & | get_component_materialID_value () const |
This function returns component_materialID_value of a derived equation class. | |
const component_boundaryID_value_map & | get_component_boundaryID_value () const |
This function returns component_boundaryID_value of a derived equation class. | |
const std::vector< BoundaryType > & | get_boundary_types () const |
This function returns boundary_types of a derived equation class. | |
const std::vector< std::vector < BoundaryType > > & | get_multi_boundary_types () const |
This function returns multi_boundary_types of a derived equation class. | |
const std::vector< OutputType > & | get_output_types () const |
This function returns output_types of a derived equation class. | |
const std::vector< std::vector < OutputType > > & | get_multi_output_types () const |
This function returns multi_output_types of a derived equation class. | |
const std::string & | get_equation_name () const |
This function returns equation_name of a derived equation class. | |
const std::vector< unsigned int > & | get_matrix_block_indices () const |
This function returns matrix_block_indices of a derived equation class. | |
const std::vector< unsigned int > & | get_residual_indices () const |
This function returns residual_indices of a derived equation class. | |
virtual void | print_equation_info () const |
This function prints out the equations info of a derived equation class. | |
Protected Member Functions | |
Constructors, destructor, and initialization | |
EquationBase (FuelCell::SystemManagement &system_management) | |
Constructor. | |
virtual | ~EquationBase () |
Destructor. | |
virtual void | declare_parameters (ParameterHandler ¶m) const |
Declare parameters. | |
virtual void | initialize (ParameterHandler ¶m) |
Initialize parameters. | |
Local CG FEM based assemblers - make_ functions | |
virtual void | make_assemblers_generic_constant_data () |
This function is overridden in the derived equation classes. | |
virtual void | make_assemblers_cell_constant_data (const typename AppFrame::DoFApplication< dim >::CellInfo &cell_info) |
This function is overridden in the derived equation classes. | |
virtual void | make_assemblers_bdry_constant_data (const typename AppFrame::DoFApplication< dim >::FaceInfo &bdry_info) |
This function is overridden in the derived equation classes. | |
virtual void | make_assemblers_cell_variable_data (const typename AppFrame::DoFApplication< dim >::CellInfo &cell_info, FuelCellShop::Layer::BaseLayer< dim > *const layer) |
This function is overridden in the derived equation classes. | |
virtual void | make_assemblers_bdry_variable_data (const typename AppFrame::DoFApplication< dim >::FaceInfo &bdry_info, FuelCellShop::Layer::BaseLayer< dim > *const layer) |
This function is overridden in the derived equation classes. | |
Other - make_ functions | |
virtual void | make_internal_cell_couplings () |
This function fills out internal_cell_couplings of a derived equation class. | |
virtual void | make_internal_flux_couplings () |
This function fills out internal_flux_couplings (DG FEM only) of a derived equation class. | |
virtual void | make_component_materialID_value () |
This function fills out component_materialID_value of a derived equation class. | |
virtual void | make_component_boundaryID_value () |
This function fills out component_boundaryID_value of a derived equation class. | |
virtual void | make_boundary_types () |
This function fills out boundary_types of a derived equation class. | |
virtual void | make_multi_boundary_types () |
This function fills out multi_boundary_types of a derived equation class. | |
virtual void | make_output_types () |
This function fills out output_types of a derived equation class. | |
virtual void | make_multi_output_types () |
This function fills out multi_output_types of a derived equation class. | |
virtual void | make_matrix_block_indices () |
This function fills out matrix_block_indices of a derived equation class. | |
virtual void | make_residual_indices () |
This function fills out residual_indices of a derived equation class. | |
Converters | |
void | standard_to_block_wise (FullMatrix< double > &target) const |
This function changes the order of dealii::FullMatrix<double> target from standard to block-wise. | |
void | standard_to_block_wise (Vector< double > &target) const |
This function changes the order of dealii::Vector<double> target from standard to block-wise. | |
void | dealII_to_appframe (AppFrame::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 AppFrame::MatrixVector dst . | |
void | dealII_to_appframe (AppFrame::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 AppFrame::FEVector dst . | |
Other functions | |
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. | |
Minor functions | |
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. | |
Protected Attributes | |
Local CG FEM based assemblers - constant data (generic) | |
unsigned int | dofs_per_cell |
Number of degrees of freedom per cell. | |
Local CG FEM based assemblers - constant data (cell) | |
unsigned int | n_q_points_cell |
Number of quadrature points per cell. | |
Local CG FEM based assemblers - constant data (boundary) | |
unsigned int | n_q_points_bdry |
Number of quadrature points per boundary. | |
Local CG FEM based assemblers - variable data (active mesh iterators) | |
DoFHandler< dim > ::active_cell_iterator | cell |
Currently active DoFHandler<dim> active cell iterator. | |
DoFHandler< dim > ::active_face_iterator | bdry |
Currently active DoFHandler<dim> active boundary iterator. | |
Local CG FEM based assemblers - variable data (other - cell) | |
Implementation is in the derived equation classes. | |
std::vector< double > | JxW_cell |
Jacobian of mapping by Weight in the quadrature points of a cell. | |
Local CG FEM based assemblers - variable data (other - boundary) | |
Implementation is in the derived equation classes. | |
std::vector< double > | JxW_bdry |
Jacobian of mapping by Weight in the quadrature points of a boundary. | |
std::vector< Point< dim > > | normal_vectors |
Normal vectors in the quadrature points of a boundary. | |
std::vector< std::vector < Point< dim > > > | tangential_vectors |
Tangential vectors in the quadrature points of a boundary. | |
GENERIC DATA | |
FuelCell::SystemManagement * | system_management |
Pointer to the external YourApplication<dim>::system_management object. | |
couplings_map | internal_cell_couplings |
This object contains the info on how the equations and solution variables of a derived equation class are coupled. | |
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). | |
component_materialID_value_map | component_materialID_value |
This object reflects the following structure (see FuelCell::InitialAndBoundaryData namespace docs): | |
component_boundaryID_value_map | component_boundaryID_value |
This object reflects the following structure (see FuelCell::InitialAndBoundaryData namespace docs): | |
std::vector< BoundaryType > | boundary_types |
The list of boundary types of a derived equation class. | |
std::vector< std::vector < BoundaryType > > | multi_boundary_types |
The list of multiple boundary types of a derived equation class. | |
std::vector< OutputType > | output_types |
The list of output types of a derived equation class. | |
std::vector< std::vector < OutputType > > | multi_output_types |
The list of multiple output types of a derived equation class. | |
std::string | equation_name |
The name of a derived equation class. | |
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). | |
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). | |
std::vector< bool > | counter |
This vector contains the collection of internal "counters" used by the derived equation classes. | |
This class contains generic data and methods heavily used by all derived equation classes.
This class is used to lock the interface of all derived equation classes under the FuelCellShop::Equation namespace.
The functionality of this class can be extended if needed.
|
protected |
Constructor.
|
protectedvirtual |
Destructor.
|
inlinevirtual |
Assemble local boundary matrix.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, and FuelCellShop::Equation::FicksTransportEquation< dim >.
|
inlinevirtual |
Assemble local boundary residual.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, and FuelCellShop::Equation::FicksTransportEquation< dim >.
|
inlinevirtual |
Assemble local cell matrix.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, FuelCellShop::Equation::FicksTransportEquation< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inlinevirtual |
Assemble local cell residual.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, FuelCellShop::Equation::FicksTransportEquation< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inlineprotected |
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.
|
protected |
This function converts the standard ordered structure dealii::FullMatrix<double> src
into the block-wise ordered structure AppFrame::MatrixVector dst
.
matrix_block_indices
is 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).
|
protected |
This function converts the standard ordered structure dealii::Vector<double> src
into the block-wise ordered structure AppFrame::FEVector dst
.
residual_indices
is the residual indices (a derived equation class) drawn from the global structure (a derived equation class + other active equation classes included into the computation).
|
inlineprotectedvirtual |
Declare parameters.
Reimplemented in FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inline |
This function returns boundary_types
of a derived equation class.
|
inline |
This function returns component_boundaryID_value
of a derived equation class.
|
inline |
This function returns component_materialID_value
of a derived equation class.
|
inline |
This function returns equation_name
of a derived equation class.
|
inline |
This function returns internal_cell_couplings
of a derived equation class.
|
inline |
This function returns internal_flux_couplings
(DG FEM only) of a derived equation class.
|
inline |
This function returns matrix_block_indices
of a derived equation class.
|
inline |
This function returns multi_boundary_types
of a derived equation class.
|
inline |
This function returns multi_output_types
of a derived equation class.
|
inline |
This function returns output_types
of a derived equation class.
|
inline |
This function returns residual_indices
of a derived equation class.
|
inlineprotectedvirtual |
Initialize parameters.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, FuelCellShop::Equation::FicksTransportEquation< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inlineprotectedvirtual |
This function is overridden in the derived equation classes.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, and FuelCellShop::Equation::LambdaTransportEquation< dim >.
|
inlineprotectedvirtual |
This function is overridden in the derived equation classes.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, and FuelCellShop::Equation::LambdaTransportEquation< dim >.
|
inlineprotectedvirtual |
This function is overridden in the derived equation classes.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inlineprotectedvirtual |
This function is overridden in the derived equation classes.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inlineprotectedvirtual |
This function is overridden in the derived equation classes.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
inlineprotectedvirtual |
This function fills out boundary_types
of a derived equation class.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, and FuelCellShop::Equation::LambdaTransportEquation< dim >.
|
inlineprotectedvirtual |
This function fills out component_boundaryID_value
of a derived equation class.
|
inlineprotectedvirtual |
This function fills out component_materialID_value
of a derived equation class.
|
inlineprotectedvirtual |
This function fills out internal_cell_couplings
of a derived equation class.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, and FuelCellShop::Equation::FicksTransportEquation< dim >.
|
inlineprotectedvirtual |
This function fills out internal_flux_couplings
(DG FEM only) of a derived equation class.
|
inlineprotectedvirtual |
This function fills out matrix_block_indices
of a derived equation class.
|
inlineprotectedvirtual |
This function fills out multi_boundary_types
of a derived equation class.
|
inlineprotectedvirtual |
This function fills out multi_output_types
of a derived equation class.
|
inlineprotectedvirtual |
This function fills out output_types
of a derived equation class.
Reimplemented in FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, and FuelCellShop::Equation::LambdaTransportEquation< dim >.
|
inlineprotectedvirtual |
This function fills out residual_indices
of a derived equation class.
|
protected |
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.
|
inlinevirtual |
This function prints out the equations info of a derived equation class.
Reimplemented in FuelCellShop::Equation::NewFicksTransportEquation< dim >, FuelCellShop::Equation::ElectronTransportEquation< dim >, FuelCellShop::Equation::ProtonTransportEquation< dim >, FuelCellShop::Equation::LambdaTransportEquation< dim >, FuelCellShop::Equation::SorptionSourceTerms< dim >, FuelCellShop::Equation::FicksTransportEquation< dim >, and FuelCellShop::Equation::ReactionSourceTerms< dim >.
|
protected |
This function changes the order of dealii::FullMatrix<double> target
from standard to block-wise.
|
protected |
This function changes the order of dealii::Vector<double> target
from standard to block-wise.
|
protected |
Currently active DoFHandler<dim> active boundary iterator.
|
protected |
The list of boundary types of a derived equation class.
|
protected |
Currently active DoFHandler<dim> active cell iterator.
|
protected |
This object reflects the following structure (see FuelCell::InitialAndBoundaryData namespace docs):
first
argument
: name of the solution component,second
argument
: boundary id,third
argument
: value of the solution component.
|
protected |
This object reflects the following structure (see FuelCell::InitialAndBoundaryData namespace docs):
first
argument
: name of the solution component,second
argument
: material id,third
argument
: value of the solution component.
|
protected |
This vector contains the collection of internal "counters" used by the derived equation classes.
|
protected |
Number of degrees of freedom per cell.
|
protected |
The name of a derived equation class.
Referenced by FuelCellShop::Equation::NewFicksTransportEquation< dim >::set_solute_and_solvent().
|
protected |
This object contains the info on how the equations and solution variables of a derived equation class are coupled.
|
protected |
This object contains the info on how the "X" and "Y" of a derived equation class are coupled (DG FEM only).
|
protected |
Jacobian of mapping by Weight in the quadrature points of a boundary.
|
protected |
Jacobian of mapping by Weight in the quadrature points of a cell.
|
protected |
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).
|
protected |
The list of multiple boundary types of a derived equation class.
|
protected |
The list of multiple output types of a derived equation class.
|
protected |
Number of quadrature points per boundary.
|
protected |
Number of quadrature points per cell.
|
protected |
Normal vectors in the quadrature points of a boundary.
|
protected |
The list of output types of a derived equation class.
|
protected |
The residual indices (a derived equation class) drawn from the global structure (a derived equation class + other active equation classes included into the computation).
|
protected |
Pointer to the external YourApplication<dim>::system_management object.
|
protected |
Tangential vectors in the quadrature points of a boundary.