ARTS 2.5.11 (git: 725533f0)
|
Wigner symbol interactions. More...
#include "wigner_functions.h"
#include <sys/errno.h>
#include <algorithm>
#include "arts_omp.h"
#include "arts_conversions.h"
#include "debug.h"
Go to the source code of this file.
Macros | |
#define | WIGNER3 wig3jj |
#define | WIGNER6 wig6jj |
Functions | |
Numeric | wigner3j (const Rational j1, const Rational j2, const Rational j3, const Rational m1, const Rational m2, const Rational m3) |
Wigner 3J symbol. | |
Numeric | wigner6j (const Rational j1, const Rational j2, const Rational j3, const Rational l1, const Rational l2, const Rational l3) |
Wigner 6J symbol. | |
std::pair< Rational, Rational > | wigner_limits (std::pair< Rational, Rational > a, std::pair< Rational, Rational > b) |
Index | make_wigner_ready (int largest, int fastest, int size) |
Ready Wigner. | |
bool | is_wigner_ready (int j) |
Tells if the function can deal with the input integer. | |
bool | is_wigner3_ready (const Rational &J) |
Tells if the function is ready for Wigner 3J calculations. | |
bool | is_wigner6_ready (const Rational &J) |
Tells if the function is ready for Wigner 6J calculations. | |
Numeric | dwigner3j (Index M, Index J1, Index J2, Index J) |
Computes the wigner 3J symbol with floating point precision. | |
Numeric | dwigner6j (Index A, Index B, Index C, Index D, Index F) |
Computes the wigner 6J symbol with floating point precision. | |
#define WIGNER3 wig3jj |
Definition at line 23 of file wigner_functions.cc.
#define WIGNER6 wig6jj |
Definition at line 24 of file wigner_functions.cc.
Numeric dwigner3j | ( | Index | M, |
Index | J1, | ||
Index | J2, | ||
Index | J | ||
) |
Computes the wigner 3J symbol with floating point precision.
/ \ | J1 J2 J |
output = | | | M -M 0 | \ /
M | Input as above |
J1 | Input as above |
J2 | Input as above |
J | Input as above |
Definition at line 152 of file wigner_functions.cc.
Numeric dwigner6j | ( | Index | A, |
Index | B, | ||
Index | C, | ||
Index | D, | ||
Index | F | ||
) |
Computes the wigner 6J symbol with floating point precision.
/ \ | A B 1 |
output = < > | D C F | \ /
A | Input as above |
B | Input as above |
C | Input as above |
D | Input as above |
F | Input as above |
Definition at line 196 of file wigner_functions.cc.
References pow_negative_one().
bool is_wigner3_ready | ( | const Rational & | J | ) |
Tells if the function is ready for Wigner 3J calculations.
[in] | J | Largest input into a Wigner 3J function call |
Definition at line 142 of file wigner_functions.cc.
References is_wigner_ready().
Referenced by lbl_checkedCalc().
bool is_wigner6_ready | ( | const Rational & | J | ) |
Tells if the function is ready for Wigner 6J calculations.
[in] | J | Largest input into a Wigner 6J function call |
Definition at line 147 of file wigner_functions.cc.
References is_wigner_ready().
bool is_wigner_ready | ( | int | j | ) |
Tells if the function can deal with the input integer.
[in] | j |
Definition at line 137 of file wigner_functions.cc.
Referenced by is_wigner3_ready(), and is_wigner6_ready().
Index make_wigner_ready | ( | int | largest, |
int | fastest, | ||
int | size | ||
) |
Ready Wigner.
[in] | largest | |
[in] | fastest | |
[in] | size | [3 or 6] |
Definition at line 102 of file wigner_functions.cc.
Referenced by Wigner3Init(), and Wigner6Init().
Numeric wigner3j | ( | const Rational | j1, |
const Rational | j2, | ||
const Rational | j3, | ||
const Rational | m1, | ||
const Rational | m2, | ||
const Rational | m3 | ||
) |
Wigner 3J symbol.
Run wigxjpf wig3jj for Rational symbol
/ \
j1 j2 j3 |
---|
m1 m2 m3 |
\ /
See for definition: http://dlmf.nist.gov/34.2
[in] | j1 | as above |
[in] | j2 | as above |
[in] | j3 | as above |
[in] | m1 | as above |
[in] | m2 | as above |
[in] | m3 | as above |
Definition at line 27 of file wigner_functions.cc.
References a, ARTS_USER_ERROR, b, c, d, and WIGNER3.
Referenced by Absorption::reduced_rovibrational_dipole(), Absorption::LineMixing::LinearRovibErrorCorrectedSudden::relaxation_matrix_offdiagonal(), and Zeeman::Model::Strength().
Numeric wigner6j | ( | const Rational | j1, |
const Rational | j2, | ||
const Rational | j3, | ||
const Rational | l1, | ||
const Rational | l2, | ||
const Rational | l3 | ||
) |
Wigner 6J symbol.
Run wigxjpf wig6jj for Rational symbol
/ \ | j1 j2 j3 | < > | l1 l2 l3 | \ /
See for definition: http://dlmf.nist.gov/34.4
[in] | j1 | as above |
[in] | j2 | as above |
[in] | j3 | as above |
[in] | l1 | as above |
[in] | l2 | as above |
[in] | l3 | as above |
Definition at line 59 of file wigner_functions.cc.
References a, ARTS_USER_ERROR, b, c, d, and WIGNER6.
Referenced by Absorption::LineMixing::Makarov2020etal::reduced_dipole(), Absorption::reduced_magnetic_quadrapole(), and Absorption::LineMixing::LinearRovibErrorCorrectedSudden::relaxation_matrix_offdiagonal().
std::pair< Rational, Rational > wigner_limits | ( | std::pair< Rational, Rational > | a, |
std::pair< Rational, Rational > | b | ||
) |
Refine limits from multiple inputs
[in] | a | A limit |
[in] | a | Another limit |
Definition at line 89 of file wigner_functions.cc.
References a, b, max(), and min().
Referenced by Absorption::LineMixing::Makarov2020etal::relaxation_matrix_offdiagonal().