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"; }
71inline std::unique_ptr<DiracOperator::TensorOperator>
74 input.
check({{
"no options",
""}});
78 return std::make_unique<l>();
81inline 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:267
constexpr int l_k(int ka)
returns l given kappa
Definition Wigner369j.hpp:43
constexpr int neg1pow_2(int two_a)
Evaluates (-1)^{two_a/2} (for integer a; two_a is even)
Definition Wigner369j.hpp:152
constexpr int twoj_k(int ka)
returns 2j given kappa
Definition Wigner369j.hpp:45
Dirac Operators: General + derived.
Definition GenerateOperator.cpp:12