12#include <unordered_map>
20template <
typename Scalar>
23template <
typename Scalar>
28 using ketvec_t = std::vector<std::shared_ptr<const ket_t>>;
38template <
typename Scalar>
40 public std::enable_shared_from_this<BasisAtom<Scalar>> {
60 int q = 0)
const override;
61 Eigen::SparseMatrix<Scalar, Eigen::RowMajor>
63 int q = 0)
const override;
66 std::string id_of_kets;
69 std::unordered_map<size_t, size_t> ket_id_to_ket_index;
Class for creating a basis of atomic kets.
typename traits::CrtpTraits< Type >::real_t real_t
int get_ket_index_from_id(size_t ket_id) const
const std::string & get_id_of_kets() const
BasisAtom(Private, ketvec_t &&kets, std::string &&id_of_kets, Database &database)
typename traits::CrtpTraits< Type >::ketvec_t ketvec_t
typename traits::CrtpTraits< Type >::ket_t ket_t
const std::string & get_species() const
Database & get_database() const
Eigen::VectorX< Scalar > get_matrix_elements(std::shared_ptr< const ket_t > ket, OperatorType type, int q=0) const override
Class for representing atomic kets.
Matrix< Type, Dynamic, 1 > VectorX
std::vector< std::shared_ptr< const ket_t > > ketvec_t
typename traits::NumTraits< Scalar >::real_t real_t
Helper struct to extract types from a derived basis type. Must be specialized for each derived basis ...
Helper struct to extract types from a numerical type.