24 #ifndef COM_DAFER45_TBTK_STO3G
25 #define COM_DAFER45_TBTK_STO3G
27 #include "TBTK/AbstractState.h"
29 #include "TBTK/KineticOperator.h"
30 #include "TBTK/NuclearPotentialOperator.h"
31 #include "TBTK/HartreeFockPotentialOperator.h"
35 class Sto3g :
public AbstractState{
45 double slaterExponent,
46 const std::vector<double> &coordinates,
52 virtual Sto3g* clone()
const;
55 virtual std::complex<double> getOverlap(
56 const AbstractState &ket
60 virtual std::complex<double> getMatrixElement(
61 const AbstractState &ket,
62 const AbstractOperator &o
66 double contractionCoefficients[3] = {0.444635, 0.535328, 0.154329};
69 double gaussianExponents[3];
82 std::complex<double> getKineticTerm(
84 const KineticOperator &o
94 std::complex<double> getNuclearPotentialTerm(
96 const NuclearPotentialOperator &o
106 std::complex<double> getHartreeFockPotentialTerm(
108 const HartreeFockPotentialOperator &o
126 std::complex<double> getSingleHartreeFockTerm(
139 static double F_0(
double x);
142 inline Sto3g* Sto3g::clone()
const{
143 return new Sto3g(*
this);