17 #ifndef _FUELCELLSHOP__PURESOLID__H
18 #define _FUELCELLSHOP__PURESOLID__H
29 #include <deal.II/base/parameter_handler.h>
40 namespace FuelCellShop
102 param.enter_subsection(
"Material Database");
104 param.enter_subsection(
"PureSolid");
106 iterator->second->declare_parameters(param);
108 param.leave_subsection();
110 param.leave_subsection();
121 ParameterHandler ¶m)
124 boost::shared_ptr<FuelCellShop::Material::PureSolid> pointer;
130 if (iterator->second)
132 pointer = iterator->second->create_replica(concrete_name);
142 AssertThrow(
false, ExcMessage(
"Concrete name in FuelCellShop::Material::PureSolid::create_PureSolid does not exist"));
145 param.enter_subsection(
"Material Database");
147 param.enter_subsection(
"PureSolid");
149 pointer->initialize(param);
151 param.leave_subsection();
153 param.leave_subsection();
277 virtual boost::shared_ptr<FuelCellShop::Material::PureSolid >
create_replica (
const std::string &
name)
279 const std::type_info& info =
typeid(*this);
281 <<
" called in Class "
282 << info.name() << std::endl;
388 const std::type_info& info =
typeid(*this);
390 <<
" called in Class "
391 << info.name() << std::endl;
407 const std::type_info& info =
typeid(*this);
409 <<
" called in Class "
410 << info.name() << std::endl;
439 virtual boost::shared_ptr<FuelCellShop::Material::PureSolid >
create_replica (
const std::string &
name)
476 virtual void initialize (ParameterHandler ¶m);
554 virtual boost::shared_ptr<FuelCellShop::Material::PureSolid >
create_replica (
const std::string &
name)
590 virtual void initialize (ParameterHandler ¶m);
This class is a base class for all pure solid materials used in FCST.
Definition: PureSolid.h:60
PureSolid()
Consturctor.
Definition: PureSolid.h:70
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:439
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:554
virtual double get_electrical_conductivity(double temperature) const
Obtain the electrical conductivity units (S/M)
SolidMaterialTypes
Definition: PureSolid.h:33
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: PureSolid.h:564
Definition: PureSolid.h:35
This class describes properties of pure Dummy.
Definition: PureSolid.h:488
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:267
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:456
virtual double get_Delectrical_conductivity_Dtemperature(double temperature) const
Obtain the derivative of the electrical conductivity.
Definition: PureSolid.h:386
virtual double get_compressive_strength(double temperature) const
Obtain the coefficient_thermal_expansion units (N/mm2)
double H2_permeability
H2 permeability.
Definition: PureSolid.h:331
virtual void get_Delectrical_conductivity_Dtemperature(std::vector< double >, std::vector< double > &) const
Obtain the derivative of the electrical conductivity.
Definition: PureSolid.h:396
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:451
Definition: PureSolid.h:37
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:277
double coefficient_thermal_expansion
Coefficient of Thermal Expansion.
Definition: PureSolid.h:325
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:405
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:569
double thermal_conductivity
thermal_conductivity
Definition: PureSolid.h:322
virtual void initialize(ParameterHandler ¶m)
Member function used to read in data and initialize the necessary data to compute the coefficients...
Definition: PureSolid.h:305
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:95
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:334
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:212
virtual void get_Dthermal_conductivity_Dtemperature(std::vector< double >, std::vector< double > &) const
Obtain the derivative of the thermal conductivity.
Definition: PureSolid.h:415
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:299
double density
Density.
Definition: PureSolid.h:316
static const std::string concrete_name
Concrete name used for objects of this class.
Definition: PureSolid.h:247
virtual ~DummySolid()
Destructor.
Definition: PureSolid.h:36
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:120
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:357
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:319
double compressive_strength
Compressive strength.
Definition: PureSolid.h:328
virtual double get_density() const
Obtain the density units (g/cm3)
static _mapFactory * get_mapFactory()
Definition: PureSolid.h:220
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)