ARTS  2.3.1285(git:92a29ea9-dirty)
nlte.h
Go to the documentation of this file.
1 /* Copyright (C) 2018
2  Richard Larsson
3 
4  This program is free software; you can redistribute it and/or modify it
5  under the terms of the GNU General Public License as published by the
6  Free Software Foundation; either version 2, or (at your option) any
7  later version.
8 
9  This program is distributed in the hope that it will be useful,
10  but WITHOUT ANY WARRANTY; without even the implied warranty of
11  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  GNU General Public License for more details.
13 
14  You should have received a copy of the GNU General Public License
15  along with this program; if not, write to the Free Software
16  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
17  USA. */
18 
27 #include "absorption.h"
28 #include "gridded_fields.h"
29 #include "matpackI.h"
30 
44  ConstVectorView Aij,
45  ConstVectorView Bij,
46  ConstVectorView Bji,
47  ConstVectorView Cij,
48  ConstVectorView Cji,
49  ConstVectorView Jij,
50  const ArrayOfIndex& upper,
51  const ArrayOfIndex& lower);
52 
68  MatrixView A,
70  ConstVectorView Aij,
71  ConstVectorView Bij,
72  ConstVectorView Bji,
73  ConstVectorView Cij,
74  ConstVectorView Cji,
75  ConstVectorView Jij,
76  ConstVectorView Lambda,
77  const ArrayOfIndex& upper,
78  const ArrayOfIndex& lower,
79  const Numeric& total_number_count = 1.0);
80 
89  VectorView x,
90  const Numeric& sem_ratio,
91  const Index row);
92 
99 
106 
113 Vector createBji(const Vector& Bij, const ArrayOfArrayOfAbsorptionLines& abs_lines);
114 
122 Vector createCji(const Vector& Cij,
123  const ArrayOfArrayOfAbsorptionLines& abs_lines,
124  const Numeric& T);
125 
134 void setCji(Vector& Cji,
135  const Vector& Cij,
136  const ArrayOfArrayOfAbsorptionLines& abs_lines,
137  const Numeric& T);
138 
153  Vector& Cij,
154  Vector& Cji,
155  const ArrayOfArrayOfAbsorptionLines& abs_lines,
156  const ArrayOfArrayOfSpeciesTag& abs_species,
157  const ArrayOfArrayOfGriddedField1& collision_coefficients,
158  const ArrayOfQuantumIdentifier& collision_line_identifiers,
159  const SpeciesAuxData& isotopologue_ratios,
160  const ConstVectorView vmr,
161  const Numeric& T,
162  const Numeric& P);
163 
172  ArrayOfIndex& upper,
173  ArrayOfIndex& lower,
174  const ArrayOfArrayOfAbsorptionLines& abs_lines,
175  const EnergyLevelMap& nlte_field);
176 
184  const ArrayOfIndex& lower) noexcept;
185 
191  const ArrayOfQuantumIdentifier& collision_line_identifiers);
INDEX Index
The type to use for all integer numbers and indices.
Definition: matpack.h:39
void check_collision_line_identifiers(const ArrayOfQuantumIdentifier &collision_line_identifiers)
Checks that a WSV is OK or throws a run-time error.
Definition: nlte.cc:286
The VectorView class.
Definition: matpackI.h:610
Vector createAij(const ArrayOfArrayOfAbsorptionLines &abs_lines)
Create a Aij object.
Definition: nlte.cc:96
Vector createBji(const Vector &Bij, const ArrayOfArrayOfAbsorptionLines &abs_lines)
Create a Bji object.
Definition: nlte.cc:135
The Vector class.
Definition: matpackI.h:860
The MatrixView class.
Definition: matpackI.h:1093
void setCji(Vector &Cji, const Vector &Cij, const ArrayOfArrayOfAbsorptionLines &abs_lines, const Numeric &T)
Set the Cji object.
Definition: nlte.cc:162
void statistical_equilibrium_equation(MatrixView A, ConstVectorView Aij, ConstVectorView Bij, ConstVectorView Bji, ConstVectorView Cij, ConstVectorView Cji, ConstVectorView Jij, const ArrayOfIndex &upper, const ArrayOfIndex &lower)
Sets up the solution matrix for linear statistical equilibrium equation.
Definition: nlte.cc:30
void dampened_statistical_equilibrium_equation(MatrixView A, ConstVectorView x, ConstVectorView Aij, ConstVectorView Bij, ConstVectorView Bji, ConstVectorView Cij, ConstVectorView Cji, ConstVectorView Jij, 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. ...
Definition: nlte.cc:54
Index find_first_unique_in_lower(const ArrayOfIndex &upper, const ArrayOfIndex &lower) noexcept
Finds a unique lower state if one exists or returns index to last element.
Definition: nlte.cc:277
Vector createCji(const Vector &Cij, const ArrayOfArrayOfAbsorptionLines &abs_lines, const Numeric &T)
Create a Cji object.
Definition: nlte.cc:153
Vector createBij(const ArrayOfArrayOfAbsorptionLines &abs_lines)
Create a Bij object.
Definition: nlte.cc:113
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 SpeciesAuxData &isotopologue_ratios, const ConstVectorView vmr, const Numeric &T, const Numeric &P)
Gets collisional factors from coefficients.
Definition: nlte.cc:182
NUMERIC Numeric
The type to use for all floating point numbers.
Definition: matpack.h:33
Declarations required for the calculation of absorption coefficients.
Implementation of Matrix, Vector, and such stuff.
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.
Definition: nlte.cc:88
This can be used to make arrays out of anything.
Definition: array.h:40
A constant view of a Vector.
Definition: matpackI.h:476
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.
Definition: nlte.cc:244
Implementation of gridded fields.
Auxiliary data for isotopologues.
Definition: absorption.h:217