ARTS  2.4.0(git:4fb77825)
rte.h
Go to the documentation of this file.
1 /* Copyright (C) 2002-2012
2  Patrick Eriksson <Patrick.Eriksson@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  === File description
22  ===========================================================================*/
23 
32 #ifndef rte_h
33 #define rte_h
34 
35 /*===========================================================================
36  === External declarations
37  ===========================================================================*/
38 
39 #include "agenda_class.h"
40 #include "arts.h"
41 #include "auto_md.h"
42 #include "complex.h"
43 #include "jacobian.h"
44 #include "matpackI.h"
45 #include "matpackII.h"
46 #include "matpackIII.h"
47 #include "optproperties.h"
48 #include "ppath.h"
49 
50 /*===========================================================================
51  === Functions in rte.cc
52  ===========================================================================*/
53 
82  ArrayOfStokesVector& dS_dx,
84  ConstVectorView ppath_f_grid,
85  ConstVectorView ppath_line_of_sight,
86  ConstVectorView ppath_vmrs,
87  const Numeric& ppath_temperature,
88  const Numeric& ppath_pressure,
89  const ArrayOfIndex& jacobian_species,
90  const ArrayOfIndex& jacobian_wind,
91  const Index& lte,
92  const Index& atmosphere_dim,
93  const bool& jacobian_do);
94 
111 void adjust_los(VectorView los, const Index& atmosphere_dim);
112 
130  const String& iy_unit,
132  const Numeric& n,
133  const ArrayOfIndex& i_pol);
134 
154  const String& iy_unit,
156  const Numeric& n,
157  const ArrayOfIndex& i_pol);
158 
178 void bending_angle1d(Numeric& alpha, const Ppath& ppath);
179 
213  Numeric& dlf,
214  const Agenda& ppath_step_agenda,
215  const Index& atmosphere_dim,
223  const Ppath& ppath,
224  const Numeric& ppath_lmax,
225  const Numeric& ppath_lraytrace,
226  const Numeric& dza,
227  const Verbosity& verbosity);
228 
260  Numeric& dlf,
261  const Agenda& ppath_step_agenda,
262  const Index& atmosphere_dim,
270  const Ppath& ppath,
271  const Numeric& ppath_lmax,
272  const Numeric& ppath_lraytrace,
273  const Numeric& dza,
274  const Verbosity& verbosity);
275 
297  const Numeric& u,
298  const Numeric& v,
299  const Numeric& w,
300  const Index& atmosphere_dim);
301 
327 void ext2trans(MatrixView trans_mat,
328  Index& icase,
329  ConstMatrixView ext_mat_av,
330  const Numeric& l_step);
331 
351 void get_iy(Workspace& ws,
352  Matrix& iy,
353  const Index& cloudbox_on,
355  const EnergyLevelMap& nlte_field,
359  const String& iy_unit,
360  const Agenda& iy_main_agenda);
361 
393  Matrix& iy,
396  const Index& iy_id,
397  const Index& jacobian_do,
399  const Ppath& ppath,
401  const Index& atmosphere_dim,
402  const EnergyLevelMap& nlte_field,
403  const Index& cloudbox_on,
404  const Index& stokes_dim,
406  const String& iy_unit,
408  const Agenda& iy_main_agenda,
409  const Agenda& iy_space_agenda,
410  const Agenda& iy_surface_agenda,
411  const Agenda& iy_cloudbox_agenda,
412  const Index& iy_agenda_call1,
413  const Verbosity& verbosity);
414 
443 void get_ppath_atmvars(Vector& ppath_p,
444  Vector& ppath_t,
445  EnergyLevelMap& ppath_nlte,
446  Matrix& ppath_vmr,
447  Matrix& ppath_wind,
448  Matrix& ppath_mag,
449  const Ppath& ppath,
450  const Index& atmosphere_dim,
453  const EnergyLevelMap& nlte_field,
461 
477 void get_ppath_cloudvars(ArrayOfIndex& clear2cloudy,
478  Matrix& ppath_pnd,
479  ArrayOfMatrix& ppath_dpnd_dx,
480  const Ppath& ppath,
481  const Index& atmosphere_dim,
483  const Tensor4& pnd_field,
485 
500 void get_ppath_f(Matrix& ppath_f,
501  const Ppath& ppath,
503  const Index& atmosphere_dim,
504  const Numeric& rte_alonglos_v,
505  ConstMatrixView ppath_wind);
506 
518  const Index& imblock);
519 
532  VectorView dB_dT,
533  ConstVectorView ppath_f_grid,
534  const Numeric& ppath_temperature,
535  const bool& do_temperature_derivative);
536 
563  Workspace& ws,
565  StokesVector& S,
566  Index& lte,
568  ArrayOfStokesVector& dS_dx,
571  ConstVectorView ppath_f_grid,
572  ConstVectorView ppath_magnetic_field,
573  ConstVectorView ppath_line_of_sight,
574  const EnergyLevelMap& ppath_nlte,
575  ConstVectorView ppath_vmrs,
576  const Numeric& ppath_temperature,
577  const Numeric& ppath_pressure,
578  const ArrayOfIndex& jacobian_species,
579  const bool& jacobian_do);
580 
612  MatrixView J,
613  Tensor3View dJ_dx,
614  const PropagationMatrix& K,
615  const StokesVector& a,
616  const StokesVector& S,
617  const ArrayOfPropagationMatrix& dK_dx,
618  const ArrayOfStokesVector& da_dx,
619  const ArrayOfStokesVector& dS_dx,
620  ConstVectorView B,
621  ConstVectorView dB_dT,
623  const bool& jacobian_do);
624 
639 void get_stepwise_frequency_grid(VectorView ppath_f_grid,
641  ConstVectorView ppath_wind,
642  ConstVectorView ppath_line_of_sight,
643  const Numeric& rte_alonglos_v,
644  const Index& atmosphere_dim);
645 
658 void get_stepwise_f_partials(Vector& f_partials,
659  const Index& component,
660  ConstVectorView& ppath_line_of_sight,
662  const Index& atmosphere_dim);
663 
682  StokesVector& ap,
683  PropagationMatrix& Kp,
684  ArrayOfStokesVector& dap_dx,
685  ArrayOfPropagationMatrix& dKp_dx,
687  ConstMatrixView ppath_1p_pnd, // the ppath_pnd at this ppath point
688  const ArrayOfMatrix&
689  ppath_dpnd_dx, // the full ppath_dpnd_dx, ie all ppath points
690  const Index ppath_1p_id,
692  ConstVectorView ppath_line_of_sight,
693  ConstVectorView ppath_temperature,
694  const Index& atmosphere_dim,
695  const bool& jacobian_do);
696 
710  StokesVector& Sp,
711  ArrayOfStokesVector& dSp_dx,
713  ConstVectorView ppath_1p_pnd,
714  const ArrayOfMatrix& ppath_dpnd_dx,
715  const Index ppath_1p_id,
720  ConstMatrixView ppath_line_of_sight,
721  const GridPos& ppath_pressure,
722  const Vector& temperature,
723  const Index& atmosphere_dim,
724  const bool& jacobian_do,
725  const Index& t_interp_order = 1);
726 
751  Tensor3View T,
752  Tensor4View dT_dx_close,
753  Tensor4View dT_dx_far,
754  ConstTensor3View cumulative_transmission_close,
755  const PropagationMatrix& K_close,
756  const PropagationMatrix& K_far,
757  const ArrayOfPropagationMatrix& dK_close_dx,
758  const ArrayOfPropagationMatrix& dK_far_dx,
759  const Numeric& ppath_distance,
760  const bool& first_level,
761  const Numeric& dr_dT_close = 0,
762  const Numeric& dr_dT_far = 0,
763  const Index& it = -1);
764 
771 void iyb_calc(Workspace& ws,
772  Vector& iyb,
773  ArrayOfVector& iyb_aux,
774  ArrayOfMatrix& diyb_dx,
775  Matrix& geo_pos_matrix,
776  const Index& imblock,
777  const Index& atmosphere_dim,
778  const EnergyLevelMap& nlte_field,
779  const Index& cloudbox_on,
780  const Index& stokes_dim,
786  const String& iy_unit,
787  const Agenda& iy_main_agenda,
788  const Agenda& geo_pos_agenda,
789  const Index& j_analytical_do,
791  const ArrayOfArrayOfIndex& jacobian_indices,
792  const ArrayOfString& iy_aux_vars,
793  const Verbosity& verbosity);
794 
818 void iy_transmission_mult(Tensor3& iy_trans_total,
819  ConstTensor3View iy_trans_old,
820  ConstTensor3View iy_trans_new);
821 
840 void iy_transmission_mult(Matrix& iy_new,
841  ConstTensor3View iy_trans,
842  ConstMatrixView iy_old);
843 
859 void mirror_los(Vector& los_mirrored,
860  ConstVectorView los,
861  const Index& atmosphere_dim);
862 
880  Numeric& lon,
881  const Index& atmosphere_dim,
885  ConstVectorView pos);
886 
896  ArrayOfIndex& jac_species_i,
897  ArrayOfIndex& jac_scat_i,
898  ArrayOfIndex& jac_is_t,
899  ArrayOfIndex& jac_wind_i,
900  ArrayOfIndex& jac_mag_i,
901  ArrayOfIndex& jac_other,
903  ArrayOfTensor3& diy_dpath,
904  const Index& ns,
905  const Index& nf,
906  const Index& np,
907  const Index& nq,
909  const Index& cloudbox_on,
913  const Index& iy_agenda_call1,
914  const bool is_active = false);
915 
926  Workspace& ws,
928  ArrayOfTensor3& diy_dpath,
929  const Index& ns,
930  const Index& nf,
931  const Index& np,
932  const Index& atmosphere_dim,
933  const Ppath& ppath,
934  const Vector& ppvar_p,
935  const Vector& ppvar_t,
936  const Matrix& ppvar_vmr,
937  const Index& iy_agenda_call1,
938  const Tensor3& iy_transmission,
939  const Agenda& water_p_eq_agenda,
941  const ArrayOfIndex jac_species_i,
942  const ArrayOfIndex jac_is_t);
943 
955  Matrix& iy,
957  Tensor3& ppvar_iy,
958  const Index& ns,
959  const Index& np,
960  const Vector& f_grid,
961  const Ppath& ppath,
963  const Index& j_analytical_do,
964  const String& iy_unit);
965 
970 void yCalc_mblock_loop_body(bool& failed,
971  String& fail_msg,
972  ArrayOfArrayOfVector& iyb_aux_array,
973  Workspace& ws,
974  Vector& y,
975  Vector& y_f,
977  Matrix& y_pos,
978  Matrix& y_los,
979  Matrix& y_geo,
980  Matrix& jacobian,
981  const Index& atmosphere_dim,
982  const EnergyLevelMap& nlte_field,
983  const Index& cloudbox_on,
984  const Index& stokes_dim,
985  const Vector& f_grid,
986  const Matrix& sensor_pos,
987  const Matrix& sensor_los,
988  const Matrix& transmitter_pos,
989  const Matrix& mblock_dlos_grid,
990  const Sparse& sensor_response,
991  const Vector& sensor_response_f,
994  const String& iy_unit,
995  const Agenda& iy_main_agenda,
996  const Agenda& geo_pos_agenda,
997  const Agenda& jacobian_agenda,
998  const Index& jacobian_do,
1000  const ArrayOfArrayOfIndex& jacobian_indices,
1001  const ArrayOfString& iy_aux_vars,
1002  const Verbosity& verbosity,
1003  const Index& mblock_index,
1004  const Index& n1y,
1005  const Index& j_analytical_do);
1006 
1023 void ze_cfac(Vector& fac,
1024  const Vector& f_grid,
1025  const Numeric& ze_tref,
1026  const Numeric& k2);
1027 
1028 #endif // rte_h
Matrix
The Matrix class.
Definition: matpackI.h:1193
ARTS::Var::y_pos
Matrix y_pos(Workspace &ws) noexcept
Definition: autoarts.h:7531
ARTS::Var::atmosphere_dim
Index atmosphere_dim(Workspace &ws) noexcept
Definition: autoarts.h:2510
ARTS::Var::wind_v_field
Tensor3 wind_v_field(Workspace &ws) noexcept
Definition: autoarts.h:7246
ARTS::Var::z_field
Tensor3 z_field(Workspace &ws) noexcept
Definition: autoarts.h:7690
apply_iy_unit2
void apply_iy_unit2(Tensor3View J, ConstMatrixView iy, const String &iy_unit, ConstVectorView f_grid, const Numeric &n, const ArrayOfIndex &i_pol)
Largely as apply_iy_unit but operates on jacobian data.
Definition: rte.cc:238
fac
Numeric fac(const Index n)
fac
Definition: math_funcs.cc:63
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
ARTS::Var::lat
Numeric lat(Workspace &ws) noexcept
Definition: autoarts.h:3933
yCalc_mblock_loop_body
void yCalc_mblock_loop_body(bool &failed, String &fail_msg, ArrayOfArrayOfVector &iyb_aux_array, Workspace &ws, Vector &y, Vector &y_f, ArrayOfIndex &y_pol, Matrix &y_pos, Matrix &y_los, Matrix &y_geo, Matrix &jacobian, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, const Vector &f_grid, const Matrix &sensor_pos, const Matrix &sensor_los, const Matrix &transmitter_pos, const Matrix &mblock_dlos_grid, const Sparse &sensor_response, const Vector &sensor_response_f, const ArrayOfIndex &sensor_response_pol, const Matrix &sensor_response_dlos, const String &iy_unit, const Agenda &iy_main_agenda, const Agenda &geo_pos_agenda, const Agenda &jacobian_agenda, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfIndex &jacobian_indices, const ArrayOfString &iy_aux_vars, const Verbosity &verbosity, const Index &mblock_index, const Index &n1y, const Index &j_analytical_do)
Performs calculations for one measurement block, on y-level.
Definition: rte.cc:2595
get_iy_of_background
void get_iy_of_background(Workspace &ws, Matrix &iy, ArrayOfTensor3 &diy_dx, ConstTensor3View iy_transmission, const Index &iy_id, const Index &jacobian_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const Ppath &ppath, ConstVectorView rte_pos2, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, ConstVectorView f_grid, const String &iy_unit, ConstTensor3View surface_props_data, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Agenda &iy_cloudbox_agenda, const Index &iy_agenda_call1, const Verbosity &verbosity)
Determines iy of the "background" of a propgation path.
Definition: rte.cc:916
auto_md.h
ARTS::Var::iy_cloudbox_agenda
Agenda iy_cloudbox_agenda(Workspace &ws) noexcept
Definition: autoarts.h:3742
ARTS::Var::jacobian_quantities
ArrayOfRetrievalQuantity jacobian_quantities(Workspace &ws) noexcept
Definition: autoarts.h:3924
adjust_los
void adjust_los(VectorView los, const Index &atmosphere_dim)
Ensures that the zenith and azimuth angles of a line-of-sight vector are inside defined ranges.
Definition: rte.cc:140
w
Complex w(Complex z) noexcept
The Faddeeva function.
Definition: linefunctions.cc:42
ARTS::Var::transmitter_pos
Matrix transmitter_pos(Workspace &ws) noexcept
Definition: autoarts.h:7093
Tensor3
The Tensor3 class.
Definition: matpackIII.h:339
ARTS::Var::ppvar_vmr
Matrix ppvar_vmr(Workspace &ws) noexcept
Definition: autoarts.h:5372
ARTS::Var::iy_transmission
Tensor3 iy_transmission(Workspace &ws) noexcept
Definition: autoarts.h:3836
ARTS::Var::sensor_response
Sparse sensor_response(Workspace &ws) noexcept
Definition: autoarts.h:6300
ARTS::Var::lat_grid
Vector lat_grid(Workspace &ws) noexcept
Definition: autoarts.h:3962
ConstTensor7View
A constant view of a Tensor7.
Definition: matpackVII.h:147
ARTS::Var::pnd_field
Tensor4 pnd_field(Workspace &ws) noexcept
Definition: autoarts.h:5081
ARTS::Var::iy_id
Index iy_id(Workspace &ws) noexcept
Definition: autoarts.h:3775
defocusing_sat2sat
void defocusing_sat2sat(Workspace &ws, Numeric &dlf, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstVectorView f_grid, ConstVectorView refellipsoid, ConstMatrixView z_surface, const Ppath &ppath, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Numeric &dza, const Verbosity &verbosity)
Calculates defocusing for limb measurements between two satellites.
Definition: rte.cc:613
ARTS::Var::verbosity
Verbosity verbosity(Workspace &ws) noexcept
Definition: autoarts.h:7112
ARTS::Var::ppvar_iy
Tensor3 ppvar_iy(Workspace &ws) noexcept
Definition: autoarts.h:5246
mirror_los
void mirror_los(Vector &los_mirrored, ConstVectorView los, const Index &atmosphere_dim)
Determines the backward direction for a given line-of-sight.
Definition: rte.cc:2290
Sparse
The Sparse class.
Definition: matpackII.h:60
apply_iy_unit
void apply_iy_unit(MatrixView iy, const String &iy_unit, ConstVectorView f_grid, const Numeric &n, const ArrayOfIndex &i_pol)
Performs conversion from radiance to other units, as well as applies refractive index to fulfill the ...
Definition: rte.cc:163
ARTS::Var::cloudbox_limits
ArrayOfIndex cloudbox_limits(Workspace &ws) noexcept
Definition: autoarts.h:2762
ARTS::Var::jacobian_do
Index jacobian_do(Workspace &ws) noexcept
Definition: autoarts.h:3912
get_rowindex_for_mblock
Range get_rowindex_for_mblock(const Sparse &sensor_response, const Index &imblock)
Returns the "range" of y corresponding to a measurement block.
Definition: rte.cc:1301
ARTS::Var::wind_u_field
Tensor3 wind_u_field(Workspace &ws) noexcept
Definition: autoarts.h:7211
ARTS::Var::y
Vector y(Workspace &ws) noexcept
Definition: autoarts.h:7401
PropagationMatrix
Definition: propagationmatrix.h:87
ARTS::Var::diy_dx
ArrayOfTensor3 diy_dx(Workspace &ws) noexcept
Definition: autoarts.h:3007
ARTS::Var::y_los
Matrix y_los(Workspace &ws) noexcept
Definition: autoarts.h:7498
ARTS::Var::mag_w_field
Tensor3 mag_w_field(Workspace &ws) noexcept
Definition: autoarts.h:4197
ARTS::Var::stokes_dim
Index stokes_dim(Workspace &ws) noexcept
Definition: autoarts.h:6650
iyb_calc
void iyb_calc(Workspace &ws, Vector &iyb, ArrayOfVector &iyb_aux, ArrayOfMatrix &diyb_dx, Matrix &geo_pos_matrix, const Index &imblock, const Index &atmosphere_dim, const EnergyLevelMap &nlte_field, const Index &cloudbox_on, const Index &stokes_dim, ConstVectorView f_grid, ConstMatrixView sensor_pos, ConstMatrixView sensor_los, ConstMatrixView transmitter_pos, ConstMatrixView mblock_dlos_grid, const String &iy_unit, const Agenda &iy_main_agenda, const Agenda &geo_pos_agenda, const Index &j_analytical_do, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfArrayOfIndex &jacobian_indices, const ArrayOfString &iy_aux_vars, const Verbosity &verbosity)
Performs calculations for one measurement block, on iy-level.
Definition: rte.cc:2051
ARTS::Var::iy_unit
String iy_unit(Workspace &ws) noexcept
Definition: autoarts.h:3856
ext2trans
void ext2trans(MatrixView trans_mat, Index &icase, ConstMatrixView ext_mat_av, const Numeric &l_step)
Converts an extinction matrix to a transmission matrix.
Definition: rte.cc:800
ARTS::Var::iy
Matrix iy(Workspace &ws) noexcept
Definition: autoarts.h:3690
get_stepwise_frequency_grid
void get_stepwise_frequency_grid(VectorView ppath_f_grid, ConstVectorView f_grid, ConstVectorView ppath_wind, ConstVectorView ppath_line_of_sight, const Numeric &rte_alonglos_v, const Index &atmosphere_dim)
Inverse of get_stepwise_f_partials.
Definition: rte.cc:1521
Tensor4
The Tensor4 class.
Definition: matpackIV.h:421
adapt_stepwise_partial_derivatives
void adapt_stepwise_partial_derivatives(ArrayOfPropagationMatrix &dK_dx, ArrayOfStokesVector &dS_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, ConstVectorView ppath_f_grid, ConstVectorView ppath_line_of_sight, ConstVectorView ppath_vmrs, const Numeric &ppath_temperature, const Numeric &ppath_pressure, const ArrayOfIndex &jacobian_species, const ArrayOfIndex &jacobian_wind, const Index &lte, const Index &atmosphere_dim, const bool &jacobian_do)
Adapts clearsky partial derivatives.
Definition: rte.cc:59
ARTS::Var::iy_space_agenda
Agenda iy_space_agenda(Workspace &ws) noexcept
Definition: autoarts.h:3801
Ppath
The structure to describe a propagation path and releated quantities.
Definition: ppath.h:48
get_stepwise_f_partials
void get_stepwise_f_partials(Vector &f_partials, const Index &component, ConstVectorView &ppath_line_of_sight, ConstVectorView f_grid, const Index &atmosphere_dim)
Computes the ratio that a partial derivative with regards to frequency relates to the wind of come co...
Definition: rte.cc:1541
Agenda
The Agenda class.
Definition: agenda_class.h:44
defocusing_general
void defocusing_general(Workspace &ws, Numeric &dlf, const Agenda &ppath_step_agenda, const Index &atmosphere_dim, ConstVectorView p_grid, ConstVectorView lat_grid, ConstVectorView lon_grid, ConstTensor3View z_field, ConstVectorView f_grid, ConstVectorView refellipsoid, ConstMatrixView z_surface, const Ppath &ppath, const Numeric &ppath_lmax, const Numeric &ppath_lraytrace, const Numeric &dza, const Verbosity &verbosity)
Defocusing for arbitrary geometry (zenith angle part only)
Definition: rte.cc:494
ARTS::Var::lon
Numeric lon(Workspace &ws) noexcept
Definition: autoarts.h:4064
dotprod_with_los
Numeric dotprod_with_los(ConstVectorView los, const Numeric &u, const Numeric &v, const Numeric &w, const Index &atmosphere_dim)
Calculates the dot product between a field and a LOS.
Definition: rte.cc:730
ARTS::Var::lon_true
Vector lon_true(Workspace &ws) noexcept
Definition: autoarts.h:4113
ConstTensor4View
A constant view of a Tensor4.
Definition: matpackIV.h:133
matpackI.h
Implementation of Matrix, Vector, and such stuff.
complex.h
A class implementing complex numbers for ARTS.
Tensor3View
The Tensor3View class.
Definition: matpackIII.h:239
ARTS::Var::rte_alonglos_v
Numeric rte_alonglos_v(Workspace &ws) noexcept
Definition: autoarts.h:5628
ARTS::Var::nlte_field
EnergyLevelMap nlte_field(Workspace &ws) noexcept
Definition: autoarts.h:4604
ze_cfac
void ze_cfac(Vector &fac, const Vector &f_grid, const Numeric &ze_tref, const Numeric &k2)
Calculates factor to convert back-scattering to Ze.
Definition: rte.cc:2736
Array
This can be used to make arrays out of anything.
Definition: array.h:108
ARTS::Var::sensor_response_f
Vector sensor_response_f(Workspace &ws) noexcept
Definition: autoarts.h:6376
iy_transmission_mult
void iy_transmission_mult(Tensor3 &iy_trans_total, ConstTensor3View iy_trans_old, ConstTensor3View iy_trans_new)
Multiplicates iy_transmission with transmissions.
Definition: rte.cc:2253
rtmethods_unit_conversion
void rtmethods_unit_conversion(Matrix &iy, ArrayOfTensor3 &diy_dx, Tensor3 &ppvar_iy, const Index &ns, const Index &np, const Vector &f_grid, const Ppath &ppath, const ArrayOfRetrievalQuantity &jacobian_quantities, const Index &j_analytical_do, const String &iy_unit)
This function handles the unit conversion to be done at the end of some radiative transfer WSMs.
Definition: rte.cc:2553
agenda_class.h
Declarations for agendas.
ARTS::Var::rte_pos
Vector rte_pos(Workspace &ws) noexcept
Definition: autoarts.h:5672
get_stepwise_scattersky_source
void get_stepwise_scattersky_source(StokesVector &Sp, ArrayOfStokesVector &dSp_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, ConstVectorView ppath_1p_pnd, const ArrayOfMatrix &ppath_dpnd_dx, const Index ppath_1p_id, const ArrayOfArrayOfSingleScatteringData &scat_data, ConstTensor7View cloudbox_field, ConstVectorView za_grid, ConstVectorView aa_grid, ConstMatrixView ppath_line_of_sight, const GridPos &ppath_pressure, const Vector &temperature, const Index &atmosphere_dim, const bool &jacobian_do, const Index &t_interp_order=1)
Calculates the stepwise scattering source terms.
Definition: rte.cc:1708
ARTS::Var::y_f
Vector y_f(Workspace &ws) noexcept
Definition: autoarts.h:7466
my_basic_string< char >
ARTS::Var::y_pol
ArrayOfIndex y_pol(Workspace &ws) noexcept
Definition: autoarts.h:7515
VectorView
The VectorView class.
Definition: matpackI.h:610
ARTS::Var::vmr_field
Tensor4 vmr_field(Workspace &ws) noexcept
Definition: autoarts.h:7130
ARTS::Var::rte_los
Vector rte_los(Workspace &ws) noexcept
Definition: autoarts.h:5651
ARTS::Var::abs_species
ArrayOfArrayOfSpeciesTag abs_species(Workspace &ws) noexcept
Definition: autoarts.h:2157
ARTS::Var::ppvar_t
Vector ppvar_t(Workspace &ws) noexcept
Definition: autoarts.h:5330
ARTS::Var::p_grid
Vector p_grid(Workspace &ws) noexcept
Definition: autoarts.h:4763
ARTS::Var::ppath
Ppath ppath(Workspace &ws) noexcept
Definition: autoarts.h:5139
optproperties.h
Scattering database structure and functions.
ARTS::Var::surface_props_data
Tensor3 surface_props_data(Workspace &ws) noexcept
Definition: autoarts.h:6745
jacobian.h
Routines for setting up the jacobian.
Numeric
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Verbosity
Definition: messages.h:49
ARTS::Var::iyb
Vector iyb(Workspace &ws) noexcept
Definition: autoarts.h:3873
get_ppath_cloudvars
void get_ppath_cloudvars(ArrayOfIndex &clear2cloudy, Matrix &ppath_pnd, ArrayOfMatrix &ppath_dpnd_dx, const Ppath &ppath, const Index &atmosphere_dim, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const ArrayOfTensor4 &dpnd_field_dx)
Determines the particle fields along a propagation path.
Definition: rte.cc:1153
matpackIII.h
ARTS::Var::iy_agenda_call1
Index iy_agenda_call1(Workspace &ws) noexcept
Definition: autoarts.h:3704
ARTS::Var::refellipsoid
Vector refellipsoid(Workspace &ws) noexcept
Definition: autoarts.h:5519
ARTS::Var::iy_aux_vars
ArrayOfString iy_aux_vars(Workspace &ws) noexcept
Definition: autoarts.h:3735
ARTS::Var::f_grid
Vector f_grid(Workspace &ws) noexcept
Definition: autoarts.h:3449
ARTS::Var::lat_true
Vector lat_true(Workspace &ws) noexcept
Definition: autoarts.h:3985
ARTS::Var::sensor_pos
Matrix sensor_pos(Workspace &ws) noexcept
Definition: autoarts.h:6279
EnergyLevelMap
Definition: energylevelmap.h:60
ARTS::Var::scat_data
ArrayOfArrayOfSingleScatteringData scat_data(Workspace &ws) noexcept
Definition: autoarts.h:5840
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::dpnd_field_dx
ArrayOfTensor4 dpnd_field_dx(Workspace &ws) noexcept
Definition: autoarts.h:3251
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
ARTS::Var::iy_surface_agenda
Agenda iy_surface_agenda(Workspace &ws) noexcept
Definition: autoarts.h:3808
cumulative_transmission
ArrayOfTransmissionMatrix cumulative_transmission(const ArrayOfTransmissionMatrix &T, const CumulativeTransmission type)
Accumulate the transmission matrix over all layers.
Definition: transmissionmatrix.cc:1527
get_ppath_atmvars
void get_ppath_atmvars(Vector &ppath_p, Vector &ppath_t, EnergyLevelMap &ppath_nlte, Matrix &ppath_vmr, Matrix &ppath_wind, Matrix &ppath_mag, const Ppath &ppath, const Index &atmosphere_dim, ConstVectorView p_grid, ConstTensor3View t_field, const EnergyLevelMap &nlte_field, ConstTensor4View vmr_field, ConstTensor3View wind_u_field, ConstTensor3View wind_v_field, ConstTensor3View wind_w_field, ConstTensor3View mag_u_field, ConstTensor3View mag_v_field, ConstTensor3View mag_w_field)
Determines pressure, temperature, VMR, winds and magnetic field for each propgataion path point.
Definition: rte.cc:1034
ARTS::Var::mblock_dlos_grid
Matrix mblock_dlos_grid(Workspace &ws) noexcept
Definition: autoarts.h:4247
Range
The range class.
Definition: matpackI.h:160
ARTS::Var::sensor_response_pol
ArrayOfIndex sensor_response_pol(Workspace &ws) noexcept
Definition: autoarts.h:6411
GridPos
Structure to store a grid position.
Definition: interpolation.h:73
bending_angle1d
void bending_angle1d(Numeric &alpha, const Ppath &ppath)
Calculates the bending angle for a 1D atmosphere.
Definition: rte.cc:327
ppath.h
Propagation path structure and functions.
ARTS::Var::geo_pos_agenda
Agenda geo_pos_agenda(Workspace &ws) noexcept
Definition: autoarts.h:3551
get_ppath_f
void get_ppath_f(Matrix &ppath_f, const Ppath &ppath, ConstVectorView f_grid, const Index &atmosphere_dim, const Numeric &rte_alonglos_v, ConstMatrixView ppath_wind)
Determines the Doppler shifted frequencies along the propagation path.
Definition: rte.cc:1257
ARTS::Var::iy_main_agenda
Agenda iy_main_agenda(Workspace &ws) noexcept
Definition: autoarts.h:3794
ARTS::Var::rte_pos2
Vector rte_pos2(Workspace &ws) noexcept
Definition: autoarts.h:5696
get_stepwise_transmission_matrix
void get_stepwise_transmission_matrix(Tensor3View cumulative_transmission, Tensor3View T, Tensor4View dT_dx_close, Tensor4View dT_dx_far, ConstTensor3View cumulative_transmission_close, const PropagationMatrix &K_close, const PropagationMatrix &K_far, const ArrayOfPropagationMatrix &dK_close_dx, const ArrayOfPropagationMatrix &dK_far_dx, const Numeric &ppath_distance, const bool &first_level, const Numeric &dr_dT_close=0, const Numeric &dr_dT_far=0, const Index &it=-1)
Computes layer transmission matrix and cumulative transmission.
Definition: rte.cc:1879
get_stepwise_scattersky_propmat
void get_stepwise_scattersky_propmat(StokesVector &ap, PropagationMatrix &Kp, ArrayOfStokesVector &dap_dx, ArrayOfPropagationMatrix &dKp_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, ConstMatrixView ppath_1p_pnd, const ArrayOfMatrix &ppath_dpnd_dx, const Index ppath_1p_id, const ArrayOfArrayOfSingleScatteringData &scat_data, ConstVectorView ppath_line_of_sight, ConstVectorView ppath_temperature, const Index &atmosphere_dim, const bool &jacobian_do)
Computes the contribution by scattering at propagation path point.
Definition: rte.cc:1591
ARTS::Var::mag_v_field
Tensor3 mag_v_field(Workspace &ws) noexcept
Definition: autoarts.h:4164
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
matpackII.h
Header file for sparse matrices.
ARTS::Var::wind_w_field
Tensor3 wind_w_field(Workspace &ws) noexcept
Definition: autoarts.h:7279
ARTS::Var::cloudbox_field
Tensor7 cloudbox_field(Workspace &ws) noexcept
Definition: autoarts.h:2676
get_stepwise_blackbody_radiation
void get_stepwise_blackbody_radiation(VectorView B, VectorView dB_dT, ConstVectorView ppath_f_grid, const Numeric &ppath_temperature, const bool &do_temperature_derivative)
Get the blackbody radiation at propagation path point.
Definition: rte.cc:1307
ARTS::Var::propmat_clearsky_agenda
Agenda propmat_clearsky_agenda(Workspace &ws) noexcept
Definition: autoarts.h:5405
get_iy
void get_iy(Workspace &ws, Matrix &iy, const Index &cloudbox_on, ConstVectorView f_grid, const EnergyLevelMap &nlte_field, ConstVectorView rte_pos, ConstVectorView rte_los, ConstVectorView rte_pos2, const String &iy_unit, const Agenda &iy_main_agenda)
Basic call of iy_main_agenda.
Definition: rte.cc:877
ARTS::Var::jacobian
Matrix jacobian(Workspace &ws) noexcept
Definition: autoarts.h:3892
Index
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
ARTS::Var::sensor_response_dlos
Matrix sensor_response_dlos(Workspace &ws) noexcept
Definition: autoarts.h:6340
rtmethods_jacobian_init
void rtmethods_jacobian_init(ArrayOfIndex &jac_species_i, ArrayOfIndex &jac_scat_i, ArrayOfIndex &jac_is_t, ArrayOfIndex &jac_wind_i, ArrayOfIndex &jac_mag_i, ArrayOfIndex &jac_other, ArrayOfTensor3 &diy_dx, ArrayOfTensor3 &diy_dpath, const Index &ns, const Index &nf, const Index &np, const Index &nq, const ArrayOfArrayOfSpeciesTag &abs_species, const Index &cloudbox_on, const ArrayOfString &scat_species, const ArrayOfTensor4 &dpnd_field_dx, const ArrayOfRetrievalQuantity &jacobian_quantities, const Index &iy_agenda_call1, const bool is_active=false)
This function fixes the initial steps around Jacobian calculations, to be done inside radiative trans...
Definition: rte.cc:2348
ARTS::Var::scat_species
ArrayOfString scat_species(Workspace &ws) noexcept
Definition: autoarts.h:6086
get_stepwise_effective_source
void get_stepwise_effective_source(MatrixView J, Tensor3View dJ_dx, const PropagationMatrix &K, const StokesVector &a, const StokesVector &S, const ArrayOfPropagationMatrix &dK_dx, const ArrayOfStokesVector &da_dx, const ArrayOfStokesVector &dS_dx, ConstVectorView B, ConstVectorView dB_dT, const ArrayOfRetrievalQuantity &jacobian_quantities, const bool &jacobian_do)
Gets the effective source at propagation path point.
Definition: rte.cc:1427
ARTS::Var::mag_u_field
Tensor3 mag_u_field(Workspace &ws) noexcept
Definition: autoarts.h:4130
ARTS::Var::mblock_index
Index mblock_index(Workspace &ws) noexcept
Definition: autoarts.h:4258
Vector
The Vector class.
Definition: matpackI.h:860
ARTS::Var::jacobian_agenda
Agenda jacobian_agenda(Workspace &ws) noexcept
Definition: autoarts.h:3899
ARTS::Var::ppvar_p
Vector ppvar_p(Workspace &ws) noexcept
Definition: autoarts.h:5304
ARTS::Var::aa_grid
Vector aa_grid(Workspace &ws) noexcept
Definition: autoarts.h:1717
ARTS::Var::water_p_eq_agenda
Agenda water_p_eq_agenda(Workspace &ws) noexcept
Definition: autoarts.h:7165
ConstVectorView
A constant view of a Vector.
Definition: matpackI.h:476
ARTS::Var::sensor_los
Matrix sensor_los(Workspace &ws) noexcept
Definition: autoarts.h:6201
ARTS::Var::y_geo
Matrix y_geo(Workspace &ws) noexcept
Definition: autoarts.h:7480
pos2true_latlon
void pos2true_latlon(Numeric &lat, Numeric &lon, const Index &atmosphere_dim, ConstVectorView lat_grid, ConstVectorView lat_true, ConstVectorView lon_true, ConstVectorView pos)
Determines the true alt and lon for an "ARTS position".
Definition: rte.cc:2314
get_stepwise_clearsky_propmat
void get_stepwise_clearsky_propmat(Workspace &ws, PropagationMatrix &K, StokesVector &S, Index &lte, ArrayOfPropagationMatrix &dK_dx, ArrayOfStokesVector &dS_dx, const Agenda &propmat_clearsky_agenda, const ArrayOfRetrievalQuantity &jacobian_quantities, ConstVectorView ppath_f_grid, ConstVectorView ppath_magnetic_field, ConstVectorView ppath_line_of_sight, const EnergyLevelMap &ppath_nlte, ConstVectorView ppath_vmrs, const Numeric &ppath_temperature, const Numeric &ppath_pressure, const ArrayOfIndex &jacobian_species, const bool &jacobian_do)
Gets the clearsky propgation matrix and NLTE contributions.
Definition: rte.cc:1322
ARTS::Var::z_surface
Matrix z_surface(Workspace &ws) noexcept
Definition: autoarts.h:7754
ns
#define ns
Definition: legacy_continua.cc:22183
arts.h
The global header file for ARTS.
ARTS::Var::cloudbox_on
Index cloudbox_on(Workspace &ws) noexcept
Definition: autoarts.h:2782
rtmethods_jacobian_finalisation
void rtmethods_jacobian_finalisation(Workspace &ws, ArrayOfTensor3 &diy_dx, ArrayOfTensor3 &diy_dpath, const Index &ns, const Index &nf, const Index &np, const Index &atmosphere_dim, const Ppath &ppath, const Vector &ppvar_p, const Vector &ppvar_t, const Matrix &ppvar_vmr, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Agenda &water_p_eq_agenda, const ArrayOfRetrievalQuantity &jacobian_quantities, const ArrayOfIndex jac_species_i, const ArrayOfIndex jac_is_t)
This function fixes the last steps to made on the Jacobian in some radiative transfer WSMs.
Definition: rte.cc:2416