ampsci
c++ program for high-precision atomic structure calculations of single-valence systems
Loading...
Searching...
No Matches
GenerateOperator.hpp
1#pragma once
2#include "IO/InputBlock.hpp"
3#include "Operators.hpp"
4#include "TensorOperator.hpp"
5#include "Wavefunction/Wavefunction.hpp"
6#include <memory>
7#include <string>
8#include <vector>
9
10namespace DiracOperator {
11
13static const std::vector<std::pair<
14 std::string, std::unique_ptr<DiracOperator::TensorOperator> (*)(
15 const IO::InputBlock &input, const Wavefunction &wf)>>
16 operator_list{{"E1", &generate_E1},
17 {"E1v", &generate_E1v},
18 {"E2", &generate_E2},
19 {"Ek", &generate_Ek},
20 {"Ek_omega", &generate_Ek_omega},
21 {"Mk_omega", &generate_Mk_omega},
22 {"Ekv_omega", &generate_Ekv_omega},
23 {"M1", &generate_M1},
24 {"M1nr", &generate_M1nr},
25 {"hfs", &generate_hfs},
26 {"fieldshift", &generate_fieldshift},
27 {"r", &generate_r},
28 {"sigma_r", &generate_sigma_r},
29 {"pnc", &generate_pnc},
30 {"Vrad", &generate_Vrad},
31 {"MLVP", &generate_MLVP},
32 {"dr", &generate_dr},
33 {"p", &generate_p},
34 {"l", &generate_l},
35 {"s", &generate_s}};
36
37//------------------------------------------------------------------------------
38
41std::unique_ptr<DiracOperator::TensorOperator>
42generate(std::string_view operator_name, const IO::InputBlock &input,
43 const Wavefunction &wf);
44
46void list_operators();
47
48} // namespace DiracOperator
Holds list of Options, and a list of other InputBlocks. Can be initialised with a list of options,...
Definition InputBlock.hpp:142
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition Wavefunction.hpp:37
Dirac Operators: General + derived.
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