pairinteraction
A Rydberg Interaction Calculator
test_system_atom.cpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024 Pairinteraction Developers
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
6
7#include <filesystem>
8#include <spdlog/spdlog.h>
9
10int main(int argc, char **argv) {
11 // Call the setup function to configure logging
13
14 // Create a database instance
15 std::filesystem::path database_dir;
16 bool download_missing = false;
17
18 for (int i = 1; i < argc; ++i) {
19 bool found = pairinteraction::args::parse_download_missing(i, argc, argv, download_missing);
20 if (!found) {
21 pairinteraction::args::parse_database_dir(i, argc, argv, database_dir);
22 }
23 }
24
25 pairinteraction::Database database(download_missing, true, database_dir);
26
27 // Create a basis
29 .set_species("Rb")
30 .restrict_quantum_number_n(58, 62)
31 .restrict_quantum_number_l(0, 3)
32 .create(database);
33
34 SPDLOG_INFO("Number of basis states: {}", basis->get_number_of_states());
35
36 // Create a system
37 auto system = pairinteraction::SystemAtom<double>(basis);
38 system.set_electric_field({0, 0, 1});
39 system.set_magnetic_field({0, 0, 1});
40 system.set_diamagnetism_enabled(true);
41
42 return 0;
43}
Builder class for creating BasisAtom objects.
BasisAtomCreator< Scalar > & set_species(const std::string &value)
bool parse_database_dir(int &i, int argc, char **const argv, std::filesystem::path &database_dir)
Definition: args.hpp:21
bool parse_download_missing(int &i, int argc, char **const argv, bool &download_missing)
Definition: args.hpp:11
void setup()
Definition: setup.cpp:18
int main(int argc, char **argv)