17 #ifndef _FUELCELLSHOP__PURESOLID__H
18 #define _FUELCELLSHOP__PURESOLID__H
27 #include <deal.II/base/parameter_handler.h>
39 namespace FuelCellShop
101 param.enter_subsection(
"Material Database");
103 param.enter_subsection(
"PureSolid");
105 iterator->second->declare_parameters(param);
107 param.leave_subsection();
109 param.leave_subsection();
120 ParameterHandler ¶m)
123 boost::shared_ptr<FuelCellShop::Material::PureSolid> pointer;
129 if (iterator->second)
131 pointer = iterator->second->create_replica(concrete_name);
141 AssertThrow(
false, ExcMessage(
"Concrete name in FuelCellShop::Material::PureSolid::create_PureSolid does not exist"));
144 param.enter_subsection(
"Material Database");
146 param.enter_subsection(
"PureSolid");
148 pointer->initialize(param);
150 param.leave_subsection();
152 param.leave_subsection();
276 virtual boost::shared_ptr<FuelCellShop::Material::PureSolid >
create_replica (
const std::string &
name)
278 const std::type_info& info =
typeid(*this);
280 <<
" called in Class "
281 << info.name() << std::endl;
387 const std::type_info& info =
typeid(*this);
389 <<
" called in Class "
390 << info.name() << std::endl;
406 const std::type_info& info =
typeid(*this);
408 <<
" called in Class "
409 << info.name() << std::endl;
438 virtual boost::shared_ptr<FuelCellShop::Material::PureSolid >
create_replica (
const std::string &
name)
475 virtual void initialize (ParameterHandler ¶m);
553 virtual boost::shared_ptr<FuelCellShop::Material::PureSolid >
create_replica (
const std::string &
name)
589 virtual void initialize (ParameterHandler ¶m);
This class is a base class for all pure solid materials used in FCST.
Definition: PureSolid.h:59
PureSolid()
Consturctor.
Definition: PureSolid.h:69
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.
Definition: PureSolid.h:438
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.
Definition: PureSolid.h:553
virtual double get_electrical_conductivity(double temperature) const
Obtain the electrical conductivity units (S/M)
SolidMaterialTypes
Definition: PureSolid.h:32
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: PureSolid.h:563
Definition: PureSolid.h:34
This class describes properties of pure Dummy.
Definition: PureSolid.h:487
virtual double get_H2_permeability(double temperature) const =0
Obtain the H2_permeability (unit cm3*cm-2*s-1)
static PureSolid const * PROTOTYPE
PROTOTYPE used for pointing to this class.
Definition: PureSolid.h:266
virtual double get_density() const =0
Obtain the density.
const std::string name
Name of the layer.
Definition: base_material.h:155
virtual double get_coefficient_thermal_expansion(double temperature) const =0
Obtain the coefficient_thermal_expansion (microns/m °C)
virtual void declare_parameters(ParameterHandler ¶m) const
Declare parameters for a parameter file.
virtual void declare_parameters(ParameterHandler ¶m) const
Declare parameters for a parameter file.
virtual double get_electrical_conductivity(double temperature) const
Obtain the electrical conductivity units (S/M)
virtual double get_compressive_strength(double temperature) const =0
Obtain the compressive_strength (unit N/mm2)
static Graphite const * PROTOTYPE
PROTOTYPE used for pointing to this class.
Definition: PureSolid.h:455
virtual double get_Delectrical_conductivity_Dtemperature(double temperature) const
Obtain the derivative of the electrical conductivity.
Definition: PureSolid.h:385
virtual double get_compressive_strength(double temperature) const
Obtain the coefficient_thermal_expansion units (N/mm2)
double H2_permeability
H2 permeability.
Definition: PureSolid.h:330
virtual void get_Delectrical_conductivity_Dtemperature(std::vector< double >, std::vector< double > &) const
Obtain the derivative of the electrical conductivity.
Definition: PureSolid.h:395
virtual double get_H2_permeability(double temperature) const
Obtain the H2_permeability units (cm3*cm-2*s-1)
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: PureSolid.h:450
Definition: PureSolid.h:36
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.
Definition: PureSolid.h:276
double coefficient_thermal_expansion
Coefficient of Thermal Expansion.
Definition: PureSolid.h:324
virtual double get_density() const
Obtain the density units (g/cm3)
virtual double get_Dthermal_conductivity_Dtemperature(double temperature) const
Obtain the derivative of the thermal conductivity.
Definition: PureSolid.h:404
virtual double get_thermal_conductivity(double temperature) const
Obtain the thermal conductivity units (watts/m K)
static DummySolid const * PROTOTYPE
PROTOTYPE used for pointing to this class.
Definition: PureSolid.h:568
double thermal_conductivity
thermal_conductivity
Definition: PureSolid.h:321
virtual void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
Definition: PureSolid.h:304
virtual double get_coefficient_thermal_expansion(double temperature) const
Obtain the coefficient_thermal_expansion units (microns/m °C)
virtual double get_H2_permeability(double temperature) const
Obtain the H2_permeability units (cm3*cm-2*s-1)
virtual ~Graphite()
Destructor.
static void declare_PureSolid_parameters(ParameterHandler ¶m)
This routine is used to create a PureSolid with the desired properties.
Definition: PureSolid.h:94
virtual double get_Dthermal_conductivity_Dtemperature(double temperature) const =0
Obtain the derivative of the thermal conductivity.
double Poissons_ratio
Poissons_ratio.
Definition: PureSolid.h:333
virtual double get_Delectrical_conductivity_Dtemperature(double temperature) const =0
Obtain the derivative of the electrical conductivity.
std::map< std::string, PureSolid * > _mapFactory
This object is used to store all objects of type PureSolid.
Definition: PureSolid.h:211
virtual void get_Dthermal_conductivity_Dtemperature(std::vector< double >, std::vector< double > &) const
Obtain the derivative of the thermal conductivity.
Definition: PureSolid.h:414
FCSTLogStream log
Object used to output data to file and, if file attached recorded to a file as well.
virtual ~PureSolid()
Destructor.
virtual double get_Dthermal_conductivity_Dtemperature(double temperature) const
Obtain the derivative of the thermal conductivity.
virtual void declare_parameters(ParameterHandler ¶m) const
Declare parameters for a parameter file.
Definition: PureSolid.h:298
double density
Density.
Definition: PureSolid.h:315
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: PureSolid.h:246
virtual ~DummySolid()
Destructor.
Definition: PureSolid.h:35
virtual double get_compressive_strength(double temperature) const
Obtain the coefficient_thermal_expansion units (N/mm2)
static boost::shared_ptr< FuelCellShop::Material::PureSolid > create_PureSolid(std::string concrete_name, ParameterHandler ¶m)
This function returns a boost shared ptr of a certain material with the name of concrete_name and it ...
Definition: PureSolid.h:119
virtual void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
This class describes properties of pure Poco Graphite.
Definition: PureSolid.h:356
virtual double get_thermal_conductivity(double temperature) const =0
Obtain the thermal conductivity (watts/m K)
virtual double get_Poissons_ratio(double temperature) const =0
Obtain the Poissons ratio (unitless)
virtual void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
virtual double get_Poissons_ratio(double temperature) const
Obtain the Poissons_ratio units ()
virtual double get_electrical_conductivity(double temperature) const =0
Obtain the electrical conductivity units (S/M)
virtual double get_thermal_conductivity(double temperature) const
Obtain the thermal conductivity units (watts/m K)
double electrical_conductivity
electrical_conductivity
Definition: PureSolid.h:318
double compressive_strength
Compressive strength.
Definition: PureSolid.h:327
virtual double get_density() const
Obtain the density units (g/cm3)
static _mapFactory * get_mapFactory()
Definition: PureSolid.h:219
virtual double get_Delectrical_conductivity_Dtemperature(double temperature) const
Obtain the derivative of the electrical conductivity.
Virtual class used to provide the interface for all material classes.
Definition: base_material.h:54
virtual double get_Poissons_ratio(double temperature) const
Obtain the Poissons_ratio units ()
virtual double get_coefficient_thermal_expansion(double temperature) const
Obtain the coefficient_thermal_expansion units (microns/m °C)