OpenFCST: The open-source Fuel Cell Simulation Toolbox
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Classes | Namespaces | Macros | Typedefs | Functions
initial_and_boundary_data.h File Reference
#include <base/point.h>
#include <base/function.h>
#include <lac/vector.h>
#include <lac/block_vector.h>
#include <lac/block_sparse_matrix.h>
#include <dofs/function_map.h>
#include <fe/mapping_q1.h>
#include <fe/mapping_q.h>
#include <numerics/vector_tools.h>
#include <numerics/matrix_tools.h>
#include "application_data.h"
#include "system_management.h"
#include "solver_utils.h"
Include dependency graph for initial_and_boundary_data.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  FuelCell::InitialAndBoundaryData::InitialOrBoundaryDataBase< dim >
 This class is a means to make variable initial or boundary data. More...
 

Namespaces

 FuelCell
 This namespace contains data and methods that handle initial and boundary data of a problem at hand.
 
 FuelCell::InitialAndBoundaryData
 

Macros

#define _IS_NOT_CONSTANT_   1.e300
 

Typedefs

typedef std::map< std::string,
std::map< types::material_id,
double > > 
component_materialID_value_map
 The typedef for the std::map that reflects the following structure: More...
 
typedef std::map< std::string,
std::map< types::boundary_id,
double > > 
component_boundaryID_value_map
 The typedef for the std::map that reflects the following structure: More...
 

Functions

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. More...
 
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. More...
 
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)
 
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. More...
 
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. More...
 
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. More...
 

Macro Definition Documentation

#define _IS_NOT_CONSTANT_   1.e300

Typedef Documentation

typedef std::map< std::string , std::map<types::boundary_id, double> > component_boundaryID_value_map

The typedef for the std::map that reflects the following structure:

  • first argument : name of the solution component,
  • second argument : boundary id,
  • third argument : value of the solution component.
typedef std::map< std::string , std::map<types::material_id, double> > component_materialID_value_map

The typedef for the std::map that reflects the following structure:

  • first argument : name of the solution component,
  • second argument : material id,
  • third argument : value of the solution component.

This map is usually used to initialize the solution of the problem. If you would like an initial solution that is different for each matrial id, you can specify this here. For example, imagine I want to specify for material_id 0, an oxygen molar fraction of 0.1 and for material_id 2, an oxygen molar fraction of 0.2. Then, I would write

* std::map<types::material_id, double> values;
* values[0] = 0.1;
* values[1] = 0.2;
* component_materialID_value_map['oxygen_molar_fraction'] = values;
*

In general, this object is initialized directly from the input file in the Equations section of the data file. For example, in the input file if I write:

* subsection Equations
* subsection Ficks Transport Equation - oxygen
* subsection Initial data
* set oxygen_molar_fraction = 0: 0.1, 1: 0.2
* end
* end
* end
*

This would be equivalent to the code above.