ARTS  2.4.0(git:4fb77825)
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  === File description
20  ===========================================================================*/
21 
33 #ifndef doit_h
34 #define doit_h
35 
36 #include "agenda_class.h"
37 #include "matpackVI.h"
38 #include "ppath.h"
39 #include "propagationmatrix.h"
40 
42 
85  //FIXME function name of 'rte_step_doit_replacement' should be replaced by
86  // proper name
87  //Output and Input:
88  VectorView stokes_vec,
89  MatrixView trans_mat,
90  //Input
91  const PropagationMatrix& ext_mat_av,
92  const StokesVector& abs_vec_av,
93  ConstVectorView sca_vec_av,
94  const Numeric& lstep,
95  const Numeric& rtp_planck_value,
96  const bool& trans_is_precalc = false);
97 
99 // propagation direction.
121 void cloud_fieldsCalc(Workspace& ws,
122  // Output:
123  Tensor5View ext_mat_field,
124  Tensor4View abs_vec_field,
125  // Input:
126  const Agenda& spt_calc_agenda,
127  const Index& za_index,
128  const Index& aa_index,
132  const Verbosity& verbosity);
133 
136 
178  Tensor6View i_field,
179  // ppath_step_agenda:
180  const Index& p_index,
181  const Index& za_index,
184  ConstTensor6View scat_field,
185  // Calculate scalar gas absorption:
188  // Gas absorption:
189  // Propagation path calculation:
190  const Agenda& ppath_step_agenda,
191  const Numeric& ppath_lmax,
192  const Numeric& ppath_lraytrace,
196  // Calculate thermal emission:
199  const Index& f_index,
200  //particle opticla properties
201  ConstTensor5View ext_mat_field,
202  ConstTensor4View abs_vec_field,
204  const Index& scat_za_interp,
205  const Verbosity& verbosity);
206 
209 
248  // Input and output
250  // ppath_step_agenda:
251  const Index& p_index,
252  const Index& za_index,
257  // Calculate scalar gas absorption:
260  // Gas absorption:
261  // Propagation path calculation:
262  const Agenda& ppath_step_agenda,
263  const Numeric& ppath_lmax,
264  const Numeric& ppath_lraytrace,
268  // Calculate thermal emission:
271  // used for surface ?
272  const Index& f_index,
273  //particle optical properties
274  ConstTensor5View ext_mat_field,
275  ConstTensor4View abs_vec_field,
277  const Index& scat_za_interp,
278  const Verbosity& verbosity);
279 
281 
317  // ppath_step_agenda:
318  const Index& p_index,
319  const Index& za_index,
322  ConstTensor6View scat_field,
323  // Calculate scalar gas absorption:
326  // Gas absorption:
327  // Propagation path calculation:
330  // Calculate thermal emission:
333  const Index& f_index,
334  //particle opticla properties
335  ConstTensor5View ext_mat_field,
336  ConstTensor4View abs_vec_field,
337  // const Agenda& surface_agenda,
338  const Verbosity& verbosity);
339 
341 
389  // ppath_step_agenda:
390  const Index& p_index,
391  const Index& lat_index,
392  const Index& lon_index,
393  const Index& za_index,
394  const Index& aa_index,
399  // Calculate scalar gas absorption:
402  // Gas absorption:
403  // Propagation path calculation:
404  const Agenda& ppath_step_agenda,
405  const Numeric& ppath_lmax,
406  const Numeric& ppath_lraytrace,
412  // Calculate thermal emission:
415  const Index& f_index,
416  //particle optical properties
417  ConstTensor5View ext_mat_field,
418  ConstTensor4View abs_vec_field,
419  const Index&, //scat_za_interp
420  const Verbosity& verbosity);
421 
423 
454  //Output
456  // Input
458  const Ppath& ppath_step,
459  ConstVectorView t_int,
460  ConstMatrixView vmr_list_int,
461  ConstTensor3View ext_mat_int,
462  ConstMatrixView abs_vec_int,
463  ConstMatrixView sca_vec_int,
464  ConstMatrixView cloudbox_field_mono_int,
465  ConstVectorView p_int,
468  const Index& f_index,
469  const Index& p_index,
470  const Index& lat_index,
471  const Index& lon_index,
472  const Index& za_index,
473  const Index& aa_index,
474  const Verbosity& verbosity);
475 
477 
499 void cloud_RT_surface(Workspace& ws,
500  //Output
502  //Input
505  const Index& f_index,
506  const Index& stokes_dim,
507  const Ppath& ppath_step,
510  const Index& za_index);
511 
513 
528 void cloudbox_field_ngAcceleration( //Output
530  //Input
531  const ArrayOfTensor6& acceleration_input,
532  const Index& accelerated,
533  const Verbosity& verbosity);
534 
536 
564 void interp_cloud_coeff1D( //Output
565  Tensor3View ext_mat_int,
566  MatrixView abs_vec_int,
567  MatrixView sca_vec_int,
568  MatrixView cloudbox_field_mono_int,
569  VectorView t_int,
570  MatrixView vmr_list_int,
571  VectorView p_int,
572  //Input
573  ConstTensor5View ext_mat_field,
574  ConstTensor4View abs_vec_field,
580  const Ppath& ppath_step,
583  const Index& scat_za_interp,
584  const Verbosity& verbosity);
585 
587 
609 void za_gridOpt( //Output:
610  Vector& za_grid_opt,
611  Matrix& i_field_opt,
612  // Input
613  ConstVectorView za_grid_fine,
614  ConstTensor6View i_field,
615  const Numeric& acc,
616  const Index& scat_za_interp);
617 
619 
646  const Agenda& spt_calc_agenda,
647  const Index& atmosphere_dim,
648  const Vector& za_grid,
649  const Vector& aa_grid,
650  const Tensor4& pnd_field,
651  const Tensor3& t_field,
652  const Numeric& norm_error_threshold,
653  const Index& norm_debug,
654  const Verbosity& verbosity);
655 
656 #endif //doit_h
Matrix
The Matrix class.
Definition: matpackI.h:1193
ARTS::Var::atmosphere_dim
Index atmosphere_dim(Workspace &ws) noexcept
Definition: autoarts.h:2510
ARTS::Var::ppath_step
Ppath ppath_step(Workspace &ws) noexcept
Definition: autoarts.h:5213
ARTS::Var::z_field
Tensor3 z_field(Workspace &ws) noexcept
Definition: autoarts.h:7690
StokesVector
Stokes vector is as Propagation matrix but only has 4 possible values.
Definition: propagationmatrix.h:1075
MatrixView
The MatrixView class.
Definition: matpackI.h:1093
ARTS::Var::ppath_step_agenda
Agenda ppath_step_agenda(Workspace &ws) noexcept
Definition: autoarts.h:5220
za_gridOpt
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:1853
cloud_ppath_update1D
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:301
ARTS::Var::doit_scat_field
Tensor6 doit_scat_field(Workspace &ws) noexcept
Definition: autoarts.h:3167
doit_scat_fieldNormalize
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:1959
Tensor3
The Tensor3 class.
Definition: matpackIII.h:339
ARTS::Var::lat_grid
Vector lat_grid(Workspace &ws) noexcept
Definition: autoarts.h:3962
ARTS::Var::pnd_field
Tensor4 pnd_field(Workspace &ws) noexcept
Definition: autoarts.h:5081
ARTS::Var::verbosity
Verbosity verbosity(Workspace &ws) noexcept
Definition: autoarts.h:7112
ARTS::Var::f_index
Index f_index(Workspace &ws) noexcept
Definition: autoarts.h:3464
ARTS::Var::cloudbox_limits
ArrayOfIndex cloudbox_limits(Workspace &ws) noexcept
Definition: autoarts.h:2762
cloud_ppath_update1D_planeparallel
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:615
PropagationMatrix
Definition: propagationmatrix.h:87
ARTS::Var::za_index
Index za_index(Workspace &ws) noexcept
Definition: autoarts.h:7793
ARTS::Var::stokes_dim
Index stokes_dim(Workspace &ws) noexcept
Definition: autoarts.h:6650
ARTS::Var::cloudbox_field_mono
Tensor6 cloudbox_field_mono(Workspace &ws) noexcept
Definition: autoarts.h:2699
Tensor4
The Tensor4 class.
Definition: matpackIV.h:421
Ppath
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:48
ARTS::Var::surface_rtprop_agenda
Agenda surface_rtprop_agenda(Workspace &ws) noexcept
Definition: autoarts.h:6807
Agenda
The Agenda class.
Definition: agenda_class.h:44
cloud_ppath_update3D
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:1108
ConstTensor4View
A constant view of a Tensor4.
Definition: matpackIV.h:133
Tensor3View
The Tensor3View class.
Definition: matpackIII.h:239
Array
This can be used to make arrays out of anything.
Definition: array.h:108
cloud_RT_no_background
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:1382
agenda_class.h
Declarations for agendas.
cloud_RT_surface
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:1547
VectorView
The VectorView class.
Definition: matpackI.h:610
ARTS::Var::vmr_field
Tensor4 vmr_field(Workspace &ws) noexcept
Definition: autoarts.h:7130
ARTS::Var::p_grid
Vector p_grid(Workspace &ws) noexcept
Definition: autoarts.h:4763
ConstTensor6View
A constant view of a Tensor6.
Definition: matpackVI.h:149
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
ARTS::Var::cloudbox_field_mono_old
Tensor6 cloudbox_field_mono_old(Workspace &ws) noexcept
Definition: autoarts.h:2721
Verbosity
Definition: messages.h:49
Tensor5View
The Tensor5View class.
Definition: matpackV.h:333
ARTS::Var::refellipsoid
Vector refellipsoid(Workspace &ws) noexcept
Definition: autoarts.h:5519
ARTS::Var::f_grid
Vector f_grid(Workspace &ws) noexcept
Definition: autoarts.h:3449
propagationmatrix.h
Stuff related to the propagation matrix.
ARTS::Var::za_grid
Vector za_grid(Workspace &ws) noexcept
Definition: autoarts.h:7771
ARTS::Var::lon_grid
Vector lon_grid(Workspace &ws) noexcept
Definition: autoarts.h:4090
ARTS::Var::ppath_lmax
Numeric ppath_lmax(Workspace &ws) noexcept
Definition: autoarts.h:5183
ConstMatrixView
A constant view of a Matrix.
Definition: matpackI.h:982
ARTS::Var::ppath_lraytrace
Numeric ppath_lraytrace(Workspace &ws) noexcept
Definition: autoarts.h:5195
ppath.h
Propagation path structure and functions.
ARTS::Var::t_field
Tensor3 t_field(Workspace &ws) noexcept
Definition: autoarts.h:6947
Workspace
Workspace class.
Definition: workspace_ng.h:40
ConstTensor3View
A constant view of a Tensor3.
Definition: matpackIII.h:132
Tensor4View
The Tensor4View class.
Definition: matpackIV.h:284
rte_step_doit_replacement
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:62
interp_cloud_coeff1D
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:1695
ARTS::Var::propmat_clearsky_agenda
Agenda propmat_clearsky_agenda(Workspace &ws) noexcept
Definition: autoarts.h:5405
cloudbox_field_ngAcceleration
void cloudbox_field_ngAcceleration(Tensor6 &cloudbox_field_mono, const ArrayOfTensor6 &acceleration_input, const Index &accelerated, const Verbosity &verbosity)
Convergence acceleration.
Definition: doit.cc:1620
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
Tensor6
The Tensor6 class.
Definition: matpackVI.h:1088
cloud_fieldsCalc
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:163
ARTS::Var::aa_index
Index aa_index(Workspace &ws) noexcept
Definition: autoarts.h:1733
Vector
The Vector class.
Definition: matpackI.h:860
ARTS::Var::aa_grid
Vector aa_grid(Workspace &ws) noexcept
Definition: autoarts.h:1717
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:476
matpackVI.h
ConstTensor5View
A constant view of a Tensor5.
Definition: matpackV.h:143
Tensor6View
The Tensor6View class.
Definition: matpackVI.h:621
ARTS::Var::spt_calc_agenda
Agenda spt_calc_agenda(Workspace &ws) noexcept
Definition: autoarts.h:6594
cloud_ppath_update1D_noseq
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:457