ARTS  2.2.66
m_abs.cc File Reference

Stuff related to the calculation of absorption coefficients. More...

#include <cmath>
#include <algorithm>
#include "arts.h"
#include "matpackI.h"
#include "array.h"
#include "messages.h"
#include "file.h"
#include "auto_md.h"
#include "math_funcs.h"
#include "make_array.h"
#include "make_vector.h"
#include "global_data.h"
#include "physics_funcs.h"
#include "absorption.h"
#include "continua.h"
#include "check_input.h"
#include "montecarlo.h"
#include "m_xml.h"
#include "optproperties.h"
#include "parameters.h"
#include "rte.h"
#include "xml_io.h"
#include <netcdf.h>
#include "nc_io.h"

Go to the source code of this file.

Functions

void AbsInputFromRteScalars (Vector &abs_p, Vector &abs_t, Matrix &abs_vmrs, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const Verbosity &)
 WORKSPACE METHOD: AbsInputFromRteScalars. More...
 
void abs_lines_per_speciesSetEmpty (ArrayOfArrayOfLineRecord &abs_lines_per_species, const ArrayOfArrayOfSpeciesTag &tgs, const Verbosity &)
 WORKSPACE METHOD: abs_lines_per_speciesSetEmpty. More...
 
void abs_linesArtscat4FromArtscat3 (ArrayOfLineRecord &abs_lines, const Verbosity &)
 WORKSPACE METHOD: abs_linesArtscat4FromArtscat3. More...
 
void abs_linesReadFromHitranPre2004 (ArrayOfLineRecord &abs_lines, const String &filename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_linesReadFromHitranPre2004. More...
 
void abs_linesReadFromHitran (ArrayOfLineRecord &abs_lines, const String &filename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_linesReadFromHitran. More...
 
void abs_linesReadFromMytran2 (ArrayOfLineRecord &abs_lines, const String &filename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_linesReadFromMytran2. More...
 
void abs_linesReadFromJpl (ArrayOfLineRecord &abs_lines, const String &filename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_linesReadFromJpl. More...
 
void abs_linesReadFromArts (ArrayOfLineRecord &abs_lines, const String &filename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_linesReadFromArts. More...
 
void abs_lines_per_speciesWriteToSplitArtscat (const String &output_file_format, const ArrayOfArrayOfLineRecord &abs_lines_per_species, const String &basename, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_lines_per_speciesWriteToSplitArtscat. More...
 
void abs_linesReadFromSplitArtscat (ArrayOfLineRecord &abs_lines, const ArrayOfArrayOfSpeciesTag &abs_species, const String &basename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_linesReadFromSplitArtscat. More...
 
void abs_linesReadFromArtsObsolete (ArrayOfLineRecord &abs_lines, const String &filename, const Numeric &fmin, const Numeric &fmax, const Verbosity &verbosity)
 Obsolete old ARTS catalogue reading function. More...
 
void abs_lines_per_speciesReadFromCatalogues (ArrayOfArrayOfLineRecord &abs_lines_per_species, const ArrayOfArrayOfSpeciesTag &tgs, const ArrayOfString &filenames, const ArrayOfString &formats, const Vector &fmin, const Vector &fmax, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_lines_per_speciesReadFromCatalogues. More...
 
void abs_lines_per_speciesCreateFromLines (ArrayOfArrayOfLineRecord &abs_lines_per_species, const ArrayOfLineRecord &abs_lines, const ArrayOfArrayOfSpeciesTag &tgs, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_lines_per_speciesCreateFromLines. More...
 
void abs_lines_per_speciesAddMirrorLines (ArrayOfArrayOfLineRecord &abs_lines_per_species, const Numeric &max_f, const Verbosity &)
 WORKSPACE METHOD: abs_lines_per_speciesAddMirrorLines. More...
 
void abs_lines_per_speciesCompact (ArrayOfArrayOfLineRecord &abs_lines_per_species, const ArrayOfLineshapeSpec &abs_lineshape, const Vector &f_grid, const Verbosity &)
 WORKSPACE METHOD: abs_lines_per_speciesCompact. More...
 
void abs_speciesDefineAllInScenario (ArrayOfArrayOfSpeciesTag &tgs, Index &propmat_clearsky_agenda_checked, Index &abs_xsec_agenda_checked, const String &basename, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_speciesDefineAllInScenario. More...
 
void abs_lineshapeDefine (ArrayOfLineshapeSpec &abs_lineshape, const String &shape, const String &normalizationfactor, const Numeric &cutoff, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_lineshapeDefine. More...
 
void abs_lineshape_per_tgDefine (ArrayOfLineshapeSpec &abs_lineshape, const ArrayOfArrayOfSpeciesTag &tgs, const ArrayOfString &shape, const ArrayOfString &normalizationfactor, const Vector &cutoff, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_lineshape_per_tgDefine. More...
 
void abs_h2oSet (Vector &abs_h2o, const ArrayOfArrayOfSpeciesTag &abs_species, const Matrix &abs_vmrs, const Verbosity &)
 abs_h2oSet. More...
 
void abs_n2Set (Vector &abs_n2, const ArrayOfArrayOfSpeciesTag &abs_species, const Matrix &abs_vmrs, const Verbosity &)
 abs_n2Set. More...
 
void abs_o2Set (Vector &abs_o2, const ArrayOfArrayOfSpeciesTag &abs_species, const Matrix &abs_vmrs, const Verbosity &)
 abs_o2Set. More...
 
void AbsInputFromAtmFields (Vector &abs_p, Vector &abs_t, Matrix &abs_vmrs, const Index &atmosphere_dim, const Vector &p_grid, const Tensor3 &t_field, const Tensor4 &vmr_field, const Verbosity &)
 WORKSPACE METHOD: AbsInputFromAtmFields. More...
 
void abs_coefCalcFromXsec (Matrix &abs_coef, ArrayOfMatrix &abs_coef_per_species, const ArrayOfMatrix &abs_xsec_per_species, const Matrix &abs_vmrs, const Vector &abs_p, const Vector &abs_t, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_coefCalcFromXsec. More...
 
void abs_xsec_per_speciesInit (ArrayOfMatrix &abs_xsec_per_species, const ArrayOfArrayOfSpeciesTag &tgs, const ArrayOfIndex &abs_species_active, const Vector &f_grid, const Vector &abs_p, const Index &abs_xsec_agenda_checked, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_xsec_per_speciesInit. More...
 
void abs_xsec_per_speciesAddLines (ArrayOfMatrix &abs_xsec_per_species, const ArrayOfArrayOfSpeciesTag &tgs, const ArrayOfIndex &abs_species_active, const Vector &f_grid, const Vector &abs_p, const Vector &abs_t, const Matrix &abs_vmrs, const ArrayOfArrayOfLineRecord &abs_lines_per_species, const ArrayOfLineshapeSpec &abs_lineshape, const SpeciesAuxData &isotopologue_ratios, const ArrayOfArrayOfLineMixingRecord &line_mixing_data, const ArrayOfArrayOfIndex &line_mixing_data_lut, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_xsec_per_speciesAddLines. More...
 
void abs_xsec_per_speciesAddConts (ArrayOfMatrix &abs_xsec_per_species, const ArrayOfArrayOfSpeciesTag &tgs, const ArrayOfIndex &abs_species_active, const Vector &f_grid, const Vector &abs_p, const Vector &abs_t, const Matrix &abs_vmrs, const ArrayOfString &abs_cont_names, const ArrayOfVector &abs_cont_parameters, const ArrayOfString &abs_cont_models, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_xsec_per_speciesAddConts. More...
 
void abs_cont_descriptionInit (ArrayOfString &abs_cont_names, ArrayOfString &abs_cont_options, ArrayOfVector &abs_cont_parameters, const Verbosity &verbosity)
 WORKSPACE METHOD: abs_cont_descriptionInit. More...
 
void abs_cont_descriptionAppend (ArrayOfString &abs_cont_names, ArrayOfString &abs_cont_models, ArrayOfVector &abs_cont_parameters, const String &tagname, const String &model, const Vector &userparameters, const Verbosity &)
 WORKSPACE METHOD: abs_cont_descriptionAppend. More...
 
void propmat_clearskyAddFromAbsCoefPerSpecies (Tensor4 &propmat_clearsky, const ArrayOfMatrix &abs_coef_per_species, const Verbosity &)
 WORKSPACE METHOD: propmat_clearskyAddFromAbsCoefPerSpecies. More...
 
void propmat_clearskyInit (Tensor4 &propmat_clearsky, const ArrayOfArrayOfSpeciesTag &abs_species, const Vector &f_grid, const Index &stokes_dim, const Index &propmat_clearsky_agenda_checked, const Verbosity &)
 WORKSPACE METHOD: propmat_clearskyInit. More...
 
void propmat_clearskyAddFaraday (Tensor4 &propmat_clearsky, const Index &stokes_dim, const Index &atmosphere_dim, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const Vector &rtp_vmr, const Vector &rtp_los, const Vector &rtp_mag, const Verbosity &)
 WORKSPACE METHOD: propmat_clearskyAddFaraday. More...
 
void propmat_clearskyAddParticles (Tensor4 &propmat_clearsky, const Index &stokes_dim, const Index &atmosphere_dim, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const Vector &rtp_vmr, const Vector &rtp_los, const Numeric &rtp_temperature, const ArrayOfSingleScatteringData &scat_data_array, const Verbosity &verbosity)
 WORKSPACE METHOD: propmat_clearskyAddParticles. More...
 
void propmat_clearskyAddOnTheFly (Workspace &ws, Tensor4 &propmat_clearsky, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const Agenda &abs_xsec_agenda, const Verbosity &verbosity)
 WORKSPACE METHOD: propmat_clearskyAddOnTheFly. More...
 
void propmat_clearskyZero (Tensor4 &propmat_clearsky, const Vector &f_grid, const Index &stokes_dim, const Verbosity &)
 WORKSPACE METHOD: propmat_clearskyZero. More...
 
void isotopologue_ratiosInitFromBuiltin (SpeciesAuxData &isotopologue_ratios, const Verbosity &)
 WORKSPACE METHOD: isotopologue_ratiosInitFromBuiltin. More...
 
void WriteMolTau (const Vector &f_grid, const Tensor3 &z_field, const Tensor7 &propmat_clearsky_field, const Index &atmosphere_dim, const String &filename, const Verbosity &)
 WORKSPACE METHOD: WriteMolTau. More...
 

Variables

const Numeric ELECTRON_CHARGE
 
const Numeric ELECTRON_MASS
 
const Numeric PI
 
const Numeric SPEED_OF_LIGHT
 
const Numeric VACUUM_PERMITTIVITY
 

Detailed Description

Stuff related to the calculation of absorption coefficients.

Author
Stefan Buehler
Date
2001-03-12

Definition in file m_abs.cc.

Function Documentation

◆ abs_coefCalcFromXsec()

void abs_coefCalcFromXsec ( Matrix abs_coef,
ArrayOfMatrix abs_coef_per_species,
const ArrayOfMatrix abs_xsec_per_species,
const Matrix abs_vmrs,
const Vector abs_p,
const Vector abs_t,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_coefCalcFromXsec.

Calculate absorption coefficients from cross sections.

This calculates both the total absorption and the absorption per species.

Cross sections are multiplied by n*VMR.

Author
Stefan Buehler
Axel von Engeln
Parameters
[out]abs_coefWS Output
[out]abs_coef_per_speciesWS Output
[in]abs_xsec_per_speciesWS Input
[in]abs_vmrsWS Input
[in]abs_pWS Input
[in]abs_tWS Input

Definition at line 1388 of file m_abs.cc.

References chk_size(), CREATE_OUT3, ConstMatrixView::ncols(), Array< base >::nelem(), ConstMatrixView::nrows(), number_density(), and Matrix::resize().

Referenced by abs_coefCalcFromXsec_g(), and propmat_clearskyAddOnTheFly().

◆ abs_cont_descriptionAppend()

void abs_cont_descriptionAppend ( ArrayOfString abs_cont_names,
ArrayOfString abs_cont_models,
ArrayOfVector abs_cont_parameters,
const String tagname,
const String model,
const Vector userparam,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_cont_descriptionAppend.

Appends the description of a continuum model or a complete absorption model to abs_cont_names and abs_cont_parameters.

See online documentation for abs_cont_names for a list of allowed models and for information what parameters they require. See file includes/continua.arts for default parameters for the various models.

Author
Thomas Kuhn
Stefan Buehler
Parameters
[out]abs_cont_namesWS Output
[out]abs_cont_modelsWS Output
[out]abs_cont_parametersWS Output
[in]tagnameGeneric Input
[in]modelGeneric Input
[in]userparamGeneric Input (Default: "[]")

Definition at line 2021 of file m_abs.cc.

References check_continuum_model().

Referenced by abs_cont_descriptionAppend_g().

◆ abs_cont_descriptionInit()

void abs_cont_descriptionInit ( ArrayOfString abs_cont_names,
ArrayOfString abs_cont_models,
ArrayOfVector abs_cont_parameters,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_cont_descriptionInit.

Initializes the two workspace variables for the continuum description, abs_cont_names* and abs_cont_parameters.

This method does not really do anything, except setting the two variables to empty Arrays. It is just necessary because the method abs_cont_descriptionAppend* wants to append to the variables.

Formally, the continuum description workspace variables are required by the absorption calculation methods (e.g., abs_coefCalc). Therefore you always have to call at least abs_cont_descriptionInit, even if you do not want to use any continua.

Author
Thomas Kuhn
Stefan Buehler
Parameters
[out]abs_cont_namesWS Output
[out]abs_cont_modelsWS Output
[out]abs_cont_parametersWS Output

Definition at line 2003 of file m_abs.cc.

References CREATE_OUT2.

Referenced by abs_cont_descriptionInit_g().

◆ abs_h2oSet()

void abs_h2oSet ( Vector abs_h2o,
const ArrayOfArrayOfSpeciesTag abs_species,
const Matrix abs_vmrs,
const Verbosity  
)

abs_h2oSet.

Sets abs_h2o to the profile of the first tag group containing water.

This is necessary, because for example abs_coefCalc requires abs_h2o to contain the water vapour profile(the reason for this is the calculation of oxygen line broadening requires water vapour profile). Then this function can be used to copy the profile of the first tag group of water.

Author
Stefan Buehler
Parameters
[out]abs_h2oWS Output
[in]abs_speciesWS Input
[in]abs_vmrsWS Input

Definition at line 1287 of file m_abs.cc.

References find_first_species_tg(), joker, ConstMatrixView::ncols(), Vector::resize(), and species_index_from_species_name().

Referenced by abs_xsec_per_speciesAddConts().

◆ abs_lines_per_speciesAddMirrorLines()

void abs_lines_per_speciesAddMirrorLines ( ArrayOfArrayOfLineRecord abs_lines_per_species,
const Numeric max_f,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lines_per_speciesAddMirrorLines.

Adds mirror lines at negative frequencies to abs_lines_per_species.

For each line at frequency +f in abs_lines_per_species a corresponding entry at frequency -f is added to abs_lines_per_species. The mirror lines are appended to the line list after the original lines.

Author
Axel von Engeln
Stefan Buehler
Patrick Eriksson
Parameters
[out]abs_lines_per_speciesWS Output
[in]max_fGeneric Input (Default: "-1")

Definition at line 901 of file m_abs.cc.

References LineRecord::F(), ll, Array< base >::nelem(), and LineRecord::setF().

Referenced by abs_lines_per_speciesAddMirrorLines_g().

◆ abs_lines_per_speciesCompact()

void abs_lines_per_speciesCompact ( ArrayOfArrayOfLineRecord abs_lines_per_species,
const ArrayOfLineshapeSpec abs_lineshape,
const Vector f_grid,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lines_per_speciesCompact.

Removes all lines outside the defined lineshape cutoff frequencies from abs_lines_per_species. This can save computation time. It should be particularly useful to call this method after abs_lines_per_speciesAddMirrorLines*.

Author
Axel von Engeln
Stefan Buehler
Parameters
[out]abs_lines_per_speciesWS Output
[in]abs_lineshapeWS Input
[in]f_gridWS Input

Definition at line 953 of file m_abs.cc.

References ll, Array< base >::nelem(), and ConstVectorView::nelem().

Referenced by abs_lines_per_speciesCompact_g().

◆ abs_lines_per_speciesCreateFromLines()

void abs_lines_per_speciesCreateFromLines ( ArrayOfArrayOfLineRecord abs_lines_per_species,
const ArrayOfLineRecord abs_lines,
const ArrayOfArrayOfSpeciesTag abs_species,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lines_per_speciesCreateFromLines.

Split lines up into the different species.

The species are tested in the order in which they are specified in the controlfile. Lines are assigned to the first species that matches. That means if the list of species is ["O3-666","O3"], then the last group O3 gets assigned all the O3 lines that do not fit in the first group (all other isotopologues than the main isotopologue).

Author
Stefan Buehler
Parameters
[out]abs_lines_per_speciesWS Output
[in]abs_linesWS Input
[in]abs_speciesWS Input

Definition at line 759 of file m_abs.cc.

References CREATE_OUT2, CREATE_OUT3, LineRecord::F(), SpeciesTag::Isotopologue(), SpeciesRecord::Isotopologue(), LineRecord::Isotopologue(), SpeciesTag::Lf(), SpeciesRecord::Name(), Array< base >::nelem(), SpeciesTag::Species(), LineRecord::Species(), global_data::species_data, LineRecord::SpeciesData(), and SpeciesTag::Uf().

Referenced by abs_lines_per_speciesCreateFromLines_g(), and abs_lines_per_speciesReadFromCatalogues().

◆ abs_lines_per_speciesReadFromCatalogues()

void abs_lines_per_speciesReadFromCatalogues ( ArrayOfArrayOfLineRecord abs_lines_per_species,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfString filenames,
const ArrayOfString formats,
const Vector fmin,
const Vector fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lines_per_speciesReadFromCatalogues.

Read spectral line data from different line catalogues.

For each absorption species, you can specify which catalogue to use. Because the method creates abs_lines_per_species directly, it replaces for example the following two method calls:

<br> - abs_linesReadFromHitran <br> - abs_lines_per_speciesCreateFromLines

This method needs as input WSVs the list of species abs_species*. Generic input parameters must specify the names of the catalogue files to use and the matching formats. Names can be anything, formats can currently be HITRAN96 (for HITRAN 1986-2001 databases), HITRAN04 (for HITRAN 2004 database), MYTRAN2, JPL, or ARTS. Furthermore, you have to specify minimum and maximum frequency for each species. To safe typing, if there are less elements in the keyword parameters than there are species, the last parameters are applied to all following species.

Example usage:

abs_lines_per_speciesReadFromCatalogues( <br> [ "../data/cat1.dat", "../data/cat2.dat" ] <br> [ "MYTRAN2", "HITRAN96" ] <br> [ 0, 0 ] <br> [ 2000e9, 100e9 ] )

In this example, lines for the first species will be taken from cat1, lines for all other species will be taken from cat2. This allows you for example to use a special line file just for water vapor lines.

Catalogues are only read once, even if several tag groups have the same catalogue. However, in that case the frequency ranges MUST be the same. (If you want to do fine-tuning of the frequency ranges, you can do this inside the tag definitions, e.g., "H2O-*-0-2000e9".)

This function uses the various reading routines (abs_linesReadFromHitran, etc.), as well as abs_lines_per_speciesCreateFromLines*.

Author
Stefan Buehler
Parameters
[out]abs_lines_per_speciesWS Output
[in]abs_speciesWS Input
[in]filenamesGeneric Input
[in]formatsGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 549 of file m_abs.cc.

References abs_lines_per_speciesCreateFromLines(), abs_linesReadFromArts(), abs_linesReadFromHitran(), abs_linesReadFromHitranPre2004(), abs_linesReadFromJpl(), abs_linesReadFromMytran2(), CREATE_OUT3, Array< base >::nelem(), and ConstVectorView::nelem().

Referenced by abs_lines_per_speciesReadFromCatalogues_g().

◆ abs_lines_per_speciesSetEmpty()

void abs_lines_per_speciesSetEmpty ( ArrayOfArrayOfLineRecord abs_lines_per_species,
const ArrayOfArrayOfSpeciesTag abs_species,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lines_per_speciesSetEmpty.

Sets abs_lines_per_species to empty line lists.

You can use this method to set abs_lines_per_species if you do not really want to compute line spectra. Formally, abs_coefCalc will still require abs_lines_per_species to be set.

Author
Stefan Buehler
Parameters
[out]abs_lines_per_speciesWS Output
[in]abs_speciesWS Input

Definition at line 98 of file m_abs.cc.

References Array< base >::nelem().

Referenced by abs_lines_per_speciesSetEmpty_g().

◆ abs_lines_per_speciesWriteToSplitArtscat()

void abs_lines_per_speciesWriteToSplitArtscat ( const String output_file_format,
const ArrayOfArrayOfLineRecord abs_lines_per_species,
const String basename,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lines_per_speciesWriteToSplitArtscat.

Write each species to a separate catalogue file.

Author
Oliver Lemke
Parameters
[in]output_file_formatWS Input
[in]abs_lines_per_speciesWS Input
[in]basenameGeneric Input (Default: "")

Definition at line 382 of file m_abs.cc.

References global_data::species_data, and WriteXML().

Referenced by abs_lines_per_speciesWriteToSplitArtscat_g().

◆ abs_linesArtscat4FromArtscat3()

void abs_linesArtscat4FromArtscat3 ( ArrayOfLineRecord abs_lines,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesArtscat4FromArtscat3.

Convert a line list from ARTSCAT-3 to ARTSCAT-4 format.

ARTSCAT-4 lines contain more information than ARTSCAT-3 lines, particularly they contain separate broadening parameters for six different broadening species. So a real conversion is not possible. What this method does is copy the air broadening (and shift) parameters from ARTSCAT-3 to all ARTSCAT-4 broadening species. The case that one of the broadening species is identical to the Self species is also handled correctly.

The idea is that the ARTSCAT-4 line list generated in this way should give identical RT simulation results as the original ARTSCAT-3 list. This is verified in one of the test controlfiles.

Currently only broadening and shift parameters are handled here. There are some other additional fields in ARTSCAT-4, which we so far ignore.

Author
Stefan Buehler
Parameters
[out]abs_linesWS Output

Definition at line 114 of file m_abs.cc.

References Array< base >::nelem().

Referenced by abs_linesArtscat4FromArtscat3_g().

◆ abs_lineshape_per_tgDefine()

void abs_lineshape_per_tgDefine ( ArrayOfLineshapeSpec abs_lineshape,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfString shape,
const ArrayOfString normalizationfactor,
const Vector cutoff,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lineshape_per_tgDefine.

Set the lineshape, separately for each absorption species.

This method is similar to abs_lineshapeDefine, except that a different lineshape can be set for each absorption species (see abs_species*). For example, you might want to use different values of the cutoff frequency for different species.

For detailed documentation on the available options for the input parameters see documentation of method abs_lineshapeDefine.

Author
Axel von Engeln
Stefan Buehler
Parameters
[out]abs_lineshapeWS Output
[in]abs_speciesWS Input
[in]shapeGeneric Input
[in]normalizationfactorGeneric Input
[in]cutoffGeneric Input

Definition at line 1182 of file m_abs.cc.

References CREATE_OUT2, global_data::lineshape_data, global_data::lineshape_norm_data, Array< base >::nelem(), and ConstVectorView::nelem().

Referenced by abs_lineshape_per_tgDefine_g().

◆ abs_lineshapeDefine()

void abs_lineshapeDefine ( ArrayOfLineshapeSpec abs_lineshape,
const String shape,
const String forefactor,
const Numeric cutoff,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_lineshapeDefine.

Set the lineshape for all calculated lines.

Sets the lineshape function. Beside the lineshape function itself, you also have so select a forefactor and a frequency cutoff. The forefactor is later multiplied with the lineshape function.

The cutoff frequency is used to make lineshapes finite in frequency, the response outside the cutoff is set to zero, and the lineshape value at the cutoff frequency is subtracted from the overall lineshape as a constant offset. This ensures that the lineshape goes to zero at the cutoff frequency without a discontinuity.

We generate only one copy of the lineshape settings. Absorption routines check for this case and use it for all species.

The allowed values for the input parameters are:

shape: <br> no_shape: no specified shape <br> Doppler: Doppler lineshape <br> Lorentz: Lorentz lineshape <br> Voigt_Kuntz3: Kuntz approximation to the Voigt lineshape, <br> accuracy > 2x10^(-3) <br> Voigt_Kuntz4: Kuntz approximation to the Voigt lineshape, <br> accuracy > 2x10^(-4) <br> Voigt_Kuntz6: Kuntz approximation to the Voigt lineshape, <br> accuracy > 2x10^(-6) <br> Voigt_Drayson: Drayson approximation to the Voigt lineshape <br> Rosenkranz_Voigt_Drayson: Rosenkrantz oxygen absortion with overlap correction <br> on the basis of Drayson routine <br> Rosenkranz_Voigt_Kuntz6 : Rosenkrantz oxygen absortion with overlap correction <br> on the basis of Kuntz routine, accuracy > 2x10^(-6) <br> CO2_Lorentz: Lorentz multiplied with Cousin's chi factors <br> CO2_Drayson: Drayson multiplied with Cousin's chi factors <br> Faddeeva_Algorithm_916: Faddeeva function based on Zaghloul, M.R. and <br> A.N. Ali (2011). Implementation by Steven G. Johnson <br> under the MIT License (attainable through <br> http://ab-initio.mit.edu/Faddeeva)

forefactor: <br> no_norm: 1 <br> quadratic: (f/f0)^2 <br> VVH: (f*tanh(h*f/(2k*T))) / (f0*tanh(h*f0/(2k*T)))

cutoff: <br> -1: no cutoff <br> <Number>: positive cutoff frequency in Hz

Author
Axel von Engeln
Stefan Buehler
Parameters
[out]abs_lineshapeWS Output
[in]shapeGeneric Input
[in]forefactorGeneric Input
[in]cutoffGeneric Input

Definition at line 1113 of file m_abs.cc.

References CREATE_OUT2, global_data::lineshape_data, and global_data::lineshape_norm_data.

Referenced by abs_lineshapeDefine_g().

◆ abs_linesReadFromArts()

void abs_linesReadFromArts ( ArrayOfLineRecord abs_lines,
const String filename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesReadFromArts.

Read all the lines from an Arts catalogue file in the given frequency range. Otherwise a runtime error will be thrown

Please note that all lines must correspond to legal species / isotopologue combinations

Author
Stefan Buehler
Parameters
[out]abs_linesWS Output
[in]filenameGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 369 of file m_abs.cc.

References xml_read_arts_catalogue_from_file().

Referenced by abs_lines_per_speciesReadFromCatalogues(), abs_linesReadFromArts_g(), and abs_linesReadFromSplitArtscat().

◆ abs_linesReadFromArtsObsolete()

void abs_linesReadFromArtsObsolete ( ArrayOfLineRecord abs_lines,
const String filename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

Obsolete old ARTS catalogue reading function.

This function is for the old ARTS catalogue format without XML header. It is no longer used, but left here for historical reasons.

Author
Stefan Buehler
Parameters
abs_linesLine data.
filenameName of catalogue file.
fminMinimum frequency.
fmaxMaximum frequency.

Definition at line 476 of file m_abs.cc.

References CREATE_OUT2, LineRecord::F(), Array< base >::nelem(), open_input_file(), LineRecord::ReadFromArtscat3Stream(), LineRecord::Version(), and LineRecord::VersionString().

◆ abs_linesReadFromHitran()

void abs_linesReadFromHitran ( ArrayOfLineRecord abs_lines,
const String filename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesReadFromHitran.

Read all the lines from HITRAN 2004 and later catalogue file in the given frequency range. Otherwise a runtime error is thrown.

Records of molecules unknown to ARTS are ignored but a warning is issued. In particular this happens for CH3OH (HITRAN molecule number 39) because there is no total internal partition sum available.

The database must be sorted by increasing frequency!

WWW access of the HITRAN catalogue: http://www.hitran.com/

For data in the Hitran 1986-2001 format use the workspace method abs_linesReadFromHitranPre2004

Author
Hermann Berg
Thomas Kuhn
Parameters
[out]abs_linesWS Output
[in]filenameGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 189 of file m_abs.cc.

References CREATE_OUT2, LineRecord::F(), Array< base >::nelem(), my_basic_string< charT >::nelem(), open_input_file(), LineRecord::ReadFromHitran2004Stream(), my_basic_string< charT >::split(), and my_basic_string< charT >::tolower().

Referenced by abs_lines_per_speciesReadFromCatalogues(), abs_linesReadFromHitran_g(), and main().

◆ abs_linesReadFromHitranPre2004()

void abs_linesReadFromHitranPre2004 ( ArrayOfLineRecord abs_lines,
const String filename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesReadFromHitranPre2004.

Read all the lines from a HITRAN 1986-2001 catalogue file in the given frequency range. Otherwise a runtime error will be thrown. For HITRAN 2004 and later line data use the workspace method abs_linesReadFromHitran.

Please note that all lines must correspond to legal species / isotopologue combinations and that the line data file must be sorted by increasing frequency

WWW access of the HITRAN catalogue: http://www.hitran.com/

Author
Thomas Kuhn
Parameters
[out]abs_linesWS Output
[in]filenameGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 144 of file m_abs.cc.

References CREATE_OUT2, LineRecord::F(), Array< base >::nelem(), open_input_file(), and LineRecord::ReadFromHitran2001Stream().

Referenced by abs_lines_per_speciesReadFromCatalogues(), and abs_linesReadFromHitranPre2004_g().

◆ abs_linesReadFromJpl()

void abs_linesReadFromJpl ( ArrayOfLineRecord abs_lines,
const String filename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesReadFromJpl.

Read all the lines from a JPL catalogue file in the given frequency range. Otherwise a runtime error will be thrown

Please note that all lines must correspond to legal species / isotopologue combinations.

WWW access of the JPL catalogue: http://spec.jpl.nasa.gov/

Author
Thomas Kuhn
Parameters
[out]abs_linesWS Output
[in]filenameGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 324 of file m_abs.cc.

References CREATE_OUT2, LineRecord::F(), Array< base >::nelem(), open_input_file(), and LineRecord::ReadFromJplStream().

Referenced by abs_lines_per_speciesReadFromCatalogues(), and abs_linesReadFromJpl_g().

◆ abs_linesReadFromMytran2()

void abs_linesReadFromMytran2 ( ArrayOfLineRecord abs_lines,
const String filename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesReadFromMytran2.

Read all the lines from a MYTRAN2 catalogue file in the given frequency range. Otherwise a runtime error will be thrown

Please note that all lines must correspond to legal species / isotopologue combinations

Author
Axel von Engeln
Stefan Buehler
Parameters
[out]abs_linesWS Output
[in]filenameGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 283 of file m_abs.cc.

References CREATE_OUT2, LineRecord::F(), Array< base >::nelem(), open_input_file(), and LineRecord::ReadFromMytran2Stream().

Referenced by abs_lines_per_speciesReadFromCatalogues(), and abs_linesReadFromMytran2_g().

◆ abs_linesReadFromSplitArtscat()

void abs_linesReadFromSplitArtscat ( ArrayOfLineRecord abs_lines,
const ArrayOfArrayOfSpeciesTag abs_species,
const String basename,
const Numeric fmin,
const Numeric fmax,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_linesReadFromSplitArtscat.

Read all the lines in the given frequency range from a split Arts catalogue file.

Please note that all lines must correspond to legal species / isotopologue combinations

Author
Oliver Lemke
Parameters
[out]abs_linesWS Output
[in]abs_speciesWS Input
[in]basenameGeneric Input
[in]fminGeneric Input
[in]fmaxGeneric Input

Definition at line 410 of file m_abs.cc.

References abs_linesReadFromArts(), CREATE_OUT2, Array< base >::nelem(), global_data::species_data, SpeciesTag::TYPE_PLAIN, and SpeciesTag::TYPE_ZEEMAN.

Referenced by abs_linesReadFromSplitArtscat_g().

◆ abs_n2Set()

void abs_n2Set ( Vector abs_n2,
const ArrayOfArrayOfSpeciesTag abs_species,
const Matrix abs_vmrs,
const Verbosity  
)

abs_n2Set.

Sets abs_n2 to the profile of the first tag group containing molecular nitrogen. See abs_h2oSet for more details.

Author
Stefan Buehler
Parameters
[out]abs_n2WS Output
[in]abs_speciesWS Input
[in]abs_vmrsWS Input

Definition at line 1315 of file m_abs.cc.

References find_first_species_tg(), joker, ConstMatrixView::ncols(), Vector::resize(), and species_index_from_species_name().

Referenced by abs_xsec_per_speciesAddConts().

◆ abs_o2Set()

void abs_o2Set ( Vector abs_o2,
const ArrayOfArrayOfSpeciesTag abs_species,
const Matrix abs_vmrs,
const Verbosity  
)

abs_o2Set.

Sets abs_o2 to the profile of the first tag group containing molecular oxygen. See abs_h2oSet for more details.

Author
Mayuri Tatiya
Parameters
[out]abs_o2WS Output
[in]abs_speciesWS Input
[in]abs_vmrsWS Input

Definition at line 1342 of file m_abs.cc.

References find_first_species_tg(), joker, ConstMatrixView::ncols(), Vector::resize(), and species_index_from_species_name().

Referenced by abs_xsec_per_speciesAddConts().

◆ abs_speciesDefineAllInScenario()

void abs_speciesDefineAllInScenario ( ArrayOfArrayOfSpeciesTag abs_species,
Index propmat_clearsky_agenda_checked,
Index abs_xsec_agenda_checked,
const String basename,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_speciesDefineAllInScenario.

Define one tag group for each species known to ARTS and included in an atmospheric scenario.

You can use this as an alternative to abs_speciesSet if you want to make an absorption calculation that is as complete as possible. The method goes through all defined species and tries to open the VMR file. If this works the tag is included, otherwise it is skipped.

Author
Stefan Buehler
Parameters
[out]abs_speciesWS Output
[out]propmat_clearsky_agenda_checkedWS Output
[out]abs_xsec_agenda_checkedWS Output
[in]basenameGeneric Input

Definition at line 1047 of file m_abs.cc.

References CREATE_OUT2, find_xml_file(), Array< base >::nelem(), and global_data::species_data.

Referenced by abs_speciesDefineAllInScenario_g().

◆ abs_xsec_per_speciesAddConts()

void abs_xsec_per_speciesAddConts ( ArrayOfMatrix abs_xsec_per_species,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfIndex abs_species_active,
const Vector f_grid,
const Vector abs_p,
const Vector abs_t,
const Matrix abs_vmrs,
const ArrayOfString abs_cont_names,
const ArrayOfVector abs_cont_parameters,
const ArrayOfString abs_cont_models,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_xsec_per_speciesAddConts.

Calculate absorption cross sections per tag group for continua.

Author
Stefan Buehler
Parameters
[out]abs_xsec_per_speciesWS Output
[in]abs_speciesWS Input
[in]abs_species_activeWS Input
[in]f_gridWS Input
[in]abs_pWS Input
[in]abs_tWS Input
[in]abs_vmrsWS Input
[in]abs_cont_namesWS Input
[in]abs_cont_parametersWS Input
[in]abs_cont_modelsWS Input

Definition at line 1806 of file m_abs.cc.

References abs_h2oSet(), abs_n2Set(), abs_o2Set(), CREATE_OUT3, joker, ConstMatrixView::ncols(), Array< base >::nelem(), ConstVectorView::nelem(), ConstMatrixView::nrows(), global_data::species_data, SpeciesTag::TYPE_PREDEF, and xsec_continuum_tag().

Referenced by abs_xsec_per_speciesAddConts_g().

◆ abs_xsec_per_speciesAddLines()

void abs_xsec_per_speciesAddLines ( ArrayOfMatrix abs_xsec_per_species,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfIndex abs_species_active,
const Vector f_grid,
const Vector abs_p,
const Vector abs_t,
const Matrix abs_vmrs,
const ArrayOfArrayOfLineRecord abs_lines_per_species,
const ArrayOfLineshapeSpec abs_lineshape,
const SpeciesAuxData isotopologue_ratios,
const ArrayOfArrayOfLineMixingRecord line_mixing_data,
const ArrayOfArrayOfIndex line_mixing_data_lut,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_xsec_per_speciesAddLines.

Calculates the line spectrum for both attenuation and phase for each tag group and adds it to abs_xsec_per_species.

Author
Stefan Buehler
Axel von Engeln
Parameters
[out]abs_xsec_per_speciesWS Output
[in]abs_speciesWS Input
[in]abs_species_activeWS Input
[in]f_gridWS Input
[in]abs_pWS Input
[in]abs_tWS Input
[in]abs_vmrsWS Input
[in]abs_lines_per_speciesWS Input
[in]abs_lineshapeWS Input
[in]isotopologue_ratiosWS Input
[in]line_mixing_dataWS Input
[in]line_mixing_data_lutWS Input

Definition at line 1531 of file m_abs.cc.

References checkIsotopologueRatios(), CREATE_OUT3, LineshapeSpec::Cutoff(), get_tag_group_name(), LineshapeSpec::Ind_ls(), LineshapeSpec::Ind_lsn(), is_zeeman(), SpeciesTag::LINE_MIXING_TYPE_NONE, global_data::lineshape_data, ll, min, Array< base >::nelem(), ConstMatrixView::nrows(), global_data::species_data, xsec_species(), and xsec_species_line_mixing_wrapper().

Referenced by abs_xsec_per_speciesAddLines_g().

◆ abs_xsec_per_speciesInit()

void abs_xsec_per_speciesInit ( ArrayOfMatrix abs_xsec_per_species,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfIndex abs_species_active,
const Vector f_grid,
const Vector abs_p,
const Index abs_xsec_agenda_checked,
const Verbosity verbosity 
)

WORKSPACE METHOD: abs_xsec_per_speciesInit.

Initialize abs_xsec_per_species.

The initialization is necessary, because methods abs_xsec_per_speciesAddLines and abs_xsec_per_speciesAddConts just add to abs_xsec_per_species. The size is determined from abs_species.

Author
Stefan Buehler
Parameters
[out]abs_xsec_per_speciesWS Output
[in]abs_speciesWS Input
[in]abs_species_activeWS Input
[in]f_gridWS Input
[in]abs_pWS Input
[in]abs_xsec_agenda_checkedWS Input

Definition at line 1468 of file m_abs.cc.

References CREATE_OUT3, Array< base >::nelem(), and ConstVectorView::nelem().

Referenced by abs_xsec_per_speciesInit_g().

◆ AbsInputFromAtmFields()

void AbsInputFromAtmFields ( Vector abs_p,
Vector abs_t,
Matrix abs_vmrs,
const Index atmosphere_dim,
const Vector p_grid,
const Tensor3 t_field,
const Tensor4 vmr_field,
const Verbosity verbosity 
)

WORKSPACE METHOD: AbsInputFromAtmFields.

Initialises the WSVs abs_p, abs_t and abs_vmrs from p_grid, t_field and vmr_field.

This only works for a 1D atmosphere!

Author
Stefan Buehler
Parameters
[out]abs_pWS Output
[out]abs_tWS Output
[out]abs_vmrsWS Output
[in]atmosphere_dimWS Input
[in]p_gridWS Input
[in]t_fieldWS Input
[in]vmr_fieldWS Input

Definition at line 1360 of file m_abs.cc.

References joker.

Referenced by AbsInputFromAtmFields_g().

◆ AbsInputFromRteScalars()

void AbsInputFromRteScalars ( Vector abs_p,
Vector abs_t,
Matrix abs_vmrs,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Vector rtp_vmr,
const Verbosity verbosity 
)

WORKSPACE METHOD: AbsInputFromRteScalars.

Initialize absorption input WSVs from local atmospheric conditions.

The purpose of this method is to allow an explicit line-by-line calculation, e.g., by abs_coefCalc, to be put inside the propmat_clearsky_agenda*. What the method does is to prepare absorption input parameters (pressure, temperature, VMRs), from the input parameters to propmat_clearsky_agenda.

Author
Stefan Buehler
Parameters
[out]abs_pWS Output
[out]abs_tWS Output
[out]abs_vmrsWS Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input
[in]rtp_vmrWS Input

Definition at line 73 of file m_abs.cc.

References ConstVectorView::nelem(), Vector::resize(), and Matrix::resize().

Referenced by AbsInputFromRteScalars_g(), propmat_clearskyAddOnTheFly(), and propmat_clearskyAddZeeman().

◆ isotopologue_ratiosInitFromBuiltin()

void isotopologue_ratiosInitFromBuiltin ( SpeciesAuxData isotopologue_ratios,
const Verbosity verbosity 
)

WORKSPACE METHOD: isotopologue_ratiosInitFromBuiltin.

Initialize isotopologue ratios with default values from built-in species data.

Author
Oliver Lemke
Parameters
[out]isotopologue_ratiosWS Output

Definition at line 2421 of file m_abs.cc.

References fillSpeciesAuxDataWithIsotopologueRatiosFromSpeciesData().

Referenced by isotopologue_ratiosInitFromBuiltin_g().

◆ propmat_clearskyAddFaraday()

void propmat_clearskyAddFaraday ( Tensor4 propmat_clearsky,
const Index stokes_dim,
const Index atmosphere_dim,
const Vector f_grid,
const ArrayOfArrayOfSpeciesTag abs_species,
const Vector rtp_vmr,
const Vector rtp_los,
const Vector rtp_mag,
const Verbosity verbosity 
)

WORKSPACE METHOD: propmat_clearskyAddFaraday.

Calculates absorption matrix describing Faraday rotation.

Faraday rotation is a change of polarization state of an electromagnetic wave propagating through charged matter by interaction with a magnetic field. Hence, this method requires abs_species* to contain 'free_electrons' and electron content field (as part of vmr_field) as well as magnetic field (mag_u_field, mag_v_field*, mag_w_field) to be specified.

Faraday rotation affects Stokes parameters 2 and 3 (but not intensity!). Therefore, this method requires stokes_dim>2.

Like all 'propmat_clearskyAdd*' methods, the method is additive, i.e., does not overwrite the propagation matrix propmat_clearsky, but adds further contributions.

Author
Patrick Eriksson
Parameters
[out]propmat_clearskyWS Output
[in]stokes_dimWS Input
[in]atmosphere_dimWS Input
[in]f_gridWS Input
[in]abs_speciesWS Input
[in]rtp_vmrWS Input
[in]rtp_losWS Input
[in]rtp_magWS Input

Definition at line 2155 of file m_abs.cc.

References abs, dotprod_with_los(), ELECTRON_CHARGE, ELECTRON_MASS, Array< base >::nelem(), ConstVectorView::nelem(), PI, SPEED_OF_LIGHT, SpeciesTag::TYPE_FREE_ELECTRONS, and VACUUM_PERMITTIVITY.

Referenced by propmat_clearskyAddFaraday_g().

◆ propmat_clearskyAddFromAbsCoefPerSpecies()

void propmat_clearskyAddFromAbsCoefPerSpecies ( Tensor4 propmat_clearsky,
const ArrayOfMatrix abs_coef_per_species,
const Verbosity verbosity 
)

WORKSPACE METHOD: propmat_clearskyAddFromAbsCoefPerSpecies.

Copy propmat_clearsky from abs_coef_per_species. This is handy for putting an explicit line-by-line calculation into the propmat_clearsky_agenda*. This method is also used internally by. propmat_clearskyAddOnTheFly*. Like all other propmat_clearsky methods, this method does not overwrite prior content of propmat_clearsky, but adds to it.

Author
Stefan Buehler
Parameters
[out]propmat_clearskyWS Output
[in]abs_coef_per_speciesWS Input

Definition at line 2046 of file m_abs.cc.

References joker, ConstTensor4View::nbooks(), ConstTensor4View::ncols(), Array< base >::nelem(), ConstTensor4View::npages(), and ConstTensor4View::nrows().

Referenced by propmat_clearskyAddFromAbsCoefPerSpecies_g(), and propmat_clearskyAddOnTheFly().

◆ propmat_clearskyAddOnTheFly()

void propmat_clearskyAddOnTheFly ( Workspace ws,
Tensor4 propmat_clearsky,
const Vector f_grid,
const ArrayOfArrayOfSpeciesTag abs_species,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Vector rtp_vmr,
const Agenda abs_xsec_agenda,
const Verbosity verbosity 
)

WORKSPACE METHOD: propmat_clearskyAddOnTheFly.

Calculates gas absorption coefficients line-by-line.

This method can be used inside propmat_clearsky_agenda just like propmat_clearskyAddFromLookup*. It is a shortcut for putting in some other methods explicitly, namely:

<br> 1. AbsInputFromRteScalars <br> 2. Execute abs_xsec_agenda <br> 3. abs_coefCalcFromXsec <br> 4. propmat_clearskyAddFromAbsCoefPerSpecies

The calculation is for one specific atmospheric condition, i.e., a set of pressure, temperature, and VMR values.

Author
Stefan Buehler, Richard Larsson
Parameters
[in,out]wsWorkspace
[out]propmat_clearskyWS Output
[in]f_gridWS Input
[in]abs_speciesWS Input
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input
[in]rtp_vmrWS Input
[in]abs_xsec_agendaWS Input

Definition at line 2337 of file m_abs.cc.

References abs_coefCalcFromXsec(), abs_xsec_agendaExecute(), AbsInputFromRteScalars(), CREATE_OUT3, Array< base >::nelem(), and propmat_clearskyAddFromAbsCoefPerSpecies().

Referenced by calc_lookup_error(), and propmat_clearskyAddOnTheFly_g().

◆ propmat_clearskyAddParticles()

void propmat_clearskyAddParticles ( Tensor4 propmat_clearsky,
const Index stokes_dim,
const Index atmosphere_dim,
const Vector f_grid,
const ArrayOfArrayOfSpeciesTag abs_species,
const Vector rtp_vmr,
const Vector rtp_los,
const Numeric rtp_temperature,
const ArrayOfSingleScatteringData scat_data_array,
const Verbosity verbosity 
)

WORKSPACE METHOD: propmat_clearskyAddParticles.

Calculates absorption coefficients of particles to be used in clearsky (non-cloudbox) calculations.

This is a method to include particles (neglecting possible scattering components) in a clearsky calculation, i.e. without applying the cloudbox and scattering solvers. Particles are handled as absorbing species with one instance of 'particles' per particle type considered added to abs_species. Particle absorption cross- sections at current atmospheric conditions are extracted from the single scattering data stored in scat_data_array, i.e., one array element per 'particles' instance in abs_species is required. Number densities are stored in vmr_field_raw or vmr_field as for all abs_species*, but can be taken from (raw) pnd_field type data.

A line-of-sight direction rtp_los is required as particles can exhibit directional dependent absorption properties, which is taken into account by this method. ParticleType2abs_speciesAdd* can be used to add all required settings/data for a single particle type at once, i.e. a 'particles' tag to abs_species, a set of single scattering data to scat_data_array* and a number density field to vmr_field_raw (vmr_field is derived applying AtmFieldsCalc once VMRs for all abs_species* have been added).

Like all 'propmat_clearskyAdd*' methods, the method is additive, i.e., does not overwrite the propagation matrix propmat_clearsky, but adds further contributions.

Author
Jana Mendrok
Parameters
[out]propmat_clearskyWS Output
[in]stokes_dimWS Input
[in]atmosphere_dimWS Input
[in]f_gridWS Input
[in]abs_speciesWS Input
[in]rtp_vmrWS Input
[in]rtp_losWS Input
[in]rtp_temperatureWS Input
[in]scat_data_arrayWS Input

Definition at line 2228 of file m_abs.cc.

References ext_matFromabs_vec(), joker, mirror_los(), Array< base >::nelem(), ConstVectorView::nelem(), ns, opt_propExtract(), scat_data_array_monoCalc(), and SpeciesTag::TYPE_PARTICLES.

Referenced by propmat_clearskyAddParticles_g().

◆ propmat_clearskyInit()

void propmat_clearskyInit ( Tensor4 propmat_clearsky,
const ArrayOfArrayOfSpeciesTag abs_species,
const Vector f_grid,
const Index stokes_dim,
const Index propmat_clearsky_agenda_checked,
const Verbosity verbosity 
)

WORKSPACE METHOD: propmat_clearskyInit.

Initialize propmat_clearsky.

This method must be used inside propmat_clearsky_agenda and then be called first.

Author
Oliver Lemke, Richard Larsson
Parameters
[out]propmat_clearskyWS Output
[in]abs_speciesWS Input
[in]f_gridWS Input
[in]stokes_dimWS Input
[in]propmat_clearsky_agenda_checkedWS Input

Definition at line 2122 of file m_abs.cc.

References Array< base >::nelem(), ConstVectorView::nelem(), and Tensor4::resize().

Referenced by calc_lookup_error(), and propmat_clearskyInit_g().

◆ propmat_clearskyZero()

void propmat_clearskyZero ( Tensor4 propmat_clearsky,
const Vector f_grid,
const Index stokes_dim,
const Verbosity verbosity 
)

WORKSPACE METHOD: propmat_clearskyZero.

Sets propmat_clearsky to match zero attenuation.

Use this method just if you know what you are doing!

If you want to make a calculation with no clear-sky attenuation at all, fill propmat_clearsky_agenda with this method and required Ignore statements (don't include propmat_clearskyInit).

Author
Patrick Eriksson
Parameters
[out]propmat_clearskyWS Output
[in]f_gridWS Input
[in]stokes_dimWS Input

Definition at line 2407 of file m_abs.cc.

References ConstVectorView::nelem(), and Tensor4::resize().

Referenced by propmat_clearskyZero_g().

◆ WriteMolTau()

void WriteMolTau ( const Vector f_grid,
const Tensor3 z_field,
const Tensor7 propmat_clearsky_field,
const Index atmosphere_dim,
const String filename,
const Verbosity verbosity 
)

WORKSPACE METHOD: WriteMolTau.

Writes a 'molecular_tau_file' as required for libRadtran.

The libRadtran (www.libradtran.org) radiative transfer package is a comprehensive package for various applications, it can be used to compute radiances, irradiances, actinic fluxes, ... for the solar and the thermal spectral ranges. Absorption is usually treated using k-distributions or other parameterizations. For calculations with high spectral resolution it requires absorption coefficients from an external line-by-line model. Using this method, arts generates a file that can be used by libRadtran (option molecular_tau_file).

Author
Claudia Emde
Parameters
[in]f_gridWS Input
[in]z_fieldWS Input
[in]propmat_clearsky_fieldWS Input
[in]atmosphere_dimWS Input
[in]filenameGeneric Input

Definition at line 2431 of file m_abs.cc.

References Tensor4View::get_c_array(), ConstTensor7View::nbooks(), nca_error(), ConstVectorView::nelem(), ConstTensor7View::nlibraries(), ConstTensor3View::npages(), and SPEED_OF_LIGHT.

Referenced by WriteMolTau_g().

Variable Documentation

◆ ELECTRON_CHARGE

const Numeric ELECTRON_CHARGE
extern

◆ ELECTRON_MASS

const Numeric ELECTRON_MASS
extern

◆ PI

const Numeric PI
extern

◆ SPEED_OF_LIGHT

const Numeric SPEED_OF_LIGHT
extern

◆ VACUUM_PERMITTIVITY

const Numeric VACUUM_PERMITTIVITY
extern