ARTS  2.2.66
m_refraction.cc File Reference

Workspace methods releated to refraction. More...

#include <cmath>
#include "absorption.h"
#include "arts.h"
#include "check_input.h"
#include "math_funcs.h"
#include "matpackI.h"
#include "messages.h"
#include "refraction.h"
#include "special_interp.h"
#include "abs_species_tags.h"
#include "physics_funcs.h"

Go to the source code of this file.

Functions

void refr_index_airFreeElectrons (Numeric &refr_index_air, Numeric &refr_index_air_group, const Vector &f_grid, const ArrayOfArrayOfSpeciesTag &abs_species, const Vector &rtp_vmr, const Index &demand_vmr_value, const Verbosity &)
 WORKSPACE METHOD: refr_index_airFreeElectrons. More...
 
void refr_index_airIR (Numeric &refr_index_air, Numeric &refr_index_air_group, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Verbosity &)
 WORKSPACE METHOD: refr_index_airIR. More...
 
void refr_index_airThayer (Numeric &refr_index_air, Numeric &refr_index_air_group, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const ArrayOfArrayOfSpeciesTag &abs_species, const Numeric &a, const Numeric &b, const Numeric &c, const Verbosity &)
 WORKSPACE METHOD: refr_index_airThayer. More...
 
void refr_index_airMWgeneral (Numeric &refr_index_air, Numeric &refr_index_air_group, const Numeric &rtp_pressure, const Numeric &rtp_temperature, const Vector &rtp_vmr, const ArrayOfArrayOfSpeciesTag &abs_species, const Verbosity &)
 WORKSPACE METHOD: refr_index_airMWgeneral. More...
 
void complex_refr_indexConstant (GriddedField3 &complex_refr_index, const Numeric &refr_index_real, const Numeric &refr_index_imag, const Verbosity &)
 WORKSPACE METHOD: complex_refr_indexConstant. More...
 
void complex_refr_indexWaterLiebe93 (GriddedField3 &complex_refr_index, const Vector &f_grid, const Vector &t_grid, const Verbosity &verbosity)
 WORKSPACE METHOD: complex_refr_indexWaterLiebe93. More...
 
void complex_refr_indexIceWarren84 (GriddedField3 &, const Vector &, const Vector &, const Verbosity &)
 WORKSPACE METHOD: complex_refr_indexIceWarren84. More...
 

Variables

const Numeric ELECTRON_CHARGE
 
const Numeric ELECTRON_MASS
 
const Numeric PI
 
const Numeric VACUUM_PERMITTIVITY
 
const Numeric TORR2PA
 

Detailed Description

Workspace methods releated to refraction.

Author
Patrick Eriksson Patri.nosp@m.ck.E.nosp@m.rikss.nosp@m.on@c.nosp@m.halme.nosp@m.rs.s.nosp@m.e
Date
2003-01-09

These functions are listed in the doxygen documentation as entries of the file auto_md.h.

Definition in file m_refraction.cc.

Function Documentation

◆ complex_refr_indexConstant()

void complex_refr_indexConstant ( GriddedField3 complex_refr_index,
const Numeric refr_index_real,
const Numeric refr_index_imag,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexConstant.

Set complex refractive index to a constant value.

Frequency and temperature grids are set to have length 1 (and set to the value 0).

Author
Oliver Lemke
Parameters
[out]complex_refr_indexWS Output
[in]refr_index_realGeneric Input
[in]refr_index_imagGeneric Input

Definition at line 334 of file m_refraction.cc.

References GriddedField3::data, joker, GriddedField3::resize(), GriddedField::set_grid(), and GriddedField::set_grid_name().

Referenced by complex_refr_indexConstant_g().

◆ complex_refr_indexIceWarren84()

void complex_refr_indexIceWarren84 ( GriddedField3 complex_refr_index,
const Vector data_f_grid,
const Vector data_T_grid,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexIceWarren84.

Refractive index of ice follwoing Warren84 parameterization.

Calculates complex refractive index of Ice 1H for wavelengths between 45 nm and 8.6 m. For wavelengths above 167 microns, temperature dependence is included for temperatures between 213 and 272K. Mainly intended for applications in Earth ice clouds and snow, not other planets or interstellar space; the temperature dependence or crystalline form of ice may be incorrect for these latter applications.

Authors of Fortran function: Stephen Warren, Univ. of Washington (1983) Bo-Cai Gao, JCESS, Univ. of Maryland (1995) Warren Wiscombe, NASA Goddard (1995)

References: Warren, S., 1984: Optical Constants of Ice from the Ultraviolet to the Microwave, Appl. Opt. 23, 1206-1225

Kou, L., D. Labrie, and P. Chylek, 1994: Refractive indices of water and ice in the 0.65- to 2.5-micron spectral range, Appl. Opt. 32, 3531-3540

Perovich, D., and J. Govoni, 1991: Absorption Coefficients of Ice from 250 to 400 nm, Geophys. Res. Lett. 18, 1233-1235

Author
Oliver Lemke
Parameters
[out]complex_refr_indexWS Output
[in]data_f_gridGeneric Input
[in]data_T_gridGeneric Input

Definition at line 439 of file m_refraction.cc.

Referenced by complex_refr_indexIceWarren84_g().

◆ complex_refr_indexWaterLiebe93()

void complex_refr_indexWaterLiebe93 ( GriddedField3 complex_refr_index,
const Vector data_f_grid,
const Vector data_T_grid,
const Verbosity verbosity 
)

WORKSPACE METHOD: complex_refr_indexWaterLiebe93.

Complex refractive index of liquid water according to Liebe 1993.

The method treats liquid water without salt. Thus, not valid below 10 GHz. Upper frequency limit not known, here set to 1000 GHz. Model parameters taken from Atmlab function epswater93 (by C. Maetzler), which refer to Liebe 1993 without closer specifications.

Temperatures must be between -40 and 100 degrees Celsius. The accuracy of the parametrization below 0 C is not known by us.

Author
Patrick Eriksson
Oliver Lemke
Parameters
[out]complex_refr_indexWS Output
[in]data_f_gridGeneric Input
[in]data_T_gridGeneric Input

Definition at line 355 of file m_refraction.cc.

References complex_n_water_liebe93(), CREATE_OUT1, GriddedField3::data, joker, min, ConstVectorView::nelem(), GriddedField3::resize(), GriddedField::set_grid(), and GriddedField::set_grid_name().

Referenced by complex_refr_indexWaterLiebe93_g().

◆ refr_index_airFreeElectrons()

void refr_index_airFreeElectrons ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Vector f_grid,
const ArrayOfArrayOfSpeciesTag abs_species,
const Vector rtp_vmr,
const Index demand_vmr_value,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airFreeElectrons.

Microwave refractive index due to free electrons.

The refractive index of free electrons is added to refr_index_air. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression applied is n=sqrt(1-wp^2/w^2) where wp is the plasma frequency, and w is the angular frequency (the function returns n-1, that here is slightly negative). This expressions is found in many textbooks, e.g. Rybicki and Lightman (1979). The above refers to refr_index. refr_index_group is sqrt(1+wp^2/w^2).

The expression is dispersive. The frequency applied is the mean of first and last element of f_grid is selected. This frequency must be at least twice the plasma frequency.

An error is issued if free electrons not are part of abs_species (and there exist a corresponding "vmr"-value). This demand is removed if demand_vmr_value is set to 0, but use this option with care.

Author
Patrick Eriksson
Parameters
[out]refr_index_airWS Output
[out]refr_index_air_groupWS Output
[in]f_gridWS Input
[in]abs_speciesWS Input
[in]rtp_vmrWS Input
[in]demand_vmr_valueGeneric Input (Default: "1")

Definition at line 66 of file m_refraction.cc.

References ELECTRON_CHARGE, ELECTRON_MASS, last(), Array< base >::nelem(), PI, SpeciesTag::TYPE_FREE_ELECTRONS, and VACUUM_PERMITTIVITY.

Referenced by refr_index_airFreeElectrons_g().

◆ refr_index_airIR()

void refr_index_airIR ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airIR.

Calculates the IR refractive index due to gases in the Earth's atmosphere.

Only refractivity of dry air is considered. The formula used is contributed by Michael Hoefner, Forschungszentrum Karlsruhe.

The refractivity of dry air is added to refr_index_air. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression used is non-dispersive. Hence, refr_index_air and refr_index_air_group* are identical.

Author
Mattias Ekstrom
Parameters
[out]refr_index_airWS Output
[out]refr_index_air_groupWS Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input

Definition at line 135 of file m_refraction.cc.

Referenced by refr_index_airIR_g().

◆ refr_index_airMWgeneral()

void refr_index_airMWgeneral ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Vector rtp_vmr,
const ArrayOfArrayOfSpeciesTag abs_species,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airMWgeneral.

Microwave refractive index due to gases in planetary atmospheres.

The refractivity of a specified gas mixture is calculated and added to refr_index_air. To obtain the complete value, refr_index_air should be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression used is non-dispersive. Hence, refr_index_air and refr_index_air_group* are identical.

Uses the methodology introduced by Newell&Baird (1965) for calculating refractivity of variable gas mixtures based on refractivity of the individual gases at reference conditions. Assuming ideal gas law for converting reference refractivity to actual pressure and temperature conditions. Reference refractivities are also taken from Newell&Baird (1965) and are vailable for N2, O2, CO2, H2, and He. Additionally, H2O reference refractivity has been derived from H2O contribution in Thayer (see refr_index_airThayer*) for T0=273.15K. Any mixture of these gases can be taken into account.

Author
Jana Mendrok
Parameters
[out]refr_index_airWS Output
[out]refr_index_air_groupWS Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input
[in]rtp_vmrWS Input
[in]abs_speciesWS Input

Definition at line 196 of file m_refraction.cc.

References find_first_species_tg(), Array< base >::nelem(), ConstVectorView::nelem(), species_index_from_species_name(), and TORR2PA.

Referenced by refr_index_airMWgeneral_g().

◆ refr_index_airThayer()

void refr_index_airThayer ( Numeric refr_index_air,
Numeric refr_index_air_group,
const Numeric rtp_pressure,
const Numeric rtp_temperature,
const Vector rtp_vmr,
const ArrayOfArrayOfSpeciesTag abs_species,
const Numeric a,
const Numeric b,
const Numeric c,
const Verbosity verbosity 
)

WORKSPACE METHOD: refr_index_airThayer.

Microwave refractive index due to gases in the Earth's atmosphere.

The refractivity of dry air and water vapour is added to refr_index_air*. To obtain the complete value, refr_index_air shoul be set to 1 before calling this WSM. This applies also to refr_index_air_group.

The expression used is non-dispersive. Hence, refr_index_air and refr_index_air_group* are identical.

The parameterisation of Thayer (Radio Science, 9, 803-807, 1974) is used. See also Eq. 3 and 5 of Solheim et al. (JGR, 104, pp. 9664). The expression can be written as <br> N = aP/T + be/T + ce/T^2 where N is refractivity, P is pressure, T is temperature and e is water vapour partial pressure. The values of a, b and c can be modified. Default values are taken from Thayer (1974). Note that Thayer uses mbar for pressures, while in ARTS Pa is used and a, b and c must be scaled accordingly.

Author
Patrick Eriksson
Parameters
[out]refr_index_airWS Output
[out]refr_index_air_groupWS Output
[in]rtp_pressureWS Input
[in]rtp_temperatureWS Input
[in]rtp_vmrWS Input
[in]abs_speciesWS Input
[in]aGeneric Input (Default: "77.6e-8")
[in]bGeneric Input (Default: "64.8e-8")
[in]cGeneric Input (Default: "3.776e-3")

Definition at line 157 of file m_refraction.cc.

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

Referenced by refr_index_airThayer_g().

Variable Documentation

◆ ELECTRON_CHARGE

const Numeric ELECTRON_CHARGE
extern

◆ ELECTRON_MASS

const Numeric ELECTRON_MASS
extern

◆ PI

const Numeric PI
extern

◆ TORR2PA

const Numeric TORR2PA
extern

Referenced by refr_index_airMWgeneral().

◆ VACUUM_PERMITTIVITY

const Numeric VACUUM_PERMITTIVITY
extern