19 #ifndef ERKALE_FOURIER
20 #define ERKALE_FOURIER
22 #include "../global.h"
31 std::complex<double>
c;
73 std::vector<poly1d_t>
poly;
98 std::complex<double>
getc(
size_t i)
const;
100 int getl(
size_t i)
const;
118 std::complex<double>
c;
167 std::vector<trans3d_t>
get()
const;
176 std::complex<double> eval(
double px,
double py,
double pz)
const;
190 std::vector< std::vector<GTO_Fourier> > fourier_expand(
const BasisSet & bas, std::vector< std::vector<size_t> > & idents);
193 double eval_emd(
const BasisSet & basis,
const arma::cx_mat & P,
const std::vector< std::vector<GTO_Fourier> > & fourier,
const std::vector< std::vector<size_t> > & idents,
double px,
double py,
double pz);
friend FourierPoly_1D operator*(std::complex< double > fac, const FourierPoly_1D &rhs)
Multiply the polynomial with a complex factor.
Definition: gto_fourier.cpp:142
std::complex< double > c
Full polynomial is of the form .
Definition: gto_fourier.h:31
int l
Full polynomial is of the form .
Definition: gto_fourier.h:33
Computes the 1-dimensional Fourier polynomial needed for the Fourier transforms of Gaussian basis fun...
Definition: gto_fourier.h:71
~GTO_Fourier()
Destructor.
Definition: gto_fourier.cpp:223
std::vector< poly1d_t > poly
1-dimensional Fourier polynomial
Definition: gto_fourier.h:73
Compute Fourier transform of Gaussian Type Orbital.
Definition: gto_fourier.h:147
FourierPoly_1D()
Dummy constructor.
Definition: gto_fourier.cpp:31
Helper for 1D Fourier polynomials.
Definition: gto_fourier.h:29
friend GTO_Fourier operator*(std::complex< double > fac, const GTO_Fourier &rhs)
Scale Fourier transform of GTO by factor fac.
Definition: gto_fourier.cpp:281
std::vector< trans3d_t > trans
The terms of the Fourier transformed GTO.
Definition: gto_fourier.h:149
Fourier transform of GTO is of the form .
Definition: gto_fourier.h:116
void print() const
Print Fourier transform.
Definition: gto_fourier.cpp:299
GTO_Fourier()
Dummy constructor.
Definition: gto_fourier.cpp:182
void addterm(const trans3d_t &term)
Add a term in the contraction.
Definition: gto_fourier.cpp:226
GTO_Fourier operator+(const GTO_Fourier &rhs) const
Addition operator.
Definition: gto_fourier.cpp:247
FourierPoly_1D formpoly(int l, double zeta)
Definition: gto_fourier.cpp:43
double z
exp(-z*p^2)
Definition: gto_fourier.h:126
int getl(size_t i) const
Get the exponent of p in the i:th term.
Definition: gto_fourier.cpp:129
Basis set.
Definition: basis.h:187
std::complex< double > getc(size_t i) const
Get the i:th contraction coefficient.
Definition: gto_fourier.cpp:125
std::complex< double > c
Expansion coefficient.
Definition: gto_fourier.h:118
int l
px^l
Definition: gto_fourier.h:120
~FourierPoly_1D()
Destructor.
Definition: gto_fourier.cpp:87
GTO_Fourier & operator+=(const GTO_Fourier &rhs)
Addition operator.
Definition: gto_fourier.cpp:256
void addterm(const poly1d_t &term)
Add a term in the contraction.
Definition: gto_fourier.cpp:90
void print() const
Print polynomial.
Definition: gto_fourier.cpp:133
int n
pz^n
Definition: gto_fourier.h:124
size_t getN() const
Get number of terms in the polynomial.
Definition: gto_fourier.cpp:121
int m
py^m
Definition: gto_fourier.h:122
FourierPoly_1D operator+(const FourierPoly_1D &rhs) const
Addition operator.
Definition: gto_fourier.cpp:111