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

This class describes a porous layer and stores pointers to. More...

#include <experimental_porous_layer.h>

Inheritance diagram for FuelCellShop::Layer::ExperimentalPorousLayer< dim >:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Layer::ExperimentalPorousLayer< dim >:
Collaboration graph
[legend]

Public Member Functions

Constructors, destructor, and initialization
 ExperimentalPorousLayer (const std::string &name)
 Constructor. More...
 
 ExperimentalPorousLayer (const std::string &name, FuelCellShop::Material::ExperimentalFluid &fluid, FuelCellShop::Material::ExperimentalSolid &solid)
 Constructor. More...
 
 ExperimentalPorousLayer (const std::string &name, FuelCellShop::Material::GasMixture &gas_mixture, FuelCellShop::Material::ExperimentalSolid &solid)
 Constructor. More...
 
virtual ~ExperimentalPorousLayer ()
 Destructor. More...
 
void initialize (FuelCellShop::Material::ExperimentalFluid &rfluid, FuelCellShop::Material::ExperimentalSolid &rsolid)
 Initialize. More...
 
void initialize (FuelCellShop::Material::GasMixture &rgas_mixture, FuelCellShop::Material::ExperimentalSolid &rsolid)
 Initialize. More...
 
void initialize (const bool &rporosity_is_constant, const bool &rpermeability_is_constant, const bool &rtortuosity_is_constant)
 Initialize. More...
 
virtual void declare_parameters (ParameterHandler &param) const
 Declare parameters. More...
 
virtual void initialize (ParameterHandler &param)
 Initialize parameters. More...
 
Accessors and info
const
FuelCellShop::Material::ExperimentalFluid
*const 
get_fluid () const
 This function returns fluid. More...
 
const
FuelCellShop::Material::GasMixture
*const 
get_gas_mixture () const
 This function returns gas_mixture. More...
 
const
FuelCellShop::Material::ExperimentalSolid
*const 
get_solid () const
 This function returns solid. More...
 
const bool & get_porosity_is_constant () const
 This function returns porosity_is_constant. More...
 
const bool & get_permeability_is_constant () const
 This function returns permeability_is_constant. More...
 
const bool & get_tortuosity_is_constant () const
 This function returns tortuosity_is_constant. More...
 
void get_porosity (std::vector< double > &dst) const
 This function computes constant porosity in quadrature points of a mesh entity. More...
 
void get_porosity (std::vector< double > &dst, const std::vector< Point< dim > > &points) const
 This function computes variable porosity in quadrature points of a mesh entity. More...
 
void get_permeability (std::vector< SymmetricTensor< 2, dim > > &dst) const
 This function computes constant permeability in quadrature points of a mesh entity. More...
 
void get_permeability (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const
 This function computes variable permeability in quadrature points of a mesh entity. More...
 
void get_SQRT_permeability (std::vector< SymmetricTensor< 2, dim > > &dst) const
 This function computes square root of constant permeability in quadrature points of a mesh entity. More...
 
void get_SQRT_permeability (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const
 This function computes square root of variable permeability in quadrature points of a mesh entity. More...
 
void get_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst) const
 This function computes inverse of constant permeability in quadrature points of a mesh entity. More...
 
void get_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const
 This function computes inverse of variable permeability in quadrature points of a mesh entity. More...
 
void get_SQRT_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst) const
 This function computes inverse of square root of constant permeability in quadrature points of a mesh entity. More...
 
void get_SQRT_permeability_INV (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const
 This function computes inverse of square root of variable permeability in quadrature points of a mesh entity. More...
 
void get_Forchheimer_permeability (std::vector< SymmetricTensor< 2, dim > > &dst) const
 This function computes constant Forchheimer permeability in quadrature points of a mesh entity. More...
 
void get_Forchheimer_permeability (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const
 This function computes variable Forchheimer permeability in quadrature points of a mesh entity. More...
 
void get_tortuosity (std::vector< SymmetricTensor< 2, dim > > &dst) const
 This function computes constant tortuosity in quadrature points of a mesh entity. More...
 
void get_tortuosity (std::vector< SymmetricTensor< 2, dim > > &dst, const std::vector< Point< dim > > &points) const
 This function computes variable tortuosity in quadrature points of a mesh entity. More...
 
const std::type_info & get_base_type () const
 This function returns typeid of this class. More...
 
virtual void print_layer_properties () const
 This function prints out the layer properties. More...
 
- Public Member Functions inherited from FuelCellShop::Layer::BaseLayer< dim >
virtual void set_derivative_flags (const std::vector< VariableNames > &flags)
 Set the variables for which you would like to compute the derivatives. More...
 
void set_position (const std::vector< Point< dim > > &p)
 Member function used by some applications such as dummyGDL in order to know which value to return. More...
 
virtual void set_local_material_id (const unsigned int &id)
 Function for setting local material id, for unit testing purposes. More...
 
void unset_local_material_id ()
 Function for unsetting local material id, so that it isn't incorrectly used later Once the key is "unset" to some invalid value, an error will be thrown if the key is requested again without being set. More...
 
virtual void set_constant_solution (const double &value, const VariableNames &name)
 Set those solution variables which are constant in the particular application. More...
 
virtual void set_solution (const std::vector< SolutionVariable > &)
 If the effective properties in the layer depend on the solution, the solution for a given cell should be passed to the class using this member function. More...
 
bool belongs_to_material (const unsigned int material_id)
 Check if a given cell belongs to the catalyst layer and assign. More...
 
const std::string & name_layer () const
 Return the name of the layer. More...
 
virtual bool test_layer ()
 This virtual class should be used for any derived class to be able to test the functionality of the class. More...
 
std::vector< unsigned int > get_material_ids ()
 Return the local material id of the layer. More...
 
unsigned int local_material_id () const
 Return the local material id of the layer, performs a check. More...
 

Protected Member Functions

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. More...
 
- Protected Member Functions inherited from FuelCellShop::Layer::BaseLayer< dim >
 BaseLayer ()
 Constructor. More...
 
 BaseLayer (const std::string &name)
 Constructor. More...
 
virtual ~BaseLayer ()
 Destructor. More...
 
virtual void declare_parameters (const std::string &object_name, ParameterHandler &param) const
 Declare parameters for a parameter file. More...
 
virtual void set_parameters (const std::string &object_name, const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler &param)
 Member function used to change the values in the parameter file for a given list of parameters. More...
 
virtual void set_parameters (const std::vector< std::string > &name_dvar, const std::vector< double > &value_dvar, ParameterHandler &param)
 Set parameters in parameter file. More...
 

Protected Attributes

Layer properties
FuelCellShop::Material::ExperimentalFluidfluid
 
FuelCellShop::Material::GasMixturegas_mixture
 Gas mixture. More...
 
FuelCellShop::Material::ExperimentalSolidsolid
 Solid. More...
 
bool porosity_is_constant
 Variable defining if the porosity is constant. More...
 
bool permeability_is_constant
 Variable defining if the permeability is constant. More...
 
bool tortuosity_is_constant
 Variable defining if the tortuosity is constant. More...
 
double porosity
 User defined constant porosity. More...
 
SymmetricTensor< 2, dimpermeability
 User defined constant permeability, m^2. More...
 
SymmetricTensor< 2, dimSQRT_permeability
 Square root of user defined constant permeability, m. More...
 
SymmetricTensor< 2, dimpermeability_INV
 Inverse of user defined constant permeability, 1/m^2. More...
 
SymmetricTensor< 2, dimSQRT_permeability_INV
 Inverse of square root of user defined constant permeability, 1/m. More...
 
SymmetricTensor< 2, dimForchheimer_permeability
 User defined constant Forchheimer permeability, 1/m. More...
 
SymmetricTensor< 2, dimtortuosity
 User defined constant tortuosity. More...
 
- Protected Attributes inherited from FuelCellShop::Layer::BaseLayer< dim >
const std::string name
 Name of the layer. More...
 
std::vector< unsigned int > material_ids
 List of material IDs that belong to the layer. More...
 
std::vector< Point< dim > > point
 Coordinates of the point where we would like to compute the effective properties. More...
 
std::vector< VariableNamesderivative_flags
 Flags for derivatives: These flags are used to request derivatives. More...
 
std::map< VariableNames, double > constant_solutions
 Map storing values of solution variables constant in a particular application. More...
 

Detailed Description

template<int dim>
class FuelCellShop::Layer::ExperimentalPorousLayer< dim >

This class describes a porous layer and stores pointers to.

This class is created to experiment with different forms and distributions of porosity, permeability, and tortuosity over porous layer.

Let us define either "porosity" or "permeability" or "tortuosity" as "X".

This class utilizes two different modes:

Note
The function get_X(std::vector<TYPE>& dst, const std::vector< Point<dim> >& points) must be implemented beforehand.

The functionality of this class can be extended if needed.

Author
Valentin N. Zingan, 2012

Constructor & Destructor Documentation

template<int dim>
FuelCellShop::Layer::ExperimentalPorousLayer< dim >::ExperimentalPorousLayer ( const std::string &  name)

Constructor.

Constructor.

Constructor.

template<int dim>
virtual FuelCellShop::Layer::ExperimentalPorousLayer< dim >::~ExperimentalPorousLayer ( )
virtual

Destructor.

Member Function Documentation

template<int dim>
virtual void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::declare_parameters ( ParameterHandler &  param) const
virtual

Declare parameters.

Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.

template<int dim>
const std::type_info& FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_base_type ( ) const
inlinevirtual

This function returns typeid of this class.

All classes derived from this class must share the same typeid for dynamic swapping.

Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.

template<int dim>
const FuelCellShop::Material::ExperimentalFluid* const FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_fluid ( ) const
inline

This function returns fluid.

References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::fluid.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_Forchheimer_permeability ( std::vector< SymmetricTensor< 2, dim > > &  dst) const

This function computes constant Forchheimer permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_Forchheimer_permeability ( std::vector< SymmetricTensor< 2, dim > > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes variable Forchheimer permeability in quadrature points of a mesh entity.

template<int dim>
const FuelCellShop::Material::GasMixture* const FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_gas_mixture ( ) const
inline

This function returns gas_mixture.

References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::gas_mixture.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_permeability ( std::vector< SymmetricTensor< 2, dim > > &  dst) const

This function computes constant permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_permeability ( std::vector< SymmetricTensor< 2, dim > > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes variable permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_permeability_INV ( std::vector< SymmetricTensor< 2, dim > > &  dst) const

This function computes inverse of constant permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_permeability_INV ( std::vector< SymmetricTensor< 2, dim > > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes inverse of variable permeability in quadrature points of a mesh entity.

template<int dim>
const bool& FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_permeability_is_constant ( ) const
inline

This function returns permeability_is_constant.

References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::permeability_is_constant.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_porosity ( std::vector< double > &  dst) const

This function computes constant porosity in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_porosity ( std::vector< double > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes variable porosity in quadrature points of a mesh entity.

template<int dim>
const bool& FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_porosity_is_constant ( ) const
inline

This function returns porosity_is_constant.

References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::porosity_is_constant.

template<int dim>
const FuelCellShop::Material::ExperimentalSolid* const FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_solid ( ) const
inline

This function returns solid.

References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::solid.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_SQRT_permeability ( std::vector< SymmetricTensor< 2, dim > > &  dst) const

This function computes square root of constant permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_SQRT_permeability ( std::vector< SymmetricTensor< 2, dim > > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes square root of variable permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_SQRT_permeability_INV ( std::vector< SymmetricTensor< 2, dim > > &  dst) const

This function computes inverse of square root of constant permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_SQRT_permeability_INV ( std::vector< SymmetricTensor< 2, dim > > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes inverse of square root of variable permeability in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_tortuosity ( std::vector< SymmetricTensor< 2, dim > > &  dst) const

This function computes constant tortuosity in quadrature points of a mesh entity.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_tortuosity ( std::vector< SymmetricTensor< 2, dim > > &  dst,
const std::vector< Point< dim > > &  points 
) const

This function computes variable tortuosity in quadrature points of a mesh entity.

template<int dim>
const bool& FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_tortuosity_is_constant ( ) const
inline

This function returns tortuosity_is_constant.

References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::tortuosity_is_constant.

Initialize.

  • fluid,
  • solid.
template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::initialize ( FuelCellShop::Material::GasMixture rgas_mixture,
FuelCellShop::Material::ExperimentalSolid rsolid 
)
inline

Initialize.

  • gas_mixture,
  • solid.
template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::initialize ( const bool &  rporosity_is_constant,
const bool &  rpermeability_is_constant,
const bool &  rtortuosity_is_constant 
)
inline
template<int dim>
virtual void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::initialize ( ParameterHandler &  param)
virtual

Initialize parameters.

Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.

template<int dim>
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::print_caller_name ( const std::string &  caller_name) const
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.

template<int dim>
virtual void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::print_layer_properties ( ) const
virtual

This function prints out the layer properties.

Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.

Member Data Documentation

  • incompressible,
  • isothermal,
  • single-phase,
  • single-component

fluid.

Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_fluid().

template<int dim>
SymmetricTensor<2,dim> FuelCellShop::Layer::ExperimentalPorousLayer< dim >::Forchheimer_permeability
protected

User defined constant Forchheimer permeability, 1/m.

template<int dim>
SymmetricTensor<2,dim> FuelCellShop::Layer::ExperimentalPorousLayer< dim >::permeability
protected

User defined constant permeability, m^2.

template<int dim>
SymmetricTensor<2,dim> FuelCellShop::Layer::ExperimentalPorousLayer< dim >::permeability_INV
protected

Inverse of user defined constant permeability, 1/m^2.

template<int dim>
bool FuelCellShop::Layer::ExperimentalPorousLayer< dim >::permeability_is_constant
protected
template<int dim>
double FuelCellShop::Layer::ExperimentalPorousLayer< dim >::porosity
protected

User defined constant porosity.

template<int dim>
bool FuelCellShop::Layer::ExperimentalPorousLayer< dim >::porosity_is_constant
protected
template<int dim>
SymmetricTensor<2,dim> FuelCellShop::Layer::ExperimentalPorousLayer< dim >::SQRT_permeability
protected

Square root of user defined constant permeability, m.

template<int dim>
SymmetricTensor<2,dim> FuelCellShop::Layer::ExperimentalPorousLayer< dim >::SQRT_permeability_INV
protected

Inverse of square root of user defined constant permeability, 1/m.

template<int dim>
SymmetricTensor<2,dim> FuelCellShop::Layer::ExperimentalPorousLayer< dim >::tortuosity
protected

User defined constant tortuosity.

template<int dim>
bool FuelCellShop::Layer::ExperimentalPorousLayer< dim >::tortuosity_is_constant
protected

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