ARTS 2.5.11 (git: 6827797f)
doit.h
Go to the documentation of this file.
1/*===========================================================================
2 === File description
3 ===========================================================================*/
4
16#ifndef doit_h
17#define doit_h
18
19#include "agenda_class.h"
20#include "matpack_data.h"
21#include "ppath.h"
22#include "propagationmatrix.h"
23
25
68 //FIXME function name of 'rte_step_doit_replacement' should be replaced by
69 // proper name
70 //Output and Input:
71 VectorView stokes_vec,
72 MatrixView trans_mat,
73 //Input
74 const PropagationMatrix& ext_mat_av,
75 const StokesVector& abs_vec_av,
76 ConstVectorView sca_vec_av,
77 const Numeric& lstep,
78 const Numeric& rtp_planck_value,
79 const bool& trans_is_precalc = false);
80
82// propagation direction.
105 // Output:
106 Tensor5View ext_mat_field,
107 Tensor4View abs_vec_field,
108 // Input:
109 const Agenda& spt_calc_agenda,
110 const Index& za_index,
111 const Index& aa_index,
112 const ArrayOfIndex& cloudbox_limits,
113 ConstTensor3View t_field,
114 ConstTensor4View pnd_field,
115 const Verbosity& verbosity);
116
119
161 Tensor6View i_field,
162 // ppath_step_agenda:
163 const Index& p_index,
164 const Index& za_index,
165 ConstVectorView za_grid,
166 const ArrayOfIndex& cloudbox_limits,
167 ConstTensor6View 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_lmax,
175 const Numeric& ppath_lraytrace,
176 ConstVectorView p_grid,
177 ConstTensor3View z_field,
178 ConstVectorView refellipsoid,
179 // Calculate thermal emission:
180 ConstTensor3View t_field,
181 ConstVectorView f_grid,
182 const Index& f_index,
183 //particle opticla properties
184 ConstTensor5View ext_mat_field,
185 ConstTensor4View abs_vec_field,
186 const Agenda& surface_rtprop_agenda,
187 const Index& scat_za_interp,
188 const Verbosity& verbosity);
189
192
231 // Input and output
232 Tensor6View cloudbox_field_mono,
233 // ppath_step_agenda:
234 const Index& p_index,
235 const Index& za_index,
236 ConstVectorView za_grid,
237 const ArrayOfIndex& cloudbox_limits,
238 ConstTensor6View cloudbox_field_mono_old,
239 ConstTensor6View doit_scat_field,
240 // Calculate scalar gas absorption:
241 const Agenda& propmat_clearsky_agenda,
242 ConstTensor4View vmr_field,
243 // Gas absorption:
244 // Propagation path calculation:
245 const Agenda& ppath_step_agenda,
246 const Numeric& ppath_lmax,
247 const Numeric& ppath_lraytrace,
248 ConstVectorView p_grid,
249 ConstTensor3View z_field,
250 ConstVectorView refellipsoid,
251 // Calculate thermal emission:
252 ConstTensor3View t_field,
253 ConstVectorView f_grid,
254 // used for surface ?
255 const Index& f_index,
256 //particle optical properties
257 ConstTensor5View ext_mat_field,
258 ConstTensor4View abs_vec_field,
259 const Agenda& surface_rtprop_agenda,
260 const Index& scat_za_interp,
261 const Verbosity& verbosity);
262
264
299 Tensor6View cloudbox_field_mono,
300 // ppath_step_agenda:
301 const Index& p_index,
302 const Index& za_index,
303 ConstVectorView za_grid,
304 const ArrayOfIndex& cloudbox_limits,
305 ConstTensor6View scat_field,
306 // Calculate scalar gas absorption:
307 const Agenda& propmat_clearsky_agenda,
308 ConstTensor4View vmr_field,
309 // Gas absorption:
310 // Propagation path calculation:
311 ConstVectorView p_grid,
312 ConstTensor3View z_field,
313 // Calculate thermal emission:
314 ConstTensor3View t_field,
315 ConstVectorView f_grid,
316 const Index& f_index,
317 //particle opticla properties
318 ConstTensor5View ext_mat_field,
319 ConstTensor4View abs_vec_field,
320 // const Agenda& surface_agenda,
321 const Verbosity& verbosity);
322
324
371 Tensor6View cloudbox_field_mono,
372 // ppath_step_agenda:
373 const Index& p_index,
374 const Index& lat_index,
375 const Index& lon_index,
376 const Index& za_index,
377 const Index& aa_index,
378 ConstVectorView za_grid,
379 ConstVectorView aa_grid,
380 const ArrayOfIndex& cloudbox_limits,
381 ConstTensor6View doit_scat_field,
382 // Calculate scalar gas absorption:
383 const Agenda& propmat_clearsky_agenda,
384 ConstTensor4View vmr_field,
385 // Gas absorption:
386 // Propagation path calculation:
387 const Agenda& ppath_step_agenda,
388 const Numeric& ppath_lmax,
389 const Numeric& ppath_lraytrace,
390 ConstVectorView p_grid,
391 ConstVectorView lat_grid,
392 ConstVectorView lon_grid,
393 ConstTensor3View z_field,
394 ConstVectorView refellipsoid,
395 // Calculate thermal emission:
396 ConstTensor3View t_field,
397 ConstVectorView f_grid,
398 const Index& f_index,
399 //particle optical properties
400 ConstTensor5View ext_mat_field,
401 ConstTensor4View abs_vec_field,
402 const Index&, //scat_za_interp
403 const Verbosity& verbosity);
404
406
437 //Output
438 Tensor6View cloudbox_field_mono,
439 // Input
440 const Agenda& propmat_clearsky_agenda,
441 const Ppath& ppath_step,
442 ConstVectorView t_int,
443 ConstMatrixView vmr_list_int,
444 ConstTensor3View ext_mat_int,
445 ConstMatrixView abs_vec_int,
446 ConstMatrixView sca_vec_int,
447 ConstMatrixView cloudbox_field_mono_int,
448 ConstVectorView p_int,
449 const ArrayOfIndex& cloudbox_limits,
450 ConstVectorView f_grid,
451 const Index& f_index,
452 const Index& p_index,
453 const Index& lat_index,
454 const Index& lon_index,
455 const Index& za_index,
456 const Index& aa_index,
457 const Verbosity& verbosity);
458
460
483 //Output
484 Tensor6View cloudbox_field_mono,
485 //Input
486 const Agenda& surface_rtprop_agenda,
487 ConstVectorView f_grid,
488 const Index& f_index,
489 const Index& stokes_dim,
490 const Ppath& ppath_step,
491 const ArrayOfIndex& cloudbox_limits,
492 ConstVectorView za_grid,
493 const Index& za_index);
494
496
512 Tensor6& cloudbox_field_mono,
513 //Input
514 const ArrayOfTensor6& acceleration_input,
515 const Index& accelerated,
516 const Verbosity& verbosity);
517
519
547void interp_cloud_coeff1D( //Output
548 Tensor3View ext_mat_int,
549 MatrixView abs_vec_int,
550 MatrixView sca_vec_int,
551 MatrixView cloudbox_field_mono_int,
552 VectorView t_int,
553 MatrixView vmr_list_int,
554 VectorView p_int,
555 //Input
556 ConstTensor5View ext_mat_field,
557 ConstTensor4View abs_vec_field,
558 ConstTensor6View doit_scat_field,
559 ConstTensor6View cloudbox_field_mono,
560 ConstTensor3View t_field,
561 ConstTensor4View vmr_field,
562 ConstVectorView p_grid,
563 const Ppath& ppath_step,
564 const ArrayOfIndex& cloudbox_limits,
565 ConstVectorView za_grid,
566 const Index& scat_za_interp,
567 const Verbosity& verbosity);
568
570
592void za_gridOpt( //Output:
593 Vector& za_grid_opt,
594 Matrix& i_field_opt,
595 // Input
596 ConstVectorView za_grid_fine,
597 ConstTensor6View i_field,
598 const Numeric& acc,
599 const Index& scat_za_interp);
600
602
626 Tensor6& doit_scat_field,
627 const Tensor6& cloudbox_field_mono,
628 const ArrayOfIndex& cloudbox_limits,
629 const Agenda& spt_calc_agenda,
630 const Index& atmosphere_dim,
631 const Vector& za_grid,
632 const Vector& aa_grid,
633 const Tensor4& pnd_field,
634 const Tensor3& t_field,
635 const Numeric& norm_error_threshold,
636 const Index& norm_debug,
637 const Verbosity& verbosity);
638
639#endif //doit_h
Declarations for agendas.
The Agenda class.
Definition: agenda_class.h:52
Workspace class.
Definition: workspace_ng.h:36
void doit_scat_fieldNormalize(Workspace &ws, Tensor6 &doit_scat_field, const Tensor6 &cloudbox_field_mono, const ArrayOfIndex &cloudbox_limits, const Agenda &spt_calc_agenda, const Index &atmosphere_dim, const Vector &za_grid, const Vector &aa_grid, const Tensor4 &pnd_field, const Tensor3 &t_field, const Numeric &norm_error_threshold, const Index &norm_debug, const Verbosity &verbosity)
Normalization of scattered field.
Definition: doit.cc:1935
void cloudbox_field_ngAcceleration(Tensor6 &cloudbox_field_mono, const ArrayOfTensor6 &acceleration_input, const Index &accelerated, const Verbosity &verbosity)
Convergence acceleration.
Definition: doit.cc:1596
void cloud_ppath_update1D_planeparallel(Workspace &ws, Tensor6View cloudbox_field_mono, const Index &p_index, const Index &za_index, ConstVectorView 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:599
void rte_step_doit_replacement(VectorView stokes_vec, MatrixView trans_mat, const PropagationMatrix &ext_mat_av, const StokesVector &abs_vec_av, ConstVectorView sca_vec_av, const Numeric &lstep, const Numeric &rtp_planck_value, const bool &trans_is_precalc=false)
Solves monochromatic VRTE for an atmospheric slab with constant conditions.
Definition: doit.cc:46
void cloud_ppath_update1D(Workspace &ws, Tensor6View i_field, const Index &p_index, const Index &za_index, ConstVectorView 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_lmax, 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)
Calculates radiation field along a propagation path step for specified zenith direction and pressure ...
Definition: doit.cc:285
void cloud_fieldsCalc(Workspace &ws, Tensor5View ext_mat_field, Tensor4View abs_vec_field, const Agenda &spt_calc_agenda, const Index &za_index, const Index &aa_index, const ArrayOfIndex &cloudbox_limits, ConstTensor3View t_field, ConstTensor4View pnd_field, const Verbosity &verbosity)
Calculate ext_mat, abs_vec for all points inside the cloudbox for one.
Definition: doit.cc:147
void cloud_ppath_update1D_noseq(Workspace &ws, Tensor6View cloudbox_field_mono, const Index &p_index, const Index &za_index, ConstVectorView za_grid, const ArrayOfIndex &cloudbox_limits, ConstTensor6View cloudbox_field_mono_old, ConstTensor6View doit_scat_field, const Agenda &propmat_clearsky_agenda, ConstTensor4View vmr_field, const Agenda &ppath_step_agenda, const Numeric &ppath_lmax, 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)
Calculation of radiation field along a propagation path step for specified zenith direction and press...
Definition: doit.cc:441
void cloud_RT_no_background(Workspace &ws, Tensor6View cloudbox_field_mono, 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 cloudbox_field_mono_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 &za_index, const Index &aa_index, const Verbosity &verbosity)
Calculates RT in the cloudbox (1D)
Definition: doit.cc:1362
void interp_cloud_coeff1D(Tensor3View ext_mat_int, MatrixView abs_vec_int, MatrixView sca_vec_int, MatrixView cloudbox_field_mono_int, VectorView t_int, MatrixView vmr_list_int, VectorView p_int, ConstTensor5View ext_mat_field, ConstTensor4View abs_vec_field, ConstTensor6View doit_scat_field, ConstTensor6View cloudbox_field_mono, ConstTensor3View t_field, ConstTensor4View vmr_field, ConstVectorView p_grid, const Ppath &ppath_step, const ArrayOfIndex &cloudbox_limits, ConstVectorView za_grid, const Index &scat_za_interp, const Verbosity &verbosity)
Interpolate all inputs of the VRTE on a propagation path step.
Definition: doit.cc:1671
void cloud_RT_surface(Workspace &ws, Tensor6View cloudbox_field_mono, 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 za_grid, const Index &za_index)
Calculates RT in the cloudbox.
Definition: doit.cc:1523
void cloud_ppath_update3D(Workspace &ws, Tensor6View cloudbox_field_mono, const Index &p_index, const Index &lat_index, const Index &lon_index, const Index &za_index, const Index &aa_index, ConstVectorView za_grid, ConstVectorView 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_lmax, 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:1088
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)
Optimize the zenith angle grid.
Definition: doit.cc:1829
Propagation path structure and functions.
The structure to describe a propagation path and releated quantities.
Definition: ppath_struct.h:17