1
0
Fork 0
mirror of https://github.com/gwm17/catima.git synced 2024-11-26 12:08:52 -05:00

compunt materials update

This commit is contained in:
hrocho 2017-12-12 17:18:26 +01:00
parent 16dd46f0a9
commit 58d151c09c
4 changed files with 59 additions and 52 deletions

View File

@ -7,31 +7,35 @@ namespace catima{
if(id>0 && id<ELEMENT_DENSITY_MAXZ){
return Material(0,id,element_density(id),0.0);
}
switch(id){
case material::PLASTIC : return Material({{0,1,10},{0,6,9}},1.032);
case material::AIR : return Material({{0,7,0.7810}, {0,8,0.2095},{0,18,0.0095}},0.0012);
case material::CH2 : return Material({{0,6,1}, {0,1,2}},0.94);
case material::LH2 : return Material({{0,1,1}},0.0708);
case material::LD2 : return Material({{2.014,1,1}},0.162);
case material::WATER : return Material({{0,1,2},{0,8,1}},1.0);
case material::DIAMOND: return Material(0,6,3.52,0.0);
case material::GLASS : return Material({{0,14,1},{0,8,2}},2.4 );
case material::ALMG3: return Material(0,13,2.67,0.0);
case material::ARCO2_30: return Material({{0,18,7},{0,8,6},{0,6,3}}, 0.00171);
case material::CF4 : return Material({{0,6,1},{0,9,4}}, 0.00372 );
case material::ISOBUTANE:return Material({{0,6,4}, {0,1,10}},0.00251);
case material::KAPTON : return Material({{0,1,10}, {0,6,22},{0,7,2},{0,8,5}},1.42);
case material::MYLAR : return Material({{0,6,5}, {0,1,4},{0,8,2}},1.38);
case material::NAF : return Material({{0,11,1}, {0,9,1}},2.56);
case material::P10: return Material({{0,18,9},{0,6,1},{0,1,4}}, 0.00166);
case material::POLYOLEFIN: return Material({{0,1,16},{0,6,10}}, 0.9);
case material::CMO2: return Material({{0,96,1},{0,8,2}}, 12.0);
case material::SUPRASIL : return Material({{0,14,1},{0,8,2}},2.2 );
case material::HAVAR : return Material({{0,27,42},{0,24,40},{0,28,13},{0,26,19},{0,74,1}},8.3);
case material::STEEL : return Material({{0,26,74},{0,24,18},{0,28,8}},8.0);
return get_compound(static_cast<material>(id));
}
Material get_compound(material m){
switch(m){
case material::Plastics: return Material({{0,1,10},{0,6,9}},1.032);
case material::Air: return Material({{0,7,0.781},{0,8,0.2095},{0,18,0.0095}},0.0012);
case material::CH2: return Material({{0,6,1},{0,1,2}},0.94);
case material::LH2: return Material({{0,1,1}},0.0708);
case material::LD2: return Material({{2.01355,1,1}},0.162);
case material::Water: return Material({{0,1,2},{0,8,1}},1);
case material::Diamond: return Material({{0,6,1}},3.52);
case material::Glass: return Material({{0,14,1},{0,8,2}},2.4);
case material::ALMG3: return Material({{0,13,1}},2.67);
case material::ArCO2_30: return Material({{0,18,7},{0,8,6},{0,6,3}},0.00171);
case material::CF4: return Material({{0,6,1},{0,9,4}},0.00372);
case material::Isobutane: return Material({{0,6,4},{0,1,10}},0.00251);
case material::Kapton: return Material({{0,1,10},{0,6,22},{0,7,2},{0,8,5}},1.42);
case material::Mylar: return Material({{0,6,5},{0,1,4},{0,8,2}},1.38);
case material::NaF: return Material({{0,11,1},{0,9,1}},2.56);
case material::P10: return Material({{0,18,9},{0,6,1},{0,1,4}},0.00166);
case material::PolyOlefin: return Material({{0,8,10},{0,1,16}},0.9);
case material::CmO2: return Material({{0,96,1},{0,8,2}},12);
case material::Suprasil: return Material({{0,14,1},{0,8,2}},2.2);
case material::HAVAR: return Material({{0,27,42},{0,24,20},{0,28,13},{0,74,3},{0,42,2},{0,26,20}},8.3);
case material::Steel: return Material({{0,26,74},{0,24,18},{0,28,8}},8);
default:break;
}
return Material();
}
}
}
} // namespace catima

View File

@ -4,33 +4,36 @@
namespace catima{
//namespace material{
enum material{
PLASTIC = 201,
AIR = 202,
CH2,
LH2,
LD2,
WATER,
DIAMOND,
GLASS,
ALMG3,
ARCO2_30,
CF4,
ISOBUTANE,
KAPTON,
MYLAR,
NAF,
P10,
POLYOLEFIN,
CMO2,
SUPRASIL,
HAVAR,
STEEL = 221
enum class material{
Plastics = 201,
Air = 202,
CH2 = 203,
LH2 = 204,
LD2 = 205,
Water = 206,
Diamond = 207,
Glass = 208,
ALMG3 = 209,
ArCO2_30 = 210,
CF4 = 211,
Isobutane = 212,
Kapton = 213,
Mylar = 214,
NaF = 215,
P10 = 216,
PolyOlefin = 217,
CmO2 = 218,
Suprasil = 219,
HAVAR = 220,
Steel = 221
};
//}
Material get_material(int);
Material get_compound(material m);
Material get_material(int id);
inline Material get_material(material m){
return get_compound(m);
};
}
#endif
#endif

View File

@ -330,7 +330,7 @@ const lest::test specification[] =
},
CASE("default material calculations"){
catima::Projectile p{12,6,6,350};
auto air = catima::get_material(catima::material::AIR);
auto air = catima::get_material(catima::material::Air);
air.thickness(0.500);
auto res = catima::calculate(p(350),air);
EXPECT(res.Eout == approx(345.6).epsilon(1e-2));

View File

@ -70,7 +70,7 @@ const lest::test specification[] =
EXPECT(m.density() == 2.0);
EXPECT(m.M() == 12.0107);
m = catima::get_material(catima::material::WATER);
m = catima::get_material(catima::material::Water);
EXPECT(m.get_element(0).first.A == 1.00794);
EXPECT(m.get_element(0).first.Z == 1);
EXPECT(m.get_element(1).first.A == 15.9994);