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::Material::PureSolid Class Referenceabstract

This class is a base class for all pure solid materials used in FCST. More...

#include <PureSolid.h>

Inheritance diagram for FuelCellShop::Material::PureSolid:
Inheritance graph
[legend]
Collaboration diagram for FuelCellShop::Material::PureSolid:
Collaboration graph
[legend]

Public Types

Instance Delivery (Types)
typedef std::map< std::string,
PureSolid * > 
_mapFactory
 This object is used to store all objects of type PureSolid. More...
 

Public Member Functions

Service functions.
virtual double get_density () const =0
 Obtain the density. More...
 
virtual double get_electrical_conductivity (double temperature) const =0
 Obtain the electrical conductivity units (S/M) More...
 
virtual void get_electrical_conductivity (std::vector< double > temperature, std::vector< double > &dst) const =0
 Obtain the electrical conductivity (S/M). More...
 
virtual double get_Delectrical_conductivity_Dtemperature (double temperature) const =0
 Obtain the derivative of the electrical conductivity. More...
 
virtual void get_Delectrical_conductivity_Dtemperature (std::vector< double > temperature, std::vector< double > &dst) const =0
 Obtain the derivative of the electrical conductivity. More...
 
virtual double get_thermal_conductivity (double temperature) const =0
 Obtain the thermal conductivity (watts/m K) More...
 
virtual void get_thermal_conductivity (std::vector< double > temperature, std::vector< double > &dst) const =0
 Obtain the thermal conductivity (watts/m K) More...
 
virtual double get_Dthermal_conductivity_Dtemperature (double temperature) const =0
 Obtain the derivative of the thermal conductivity. More...
 
virtual void get_Dthermal_conductivity_Dtemperature (std::vector< double > temperature, std::vector< double > &dst) const =0
 Obtain the derivative of the thermal conductivity. More...
 
virtual double get_coefficient_thermal_expansion (double temperature) const =0
 Obtain the coefficient_thermal_expansion (microns/m °C) More...
 
virtual double get_compressive_strength (double temperature) const =0
 Obtain the compressive_strength (unit N/mm2) More...
 
virtual double get_H2_permeability (double temperature) const =0
 Obtain the H2_permeability (unit cm3*cm-2*s-1) More...
 
virtual double get_Poissons_ratio (double temperature) const =0
 Obtain the Poissons ratio (unitless) More...
 
- Public Member Functions inherited from FuelCellShop::Material::BaseMaterial
void set_derivative_flags (const std::vector< VariableNames > &flags)
 Set the names of FCST solution variables with respect to which you would like to compute the derivatives of material properties. More...
 
const std::string & name_material () const
 Return the name of the layer. More...
 
virtual void print_material_properties () const
 This function prints out the material properties. More...
 

Static Public Member Functions

Instance Delivery (Private and static)
static _mapFactoryget_mapFactory ()
 

Protected Member Functions

Instance Delivery (Private functions)
virtual boost::shared_ptr
< FuelCellShop::Material::PureSolid
create_replica (const std::string &name)
 This member function is used to create an object of type PureSolid Material. More...
 
- Protected Member Functions inherited from FuelCellShop::Material::BaseMaterial
 BaseMaterial ()
 Constructor. More...
 
 BaseMaterial (const std::string &name)
 Constructor. More...
 
virtual ~BaseMaterial ()
 Destructor. More...
 

Protected Attributes

Accessors and info
double density
 Density. More...
 
double electrical_conductivity
 electrical_conductivity More...
 
double thermal_conductivity
 thermal_conductivity More...
 
double coefficient_thermal_expansion
 Coefficient of Thermal Expansion. More...
 
double compressive_strength
 Compressive strength. More...
 
double H2_permeability
 H2 permeability. More...
 
double Poissons_ratio
 Poissons_ratio. More...
 
- Protected Attributes inherited from FuelCellShop::Material::BaseMaterial
const std::string name
 Name of the layer. More...
 
std::vector< VariableNamesderivative_flags
 Flags for derivatives: These flags are used to request derivatives of material properties. More...
 

Static Protected Attributes

Instance Delivery (Public variables)
static const std::string concrete_name
 Concrete name used for objects of this class. More...
 
static PureSolid const * PROTOTYPE
 PROTOTYPE used for pointing to this class. More...
 

Constructors, destructor and initialization

 PureSolid ()
 Consturctor. More...
 
virtual ~PureSolid ()
 Destructor. More...
 
static void declare_PureSolid_parameters (ParameterHandler &param)
 This routine is used to create a PureSolid with the desired properties. More...
 
static boost::shared_ptr
< FuelCellShop::Material::PureSolid
create_PureSolid (std::string concrete_name, ParameterHandler &param)
 This function returns a boost shared ptr of a certain material with the name of concrete_name and it initializes the PureSolid material with the desired properties. More...
 
 PureSolid (const std::string &name)
 Constructor. More...
 
virtual void declare_parameters (ParameterHandler &param) const
 Declare parameters for a parameter file. More...
 
virtual void initialize (ParameterHandler &param)
 Member function used to read in data and initialize the necessary data to compute the coefficients. More...
 

Detailed Description

This class is a base class for all pure solid materials used in FCST.

This class contains data provided by its children and implements the methods by means of which different properties of pure solid materials can be computed.

Warning
Do not create an object of this class. Use its children instead.
Author
Marc Secanell, Jie Zhou, 2014

Member Typedef Documentation

typedef std::map< std::string, PureSolid* > FuelCellShop::Material::PureSolid::_mapFactory

This object is used to store all objects of type PureSolid.

The mapping is from string which is basic called concrete_name to a pointer pointing to the children of PureSolid

Constructor & Destructor Documentation

FuelCellShop::Material::PureSolid::PureSolid ( )
inline

Consturctor.

virtual FuelCellShop::Material::PureSolid::~PureSolid ( )
virtual

Destructor.

FuelCellShop::Material::PureSolid::PureSolid ( const std::string &  name)
protected

Constructor.

Member Function Documentation

static boost::shared_ptr<FuelCellShop::Material::PureSolid > FuelCellShop::Material::PureSolid::create_PureSolid ( std::string  concrete_name,
ParameterHandler &  param 
)
inlinestatic

This function returns a boost shared ptr of a certain material with the name of concrete_name and it initializes the PureSolid material with the desired properties.

References get_mapFactory(), and FcstUtilities::log.

Here is the call graph for this function:

virtual boost::shared_ptr<FuelCellShop::Material::PureSolid > FuelCellShop::Material::PureSolid::create_replica ( const std::string &  name)
inlineprotectedvirtual

This member function is used to create an object of type PureSolid Material.

Warning
This class MUST be redeclared in every child.

Reimplemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

References FcstUtilities::log.

virtual void FuelCellShop::Material::PureSolid::declare_parameters ( ParameterHandler &  param) const
inlineprotectedvirtual

Declare parameters for a parameter file.

Reimplemented from FuelCellShop::Material::BaseMaterial.

Reimplemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

static void FuelCellShop::Material::PureSolid::declare_PureSolid_parameters ( ParameterHandler &  param)
inlinestatic

This routine is used to create a PureSolid with the desired properties.

Parameters
concrete_nameshould contain a string with the concrete_name of the PureSolid child that you would like to create.
paramshould contain the ParameterHandler handler from which you would harvest any necessary data under subsection *
* subsection Material Database
* subsection Pure Solid
* subsection concrete_name
*
* end
* end
* end
*
Note
Concrete_name should be obtained form the layer class.

References get_mapFactory().

Here is the call graph for this function:

virtual double FuelCellShop::Material::PureSolid::get_coefficient_thermal_expansion ( double  temperature) const
pure virtual

Obtain the coefficient_thermal_expansion (microns/m °C)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_compressive_strength ( double  temperature) const
pure virtual

Obtain the compressive_strength (unit N/mm2)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_Delectrical_conductivity_Dtemperature ( double  temperature) const
pure virtual

Obtain the derivative of the electrical conductivity.

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual void FuelCellShop::Material::PureSolid::get_Delectrical_conductivity_Dtemperature ( std::vector< double >  temperature,
std::vector< double > &  dst 
) const
pure virtual

Obtain the derivative of the electrical conductivity.

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_density ( ) const
pure virtual

Obtain the density.

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_Dthermal_conductivity_Dtemperature ( double  temperature) const
pure virtual

Obtain the derivative of the thermal conductivity.

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual void FuelCellShop::Material::PureSolid::get_Dthermal_conductivity_Dtemperature ( std::vector< double >  temperature,
std::vector< double > &  dst 
) const
pure virtual

Obtain the derivative of the thermal conductivity.

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_electrical_conductivity ( double  temperature) const
pure virtual

Obtain the electrical conductivity units (S/M)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual void FuelCellShop::Material::PureSolid::get_electrical_conductivity ( std::vector< double >  temperature,
std::vector< double > &  dst 
) const
pure virtual

Obtain the electrical conductivity (S/M).

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_H2_permeability ( double  temperature) const
pure virtual

Obtain the H2_permeability (unit cm3*cm-2*s-1)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

static _mapFactory* FuelCellShop::Material::PureSolid::get_mapFactory ( )
inlinestatic

Referenced by create_PureSolid(), and declare_PureSolid_parameters().

Here is the caller graph for this function:

virtual double FuelCellShop::Material::PureSolid::get_Poissons_ratio ( double  temperature) const
pure virtual

Obtain the Poissons ratio (unitless)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual double FuelCellShop::Material::PureSolid::get_thermal_conductivity ( double  temperature) const
pure virtual

Obtain the thermal conductivity (watts/m K)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual void FuelCellShop::Material::PureSolid::get_thermal_conductivity ( std::vector< double >  temperature,
std::vector< double > &  dst 
) const
pure virtual

Obtain the thermal conductivity (watts/m K)

Implemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

virtual void FuelCellShop::Material::PureSolid::initialize ( ParameterHandler &  param)
inlineprotectedvirtual

Member function used to read in data and initialize the necessary data to compute the coefficients.

Reimplemented from FuelCellShop::Material::BaseMaterial.

Reimplemented in FuelCellShop::Material::DummySolid, and FuelCellShop::Material::Graphite.

Member Data Documentation

double FuelCellShop::Material::PureSolid::coefficient_thermal_expansion
protected

Coefficient of Thermal Expansion.

double FuelCellShop::Material::PureSolid::compressive_strength
protected

Compressive strength.

const std::string FuelCellShop::Material::PureSolid::concrete_name
staticprotected

Concrete name used for objects of this class.

This name is used when setting up the subsection where the data is stored in the input file.

The data will be store under

* subsection Material Database
* subsection Pure Solid
* subsection concrete_name
*
* end
* end
* end
*
double FuelCellShop::Material::PureSolid::density
protected

Density.

double FuelCellShop::Material::PureSolid::electrical_conductivity
protected

electrical_conductivity

double FuelCellShop::Material::PureSolid::H2_permeability
protected

H2 permeability.

double FuelCellShop::Material::PureSolid::Poissons_ratio
protected

Poissons_ratio.

PureSolid const* FuelCellShop::Material::PureSolid::PROTOTYPE
staticprotected

PROTOTYPE used for pointing to this class.

This pointer is used when setting up the subsection where the data is stored in the input file.

The data will be store under

* subsection Material Database
* subsection Pure Solid
* subsection concrete_name
*
* end
* end
* end
*
double FuelCellShop::Material::PureSolid::thermal_conductivity
protected

thermal_conductivity


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