ARTS  2.2.66
doit.h
Go to the documentation of this file.
1 /* Copyright (C) 2003-2012 Claudia Emde <claudia.emde@dlr.de>
2 
3  This program is free software; you can redistribute it and/or modify it
4  under the terms of the GNU General Public License as published by the
5  Free Software Foundation; either version 2, or (at your option) any
6  later version.
7 
8  This program is distributed in the hope that it will be useful,
9  but WITHOUT ANY WARRANTY; without even the implied warranty of
10  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11  GNU General Public License for more details.
12 
13  You should have received a copy of the GNU General Public License
14  along with this program; if not, write to the Free Software
15  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
16  USA. */
17 
18 
19 
20 /*===========================================================================
21  === File description
22  ===========================================================================*/
23 
36 #ifndef doit_h
37 #define doit_h
38 
39 #include "agenda_class.h"
40 #include "matpackVI.h"
41 #include "ppath.h"
42 
43 
44 void rte_step_doit(//Output and Input:
45  VectorView stokes_vec,
46  MatrixView trans_mat,
47  //Input
48  ConstMatrixView ext_mat_av,
49  ConstVectorView abs_vec_av,
50  ConstVectorView sca_vec_av,
51  const Numeric& lstep,
52  const Numeric& rtp_planck_value,
53  const bool& trans_is_precalc=false );
54 
55 
57  // Output:
58  Tensor5View ext_mat_field,
59  Tensor4View abs_vec_field,
60  // Input:
61  const Agenda& spt_calc_agenda,
62  const Agenda& opt_prop_part_agenda,
63  const Index& scat_za_index,
64  const Index& scat_aa_index,
65  const ArrayOfIndex& cloudbox_limits,
66  ConstTensor3View t_field,
67  ConstTensor4View pnd_field,
68  const Verbosity& verbosity);
69 
71  Tensor6View i_field,
72  // ppath_step_agenda:
73  const Index& p_index,
74  const Index& scat_za_index,
75  ConstVectorView scat_za_grid,
76  const ArrayOfIndex& cloudbox_limits,
77  ConstTensor6View scat_field,
78  // Calculate scalar gas absorption:
79  const Agenda& propmat_clearsky_agenda,
80  ConstTensor4View vmr_field,
81  // Gas absorption:
82  // Propagation path calculation:
83  const Agenda& ppath_step_agenda,
84  const Numeric& ppath_lraytrace,
85  ConstVectorView p_grid,
86  ConstTensor3View z_field,
87  ConstVectorView refellipsoid,
88  // Calculate thermal emission:
89  ConstTensor3View t_field,
90  ConstVectorView f_grid,
91  const Index& f_index,
92  //particle opticla properties
93  ConstTensor5View ext_mat_field,
94  ConstTensor4View abs_vec_field,
95  const Agenda& surface_rtprop_agenda,
96  const Index& scat_za_interp,
97  const Verbosity& verbosity);
98 
100  // Input and output
101  Tensor6View doit_i_field,
102  // ppath_step_agenda:
103  const Index& p_index,
104  const Index& scat_za_index,
105  ConstVectorView scat_za_grid,
106  const ArrayOfIndex& cloudbox_limits,
107  ConstTensor6View doit_i_field_old,
108  ConstTensor6View doit_scat_field,
109  // Calculate scalar gas absorption:
110  const Agenda& propmat_clearsky_agenda,
111  ConstTensor4View vmr_field,
112  // Gas absorption:
113  // Propagation path calculation:
114  const Agenda& ppath_step_agenda,
115  const Numeric& ppath_lraytrace,
116  ConstVectorView p_grid,
117  ConstTensor3View z_field,
118  ConstVectorView refellipsoid,
119  // Calculate thermal emission:
120  ConstTensor3View t_field,
121  ConstVectorView f_grid,
122  // used for surface ?
123  const Index& f_index,
124  //particle optical properties
125  ConstTensor5View ext_mat_field,
126  ConstTensor4View abs_vec_field,
127  const Agenda& surface_rtprop_agenda,
128  const Index& scat_za_interp,
129  const Verbosity& verbosity);
130 
132  Tensor6View i_field,
133  // ppath_step_agenda:
134  const Index& p_index,
135  const Index& scat_za_index,
136  ConstVectorView scat_za_grid,
137  const ArrayOfIndex& cloudbox_limits,
138  ConstTensor6View scat_field,
139  // Calculate scalar gas absorption:
140  const Agenda& propmat_clearsky_agenda,
141  ConstTensor4View vmr_field,
142  // Gas absorption:
143  // Propagation path calculation:
144  ConstVectorView p_grid,
145  ConstTensor3View z_field,
146  // Calculate thermal emission:
147  ConstTensor3View t_field,
148  ConstVectorView f_grid,
149  const Index& f_index,
150  //particle opticla properties
151  ConstTensor5View ext_mat_field,
152  ConstTensor4View abs_vec_field,
153  // const Agenda& surface_agenda,
154  const Verbosity& verbosity);
155 
157  Tensor6View doit_i_field,
158  // ppath_step_agenda:
159  const Index& p_index,
160  const Index& lat_index,
161  const Index& lon_index,
162  const Index& scat_za_index,
163  const Index& scat_aa_index,
164  ConstVectorView scat_za_grid,
165  ConstVectorView scat_aa_grid,
166  const ArrayOfIndex& cloudbox_limits,
167  ConstTensor6View doit_scat_field,
168  // Calculate scalar gas absorption:
169  const Agenda& propmat_clearsky_agenda,
170  ConstTensor4View vmr_field,
171  // Gas absorption:
172  // Propagation path calculation:
173  const Agenda& ppath_step_agenda,
174  const Numeric& ppath_lraytrace,
175  ConstVectorView p_grid,
176  ConstVectorView lat_grid,
177  ConstVectorView lon_grid,
178  ConstTensor3View z_field,
179  ConstVectorView refellipsoid,
180  // Calculate thermal emission:
181  ConstTensor3View t_field,
182  ConstVectorView f_grid,
183  const Index& f_index,
184  //particle optical properties
185  ConstTensor5View ext_mat_field,
186  ConstTensor4View abs_vec_field,
187  const Index&, //scat_za_interp
188  const Verbosity& verbosity
189  );
190 
192  //Output
193  Tensor6View doit_i_field,
194  // Input
195  const Agenda& propmat_clearsky_agenda,
196  const Ppath& ppath_step,
197  ConstVectorView t_int,
198  ConstMatrixView vmr_list_int,
199  ConstTensor3View ext_mat_int,
200  ConstMatrixView abs_vec_int,
201  ConstMatrixView sca_vec_int,
202  ConstMatrixView doit_i_field_int,
203  ConstVectorView p_int,
204  const ArrayOfIndex& cloudbox_limits,
205  ConstVectorView f_grid,
206  const Index& f_index,
207  const Index& p_index,
208  const Index& lat_index,
209  const Index& lon_index,
210  const Index& scat_za_index,
211  const Index& scat_aa_index,
212  const Verbosity& verbosity);
213 
214 void cloud_RT_surface(Workspace& ws,
215  //Output
216  Tensor6View doit_i_field,
217  //Input
218  const Agenda& surface_rtprop_agenda,
219  ConstVectorView f_grid,
220  const Index& f_index,
221  const Index& stokes_dim,
222  const Ppath& ppath_step,
223  const ArrayOfIndex& cloudbox_limits,
224  ConstVectorView scat_za_grid,
225  const Index& scat_za_index
226  );
227 
228 void interp_cloud_coeff1D(//Output
229  Tensor3View ext_mat_int,
230  MatrixView abs_vec_int,
231  MatrixView sca_vec_int,
232  MatrixView doit_i_field_int,
233  VectorView t_int,
234  MatrixView vmr_list_int,
235  VectorView p_int,
236  //Input
237  ConstTensor5View ext_mat_field,
238  ConstTensor4View abs_vec_field,
239  ConstTensor6View doit_scat_field,
240  ConstTensor6View doit_i_field,
241  ConstTensor3View t_field,
242  ConstTensor4View vmr_field,
243  ConstVectorView p_grid,
244  const Ppath& ppath_step,
245  const ArrayOfIndex& cloudbox_limits,
246  ConstVectorView scat_za_grid,
247  const Index& scat_za_interp,
248  const Verbosity& verbosity);
249 
250 void za_gridOpt(//Output:
251  Vector& za_grid_opt,
252  Matrix& i_field_opt,
253  // Input
254  ConstVectorView za_grid_fine,
255  ConstTensor6View i_field,
256  const Numeric& acc,
257  const Index& scat_za_interp);
258 
260  const Tensor7& scat_i_p,
261  const Tensor7& scat_i_lat,
262  const Tensor7& scat_i_lon,
263  const Tensor4& doit_i_field1D_spectrum,
264  const GridPos& rte_gp_p,
265  const GridPos& rte_gp_lat,
266  const GridPos& rte_gp_lon,
267  const Vector& rte_los,
268  const Index& cloudbox_on,
269  const ArrayOfIndex& cloudbox_limits,
270  const Index& atmosphere_dim,
271  const Index& stokes_dim,
272  const Vector& scat_za_grid,
273  const Vector& scat_aa_grid,
274  const Vector& f_grid,
275  const String& interpmeth,
276  const Index& rigorous,
277  const Numeric& maxratio,
278  const Verbosity& verbosity);
279 
281  Tensor6& doit_scat_field,
282  const Tensor6& doit_i_field,
283  const ArrayOfIndex& cloudbox_limits,
284  const Agenda& spt_calc_agenda,
285  const Index& atmosphere_dim,
286  const Vector& scat_za_grid,
287  const Vector& scat_aa_grid,
288  const Tensor4& pnd_field,
289  const Agenda& opt_prop_part_agenda,
290  const Tensor3& t_field,
291  const Numeric& norm_error_threshold,
292  const Index& norm_debug,
293  const Verbosity& verbosity);
294 
295 #endif //doit_h
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:35
The VectorView class.
Definition: matpackI.h:372
The Tensor4View class.
Definition: matpackIV.h:243
The Agenda class.
Definition: agenda_class.h:44
void za_gridOpt(Vector &za_grid_opt, Matrix &i_field_opt, ConstVectorView za_grid_fine, ConstTensor6View i_field, const Numeric &acc, const Index &scat_za_interp)
Definition: doit.cc:1944
The Vector class.
Definition: matpackI.h:556
The MatrixView class.
Definition: matpackI.h:679
A constant view of a Tensor6.
Definition: matpackVI.h:159
The Tensor4 class.
Definition: matpackIV.h:383
The Tensor6View class.
Definition: matpackVI.h:449
The Tensor7 class.
Definition: matpackVII.h:1931
void cloud_RT_no_background(Workspace &ws, Tensor6View doit_i_field, const Agenda &propmat_clearsky_agenda, const Ppath &ppath_step, ConstVectorView t_int, ConstMatrixView vmr_list_int, ConstTensor3View ext_mat_int, ConstMatrixView abs_vec_int, ConstMatrixView sca_vec_int, ConstMatrixView doit_i_field_int, ConstVectorView p_int, const ArrayOfIndex &cloudbox_limits, ConstVectorView f_grid, const Index &f_index, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &scat_za_index, const Index &scat_aa_index, const Verbosity &verbosity)
cloud_RT_no_background
Definition: doit.cc:1016
Structure to store a grid position.
Definition: interpolation.h:74
A constant view of a Tensor4.
Definition: matpackIV.h:141
The implementation for String, the ARTS string class.
Definition: mystring.h:63
The Tensor3 class.
Definition: matpackIII.h:348
void cloud_ppath_update1D_noseq(Workspace &ws, Tensor6View doit_i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View doit_i_field_old, ConstTensor6View doit_scat_field, const Agenda &propmat_clearsky_agenda, ConstTensor4View vmr_field, const Agenda &ppath_step_agenda, const Numeric &ppath_lraytrace, ConstVectorView p_grid, ConstTensor3View z_field, ConstVectorView refellipsoid, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Agenda &surface_rtprop_agenda, const Index &scat_za_interp, const Verbosity &verbosity)
cloud_ppath_update1D_noseq
Definition: doit.cc:556
void doit_scat_fieldNormalize(Workspace &ws, Tensor6 &doit_scat_field, const Tensor6 &doit_i_field, const ArrayOfIndex &cloudbox_limits, const Agenda &spt_calc_agenda, const Index &atmosphere_dim, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Tensor4 &pnd_field, const Agenda &opt_prop_part_agenda, const Tensor3 &t_field, const Numeric &norm_error_threshold, const Index &norm_debug, const Verbosity &verbosity)
Normalization of scattered field.
Definition: doit.cc:2521
Declarations for agendas.
The Tensor3View class.
Definition: matpackIII.h:232
void cloud_ppath_update3D(Workspace &ws, Tensor6View doit_i_field, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &scat_za_index, const Index &scat_aa_index, ConstVectorView scat_za_grid, ConstVectorView scat_aa_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View doit_scat_field, const Agenda &propmat_clearsky_agenda, ConstTensor4View vmr_field, const Agenda &ppath_step_agenda, const Numeric &ppath_lraytrace, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstVectorView refellipsoid, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Index &, const Verbosity &verbosity)
Radiative transfer calculation along a path inside the cloudbox (3D).
Definition: doit.cc:738
A constant view of a Tensor5.
Definition: matpackV.h:152
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:29
The Matrix class.
Definition: matpackI.h:788
void cloud_fieldsCalc(Workspace &ws, Tensor5View ext_mat_field, Tensor4View abs_vec_field, const Agenda &spt_calc_agenda, const Agenda &opt_prop_part_agenda, const Index &scat_za_index, const Index &scat_aa_index, const ArrayOfIndex &cloudbox_limits, ConstTensor3View t_field, ConstTensor4View pnd_field, const Verbosity &verbosity)
cloud_fieldsCalc
Definition: doit.cc:257
Propagation path structure and functions.
void rte_step_doit(VectorView stokes_vec, MatrixView trans_mat, ConstMatrixView ext_mat_av, ConstVectorView abs_vec_av, ConstVectorView sca_vec_av, const Numeric &lstep, const Numeric &rtp_planck_value, const bool &trans_is_precalc=false)
rte_step_doit
Definition: doit.cc:108
The Tensor5View class.
Definition: matpackV.h:276
This can be used to make arrays out of anything.
Definition: array.h:40
A constant view of a Tensor3.
Definition: matpackIII.h:139
The Tensor6 class.
Definition: matpackVI.h:950
A constant view of a Vector.
Definition: matpackI.h:292
void iy_interp_cloudbox_field(Matrix &iy, const Tensor7 &scat_i_p, const Tensor7 &scat_i_lat, const Tensor7 &scat_i_lon, const Tensor4 &doit_i_field1D_spectrum, const GridPos &rte_gp_p, const GridPos &rte_gp_lat, const GridPos &rte_gp_lon, const Vector &rte_los, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Index &atmosphere_dim, const Index &stokes_dim, const Vector &scat_za_grid, const Vector &scat_aa_grid, const Vector &f_grid, const String &interpmeth, const Index &rigorous, const Numeric &maxratio, const Verbosity &verbosity)
Interpolation of cloud box intensity field.
Definition: doit.cc:2094
A constant view of a Matrix.
Definition: matpackI.h:596
Workspace class.
Definition: workspace_ng.h:47
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:59
void interp_cloud_coeff1D(Tensor3View ext_mat_int, MatrixView abs_vec_int, MatrixView sca_vec_int, MatrixView doit_i_field_int, VectorView t_int, MatrixView vmr_list_int, VectorView p_int, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, ConstTensor6View doit_scat_field, ConstTensor6View doit_i_field, ConstTensor3View t_field, ConstTensor4View vmr_field, ConstVectorView p_grid, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView scat_za_grid, const Index &scat_za_interp, const Verbosity &verbosity)
interp_cloud_coeff1D
Definition: doit.cc:1253
void cloud_ppath_update1D(Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View scat_field, const Agenda &propmat_clearsky_agenda, ConstTensor4View vmr_field, const Agenda &ppath_step_agenda, const Numeric &ppath_lraytrace, ConstVectorView p_grid, ConstTensor3View z_field, ConstVectorView refellipsoid, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Agenda &surface_rtprop_agenda, const Index &scat_za_interp, const Verbosity &verbosity)
cloud_ppath_update1D
Definition: doit.cc:416
void cloud_RT_surface(Workspace &ws, Tensor6View doit_i_field, const Agenda &surface_rtprop_agenda, ConstVectorView f_grid, const Index &f_index, const Index &stokes_dim, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView scat_za_grid, const Index &scat_za_index)
cloud_RT_surface
Definition: doit.cc:1175
void cloud_ppath_update1D_planeparallel(Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &scat_za_index, ConstVectorView scat_za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View scat_field, const Agenda &propmat_clearsky_agenda, ConstTensor4View vmr_field, ConstVectorView p_grid, ConstTensor3View z_field, ConstTensor3View t_field, ConstVectorView f_grid, const Index &f_index, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, const Verbosity &verbosity)
Radiative transfer calculation inside cloudbox for planeparallel case.
Definition: doit.cc:1446