ARTS 2.5.11 (git: 725533f0)
propmat_field.h File Reference

Implements a propagation matrix field. More...

#include "energylevelmap.h"
#include "field.h"
#include "transmissionmatrix.h"
#include "workspace_ng.h"

Go to the source code of this file.

Typedefs

using FieldOfTransmissionMatrix = Field3D< TransmissionMatrix >
 
using FieldOfPropagationMatrix = Field3D< PropagationMatrix >
 
using FieldOfStokesVector = Field3D< StokesVector >
 

Functions

void field_of_propagation (Workspace &ws, FieldOfPropagationMatrix &propmat_field, FieldOfStokesVector &absorption_field, FieldOfStokesVector &additional_source_field, const Index &stokes_dim, const Vector &f_grid, const Vector &p_grid, const Tensor3 &z_field, const Tensor3 &t_field, const EnergyLevelMap &nlte_field, const Tensor4 &vmr_field, const ArrayOfRetrievalQuantity &jacobian_quantities, const Agenda &propmat_clearsky_agenda)
 Creates a field of propagation matrices, absorption vectors, and source vectors.
 
FieldOfTransmissionMatrix transmat_field_calc_from_propmat_field (const FieldOfPropagationMatrix &propmat_field, const Numeric &r=1.0)
 Get a field of transmission matrices from the propagation matrix field.
 
void emission_from_propmat_field (Workspace &ws, ArrayOfRadiationVector &lvl_rad, ArrayOfRadiationVector &src_rad, ArrayOfTransmissionMatrix &lyr_tra, ArrayOfTransmissionMatrix &tot_tra, const FieldOfPropagationMatrix &propmat_field, const FieldOfStokesVector &absorption_field, const FieldOfStokesVector &additional_source_field, const Vector &f_grid, const Tensor3 &t_field, const EnergyLevelMap &nlte_field, const Ppath &ppath, const Agenda &iy_main_agenda, const Agenda &iy_space_agenda, const Agenda &iy_surface_agenda, const Agenda &iy_cloudbox_agenda, const Tensor3 &surface_props_data, const Verbosity &verbosity)
 Computes the radiation and transmission from fields of atmospheric propagation.
 

Detailed Description

Implements a propagation matrix field.

Author
Richard Larsson
Date
2019-02-26

This file contains internal code to speed up propagation field calculations by sacrificing memory and by interpolating from potentially coarser resolution.

Definition in file propmat_field.h.

Typedef Documentation

◆ FieldOfPropagationMatrix

using FieldOfPropagationMatrix = Field3D<PropagationMatrix>

Definition at line 25 of file propmat_field.h.

◆ FieldOfStokesVector

using FieldOfStokesVector = Field3D<StokesVector>

Definition at line 26 of file propmat_field.h.

◆ FieldOfTransmissionMatrix

Function Documentation

◆ emission_from_propmat_field()

void emission_from_propmat_field ( Workspace ws,
ArrayOfRadiationVector lvl_rad,
ArrayOfRadiationVector src_rad,
ArrayOfTransmissionMatrix lyr_tra,
ArrayOfTransmissionMatrix tot_tra,
const FieldOfPropagationMatrix propmat_field,
const FieldOfStokesVector absorption_field,
const FieldOfStokesVector additional_source_field,
const Vector &  f_grid,
const Tensor3 &  t_field,
const EnergyLevelMap nlte_field,
const Ppath ppath,
const Agenda iy_main_agenda,
const Agenda iy_space_agenda,
const Agenda iy_surface_agenda,
const Agenda iy_cloudbox_agenda,
const Tensor3 &  surface_props_data,
const Verbosity verbosity 
)

Computes the radiation and transmission from fields of atmospheric propagation.

Only for 1D atmospheres for now.

Computes The forward simulations by interpolating the fields of radiative properties to the selected propagation path.

Not well-tested.

Parameters
[in]wsA workspace
[out]lvl_radLevel by level radiation
[out]src_radLevel by level source function
[out]lyr_traLayered transmission
[out]tot_traTotal transmission from layer to background
[in]propmat_field3D field of propagation matrices
[in]absorption_fieldA 3D field of absorption vectors
[in]additional_source_fieldA 3D field of source vectors
[in]f_gridAs WSV
[in]t_fieldAs WSV
[in]nlte_fieldAs WSV
[in]ppathAs WSV
[in]iy_main_agendaAs WSA
[in]iy_space_agendaAs WSA
[in]iy_surface_agendaAs WSA
[in]iy_cloudbox_agendaAs WSA
[in]surface_props_dataAs WSV
[in]verbosityLevel of verbosity in underlying calls

Definition at line 102 of file propmat_field.cc.

References a, ARTS_USER_ERROR_IF, cumulative_transmission(), Ppath::dim, Emission, Forward, get_iy_of_background(), get_stepwise_blackbody_radiation(), Ppath::gp_p, interp_atmfield_by_gp(), Ppath::lstep, Ppath::np, stepwise_source(), stepwise_transmission(), and update_radiation_vector().

Referenced by line_irradianceCalcForSingleSpeciesNonOverlappingLinesPseudo2D().

◆ field_of_propagation()

void field_of_propagation ( Workspace ws,
FieldOfPropagationMatrix propmat_field,
FieldOfStokesVector absorption_field,
FieldOfStokesVector additional_source_field,
const Index &  stokes_dim,
const Vector &  f_grid,
const Vector &  p_grid,
const Tensor3 &  z_field,
const Tensor3 &  t_field,
const EnergyLevelMap nlte_field,
const Tensor4 &  vmr_field,
const ArrayOfRetrievalQuantity jacobian_quantities,
const Agenda propmat_clearsky_agenda 
)

Creates a field of propagation matrices, absorption vectors, and source vectors.

Parameters
[in]wsA workspace
[out]propmat_fieldA 3D field of propagation matrices
[out]absorption_fieldA 3D field of absorption vectors
[out]additional_source_fieldA 3D field of source vectors
[in]stokes_dimAs WSV
[in]f_gridAs WSV
[in]p_gridAs WSV
[in]z_fieldAs WSV
[in]t_fieldAs WSV
[in]nlte_fieldAs WSV
[in]vmr_fieldAs WSV
[in]jacobian_quantitiesAs WSV
[in]propmat_clearsky_agendaAs WSA

Definition at line 19 of file propmat_field.cc.

References ARTS_USER_ERROR_IF, get_stepwise_clearsky_propmat(), and Array< base >::nelem().

Referenced by line_irradianceCalcForSingleSpeciesNonOverlappingLinesPseudo2D().

◆ transmat_field_calc_from_propmat_field()

FieldOfTransmissionMatrix transmat_field_calc_from_propmat_field ( const FieldOfPropagationMatrix propmat_field,
const Numeric &  r = 1.0 
)

Get a field of transmission matrices from the propagation matrix field.

Parameters
[in]propmat_fieldA 3D field of propagation matrices
[in]rThe distance
Returns
FieldOfTransmissionMatrix

Definition at line 89 of file propmat_field.cc.

References Field3D< base >::ncols(), Field3D< base >::npages(), and Field3D< base >::nrows().

Referenced by line_irradianceCalcForSingleSpeciesNonOverlappingLinesPseudo2D().