ARTS  2.0.49
rte.h
Go to the documentation of this file.
1 /* Copyright (C) 2002-2008
2  Patrick Eriksson <Patrick.Eriksson@rss.chalmers.se>
3  Stefan Buehler <sbuehler@ltu.se>
4 
5  This program is free software; you can redistribute it and/or modify it
6  under the terms of the GNU General Public License as published by the
7  Free Software Foundation; either version 2, or (at your option) any
8  later version.
9 
10  This program is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU General Public License for more details.
14 
15  You should have received a copy of the GNU General Public License
16  along with this program; if not, write to the Free Software
17  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
18  USA. */
19 
20 
21 
22 /*===========================================================================
23  === File description
24  ===========================================================================*/
25 
36 #ifndef rte_h
37 #define rte_h
38 
39 /*===========================================================================
40  === External declarations
41  ===========================================================================*/
42 
43 #include "agenda_class.h"
44 #include "arts.h"
45 #include "complex.h"
46 #include "jacobian.h"
47 #include "ppath.h"
48 #include "matpackI.h"
49 #include "matpackII.h"
50 #include "matpackIII.h"
51 #include "optproperties.h"
52 
53 
54 /*===========================================================================
55  === Functions in rte.cc
56  ===========================================================================*/
57 
58 void apply_y_unit(
59  MatrixView iy,
60  const String& y_unit,
61  ConstVectorView f_grid,
62  const ArrayOfIndex& i_pol );
63 
64 void apply_y_unit2(
65  Tensor3View J,
66  ConstMatrixView iy,
67  const String& y_unit,
68  ConstVectorView f_grid,
69  const ArrayOfIndex& i_pol );
70 
71 void ext2trans(
72  MatrixView trans_mat,
73  ConstMatrixView ext_mat_av,
74  const Numeric& l_step );
75 
76 void get_ppath_atmvars(
77  Vector& ppath_p,
78  Vector& ppath_t,
79  Matrix& ppath_vmr,
80  Vector& ppath_wind_u,
81  Vector& ppath_wind_v,
82  Vector& ppath_wind_w,
83  const Ppath& ppath,
84  const Index& atmosphere_dim,
85  ConstVectorView p_grid,
86  ConstTensor3View t_field,
87  ConstTensor4View vmr_field,
88  ConstTensor3View wind_u_field,
89  ConstTensor3View wind_v_field,
90  ConstTensor3View wind_w_field );
91 
93  Tensor3& ppath_asp_abs_vec,
94  Tensor4& ppath_asp_ext_mat,
95  Tensor3& ppath_pnd_abs_vec,
96  Tensor4& ppath_pnd_ext_mat,
97  Tensor4& ppath_transmission,
98  Tensor3& total_transmission,
99  Matrix& ppath_emission,
101  const Agenda& abs_scalar_gas_agenda,
102  const Agenda& emission_agenda,
103  const Agenda& opt_prop_gas_agenda,
104  const Ppath& ppath,
105  ConstVectorView ppath_p,
106  ConstVectorView ppath_t,
107  ConstMatrixView ppath_vmr,
108  ConstVectorView ppath_wind_u,
109  ConstVectorView ppath_wind_v,
110  ConstVectorView ppath_wind_w,
111  ConstMatrixView ppath_pnd,
112  const Index& use_mean_scat_data,
113  const ArrayOfSingleScatteringData& scat_data_raw,
114  const Index& stokes_dim,
115  ConstVectorView f_grid,
116  const Index& atmosphere_dim,
117  const Index& emission_do,
118  const Verbosity& verbosity);
119 
120 void get_ppath_pnd(
121  Matrix& ppath_pnd,
122  const Ppath& ppath,
123  const Index& atmosphere_dim,
124  const ArrayOfIndex& cloudbox_limits,
125  ConstTensor4View pnd_field );
126 
127 void get_ppath_rtvars(
128  Workspace& ws,
129  Tensor3& ppath_abs_scalar,
130  Matrix& ppath_tau,
131  Vector& total_tau,
132  Matrix& ppath_emission,
133  const Agenda& abs_scalar_agenda,
134  const Agenda& emission_agenda,
135  const Ppath& ppath,
136  ConstVectorView ppath_p,
137  ConstVectorView ppath_t,
138  ConstMatrixView ppath_vmr,
139  ConstVectorView ppath_wind_u,
140  ConstVectorView ppath_wind_v,
141  ConstVectorView ppath_wind_w,
142  ConstVectorView f_grid,
143  const Index& atmosphere_dim,
144  const Index& emission_do );
145 
147  const Sparse& sensor_response,
148  const Index& imblock );
149 
151  Tensor3& iy_transmission,
152  const Index& stokes_dim,
153  ConstVectorView tau );
154 
156  Tensor3& iy_trans_new,
157  ConstTensor3View iy_transmission,
158  ConstTensor3View trans );
159 
161  Tensor3& iy_trans_new,
162  ConstTensor3View iy_transmission,
163  ConstVectorView tau );
164 
165 void iyb_calc(
166  Workspace& ws,
167  Vector& iyb,
168  Vector& iyb_error,
169  Index& iy_error_type,
170  Vector& iyb_aux,
171  ArrayOfMatrix& diyb_dx,
172  const Index& imblock,
173  const Index& atmosphere_dim,
174  ConstVectorView p_grid,
175  ConstVectorView lat_grid,
176  ConstVectorView lon_grid,
177  ConstTensor3View t_field,
178  ConstTensor3View z_field,
179  ConstTensor4View vmr_field,
180  const Index& cloudbox_on,
181  const Index& stokes_dim,
182  ConstVectorView f_grid,
183  ConstMatrixView sensor_pos,
184  ConstMatrixView sensor_los,
185  ConstVectorView mblock_za_grid,
186  ConstVectorView mblock_aa_grid,
187  const Index& antenna_dim,
188  const Agenda& iy_clearsky_agenda,
189  const String& y_unit,
190  const Index& j_analytical_do,
191  const ArrayOfRetrievalQuantity& jacobian_quantities,
192  const ArrayOfArrayOfIndex& jacobian_indices,
193  const Verbosity& verbosity );
194 
195 void mirror_los(
196  Vector& los_mirrored,
197  ConstVectorView los,
198  const Index& atmosphere_dim );
199 
200 void rte_step_std(
201  //Output and Input:
202  VectorView stokes_vec,
203  MatrixView trans_mat,
204  //Input
205  ConstMatrixView ext_mat_av,
206  ConstVectorView abs_vec_av,
207  ConstVectorView sca_vec_av,
208  const Numeric& l_step,
209  const Numeric& rte_planck_value );
210 
211 void surface_calc(
212  Matrix& iy,
213  const Tensor3& I,
214  const Matrix& surface_los,
215  const Tensor4& surface_rmatrix,
216  const Matrix& surface_emission );
217 
218 void trans_step_std(//Output and Input:
219  VectorView stokes_vec,
220  MatrixView trans_mat,
221  //Input
222  ConstMatrixView ext_mat_av,
223  const Numeric& l_step );
224 
225 #endif // rte_h
Matrix
The Matrix class.
Definition: matpackI.h:767
MatrixView
The MatrixView class.
Definition: matpackI.h:668
iy_transmission_mult
void iy_transmission_mult(Tensor3 &iy_trans_new, ConstTensor3View iy_transmission, ConstTensor3View trans)
iy_transmission_mult
Definition: rte.cc:929
Tensor3
The Tensor3 class.
Definition: matpackIII.h:340
iyb_calc
void iyb_calc(Workspace &ws, Vector &iyb, Vector &iyb_error, Index &iy_error_type, Vector &iyb_aux, ArrayOfMatrix &diyb_dx, const Index &imblock, const Index &atmosphere_dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View t_field, ConstTensor3View z_field, ConstTensor4View vmr_field, const Index &cloudbox_on, const Index &stokes_dim, ConstVectorView f_grid, ConstMatrixView sensor_pos, ConstMatrixView sensor_los, ConstVectorView mblock_za_grid, ConstVectorView mblock_aa_grid, const Index &antenna_dim, const Agenda &iy_clearsky_agenda, const String &y_unit, const Index &j_analytical_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfIndex &jacobian_indices, const Verbosity &verbosity)
iyb_calc
Definition: m_rte.cc:588
apply_y_unit
void apply_y_unit(MatrixView iy, const String &y_unit, ConstVectorView f_grid, const ArrayOfIndex &i_pol)
apply_y_unit
Definition: rte.cc:82
mirror_los
void mirror_los(Vector &los_mirrored, ConstVectorView los, const Index &atmosphere_dim)
mirror_los
Definition: rte.cc:1016
Sparse
The Sparse class.
Definition: matpackII.h:55
get_rowindex_for_mblock
Range get_rowindex_for_mblock(const Sparse &sensor_response, const Index &imblock)
get_rowindex_for_mblock
Definition: rte.cc:861
Tensor4
The Tensor4 class.
Definition: matpackIV.h:375
Ppath
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:59
Agenda
The Agenda class.
Definition: agenda_class.h:44
ConstTensor4View
A constant view of a Tensor4.
Definition: matpackIV.h:149
matpackI.h
complex.h
A class implementing complex numbers for ARTS.
Tensor3View
The Tensor3View class.
Definition: matpackIII.h:234
Array< Index >
get_ppath_cloudrtvars
void get_ppath_cloudrtvars(Workspace &ws, Tensor3 &ppath_asp_abs_vec, Tensor4 &ppath_asp_ext_mat, Tensor3 &ppath_pnd_abs_vec, Tensor4 &ppath_pnd_ext_mat, Tensor4 &ppath_transmission, Tensor3 &total_transmission, Matrix &ppath_emission, Array< ArrayOfSingleScatteringData > &scat_data, const Agenda &abs_scalar_gas_agenda, const Agenda &emission_agenda, const Agenda &opt_prop_gas_agenda, const Ppath &ppath, ConstVectorView ppath_p, ConstVectorView ppath_t, ConstMatrixView ppath_vmr, ConstVectorView ppath_wind_u, ConstVectorView ppath_wind_v, ConstVectorView ppath_wind_w, ConstMatrixView ppath_pnd, const Index &use_mean_scat_data, const ArrayOfSingleScatteringData &scat_data_raw, const Index &stokes_dim, ConstVectorView f_grid, const Index &atmosphere_dim, const Index &emission_do, const Verbosity &verbosity)
get_ppath_cloudrtvars
Definition: rte.cc:672
agenda_class.h
Declarations for agendas.
surface_calc
void surface_calc(Matrix &iy, const Tensor3 &I, const Matrix &surface_los, const Tensor4 &surface_rmatrix, const Matrix &surface_emission)
surface_calc
Definition: rte.cc:1245
get_ppath_pnd
void get_ppath_pnd(Matrix &ppath_pnd, const Ppath &ppath, const Index &atmosphere_dim, const ArrayOfIndex &cloudbox_limits, ConstTensor4View pnd_field)
get_ppath_pnd
Definition: rte.cc:479
my_basic_string
The implementation for String, the ARTS string class.
Definition: mystring.h:62
VectorView
The VectorView class.
Definition: matpackI.h:373
optproperties.h
Scattering database structure and functions.
jacobian.h
Declarations required for the calculation of jacobians.
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Verbosity
Definition: messages.h:50
matpackIII.h
iy_transmission_mult_scalar_tau
void iy_transmission_mult_scalar_tau(Tensor3 &iy_trans_new, ConstTensor3View iy_transmission, ConstVectorView tau)
iy_transmission_mult_scalar_tau
Definition: rte.cc:981
ext2trans
void ext2trans(MatrixView trans_mat, ConstMatrixView ext_mat_av, const Numeric &l_step)
ext2trans
Definition: rte.cc:301
ConstMatrixView
A constant view of a Matrix.
Definition: matpackI.h:591
trans_step_std
void trans_step_std(VectorView stokes_vec, MatrixView trans_mat, ConstMatrixView ext_mat_av, const Numeric &l_step)
trans_step_std
Definition: rte.cc:1300
Range
The range class.
Definition: matpackI.h:148
iy_transmission_for_scalar_tau
void iy_transmission_for_scalar_tau(Tensor3 &iy_transmission, const Index &stokes_dim, ConstVectorView tau)
iy_transmission_for_scalar_tau
Definition: rte.cc:885
ppath.h
Propagation path structure and functions.
Workspace
Workspace class.
Definition: workspace_ng.h:47
ConstTensor3View
A constant view of a Tensor3.
Definition: matpackIII.h:147
matpackII.h
Header file for sparse matrices.
get_ppath_rtvars
void get_ppath_rtvars(Workspace &ws, Tensor3 &ppath_abs_scalar, Matrix &ppath_tau, Vector &total_tau, Matrix &ppath_emission, const Agenda &abs_scalar_agenda, const Agenda &emission_agenda, const Ppath &ppath, ConstVectorView ppath_p, ConstVectorView ppath_t, ConstMatrixView ppath_vmr, ConstVectorView ppath_wind_u, ConstVectorView ppath_wind_v, ConstVectorView ppath_wind_w, ConstVectorView f_grid, const Index &atmosphere_dim, const Index &emission_do)
get_ppath_rtvars
Definition: rte.cc:531
get_ppath_atmvars
void get_ppath_atmvars(Vector &ppath_p, Vector &ppath_t, Matrix &ppath_vmr, Vector &ppath_wind_u, Vector &ppath_wind_v, Vector &ppath_wind_w, const Ppath &ppath, const Index &atmosphere_dim, ConstVectorView p_grid, ConstTensor3View t_field, ConstTensor4View vmr_field, ConstTensor3View wind_u_field, ConstTensor3View wind_v_field, ConstTensor3View wind_w_field)
get_ppath_atmvars
Definition: rte.cc:383
rte_step_std
void rte_step_std(VectorView stokes_vec, MatrixView trans_mat, ConstMatrixView ext_mat_av, ConstVectorView abs_vec_av, ConstVectorView sca_vec_av, const Numeric &l_step, const Numeric &rte_planck_value)
rte_step_std
Definition: rte.cc:1092
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
Vector
The Vector class.
Definition: matpackI.h:555
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:300
apply_y_unit2
void apply_y_unit2(Tensor3View J, ConstMatrixView iy, const String &y_unit, ConstVectorView f_grid, const ArrayOfIndex &i_pol)
apply_y_unit2
Definition: rte.cc:184
arts.h
The global header file for ARTS.