2 #include "Angular/Wigner369j.hpp"
3 #include "DiracOperator/TensorOperator.hpp"
4 #include "IO/InputBlock.hpp"
5 #include "Wavefunction/Wavefunction.hpp"
15 double angularF(
const int ka,
const int kb)
const override final {
19 return std::sqrt(tj * (tj + 2) * (tj + 1)) / 2;
21 std::string
name()
const override {
return std::string(
"j"); }
22 std::string
units()
const override {
return "au"; }
31 double angularF(
const int ka,
const int kb)
const override final {
40 std::sqrt(
double((tja + 1) * (tjb + 1) * (2 * la + 1) * la * (la + 1)));
42 return sign * fact * sjs;
44 std::string
name()
const override {
return std::string(
"l"); }
45 std::string
units()
const override {
return "au"; }
54 double angularF(
const int ka,
const int kb)
const override final {
62 const auto fact = std::sqrt((tja + 1) * (tjb + 1) * 1.5);
64 return sign * fact * sjs;
66 std::string
name()
const override {
return std::string(
"s"); }
67 std::string
units()
const override {
return "au"; }
71 inline std::unique_ptr<DiracOperator::TensorOperator>
74 input.
check({{
"no options",
""}});
78 return std::make_unique<l>();
81 inline std::unique_ptr<DiracOperator::TensorOperator>
84 input.
check({{
"no options",
""}});
88 return std::make_unique<s>();
General operator (virtual base class); operators derive from this.
Definition: TensorOperator.hpp:110
j (total angular momentum) operator
Definition: jls.hpp:11
std::string units() const override
Returns units of operator (usually au, may be MHz, etc.)
Definition: jls.hpp:22
std::string name() const override
Returns "name" of operator (e.g., 'E1')
Definition: jls.hpp:21
double angularF(const int ka, const int kb) const override final
angularF: links radiation integral to RME. RME = <a||h||b> = angularF(a,b) * radial_int(a,...
Definition: jls.hpp:15
l (orbital angular momentum) operator
Definition: jls.hpp:27
std::string units() const override
Returns units of operator (usually au, may be MHz, etc.)
Definition: jls.hpp:45
std::string name() const override
Returns "name" of operator (e.g., 'E1')
Definition: jls.hpp:44
double angularF(const int ka, const int kb) const override final
angularF: links radiation integral to RME. RME = <a||h||b> = angularF(a,b) * radial_int(a,...
Definition: jls.hpp:31
s (spin) operator
Definition: jls.hpp:50
std::string units() const override
Returns units of operator (usually au, may be MHz, etc.)
Definition: jls.hpp:67
std::string name() const override
Returns "name" of operator (e.g., 'E1')
Definition: jls.hpp:66
double angularF(const int ka, const int kb) const override final
angularF: links radiation integral to RME. RME = <a||h||b> = angularF(a,b) * radial_int(a,...
Definition: jls.hpp:54
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition: Wavefunction.hpp:36
double sixj_2(int two_j1, int two_j2, int two_j3, int two_j4, int two_j5, int two_j6)
6j symbol {j1 j2 j3 \ j4 j5 j6} - [takes 2*j as int]
Definition: Wigner369j.hpp:236
constexpr int l_k(int ka)
returns l given kappa
Definition: Wigner369j.hpp:12
constexpr int neg1pow_2(int two_a)
Evaluates (-1)^{two_a/2} (for integer a; two_a is even)
Definition: Wigner369j.hpp:121
constexpr int twoj_k(int ka)
returns 2j given kappa
Definition: Wigner369j.hpp:14
Dirac Operators: General + derived.
Definition: GenerateOperator.cpp:12