2#include "IO/InputBlock.hpp"
3#include "Operators/include.hpp"
4#include "TensorOperator.hpp"
5#include "Wavefunction/Wavefunction.hpp"
24static const std::vector<
25 std::tuple<std::string,
26 std::unique_ptr<DiracOperator::TensorOperator> (*)(
30 {
"E1", &generate_E1,
"Electric dipole (moment), length form: -|e|r"},
31 {
"E1v", &generate_E1v,
"Electric dipole, v-form"},
32 {
"E2", &generate_E2,
"Electric quadrupole moment operator"},
33 {
"Ek", &generate_Ek,
"Electric multipole moment operator, in low qr limit"},
34 {
"ialpha", &generate_ialpha,
"i*alpha (propto E1v)"},
35 {
"M1", &generate_M1,
"Magnetic dipole (relativistic formula)"},
36 {
"M1nr", &generate_M1nr,
"Non-relativistic M1"},
37 {
"Multipole", &generate_Multipole,
38 "Multipole transition operators (Vector,Axial,Scalar,Pseudoscalar)"},
39 {
"hfs", &generate_hfs,
"Hyperfine structure k-pole operators"},
40 {
"fieldshift", &generate_fieldshift,
"Field-shift F(r) operator"},
41 {
"r", &generate_r,
"radial (scalar) |r|"},
42 {
"sigma_r", &generate_sigma_r,
"scalar sigma.r operator"},
43 {
"pnc", &generate_pnc,
"NSI PNC operator"},
44 {
"Vrad", &generate_Vrad,
"QED Radiative potential"},
45 {
"MLVP", &generate_MLVP,
46 "Magnetic-Loop vacuum polarisation vertex correction to HFS"},
47 {
"p", &generate_p,
"Momentum operator"},
48 {
"l", &generate_l,
"Orbital L"},
49 {
"s", &generate_s,
"Spin S (not sigma)"}};
69std::unique_ptr<DiracOperator::TensorOperator>
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition Wavefunction.hpp:37
Dirac operators: TensorOperator base class and derived implementations for single-particle (one-body)...
Definition GenerateOperator.cpp:3
std::unique_ptr< DiracOperator::TensorOperator > generate(std::string_view operator_name, const IO::InputBlock &input, const Wavefunction &wf)
Returns a unique_ptr (polymorphic) to the requested operator, with given properties.
Definition GenerateOperator.cpp:7
void list_operators()
List available operators.
Definition GenerateOperator.cpp:40