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