ARTS 2.5.9 (git: 825fa5f2)
physics_funcs.cc File Reference

This file contains the code of functions of physical character. More...

#include "physics_funcs.h"
#include "arts_constants.h"
#include "arts_conversions.h"
#include "messages.h"
#include "mystring.h"
#include <cmath>
#include <stdexcept>

Go to the source code of this file.

Functions

Numeric barometric_heightformula (const Numeric &p, const Numeric &dh)
 barometric_heightformula More...
 
Numeric dinvplanckdI (const Numeric &i, const Numeric &f)
 dinvplanckdI More...
 
void fresnel (Complex &Rv, Complex &Rh, const Complex &n1, const Complex &n2, const Numeric &theta)
 fresnel More...
 
Numeric invplanck (const Numeric &i, const Numeric &f)
 invplanck More...
 
Numeric invrayjean (const Numeric &i, const Numeric &f)
 invrayjean More...
 
Numeric planck (const Numeric &f, const Numeric &t)
 planck More...
 
void planck (VectorView b, const ConstVectorView &f, const Numeric &t)
 planck More...
 
Vector planck (const ConstVectorView &f, const Numeric &t)
 planck More...
 
Numeric dplanck_dt (const Numeric &f, const Numeric &t)
 dplanck_dt More...
 
void dplanck_dt (VectorView dbdt, const ConstVectorView &f, const Numeric &t)
 dplanck_dt More...
 
Vector dplanck_dt (const ConstVectorView &f, const Numeric &t)
 dplanck_dt More...
 
Numeric dplanck_df (const Numeric &f, const Numeric &t)
 dplanck_df More...
 
Vector dplanck_df (const ConstVectorView &f, const Numeric &t)
 dplanck_df More...
 
Numeric rayjean (const Numeric &f, const Numeric &tb)
 rayjean More...
 

Variables

constexpr Numeric BOLTZMAN_CONST =Constant::boltzmann_constant
 
constexpr Numeric DEG2RAD =Conversion::deg2rad(1)
 
constexpr Numeric PLANCK_CONST =Constant::planck_constant
 
constexpr Numeric SPEED_OF_LIGHT =Constant::speed_of_light
 

Detailed Description

This file contains the code of functions of physical character.

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
2002-05-08

Modified by Claudia Emde (2002-05-28).

Definition in file physics_funcs.cc.

Function Documentation

◆ barometric_heightformula()

Numeric barometric_heightformula ( const Numeric p,
const Numeric dh 
)

barometric_heightformula

Barometric heightformula for isothermal earth atmosphere.

Parameters
[in]pAtmospheric pressure at starting level [Pa].
[in]dhVertical displacement to starting pressure level [m].
Returns
p1 Pressure in displacement level [Pa].
Author
Daniel Kreyling
Date
2011-01-20

Definition at line 64 of file physics_funcs.cc.

References M.

Referenced by cloudboxSetAutomatically().

◆ dinvplanckdI()

Numeric dinvplanckdI ( const Numeric i,
const Numeric f 
)

dinvplanckdI

Calculates the derivative of inverse-Planck with respect to intensity.

Parameters
[in]iRadiance.
[in]fFrequency.
Returns
The derivative.
Author
Patrick Eriksson
Date
2010-10-26

Definition at line 100 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, b, BOLTZMAN_CONST, d, PLANCK_CONST, and SPEED_OF_LIGHT.

Referenced by apply_iy_unit2().

◆ dplanck_df() [1/2]

Vector dplanck_df ( const ConstVectorView f,
const Numeric t 
)

dplanck_df

Calculates the frequency derivative of the Planck function for a single temperature and frequency.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation frequency derivative.
Author
Richard Larsson
Date
2015-09-15

Definition at line 362 of file physics_funcs.cc.

References dplanck_df(), and ConstVectorView::nelem().

◆ dplanck_df() [2/2]

Numeric dplanck_df ( const Numeric f,
const Numeric t 
)

dplanck_df

Calculates the frequency derivative of the Planck function for a single temperature and frequency.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation frequency derivative.
Author
Richard Larsson
Date
2015-09-15

Definition at line 337 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, b, Constant::c, Constant::h, Constant::k, and Math::pow2().

Referenced by dplanck_df(), and nlte_sourceFromTemperatureAndSrcCoefPerSpecies().

◆ dplanck_dt() [1/3]

Vector dplanck_dt ( const ConstVectorView f,
const Numeric t 
)

dplanck_dt

Calculates the Planck function temperature derivative for a single temperature and a vector of frequencies.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation temperature derivative.
Author
Richard Larsson
Date
2019-10-11

Definition at line 318 of file physics_funcs.cc.

References dplanck_dt(), and ConstVectorView::nelem().

◆ dplanck_dt() [2/3]

Numeric dplanck_dt ( const Numeric f,
const Numeric t 
)

dplanck_dt

Calculates the temperature derivative of the Planck function for a single temperature and frequency.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation temperature derivative.
Author
Richard Larsson
Date
2015-09-15

Definition at line 273 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, b, Constant::c, Constant::h, Constant::k, Math::pow2(), and Math::pow4().

Referenced by dplanck_dt(), get_stepwise_blackbody_radiation(), iySurfaceLambertian(), nlte_sourceFromTemperatureAndSrcCoefPerSpecies(), and SurfaceBlackbody().

◆ dplanck_dt() [3/3]

void dplanck_dt ( VectorView  dbdt,
const ConstVectorView f,
const Numeric t 
)

dplanck_dt

Calculates the Planck function temperature derivative for a single temperature and a vector of frequencies.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation temperature derivative.
Author
Richard Larsson
Date
2019-10-11

Definition at line 299 of file physics_funcs.cc.

References ARTS_USER_ERROR_IF, dplanck_dt(), and ConstVectorView::nelem().

◆ fresnel()

void fresnel ( Complex Rv,
Complex Rh,
const Complex n1,
const Complex n2,
const Numeric theta 
)

fresnel

Calculates complex AMPLITUDE reflection coeffcients for a specular reflection.

The properties of the two involved media are given as the complex refractive index, n. A dielectric constant, eps, is converted as n = sqrt( eps ). The power reflection coefficient, r, for one polarisation is r = abs(R)^2.

Parameters
[out]RvReflection coefficient for vertical polarisation.
[out]RhReflection coefficient for vertical polarisation.
[in]n1Refractive index of medium where radiation propagates.
[in]n2Refractive index of reflecting medium.
[in]thetaPropagation angle from normal of radiation to be. reflected
Author
Patrick Eriksson
Date
2004-09-21

Definition at line 132 of file physics_funcs.cc.

References a, b, and DEG2RAD.

Referenced by surfaceFlatRefractiveIndex().

◆ invplanck()

Numeric invplanck ( const Numeric i,
const Numeric f 
)

invplanck

Converts a radiance to Planck brightness temperature.

Parameters
[in]iRadiance.
[in]fFrequency.
Returns
Planck brightness temperature.
Author
Patrick Eriksson
Date
2002-08-11

Definition at line 162 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, b, BOLTZMAN_CONST, PLANCK_CONST, and SPEED_OF_LIGHT.

Referenced by apply_iy_unit().

◆ invrayjean()

Numeric invrayjean ( const Numeric i,
const Numeric f 
)

invrayjean

Converts a radiance to Rayleigh-Jean brightness temperature.

Parameters
[in]iRadiance.
[in]fFrequency.
Returns
RJ brightness temperature.
Author
Patrick Eriksson
Date
2000-09-28

Definition at line 184 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, BOLTZMAN_CONST, and SPEED_OF_LIGHT.

Referenced by apply_iy_unit(), apply_iy_unit2(), cloudbox_fieldUpdateSeq1D(), doit_conv_flagAbsBT(), doit_conv_flagLsq(), and MCGeneral().

◆ planck() [1/3]

Vector planck ( const ConstVectorView f,
const Numeric t 
)

planck

Calculates the Planck function for a single temperature and a vector of frequencies.

Note that this expression gives the intensity for both polarisations.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation.
Author
Patrick Eriksson
Date
2015-12-15

Definition at line 254 of file physics_funcs.cc.

References b, ConstVectorView::nelem(), and planck().

◆ planck() [2/3]

Numeric planck ( const Numeric f,
const Numeric t 
)

planck

Calculates the Planck function for a single temperature.

Note that this expression gives the intensity for both polarisations.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation.
Author
Patrick Eriksson
Date
2000-04-08

Definition at line 208 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, b, Constant::c, Constant::h, Constant::k, Math::pow2(), and Math::pow3().

Referenced by cloud_ppath_update1D_planeparallel(), cloud_RT_no_background(), get_stepwise_blackbody_radiation(), iySurfaceLambertian(), MatrixCBR(), MatrixPlanck(), MCGeneral(), nlte_sourceFromTemperatureAndSrcCoefPerSpecies(), planck(), regrid_star_spectrum(), starsAddSingleBlackbody(), surface_specular_R_and_b(), surfaceBlackbody(), surfaceFastem(), surfaceFlatReflectivity(), surfaceFlatRvRh(), surfaceFlatScalarReflectivity(), and surfaceLambertianSimple().

◆ planck() [3/3]

void planck ( VectorView  b,
const ConstVectorView f,
const Numeric t 
)

planck

Calculates the Planck function for a single temperature and a vector of frequencies.

Note that this expression gives the intensity for both polarisations.

Parameters
[in]fFrequency.
[in]tTemperature.
Returns
Blackbody radiation.
Author
Patrick Eriksson
Date
2015-12-15

Definition at line 233 of file physics_funcs.cc.

References ARTS_USER_ERROR_IF, b, ConstVectorView::nelem(), and planck().

◆ rayjean()

Numeric rayjean ( const Numeric f,
const Numeric tb 
)

rayjean

Converts a Rayleigh-Jean brightness temperature to radiance

Parameters
[in]tbRJ brightness temperature.
[in]fFrequency.
Returns
Radiance.
Author
Patrick Eriksson
Date
2011-07-13

Definition at line 380 of file physics_funcs.cc.

References a, ARTS_USER_ERROR_IF, BOLTZMAN_CONST, and SPEED_OF_LIGHT.

Variable Documentation

◆ BOLTZMAN_CONST

constexpr Numeric BOLTZMAN_CONST =Constant::boltzmann_constant
inlineconstexpr

Definition at line 43 of file physics_funcs.cc.

Referenced by dinvplanckdI(), invplanck(), invrayjean(), and rayjean().

◆ DEG2RAD

constexpr Numeric DEG2RAD =Conversion::deg2rad(1)
inlineconstexpr

Definition at line 44 of file physics_funcs.cc.

Referenced by fresnel().

◆ PLANCK_CONST

constexpr Numeric PLANCK_CONST =Constant::planck_constant
inlineconstexpr

Definition at line 45 of file physics_funcs.cc.

Referenced by dinvplanckdI(), and invplanck().

◆ SPEED_OF_LIGHT

constexpr Numeric SPEED_OF_LIGHT =Constant::speed_of_light
inlineconstexpr

Definition at line 46 of file physics_funcs.cc.

Referenced by dinvplanckdI(), invplanck(), invrayjean(), and rayjean().