ARTS 2.5.11 (git: 6827797f)
nlte.cc File Reference
#include "nlte.h"
#include "arts_constants.h"
#include "interp.h"

Go to the source code of this file.

Functions

void statistical_equilibrium_equation (MatrixView A, const ConstVectorView &Aij, const ConstVectorView &Bij, const ConstVectorView &Bji, const ConstVectorView &Cij, const ConstVectorView &Cji, const ConstVectorView &Jij, const ArrayOfIndex &upper, const ArrayOfIndex &lower)
 Sets up the solution matrix for linear statistical equilibrium equation.
 
void dampened_statistical_equilibrium_equation (MatrixView A, const ConstVectorView &x, const ConstVectorView &Aij, const ConstVectorView &Bij, const ConstVectorView &Bji, const ConstVectorView &Cij, const ConstVectorView &Cji, const ConstVectorView &Jij, const ConstVectorView &Lambda, const ArrayOfIndex &upper, const ArrayOfIndex &lower, const Numeric &total_number_count)
 Sets up the solution matrix for linear dampened statistical equilibrium equation.
 
void set_constant_statistical_equilibrium_matrix (MatrixView A, VectorView x, const Numeric &sem_ratio, const Index row)
 Set a row of the SEE matrix and level distribution vector to constant.
 
Vector createAij (const ArrayOfArrayOfAbsorptionLines &abs_lines)
 Create a Aij object.
 
Vector createBij (const ArrayOfArrayOfAbsorptionLines &abs_lines)
 Create a Bij object.
 
Vector createBji (const Vector &Bij, const ArrayOfArrayOfAbsorptionLines &abs_lines)
 Create a Bji object.
 
Vector createCji (const Vector &Cij, const ArrayOfArrayOfAbsorptionLines &abs_lines, const Numeric &T)
 Create a Cji object.
 
void setCji (Vector &Cji, const Vector &Cij, const ArrayOfArrayOfAbsorptionLines &abs_lines, const Numeric &T)
 Set the Cji object.
 
void nlte_collision_factorsCalcFromCoeffs (Vector &Cij, Vector &Cji, const ArrayOfArrayOfAbsorptionLines &abs_lines, const ArrayOfArrayOfSpeciesTag &abs_species, const ArrayOfArrayOfGriddedField1 &collision_coefficients, const ArrayOfQuantumIdentifier &collision_line_identifiers, const SpeciesIsotopologueRatios &isotopologue_ratios, const ConstVectorView &vmr, const Numeric &T, const Numeric &P)
 Gets collisional factors from coefficients.
 
void nlte_positions_in_statistical_equilibrium_matrix (ArrayOfIndex &upper, ArrayOfIndex &lower, const ArrayOfArrayOfAbsorptionLines &abs_lines, const EnergyLevelMap &nlte_field)
 Finds upper and lower states in SEE Matrix.
 
Index find_first_unique_in_lower (const ArrayOfIndex &upper, const ArrayOfIndex &lower) ARTS_NOEXCEPT
 Finds a unique lower state if one exists or returns index to last element.
 
void check_collision_line_identifiers (const ArrayOfQuantumIdentifier &collision_line_identifiers)
 Checks that a WSV is OK or throws a run-time error.
 

Function Documentation

◆ check_collision_line_identifiers()

void check_collision_line_identifiers ( const ArrayOfQuantumIdentifier collision_line_identifiers)

Checks that a WSV is OK or throws a run-time error.

Parameters
[in]collision_line_identifiersAs WSV

Definition at line 259 of file nlte.cc.

References ARTS_USER_ERROR_IF.

Referenced by collision_coefficientsFromSplitFiles().

◆ createAij()

Vector createAij ( const ArrayOfArrayOfAbsorptionLines abs_lines)

Create a Aij object.

Parameters
[in]abs_linesAll lines of interest
Returns
Vector Einstein coefficient for spontaneuos emission of all lines

Definition at line 79 of file nlte.cc.

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ createBij()

Vector createBij ( const ArrayOfArrayOfAbsorptionLines abs_lines)

Create a Bij object.

Parameters
[in]abs_linesAll lines of interest
Returns
Vector Einstein coefficient for induced emission of all lines

Definition at line 96 of file nlte.cc.

References Constant::c, Constant::h, Math::pow2(), and Math::pow3().

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ createBji()

Vector createBji ( const Vector &  Bij,
const ArrayOfArrayOfAbsorptionLines abs_lines 
)

Create a Bji object.

Parameters
[in]BijEinstein coefficient for induced emission of all lines
[in]abs_linesAll lines of interest
Returns
Vector Einstein coefficient for induced absorption of all lines

Definition at line 116 of file nlte.cc.

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ createCji()

Vector createCji ( const Vector &  Cij,
const ArrayOfArrayOfAbsorptionLines abs_lines,
const Numeric &  T 
)

Create a Cji object.

Parameters
[in]CijCollisional rate of change from upper to lower state level
[in]abs_linesAll lines of interest
[in]TTemperature
Returns
Vector Collisional rate of change from lower to upper state level

Definition at line 134 of file nlte.cc.

References setCji().

◆ dampened_statistical_equilibrium_equation()

void dampened_statistical_equilibrium_equation ( MatrixView  A,
const ConstVectorView &  x,
const ConstVectorView &  Aij,
const ConstVectorView &  Bij,
const ConstVectorView &  Bji,
const ConstVectorView &  Cij,
const ConstVectorView &  Cji,
const ConstVectorView &  Jij,
const ConstVectorView &  Lambda,
const ArrayOfIndex upper,
const ArrayOfIndex lower,
const Numeric &  total_number_count = 1.0 
)

Sets up the solution matrix for linear dampened statistical equilibrium equation.

Parameters
[in,out]AMatrix to solve SEE
[in]xRatio of molecules for each state
[in]AijEinstein coefficient for spontaneuos emission of all lines
[in]BijEinstein coefficient for induced emission of all lines
[in]BjiEinstein coefficient for induced absorption of all lines
[in]CijCollisional rate of change from upper to lower state level
[in]CjiCollisional rate of change from lower to upper state level
[in]JijRadiation field for the upper to lower transition for each line
[in]LambdaTransmission for the upper to lower transition for each line
[in]upperIndex list for upper state levels for each line
[in]lowerIndex list for lower state levels for each line

Definition at line 37 of file nlte.cc.

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ find_first_unique_in_lower()

Index find_first_unique_in_lower ( const ArrayOfIndex upper,
const ArrayOfIndex lower 
)

Finds a unique lower state if one exists or returns index to last element.

Parameters
[in]upperIndex list for upper state levels for each line
[in]lowerIndex list for lower state levels for each line
Returns
Index Pos of unique element or len-1

Definition at line 250 of file nlte.cc.

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ nlte_collision_factorsCalcFromCoeffs()

void nlte_collision_factorsCalcFromCoeffs ( Vector &  Cij,
Vector &  Cji,
const ArrayOfArrayOfAbsorptionLines abs_lines,
const ArrayOfArrayOfSpeciesTag abs_species,
const ArrayOfArrayOfGriddedField1 collision_coefficients,
const ArrayOfQuantumIdentifier collision_line_identifiers,
const SpeciesIsotopologueRatios isotopologue_ratios,
const ConstVectorView &  vmr,
const Numeric &  T,
const Numeric &  P 
)

Gets collisional factors from coefficients.

Parameters
[in,out]CijCollisional rate of change from upper to lower state level
[in,out]CjiCollisional rate of change from lower to upper state level
[in]abs_linesAll lines of interest
[in]abs_speciesAll absorption species
[in]collision_coefficientsAs WSV
[in]collision_line_identifiersAs WSV
[in]isotopologue_ratiosAs WSV
[in]vmrVolume mixing ratios of absoprtion species
[in]TTemperature
[in]PPressure

Definition at line 162 of file nlte.cc.

References interp(), interpweights(), Constant::k, Array< base >::nelem(), and setCji().

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ nlte_positions_in_statistical_equilibrium_matrix()

void nlte_positions_in_statistical_equilibrium_matrix ( ArrayOfIndex upper,
ArrayOfIndex lower,
const ArrayOfArrayOfAbsorptionLines abs_lines,
const EnergyLevelMap nlte_field 
)

Finds upper and lower states in SEE Matrix.

Parameters
[in,out]upperIndex list for upper state levels for each line
[in,out]lowerIndex list for lower state levels for each line
[in]abs_linesAll lines of interest
[in]nlte_quantum_identifiersAs WSV

Definition at line 217 of file nlte.cc.

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

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ set_constant_statistical_equilibrium_matrix()

void set_constant_statistical_equilibrium_matrix ( MatrixView  A,
VectorView  x,
const Numeric &  sem_ratio,
const Index  row 
)

Set a row of the SEE matrix and level distribution vector to constant.

Parameters
[in]AMatrix to solve SEE
[in]xRatio of molecules for each state
[in]sem_ratioLargest ratio possible
[in]rowRow of SEE Matrix being zero

Definition at line 71 of file nlte.cc.

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().

◆ setCji()

void setCji ( Vector &  Cji,
const Vector &  Cij,
const ArrayOfArrayOfAbsorptionLines abs_lines,
const Numeric &  T 
)

Set the Cji object.

Parameters
[in,out]CjiCollisional rate of change from lower to upper state level
[in]CijCollisional rate of change from upper to lower state level
[in]abs_linesAll lines of interest
[in]TTemperature
[in]nSize of Cij

Definition at line 143 of file nlte.cc.

References Constant::boltzmann_constant, and Constant::planck_constant.

Referenced by createCji(), and nlte_collision_factorsCalcFromCoeffs().

◆ statistical_equilibrium_equation()

void statistical_equilibrium_equation ( MatrixView  A,
const ConstVectorView &  Aij,
const ConstVectorView &  Bij,
const ConstVectorView &  Bji,
const ConstVectorView &  Cij,
const ConstVectorView &  Cji,
const ConstVectorView &  Jij,
const ArrayOfIndex upper,
const ArrayOfIndex lower 
)

Sets up the solution matrix for linear statistical equilibrium equation.

Parameters
[in,out]AMatrix to solve SEE
[in]AijEinstein coefficient for spontaneuos emission of all lines
[in]BijEinstein coefficient for induced emission of all lines
[in]BjiEinstein coefficient for induced absorption of all lines
[in]CijCollisional rate of change from upper to lower state level
[in]CjiCollisional rate of change from lower to upper state level
[in]JijRadiation field for the upper to lower transition for each line
[in]upperIndex list for upper state levels for each line
[in]lowerIndex list for lower state levels for each line

Definition at line 13 of file nlte.cc.

Referenced by nlte_fieldForSingleSpeciesNonOverlappingLines().