21#ifndef VOTCA_XTP_AOSHELL_H
22#define VOTCA_XTP_AOSHELL_H
25#include <boost/math/constants/constants.hpp>
35#include <libint2/shell.h>
78 return std::pow(2.0 * decay / boost::math::constants::pi<double>(), 0.75);
95 l_ =
static_cast<L>(d.
l);
98 pos_ = Eigen::Vector3d(d.
x, d.
y, d.
z);
116 mindecay_ = std::numeric_limits<double>::max();
127 values = Eigen::VectorXd::Zero(size);
139 0, Eigen::OuterStride<>>;
144 Eigen::Ref<Eigen::VectorXd> values,
174 values = Eigen::VectorXd::Zero(size);
176 hessians = std::vector<Eigen::Matrix3d>(size, Eigen::Matrix3d::Zero());
static double CalcPowFactor(double decay)
double getPowfactor() const
double getContraction() const
AOGaussianPrimitive(const GaussianPrimitive &gaussian)
void WriteData(data &d, const AOShell &s) const
static void SetupCptTable(CptTable &table)
AOGaussianPrimitive(const AOGaussianPrimitive::data &d)
Index getCartesianNumFunc() const
std::vector< AOGaussianPrimitive >::const_iterator GaussianIterator
void normalizeContraction()
const Eigen::Vector3d & getPos() const
friend std::ostream & operator<<(std::ostream &out, const AOShell &shell)
libint2::Shell LibintShell() const
Index getAtomIndex() const
AOValues EvalAOspace(const Eigen::Vector3d &grid_pos) const
AOShell(const AOGaussianPrimitive::data &d)
GaussianIterator begin() const
Index getStartIndex() const
Index getCartesianOffset() const
void addGaussian(const GaussianPrimitive &gaussian)
GaussianIterator end() const
Eigen::Ref< Eigen::Matrix< double, Eigen::Dynamic, 3 >, 0, Eigen::OuterStride<> > AODerivativeBlock
AOValuesHessian EvalAOspaceHessian(const Eigen::Vector3d &grid_pos) const
double getMinDecay() const
std::vector< AOGaussianPrimitive > gaussians_
AOShell(const Shell &shell, const QMAtom &atom, Index startIndex)
Index OffsetFuncShell(L l)
Index NumFuncShell_cartesian(L l)
Index OffsetFuncShell_cartesian(L l)
Provides a means for comparing floating point numbers.
AOValuesHessian(Index size)
std::vector< Eigen::Matrix3d > hessians
Eigen::MatrixX3d derivatives
Eigen::MatrixX3d derivatives