pairinteraction
A Rydberg Interaction Calculator
DiagonalizerEigen.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
6
#include "
pairinteraction/enums/FloatType.hpp
"
7
#include "
pairinteraction/interfaces/DiagonalizerInterface.hpp
"
8
#include "
pairinteraction/utils/eigen_assertion.hpp
"
9
10
#include <Eigen/SparseCore>
11
#include <complex>
12
13
namespace
pairinteraction
{
14
template
<
typename
Scalar>
15
class
DiagonalizerEigen
:
public
DiagonalizerInterface
<Scalar> {
16
public
:
17
using
typename
DiagonalizerInterface<Scalar>::real_t
;
18
19
DiagonalizerEigen
(
FloatType
float_type
=
FloatType::FLOAT64
);
20
EigenSystemH<Scalar>
eigh
(
const
Eigen::SparseMatrix<Scalar, Eigen::RowMajor> &matrix,
21
double
rtol)
const override
;
22
23
private
:
24
template
<
typename
ScalarLim>
25
EigenSystemH<Scalar>
dispatch_eigh(
const
Eigen::SparseMatrix<Scalar, Eigen::RowMajor> &matrix,
26
double
rtol)
const
;
27
};
28
29
extern
template
class
DiagonalizerEigen<double>
;
30
extern
template
class
DiagonalizerEigen<std::complex<double>
>;
31
}
// namespace pairinteraction
DiagonalizerInterface.hpp
FloatType.hpp
pairinteraction::DiagonalizerEigen
Definition:
DiagonalizerEigen.hpp:15
pairinteraction::DiagonalizerEigen::DiagonalizerEigen
DiagonalizerEigen(FloatType float_type=FloatType::FLOAT64)
Definition:
DiagonalizerEigen.cpp:18
pairinteraction::DiagonalizerEigen::eigh
EigenSystemH< Scalar > eigh(const Eigen::SparseMatrix< Scalar, Eigen::RowMajor > &matrix, double rtol) const override
Definition:
DiagonalizerEigen.cpp:46
pairinteraction::DiagonalizerInterface
Definition:
DiagonalizerInterface.hpp:26
pairinteraction::DiagonalizerInterface::float_type
FloatType float_type
Definition:
DiagonalizerInterface.hpp:41
pairinteraction::DiagonalizerInterface::real_t
typename traits::NumTraits< Scalar >::real_t real_t
Definition:
DiagonalizerInterface.hpp:30
eigen_assertion.hpp
pairinteraction
Definition:
Basis.hpp:18
pairinteraction::FloatType
FloatType
Definition:
FloatType.hpp:8
pairinteraction::FloatType::FLOAT64
@ FLOAT64
pairinteraction::EigenSystemH
Definition:
DiagonalizerInterface.hpp:18
src
cpp
include
pairinteraction
diagonalize
DiagonalizerEigen.hpp
Generated on Sun May 4 2025 09:11:20 for pairinteraction by
1.9.4