78 lines
1.9 KiB
C++
78 lines
1.9 KiB
C++
#pragma once
|
|
#ifndef SOLID_H
|
|
#define SOLID_H
|
|
|
|
#include "tasmet_types.h"
|
|
#include "tasmet_enum.h"
|
|
|
|
|
|
DECLARE_ENUM(SolidType,stainless,stainless_hopkins,copper,kapton);
|
|
|
|
class Solid{
|
|
SolidType _solidtype;
|
|
protected:
|
|
Solid(const SolidType);
|
|
public:
|
|
Solid(const Solid&) = delete;
|
|
Solid& operator=(const Solid&) = delete;
|
|
operator SolidType() const {return _solidtype;}
|
|
|
|
Solid* newSolid(const SolidType);
|
|
|
|
virtual vd kappa(const vd& T) const=0;
|
|
virtual d kappa(const d& T) const=0;
|
|
virtual vd c(const vd& T) const=0;
|
|
virtual d c(const d& T) const=0;
|
|
virtual vd rho(const vd& T) const=0;
|
|
virtual d rho(const d& T) const=0;
|
|
virtual ~Solid();
|
|
|
|
};
|
|
|
|
class StainlessHopkins:public Solid
|
|
{
|
|
public:
|
|
StainlessHopkins(): Solid(stainless_hopkins){}
|
|
vd kappa(const vd& T) const;
|
|
d kappa(const d& T) const;
|
|
vd c(const vd& T) const;
|
|
d c(const d& T) const;
|
|
vd rho(const vd& T) const;
|
|
d rho(const d& T) const;
|
|
};
|
|
|
|
class Stainless: public Solid{
|
|
public:
|
|
Stainless(): Solid(stainless){}
|
|
vd kappa(const vd& T) const;
|
|
d kappa(const d& T) const;
|
|
vd c(const vd& T) const;
|
|
d c(const d& T) const;
|
|
vd rho(const vd& T) const;
|
|
d rho(const d& T) const;
|
|
|
|
};
|
|
class Copper: public Solid{
|
|
public:
|
|
Copper(): Solid(copper){}
|
|
vd kappa(const vd& T) const;
|
|
d kappa(const d& T) const;
|
|
vd c(const vd& T) const;
|
|
d c(const d& T) const;
|
|
vd rho(const vd& T) const;
|
|
d rho(const d& T) const;
|
|
};
|
|
|
|
class Kapton: public Solid {
|
|
public:
|
|
Kapton():Solid(kapton){}
|
|
vd kappa(const vd& T) const { return 0.2*(1.0-exp(-T/100.0));}
|
|
d kappa(const d& T) const { return 0.2*(1.0-exp(-T/100.0));}
|
|
vd c(const vd& T) const {return 3.64*T;}
|
|
d c(const d& T) const {return 3.64*T;}
|
|
vd rho(const vd& T) const {return 1445.0-0.085*T;}
|
|
d rho(const d& T) const {return 1445.0-0.085*T;}
|
|
};
|
|
|
|
#endif /* SOLID_H */
|