tasmet/src/material/solid.cpp

67 lines
1.9 KiB
C++

#include "solid.h"
#include "tasmet_tracer.h"
//Stainless steel
//Container class
Solid* Solid::newSolid(const SolidType solidtype){
switch (solidtype) {
case stainless:
return new Stainless();
break;
case kapton:
return new Kapton();
break;
case copper:
return new Copper();
break;
case stainless_hopkins:
return new StainlessHopkins();
break;
default:
FATAL("Undefined solid type");
break;
}
return nullptr;
}
vd StainlessHopkins::c(const vd& T) const{return 490*pow(T,0);}
d StainlessHopkins::c(const d& T) const{return 490;}
vd StainlessHopkins::rho(const vd& T) const{return 7900*pow(T,0);}
d StainlessHopkins::rho(const d& T) const{return 7900;}
vd StainlessHopkins::kappa(const vd& T) const{return 14.9*pow(T,0);}
d StainlessHopkins::kappa(const d& T) const{return 14.9;}
vd Stainless::c(const vd& T) const {
vd arg=1.7054e-6*pow(T,-0.88962)+22324.0/pow(T,6);
return pow(arg,-1.0/3.0)+15/T;
}
d Stainless::c(const d& T) const {
d arg=1.7054e-6*pow(T,-0.88962)+22324.0/pow(T,6);
return pow(arg,-1.0/3.0)+15/T;
}
vd Stainless::rho(const vd& T) const {
return 8274.55-1055.23*exp(-1.0*pow((T-273.15-2171.05)/2058.08,2));
}
d Stainless::rho(const d& T) const {
return 8274.55-1055.23*exp(-1.0*pow((T-273.15-2171.05)/2058.08,2));
}
vd Stainless::kappa(const vd& T) const {
return pow(266800.0*pow(T,-5.2)+0.21416*pow(T,-1.6),-0.25);
}
d Stainless::kappa(const d& T) const {
return pow(266800.0*pow(T,-5.2)+0.21416*pow(T,-1.6),-0.25);
}
//Copper
vd Copper::kappa(const vd& T) const {
return 398.0-0.567*(T-300.0);
}
d Copper::kappa(const d& T) const { return 398.0-0.567*(T-300.0); }
vd Copper::c(const vd& T) const {return 420.0*pow(T,0);}
d Copper::c(const d& T) const {return 420.0*pow(T,0);}
vd Copper::rho(const vd& T) const {return 9000.0*pow(T,0);}
d Copper::rho(const d& T) const {return 9000.0*pow(T,0);}