13#include <doctest/doctest.h>
24 auto ket = database.
get_ket(
"Rb", description);
26 DOCTEST_MESSAGE(
"KetAtom: ", *ket);
37 DOCTEST_CHECK_THROWS(database.
get_ket(
"Rb", description));
48 DOCTEST_CHECK_THROWS(database.
get_ket(
"Rb", description));
60 DOCTEST_CHECK_NOTHROW(database.
get_ket(
"Rb", description));
70 auto basis = database.
get_basis<
double>(
"Rb", description, {});
72 for (
const auto &ket : *basis) {
73 DOCTEST_MESSAGE(
"KetAtom: ", *ket);
84 auto basis = database.
get_basis<
double>(
"Rb", description, {});
89 DOCTEST_MESSAGE(
"Number of basis states: ", basis->get_number_of_states());
90 DOCTEST_MESSAGE(
"Number of non-zero entries: ", dipole.nonZeros());
std::shared_ptr< const KetAtom > get_ket(const std::string &species, const AtomDescriptionByParameters &description)
static Database & get_global_instance()
std::shared_ptr< const BasisAtom< Scalar > > get_basis(const std::string &species, const AtomDescriptionByRanges &description, std::vector< size_t > additional_ket_ids)
Eigen::SparseMatrix< Scalar, Eigen::RowMajor > get_matrix_elements(std::shared_ptr< const BasisAtom< Scalar > > initial_basis, std::shared_ptr< const BasisAtom< Scalar > > final_basis, OperatorType type, int q)
DOCTEST_TEST_CASE("create a basis for strontium 88")
std::optional< double > quantum_number_l
std::optional< int > quantum_number_n
std::optional< double > quantum_number_m
std::optional< double > quantum_number_j
Range< double > range_quantum_number_l
Range< int > range_quantum_number_n