PLaSK library

Loading...
Searching...
No Matches
air.cpp
Go to the documentation of this file.
1/*
2 * This file is part of PLaSK (https://plask.app) by Photonics Group at TUL
3 * Copyright (c) 2022 Lodz University of Technology
4 *
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 3.
8 *
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 */
14#include "air.hpp"
15#include "../log/log.hpp"
16
17#include <cmath>
18#include <plask/material/db.hpp> //MaterialsDB::Register
19#include <plask/material/info.hpp> //MaterialInfo::DB::Register
20
21 namespace plask { namespace materials {
22
23std::string Air::name() const { return NAME; }
24 Material::Kind Air::kind() const { return Material::EMPTY; }
25
26
27 double Air::A(double /*T*/) const { RETURN_MATERIAL_NAN(A) }
28
29 double Air::absp(double /*lam*/, double /*T*/) const { return 0.; }
30
31 double Air::B(double /*T*/) const { RETURN_MATERIAL_NAN(B) }
32
33 double Air::C(double /*T*/) const { RETURN_MATERIAL_NAN(C) }
34
35 double Air::CB(double /*T*/, double /*e*/, char /*point*/) const { RETURN_MATERIAL_NAN(CB) }
36
37 double Air::chi(double /*T*/, double /*e*/, char /*point*/) const { RETURN_MATERIAL_NAN(chi) }
38
39 MI_PROPERTY(Air, cond,
40 MISource("S.D. Pawar et al., Journal of Geophysical Research, vol. 114, no. D2, id. D02205 (8 pp.), 2009"),
41 MINote("average value from (0.3-0.8)*10^-14 S/m")
42 )
43 Tensor2<double> Air::cond(double /*T*/) const {
44 double c = 0.55e-14;
45 return Tensor2<double>(c, c);
46}
47
48 Material::ConductivityType Air::condtype() const { return Material::CONDUCTIVITY_OTHER; }
49
50 double Air::D(double /*T*/) const { RETURN_MATERIAL_NAN(D) }
51
52 MI_PROPERTY(Air, dens,
53 MISource("D.R. Lide, ed., CRC Handbook of Chemistry and Physics, Internet Version 2005, <http://www.hbcpnetbase.com>, CRC Press, Boca Raton, FL, 2005, section 6, p. 1")
54 )
55 double Air::dens(double /*T*/) const { return 1.161; }
56
57 double Air::Dso(double /*T*/, double /*e*/) const { RETURN_MATERIAL_NAN(Dso) }
58
59 double Air::EactA(double /*T*/) const { RETURN_MATERIAL_NAN(EactA) }
60 double Air::EactD(double /*T*/) const { RETURN_MATERIAL_NAN(EactD) }
61
62 double Air::Eg(double /*T*/, double /*e*/, char /*point*/) const { RETURN_MATERIAL_NAN(Eg) }
63
64 double Air::eps(double /*T*/) const { return 1.; }
65
66 double Air::lattC(double /*T*/, char /*x*/) const { RETURN_MATERIAL_NAN(lattC) }
67
68Tensor2<double> Air::Me(double /*T*/, double /*e*/, char /*point*/) const { RETURN_MATERIAL_NAN(Me) }
69
70Tensor2<double> Air::Mh(double /*T*/, double /*e*/) const { RETURN_MATERIAL_NAN(Mh) }
71
72Tensor2<double> Air::Mhh(double /*T*/, double /*e*/) const { RETURN_MATERIAL_NAN(Mhh) }
73
74Tensor2<double> Air::Mlh(double /*T*/, double /*e*/) const { RETURN_MATERIAL_NAN(B) }
75
76Tensor2<double> Air::mob(double /*T*/) const { RETURN_MATERIAL_NAN(mob) }
77
78 double Air::Mso(double /*T*/, double /*e*/) const { RETURN_MATERIAL_NAN(Mso) }
79
80 double Air::Nf(double /*T*/) const { RETURN_MATERIAL_NAN(Nf) }
81
82 double Air::Ni(double /*T*/) const { RETURN_MATERIAL_NAN(Ni) }
83
84 MI_PROPERTY(Air, nr,
85 MISource("D.R. Lide, ed., CRC Handbook of Chemistry and Physics, Internet Version 2005, <http://www.hbcpnetbase.com>, CRC Press, Boca Raton, FL, 2005, section 10, p. 224"),
86 MINote("using equation in source the calculated values are 1.0002-1.0003 for 200-2000nm wavelength range"),
87 MIArgumentRange(MaterialInfo::T, 200, 2000)
88 )
89 double Air::nr(double /*lam*/, double /*T*/, double /*n*/) const { return 1.; }
90
91 MI_PROPERTY(Air, cp,
92 MISource("D.R. Lide, ed., CRC Handbook of Chemistry and Physics, Internet Version 2005, <http://www.hbcpnetbase.com>, CRC Press, Boca Raton, FL, 2005, section 6, p. 1")
93 )
94 double Air::cp(double /*T*/) const { return 1.007e3; }
95
96 MI_PROPERTY(Air, thermk,
97 MISource("D.R. Lide, ed., CRC Handbook of Chemistry and Physics, Internet Version 2005, <http://www.hbcpnetbase.com>, CRC Press, Boca Raton, FL, 2005, section 6, p. 175"),
98 MINote("fit by Lukasz Piskorski"),
99 MIArgumentRange(MaterialInfo::T, 100, 600)
100 )
101Tensor2<double> Air::thermk(double T, double /*h*/) const {
102 double tCondT = 0.0258*pow(T/300.,0.84);
103 return Tensor2<double>(tCondT, tCondT);
104}
105
106 double Air::VB(double /*T*/, double /*e*/, char /*point*/, char /*hole*/) const { RETURN_MATERIAL_NAN(VB) }
107
108Tensor2<double> Air::mobe(double /*T*/) const { RETURN_MATERIAL_NAN(mobe) }
109
110Tensor2<double> Air::mobh(double /*T*/) const { RETURN_MATERIAL_NAN(mobh) }
111
112 double Air::Na() const { RETURN_MATERIAL_NAN(Na) }
113
114 double Air::Nd() const { RETURN_MATERIAL_NAN(Nd) }
115
116 bool Air::isEqual(const Material &/*other*/) const {
117 return true;
118}
119
120 static MaterialsDB::Register<Air> materialDB_register_Air;
121
122}} // namespace plask::materials