Line data Source code
1 : // Bojan Nikolic <b.nikolic@mrao.cam.ac.uk>, <bojan@bnikolic.co.uk>
2 : // Initial version July 2009
3 : // Maintained by ESO since 2013.
4 :
5 : /** \file model_make.cpp
6 :
7 : Renamed model_make.cc 2023
8 :
9 : */
10 :
11 : #include "model_make.h"
12 : #include "model_water.h"
13 : #include "singlelayerwater.h"
14 : #include "models_basic.h"
15 : #include "slice.h"
16 : #include "layers.h"
17 : #include "rtranfer.h"
18 : #include "radiometermeasure.h"
19 :
20 : namespace LibAIR2 {
21 :
22 : LibAIR2::WaterModel<ISingleLayerWater> *
23 0 : mkSingleLayerWater(RadiometerT radiot,
24 : PartitionTreatment t,
25 : Continuum c,
26 : double PDrop)
27 : {
28 0 : std::shared_ptr<Radiometer> r(SwitchRadiometer(radiot));
29 :
30 0 : std::shared_ptr<ISingleLayerWater> sl(new ISingleLayerWater (r->getFGrid(),
31 : WaterData::L183,
32 : t,
33 : c,
34 0 : PDrop));
35 : return new LibAIR2::WaterModel<ISingleLayerWater> (r,
36 0 : sl);
37 :
38 0 : }
39 :
40 : LibAIR2::WaterModel<ISingleLayerWater> *
41 81 : mkSingleLayerWater(const ALMAWVRCharacter &ac,
42 : PartitionTreatment t,
43 : Continuum c,
44 : double PDrop)
45 : {
46 81 : std::shared_ptr<Radiometer> r(MkALMAWVR(ac));
47 :
48 81 : std::shared_ptr<ISingleLayerWater> sl(new ISingleLayerWater (r->getFGrid(),
49 : WaterData::L183,
50 : t,
51 : c,
52 81 : PDrop));
53 : return new LibAIR2::WaterModel<ISingleLayerWater> (r,
54 162 : sl);
55 :
56 81 : }
57 :
58 : LibAIR2::WaterModel<ISingleLayerWater> *
59 0 : mkSimpleOffset(double cf,
60 : double bw)
61 : {
62 0 : std::shared_ptr<Radiometer> r(MkALMAWVR_offset(cf,bw));
63 :
64 0 : std::shared_ptr<ISingleLayerWater> sl(new ISingleLayerWater (r->getFGrid(),
65 : WaterData::L183,
66 : PartTable,
67 : AirCont,
68 0 : 0));
69 : return new LibAIR2::WaterModel<ISingleLayerWater> (r,
70 0 : sl);
71 :
72 0 : }
73 :
74 : LibAIR2::WaterModel<ICloudyWater> *
75 0 : mkCloudy(RadiometerT radiot,
76 : PartitionTreatment t,
77 : Continuum c,
78 : double PDrop)
79 : {
80 0 : std::shared_ptr<Radiometer> r(SwitchRadiometer(radiot));
81 :
82 0 : std::shared_ptr<ICloudyWater> sl(new ICloudyWater (r->getFGrid(),
83 : WaterData::L183,
84 : t,
85 : c,
86 0 : PDrop));
87 : return new LibAIR2::WaterModel<ICloudyWater> (r,
88 0 : sl);
89 :
90 0 : }
91 :
92 : LibAIR2::WaterModel<ICloudyWater> *
93 0 : mkCloudy(const ALMAWVRCharacter &ac,
94 : PartitionTreatment t,
95 : Continuum c,
96 : double PDrop)
97 : {
98 0 : std::shared_ptr<Radiometer> r(MkALMAWVR(ac));
99 :
100 0 : std::shared_ptr<ICloudyWater> sl(new ICloudyWater (r->getFGrid(),
101 : WaterData::L183,
102 : t,
103 : c,
104 0 : PDrop));
105 : return new LibAIR2::WaterModel<ICloudyWater> (r,
106 0 : sl);
107 :
108 0 : }
109 :
110 :
111 : }
112 :
113 :
114 :
|