OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Functions
FuelCell::InitialAndBoundaryData Namespace Reference

Classes

class  InitialOrBoundaryDataBase
 This class is a means to make variable initial or boundary data. More...
 
class  InitialDataAppIncompressibleFlows
 This class is a means to make variable initial data. More...
 
class  ExactSolutionAppIncompressibleFlows
 This class is a means to make the exact solution (if available). More...
 

Functions

template<typename COMPONENT_xxxID_VALUE_MAP >
const bool check (const std::vector< COMPONENT_xxxID_VALUE_MAP > &maps)
 This function does some checkings on its argument maps. More...
 
template<typename VECTOR , typename DH >
void make_piece_wise_constant_initial_data (VECTOR &dst, const Mapping< DH::dimension, DH::space_dimension > &mapping, const DH &dof, const FuelCell::SystemManagement &system_management, const std::vector< component_materialID_value_map > &maps)
 This function makes piece wise constant initial data. More...
 
template<typename DH >
void make_constant_DirichletBC_values (std::map< unsigned int, double > &dst, const Mapping< DH::dimension, DH::space_dimension > &mapping, const DH &dof, const FuelCell::SystemManagement &system_management, const std::vector< component_boundaryID_value_map > &maps)
 
template<typename VECTOR , typename DH >
void apply_piece_wise_constant_DirichletBCs (VECTOR &dst, const Mapping< DH::dimension, DH::space_dimension > &mapping, const DH &dof, const FuelCell::SystemManagement &system_management, const std::vector< component_boundaryID_value_map > &maps)
 This function applies piece wise constant Dirichlet BCs. More...
 
template<typename DH >
void make_zero_boundary_values (std::map< unsigned int, double > &dst, const Mapping< DH::dimension, DH::space_dimension > &mapping, const DH &dof, const FuelCell::SystemManagement &system_management, const std::vector< component_boundaryID_value_map > &maps)
 This function makes zero boundary values. More...
 
template<typename MATRIX , typename VECTOR , typename DH >
void apply_zero_boundary_values_to_linear_system (MATRIX &matrix, VECTOR &solution, VECTOR &rhs, const Mapping< DH::dimension, DH::space_dimension > &mapping, const DH &dof, const FuelCell::SystemManagement &system_management, const std::vector< component_boundaryID_value_map > &maps, const bool &repair_diagonal=false)
 This function applies zero boundary values to the linear system of equations. More...
 

Function Documentation

template<typename VECTOR , typename DH >
void FuelCell::InitialAndBoundaryData::apply_piece_wise_constant_DirichletBCs ( VECTOR &  dst,
const Mapping< DH::dimension, DH::space_dimension > &  mapping,
const DH &  dof,
const FuelCell::SystemManagement system_management,
const std::vector< component_boundaryID_value_map > &  maps 
)

This function applies piece wise constant Dirichlet BCs.

Parameters
dst: Solution vector of size DOF. This is usually an FEVector.
mapping: This parameter contains the geometrical map. It is stored in DoFApplication under *this->mapping
dof,:DoFHandler object. It is stored in DoFApplication under *this->dof
system_management,:This object stores the solution variable names and number as well as equation couplings. It should be in your application.
maps,:This object is a vector of component_materialID_value_map. The component_materialID_value_map object is generated in the linear applications and should be initialized with the EquationBase objects using a statement as follows:
* component_boundaryID_value_map.push_back( ficks_transport_equation.get_component_boundaryID_value() );
* component_boundaryID_value_map.push_back( electron_transport_equation.get_component_boundaryID_value() );
* component_boundaryID_value_map.push_back( proton_transport_equation.get_component_boundaryID_value() );
*
where electron_transport_equation is an object of FuelCellShop::Equation::ElectronTransportEquation for example.

References _IS_NOT_CONSTANT_, FuelCell::SystemManagement::get_number_of_solution_names(), and FuelCell::SystemManagement::solution_name_to_index().

Here is the call graph for this function:

template<typename MATRIX , typename VECTOR , typename DH >
void FuelCell::InitialAndBoundaryData::apply_zero_boundary_values_to_linear_system ( MATRIX &  matrix,
VECTOR &  solution,
VECTOR &  rhs,
const Mapping< DH::dimension, DH::space_dimension > &  mapping,
const DH &  dof,
const FuelCell::SystemManagement system_management,
const std::vector< component_boundaryID_value_map > &  maps,
const bool &  repair_diagonal = false 
)

This function applies zero boundary values to the linear system of equations.

Warning
The function name does not accurately describe the function The function is no longer used anywhere. Suggest deprecation

References SolverUtils::repair_diagonal().

Here is the call graph for this function:

template<typename COMPONENT_xxxID_VALUE_MAP >
const bool FuelCell::InitialAndBoundaryData::check ( const std::vector< COMPONENT_xxxID_VALUE_MAP > &  maps)

This function does some checkings on its argument maps.

References FcstUtilities::log.

template<typename DH >
void FuelCell::InitialAndBoundaryData::make_constant_DirichletBC_values ( std::map< unsigned int, double > &  dst,
const Mapping< DH::dimension, DH::space_dimension > &  mapping,
const DH &  dof,
const FuelCell::SystemManagement system_management,
const std::vector< component_boundaryID_value_map > &  maps 
)
Author
: Mayank Sabharwal This function makes piece wise constant Dirichlet BCs. It is currently not being used in any appplication but has been templated based on the above functions.
Parameters
dst: Solution vector of size DOF. This is usually an FEVector.
mapping: This parameter contains the geometrical map. It is stored in DoFApplication under *this->mapping
dof,:DoFHandler object. It is stored in DoFApplication under *this->dof
system_management,:This object stores the solution variable names and number as well as equation couplings. It should be in your application.
maps,:This object is a vector of component_materialID_value_map. The component_materialID_value_map object is generated in the linear applications and should be initialized with the EquationBase objects using a statement as follows:

References FuelCell::SystemManagement::get_number_of_solution_names(), and FuelCell::SystemManagement::solution_name_to_index().

Here is the call graph for this function:

template<typename VECTOR , typename DH >
void FuelCell::InitialAndBoundaryData::make_piece_wise_constant_initial_data ( VECTOR &  dst,
const Mapping< DH::dimension, DH::space_dimension > &  mapping,
const DH &  dof,
const FuelCell::SystemManagement system_management,
const std::vector< component_materialID_value_map > &  maps 
)

This function makes piece wise constant initial data.

Parameters
dst: Solution vector of size DOF. This is usually an FEVector.
mapping: This parameter contains the geometrical map. It is stored in DoFApplication under *this->mapping
dof,:DoFHandler object. It is stored in DoFApplication under *this->dof
system_management,:This object stores the solution variable names and number as well as equation couplings. It should be in your application.
maps,:This object is a vector of component_materialID_value_map. The component_materialID_value_map object is generated in the linear applications and should be initialized with the EquationBase objects using a statement as follows:
* component_materialID_value_maps.push_back( ficks_transport_equation.get_component_materialID_value() );
* component_materialID_value_maps.push_back( electron_transport_equation.get_component_materialID_value() );
* component_materialID_value_maps.push_back( proton_transport_equation.get_component_materialID_value() );
*
where electron_transport_equation is an object of FuelCellShop::Equation::ElectronTransportEquation for example.

References _IS_NOT_CONSTANT_, FuelCell::SystemManagement::get_number_of_solution_names(), and FuelCell::SystemManagement::solution_name_to_index().

Here is the call graph for this function:

template<typename DH >
void FuelCell::InitialAndBoundaryData::make_zero_boundary_values ( std::map< unsigned int, double > &  dst,
const Mapping< DH::dimension, DH::space_dimension > &  mapping,
const DH &  dof,
const FuelCell::SystemManagement system_management,
const std::vector< component_boundaryID_value_map > &  maps 
)

This function makes zero boundary values.

References FuelCell::SystemManagement::get_number_of_solution_names(), and FuelCell::SystemManagement::solution_name_to_index().

Here is the call graph for this function: