2#include "DiracOperator/TensorOperator.hpp"
3#include "IO/InputBlock.hpp"
4#include "Wavefunction/Wavefunction.hpp"
17 std::vector<double> fillVec(
const Grid &gr,
18 const std::function<
double(
double)> &f) {
19 std::vector<double> f_r;
27 RadialF(
const Grid &rgrid,
const std::function<
double(
double)> &f)
31 fillVec(rgrid, [n](
double r) {
return std::pow(r, n); })) {
33 std::string
name() const override final {
return "RadialFunction"; }
34 std::string
units() const override final {
return "au"; }
38inline std::unique_ptr<DiracOperator::TensorOperator>
41 input.
check({{
"power",
"Power (real) for r^k"}});
45 const auto power = input.
get(
"power", 1.0);
46 std::cout <<
"r^(" << power <<
")\n";
47 return std::make_unique<RadialF>(wf.
grid(), power);
General function of r, even scalar operator.
Definition RadialF.hpp:11
std::string name() const override final
Returns "name" of operator (e.g., 'E1')
Definition RadialF.hpp:33
std::string units() const override final
Returns units of operator as a string (usually au, may be MHz, etc.)
Definition RadialF.hpp:34
Rank-0 (scalar) tensor operator; derives from TensorOperator with k=0.
Definition TensorOperator.hpp:560
Holds grid, including type + Jacobian (dr/du)
Definition Grid.hpp:31
const std::vector< double > & r() const
Grid points, r.
Definition Grid.hpp:75
auto num_points() const
Number of grid points.
Definition Grid.hpp:64
Stores Wavefunction (set of valence orbitals, grid, HF etc.)
Definition Wavefunction.hpp:37
const Grid & grid() const
Returns a const reference to the radial grid.
Definition Wavefunction.hpp:82
Dirac operators: TensorOperator base class and derived implementations for single-particle (one-body)...
Definition GenerateOperator.cpp:3