pairinteraction
A Rydberg Interaction Calculator
Ket.cpp
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2024 Pairinteraction Developers
2
// SPDX-License-Identifier: LGPL-3.0-or-later
3
4
#include "
pairinteraction/ket/Ket.hpp
"
5
6
#include "
pairinteraction/enums/Parity.hpp
"
7
#include "
pairinteraction/utils/hash.hpp
"
8
9
#include <limits>
10
11
namespace
pairinteraction
{
12
Ket::Ket
(
double
energy,
double
f,
double
m,
Parity
p)
13
: energy(energy), quantum_number_f(f), quantum_number_m(m), parity(p) {}
14
15
bool
Ket::has_quantum_number_f
()
const
{
16
return
quantum_number_f
!= std::numeric_limits<double>::max();
17
}
18
19
bool
Ket::has_quantum_number_m
()
const
{
20
return
quantum_number_m
!= std::numeric_limits<double>::max();
21
}
22
23
bool
Ket::has_parity
()
const
{
return
parity
!=
Parity::UNKNOWN
; }
24
25
double
Ket::get_energy
()
const
{
return
energy
; }
26
27
double
Ket::get_quantum_number_f
()
const
{
return
quantum_number_f
; }
28
29
double
Ket::get_quantum_number_m
()
const
{
return
quantum_number_m
; }
30
31
Parity
Ket::get_parity
()
const
{
return
parity
; }
32
33
bool
Ket::operator==
(
const
Ket
&other)
const
{
34
return
energy
== other.
energy
&&
quantum_number_f
== other.
quantum_number_f
&&
35
quantum_number_m
== other.
quantum_number_m
&&
parity
== other.
parity
;
36
}
37
38
size_t
Ket::hash::operator()
(
const
Ket
&k)
const
{
39
size_t
seed = 0;
40
utils::hash_combine
(seed, k.
energy
);
41
utils::hash_combine
(seed, k.
quantum_number_f
);
42
utils::hash_combine
(seed, k.
quantum_number_m
);
43
utils::hash_combine
(seed,
static_cast<
int
>
(k.
parity
));
44
return
seed;
45
}
46
}
// namespace pairinteraction
Ket.hpp
Parity.hpp
pairinteraction::Ket
Base class for a ket.
Definition:
Ket.hpp:25
pairinteraction::Ket::Ket
Ket()=delete
pairinteraction::Ket::has_quantum_number_f
bool has_quantum_number_f() const
Definition:
Ket.cpp:15
pairinteraction::Ket::get_quantum_number_f
double get_quantum_number_f() const
Definition:
Ket.cpp:27
pairinteraction::Ket::parity
Parity parity
Definition:
Ket.hpp:57
pairinteraction::Ket::get_parity
Parity get_parity() const
Definition:
Ket.cpp:31
pairinteraction::Ket::get_quantum_number_m
double get_quantum_number_m() const
Definition:
Ket.cpp:29
pairinteraction::Ket::has_parity
bool has_parity() const
Definition:
Ket.cpp:23
pairinteraction::Ket::quantum_number_f
double quantum_number_f
Definition:
Ket.hpp:55
pairinteraction::Ket::energy
double energy
Definition:
Ket.hpp:54
pairinteraction::Ket::quantum_number_m
double quantum_number_m
Definition:
Ket.hpp:56
pairinteraction::Ket::get_energy
double get_energy() const
Definition:
Ket.cpp:25
pairinteraction::Ket::has_quantum_number_m
bool has_quantum_number_m() const
Definition:
Ket.cpp:19
pairinteraction::Ket::operator==
bool operator==(const Ket &other) const
Definition:
Ket.cpp:33
hash.hpp
pairinteraction::utils::hash_combine
void hash_combine(std::size_t &seed, T const &v)
Combine hashes.
Definition:
hash.hpp:43
pairinteraction
Definition:
Basis.hpp:18
pairinteraction::Parity
Parity
Definition:
Parity.hpp:11
pairinteraction::Parity::UNKNOWN
@ UNKNOWN
pairinteraction::Ket::hash::operator()
std::size_t operator()(const Ket &k) const
Definition:
Ket.cpp:38
src
cpp
src
ket
Ket.cpp
Generated on Sun May 4 2025 09:11:20 for pairinteraction by
1.9.4