OpenFCST: The open-source Fuel Cell Simulation Toolbox
|
This class describes a porous layer and stores pointers to. More...
#include <experimental_porous_layer.h>
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 ¶m) const |
Declare parameters. More... | |
virtual void | initialize (ParameterHandler ¶m) |
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 ¶m) 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 ¶m) |
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 ¶m) |
Set parameters in parameter file. More... | |
Protected Attributes | |
Layer properties | |
FuelCellShop::Material::ExperimentalFluid * | fluid |
FuelCellShop::Material::GasMixture * | gas_mixture |
Gas mixture. More... | |
FuelCellShop::Material::ExperimentalSolid * | solid |
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, dim > | permeability |
User defined constant permeability, m^2. More... | |
SymmetricTensor< 2, dim > | SQRT_permeability |
Square root of user defined constant permeability, m. More... | |
SymmetricTensor< 2, dim > | permeability_INV |
Inverse of user defined constant permeability, 1/m^2. More... | |
SymmetricTensor< 2, dim > | SQRT_permeability_INV |
Inverse of square root of user defined constant permeability, 1/m. More... | |
SymmetricTensor< 2, dim > | Forchheimer_permeability |
User defined constant Forchheimer permeability, 1/m. More... | |
SymmetricTensor< 2, dim > | tortuosity |
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< VariableNames > | derivative_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... | |
This class describes a porous layer and stores pointers to.
ExperimentalFluid
object,GasMixture
object,ExperimentalSolid
object.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:
X_is_constant
= true
and X
itself is explicitly specified in parameters file. In this case, use get_X(std::vector<TYPE>& dst) function to get X
in quadrature points of a mesh entity.X_is_constant
= false
and X
itself is NOT explicitly specified in parameters file. In this case, use get_X(std::vector<TYPE>& dst, const std::vector< Point<dim> >& points) function to get X
in quadrature points of a mesh entity.The functionality of this class can be extended if needed.
FuelCellShop::Layer::ExperimentalPorousLayer< dim >::ExperimentalPorousLayer | ( | const std::string & | name | ) |
Constructor.
FuelCellShop::Layer::ExperimentalPorousLayer< dim >::ExperimentalPorousLayer | ( | const std::string & | name, |
FuelCellShop::Material::ExperimentalFluid & | fluid, | ||
FuelCellShop::Material::ExperimentalSolid & | solid | ||
) |
Constructor.
FuelCellShop::Layer::ExperimentalPorousLayer< dim >::ExperimentalPorousLayer | ( | const std::string & | name, |
FuelCellShop::Material::GasMixture & | gas_mixture, | ||
FuelCellShop::Material::ExperimentalSolid & | solid | ||
) |
Constructor.
|
virtual |
Destructor.
|
virtual |
Declare parameters.
Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.
|
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 >.
|
inline |
This function returns fluid
.
References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::fluid.
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.
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.
|
inline |
This function returns gas_mixture
.
References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::gas_mixture.
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.
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.
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.
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.
|
inline |
This function returns permeability_is_constant
.
References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::permeability_is_constant.
void FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_porosity | ( | std::vector< double > & | dst | ) | const |
This function computes constant porosity in quadrature points of a mesh entity.
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.
|
inline |
This function returns porosity_is_constant
.
References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::porosity_is_constant.
|
inline |
This function returns solid
.
References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::solid.
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.
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.
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.
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.
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.
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.
|
inline |
This function returns tortuosity_is_constant
.
References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::tortuosity_is_constant.
|
inline |
Initialize.
fluid
,solid
.
|
inline |
Initialize.
gas_mixture
,solid
.
|
inline |
Initialize.
porosity_is_constant
,permeability_is_constant
,tortuosity_is_constant
. References FuelCellShop::Layer::ExperimentalPorousLayer< dim >::permeability_is_constant, FuelCellShop::Layer::ExperimentalPorousLayer< dim >::porosity_is_constant, and FuelCellShop::Layer::ExperimentalPorousLayer< dim >::tortuosity_is_constant.
|
virtual |
Initialize parameters.
Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.
|
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.
|
virtual |
This function prints out the layer properties.
Reimplemented from FuelCellShop::Layer::BaseLayer< dim >.
|
protected |
fluid.
Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_fluid().
|
protected |
User defined constant Forchheimer permeability, 1/m.
|
protected |
Gas mixture.
Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_gas_mixture().
|
protected |
User defined constant permeability, m^2.
|
protected |
Inverse of user defined constant permeability, 1/m^2.
|
protected |
Variable defining if the permeability is constant.
Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_permeability_is_constant(), and FuelCellShop::Layer::ExperimentalPorousLayer< dim >::initialize().
|
protected |
User defined constant porosity.
|
protected |
Variable defining if the porosity is constant.
Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_porosity_is_constant(), and FuelCellShop::Layer::ExperimentalPorousLayer< dim >::initialize().
|
protected |
Solid.
Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_solid().
|
protected |
Square root of user defined constant permeability, m.
|
protected |
Inverse of square root of user defined constant permeability, 1/m.
|
protected |
User defined constant tortuosity.
|
protected |
Variable defining if the tortuosity is constant.
Referenced by FuelCellShop::Layer::ExperimentalPorousLayer< dim >::get_tortuosity_is_constant(), and FuelCellShop::Layer::ExperimentalPorousLayer< dim >::initialize().