ARTS
2.2.66
|
Workspace functions associated with the FOS scattering scheme. More...
#include <cmath>
#include <stdexcept>
#include "arts.h"
#include "arts_omp.h"
#include "auto_md.h"
#include "doit.h"
#include "math_funcs.h"
#include "montecarlo.h"
#include "rte.h"
Go to the source code of this file.
Functions | |
void | fos (Workspace &ws, Matrix &iy, ArrayOfTensor4 &iy_aux, Ppath &ppath, ArrayOfTensor3 &diy_dx, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &z_field, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfArrayOfSpeciesTag &abs_species, const Tensor3 &wind_u_field, const Tensor3 &wind_v_field, const Tensor3 &wind_w_field, const Tensor3 &mag_u_field, const Tensor3 &mag_v_field, const Tensor3 &mag_w_field, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const Index &use_mean_scat_data, const ArrayOfSingleScatteringData &scat_data_array, const Matrix &particle_masses, const String &iy_unit, const ArrayOfString &iy_aux_vars, const Index &jacobian_do, const Agenda &ppath_agenda, const Agenda &blackbody_radiation_agenda, const Agenda &propmat_clearsky_agenda, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Numeric &rte_alonglos_v, const Numeric &ppath_lraytrace, const Matrix &fos_scatint_angles, const Vector &fos_iyin_za_angles, const Index &fos_za_interporder, const Index &fos_n, const Index &fos_i, const Verbosity &verbosity) |
void | iyFOS (Workspace &ws, Matrix &iy, ArrayOfTensor4 &iy_aux, Ppath &ppath, ArrayOfTensor3 &diy_dx, const Index &stokes_dim, const Vector &f_grid, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &z_field, const Tensor3 &t_field, const Tensor4 &vmr_field, const ArrayOfArrayOfSpeciesTag &abs_species, const Tensor3 &wind_u_field, const Tensor3 &wind_v_field, const Tensor3 &wind_w_field, const Tensor3 &mag_u_field, const Tensor3 &mag_v_field, const Tensor3 &mag_w_field, const Index &cloudbox_on, const ArrayOfIndex &cloudbox_limits, const Tensor4 &pnd_field, const Index &use_mean_scat_data, const ArrayOfSingleScatteringData &scat_data_array, const Matrix &particle_masses, const String &iy_unit, const ArrayOfString &iy_aux_vars, const Index &jacobian_do, const Agenda &ppath_agenda, const Agenda &blackbody_radiation_agenda, const Agenda &propmat_clearsky_agenda, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Index &iy_agenda_call1, const Tensor3 &iy_transmission, const Vector &rte_pos, const Vector &rte_los, const Vector &rte_pos2, const Numeric &rte_alonglos_v, const Numeric &ppath_lraytrace, const Matrix &fos_scatint_angles, const Vector &fos_iyin_za_angles, const Index &fos_za_interporder, const Index &fos_n, const Verbosity &verbosity) |
WORKSPACE METHOD: iyFOS. More... | |
Variables | |
const Numeric | DEG2RAD |
const Numeric | RAD2DEG |
const Numeric | PI |
Workspace functions associated with the FOS scattering scheme.
These functions are listed in the doxygen documentation as entries of the file auto_md.h.
Definition in file m_fos.cc.
void fos | ( | Workspace & | ws, |
Matrix & | iy, | ||
ArrayOfTensor4 & | iy_aux, | ||
Ppath & | ppath, | ||
ArrayOfTensor3 & | diy_dx, | ||
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const Index & | atmosphere_dim, | ||
const Vector & | p_grid, | ||
const Tensor3 & | z_field, | ||
const Tensor3 & | t_field, | ||
const Tensor4 & | vmr_field, | ||
const ArrayOfArrayOfSpeciesTag & | abs_species, | ||
const Tensor3 & | wind_u_field, | ||
const Tensor3 & | wind_v_field, | ||
const Tensor3 & | wind_w_field, | ||
const Tensor3 & | mag_u_field, | ||
const Tensor3 & | mag_v_field, | ||
const Tensor3 & | mag_w_field, | ||
const Index & | cloudbox_on, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Tensor4 & | pnd_field, | ||
const Index & | use_mean_scat_data, | ||
const ArrayOfSingleScatteringData & | scat_data_array, | ||
const Matrix & | particle_masses, | ||
const String & | iy_unit, | ||
const ArrayOfString & | iy_aux_vars, | ||
const Index & | jacobian_do, | ||
const Agenda & | ppath_agenda, | ||
const Agenda & | blackbody_radiation_agenda, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Agenda & | iy_main_agenda, | ||
const Agenda & | iy_space_agenda, | ||
const Agenda & | iy_surface_agenda, | ||
const Index & | iy_agenda_call1, | ||
const Tensor3 & | iy_transmission, | ||
const Vector & | rte_pos, | ||
const Vector & | rte_los, | ||
const Vector & | rte_pos2, | ||
const Numeric & | rte_alonglos_v, | ||
const Numeric & | ppath_lraytrace, | ||
const Matrix & | fos_scatint_angles, | ||
const Vector & | fos_iyin_za_angles, | ||
const Index & | fos_za_interporder, | ||
const Index & | fos_n, | ||
const Index & | fos_i, | ||
const Verbosity & | verbosity | ||
) |
Definition at line 58 of file m_fos.cc.
References apply_iy_unit(), chk_if_std_blackbody_agenda(), emission_rtstep(), Ppath::end_lstep, ext2trans(), ext_matFromabs_vec(), find_first(), get_iy_of_background(), get_ppath_abs(), get_ppath_atmvars(), get_ppath_blackrad(), get_ppath_ext(), get_ppath_f(), get_ppath_trans(), get_ppath_trans2(), gridpos_poly(), id_mat(), interp(), interpweights(), iy_transmission_mult(), joker, Ppath::los, Ppath::lstep, min, mirror_los(), mult(), ConstTensor4View::nbooks(), ConstMatrixView::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), Ppath::np, Ppath::nreal, ConstMatrixView::nrows(), ns, pha_mat_singleCalc(), PI, Ppath::pos, ppath_agendaExecute(), ppath_what_background(), q, Tensor4::resize(), Vector::resize(), and rte_step_doit().
Referenced by iyFOS().
void iyFOS | ( | Workspace & | ws, |
Matrix & | iy, | ||
ArrayOfTensor4 & | iy_aux, | ||
Ppath & | ppath, | ||
ArrayOfTensor3 & | diy_dx, | ||
const Index & | stokes_dim, | ||
const Vector & | f_grid, | ||
const Index & | atmosphere_dim, | ||
const Vector & | p_grid, | ||
const Tensor3 & | z_field, | ||
const Tensor3 & | t_field, | ||
const Tensor4 & | vmr_field, | ||
const ArrayOfArrayOfSpeciesTag & | abs_species, | ||
const Tensor3 & | wind_u_field, | ||
const Tensor3 & | wind_v_field, | ||
const Tensor3 & | wind_w_field, | ||
const Tensor3 & | mag_u_field, | ||
const Tensor3 & | mag_v_field, | ||
const Tensor3 & | mag_w_field, | ||
const Index & | cloudbox_on, | ||
const ArrayOfIndex & | cloudbox_limits, | ||
const Tensor4 & | pnd_field, | ||
const Index & | use_mean_scat_data, | ||
const ArrayOfSingleScatteringData & | scat_data_array, | ||
const Matrix & | particle_masses, | ||
const String & | iy_unit, | ||
const ArrayOfString & | iy_aux_vars, | ||
const Index & | jacobian_do, | ||
const Agenda & | ppath_agenda, | ||
const Agenda & | blackbody_radiation_agenda, | ||
const Agenda & | propmat_clearsky_agenda, | ||
const Agenda & | iy_main_agenda, | ||
const Agenda & | iy_space_agenda, | ||
const Agenda & | iy_surface_agenda, | ||
const Index & | iy_agenda_call1, | ||
const Tensor3 & | iy_transmission, | ||
const Vector & | rte_pos, | ||
const Vector & | rte_los, | ||
const Vector & | rte_pos2, | ||
const Numeric & | rte_alonglos_v, | ||
const Numeric & | ppath_lraytrace, | ||
const Matrix & | fos_scatint_angles, | ||
const Vector & | fos_iyin_za_angles, | ||
const Index & | fos_za_interporder, | ||
const Index & | fos_n, | ||
const Verbosity & | verbosity | ||
) |
WORKSPACE METHOD: iyFOS.
Method in development. Don't use without contacting Patrick.
Regarding radiance unit, works exactly as iyEmissionStandard.
The fos_n argument determines the maximum scattering order that will be considered. For example, 1 corresponds to that only single scattering is considered. The value 0 is accepted and results in calculations of clear-sky type. In the later case, particle absorption/emission is considered if cloudbox is active. If cloudbox is not active,clear-sky results are returned for all values of fos_n.
The following auxiliary data can be obtained: <br> "Pressure": The pressure along the propagation path. <br> Size: [1,1,1,np]. <br> "Temperature": The temperature along the propagation path. <br> Size: [1,1,1,np]. <br> "VMR, species X": VMR of the species with index X (zero based). <br> For example, adding the string "VMR, species 0" extracts the <br> VMR of the first species. Size: [1,1,1,np]. <br> "Absorption, summed": The total absorption matrix along the <br> path. Size: [nf,ns,ns,np]. <br> "Absorption, species X": The absorption matrix along the path <br> for an individual species (X works as for VMR). <br> Size: [nf,ns,ns,np]. <br> "PND, type X": The particle number density for particle type X <br> (ie. corresponds to book X in pnd_field). Size: [1,1,1,np]. <br> "Mass content, X": The particle content for mass category X. <br> This corresponds to column X in particle_masses (zero- <br> based indexing). Size: [1,1,1,np]. "Radiative background": Index value flagging the radiative <br> background. The following coding is used: 0=space and <br> and 1=surface. Size: [nf,1,1,1]. <br> "iy": The radiance at each point along the path (iy_unit is. <br> considered). Size: [nf,ns,1,np]. "Optical depth": The scalar optical depth between the <br> observation point and the end of the primary propagation path <br> (ie. the optical depth to the surface or space.). Calculated <br> in a pure scalar manner, and not dependent on direction. <br> Size: [nf,1,1,1]. where <br> nf: Number of frequencies. <br> ns: Number of Stokes elements. <br> np: Number of propagation path points.
The auxiliary data are returned in iy_aux with quantities selected by iy_aux_vars. Most variables require that the method is called directly or by iyCalc. For calculations using yCalc, the selection is restricted to the variables marked with *.
[in,out] | ws | Workspace |
[out] | iy | WS Output |
[out] | iy_aux | WS Output |
[out] | ppath | WS Output |
[out] | diy_dx | WS Output |
[in] | stokes_dim | WS Input |
[in] | f_grid | WS Input |
[in] | atmosphere_dim | WS Input |
[in] | p_grid | WS Input |
[in] | z_field | WS Input |
[in] | t_field | WS Input |
[in] | vmr_field | WS Input |
[in] | abs_species | WS Input |
[in] | wind_u_field | WS Input |
[in] | wind_v_field | WS Input |
[in] | wind_w_field | WS Input |
[in] | mag_u_field | WS Input |
[in] | mag_v_field | WS Input |
[in] | mag_w_field | WS Input |
[in] | cloudbox_on | WS Input |
[in] | cloudbox_limits | WS Input |
[in] | pnd_field | WS Input |
[in] | use_mean_scat_data | WS Input |
[in] | scat_data_array | WS Input |
[in] | particle_masses | WS Input |
[in] | iy_unit | WS Input |
[in] | iy_aux_vars | WS Input |
[in] | jacobian_do | WS Input |
[in] | ppath_agenda | WS Input |
[in] | blackbody_radiation_agenda | WS Input |
[in] | propmat_clearsky_agenda | WS Input |
[in] | iy_main_agenda | WS Input |
[in] | iy_space_agenda | WS Input |
[in] | iy_surface_agenda | WS Input |
[in] | iy_agenda_call1 | WS Input |
[in] | iy_transmission | WS Input |
[in] | rte_pos | WS Input |
[in] | rte_los | WS Input |
[in] | rte_pos2 | WS Input |
[in] | rte_alonglos_v | WS Input |
[in] | ppath_lraytrace | WS Input |
[in] | fos_scatint_angles | WS Input |
[in] | fos_iyin_za_angles | WS Input |
[in] | fos_za_interporder | Generic Input (Default: "1") |
[in] | fos_n | Generic Input (Default: "1") |
Definition at line 750 of file m_fos.cc.
References fos(), joker, last(), max, min, ConstMatrixView::ncols(), and ConstVectorView::nelem().
Referenced by iyFOS_g().
|
extern |
|
extern |