pairinteraction
A Rydberg Interaction Calculator
OperatorPair.hpp
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024 Pairinteraction Developers
2// SPDX-License-Identifier: LGPL-3.0-or-later
3
4#pragma once
5
8
9#include <memory>
10#include <vector>
11
12namespace pairinteraction {
13enum class OperatorType;
14
15template <typename Scalar>
16class BasisPair;
17
18template <typename Scalar>
19class KetPair;
20
21template <typename T>
22class OperatorPair;
23
24template <typename Scalar>
26 using scalar_t = Scalar;
29 using ketvec_t = std::vector<std::shared_ptr<const ket_t>>;
31};
32
33template <typename Scalar>
34class OperatorPair : public Operator<OperatorPair<Scalar>> {
35public:
37
40
41 OperatorPair(std::shared_ptr<const basis_t> basis);
42 OperatorPair(std::shared_ptr<const basis_t> basis, OperatorType type);
43};
44
45extern template class OperatorPair<double>;
46extern template class OperatorPair<std::complex<double>>;
47} // namespace pairinteraction
typename traits::CrtpTraits< Type >::basis_t basis_t
OperatorPair(std::shared_ptr< const basis_t > basis)
std::shared_ptr< const basis_t > basis
Definition: Operator.hpp:86
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 ...
Definition: traits.hpp:24
Helper struct to extract types from a numerical type.
Definition: traits.hpp:35