#include <Ensemble_old.hpp>
|
| RandomMatrixEnsemble (HilbertSpace const &locHSpace, int seed=0, double stddev=1.0) |
|
void | discardSamples (int num) |
|
void | getNewSample (void) |
|
template<typename EigenMatrix , typename Scalar_t > |
void | constructHamiltonian (EigenMatrix &mat, SubHilbertSpace< Scalar_t > const &HSpace) |
|
| RandomMatrixEnsemble (HilbertSpace< int > const &locHSpace) |
|
void | discardSamples (int num) |
|
void | getNewSample (void) |
|
template<typename EigenMatrix , class TotalSpace , typename Scalar_ , typename std::enable_if_t< on_GPU_v< EigenMatrix > > * = nullptr> |
void | constructHamiltonian (EigenMatrix &mat, SubSpace< TotalSpace, Scalar_ > const &subSpace) const |
|
| RandomMatrixEnsemble (HilbertSpace< int > const &locHSpace) |
|
void | discardSamples (int num) |
|
void | getNewSample (void) |
|
template<typename EigenMatrix , class TotalSpace , typename Scalar_ , typename std::enable_if_t< on_GPU_v< EigenMatrix > > * = nullptr> |
void | constructHamiltonian (EigenMatrix &mat, SubSpace< TotalSpace, Scalar_ > const &subSpace) const |
|
◆ MatrixType
template<typename Scalar_t = Complex_t<Real_t>>
◆ RandomMatrixEnsemble() [1/3]
template<typename Scalar_t = Complex_t<Real_t>>
HilbertSpace const & m_locHSpace
Definition Ensemble_old.hpp:8
unsigned long count
Definition Ensemble_old.hpp:10
GUEgenerator m_GUE
Definition Ensemble_old.hpp:9
◆ RandomMatrixEnsemble() [2/3]
template<typename Scalar_t = Complex_t<Real_t>>
71 debug_constructor_printf(1);
73 <<
", m_dLocMat.ptr()=" <<
m_dLocMat.ptr());
74 }
__host__ __device__ int dim() const
Definition HilbertSpace.hpp:34
Eigen::MatrixX< Scalar_t > m_dLocMat
Definition Ensemble copy.hpp:58
Eigen::MatrixX< Complex_t< double > > m_locMat
Definition Ensemble copy.hpp:56
unsigned long m_count
Definition Ensemble copy.hpp:62
debug_print("# Determining GPU configuration.")
◆ RandomMatrixEnsemble() [3/3]
template<typename Scalar_t = Complex_t<Real_t>>
11 {
12 debug_constructor_printf(1);
14 <<
", m_dLocMat.ptr()=" <<
m_dLocMat.ptr());
15 }
◆ constructHamiltonian() [1/3]
template<typename Scalar_t = Complex_t<Real_t>>
template<typename EigenMatrix , typename Scalar_t >
◆ constructHamiltonian() [2/3]
template<typename Scalar_t = Complex_t<Real_t>>
template<typename EigenMatrix , class TotalSpace , typename Scalar_ , typename std::enable_if_t<
on_GPU_v< EigenMatrix > > * = nullptr>
116 {
117 debug_print(__func__ <<
": Input matrix is on GPU. (Not tested)\n" << mat);
119 <<
", subSpace.totalSpace().dim()=" << subSpace.
totalSpace().dim()
120 << ", \n"
121 << mat);
122
123 mat.resize(subSpace.
dim(), subSpace.
dim());
124
125 constexpr void (*kernel)(
126 Eigen::MatrixBase< std::remove_reference_t<decltype(*mat.ptr())> >*,
127 Eigen::MatrixBase< std::remove_reference_t<
decltype(*
m_dLocMat.ptr())> >
const*,
130 struct cudaFuncAttributes
attr;
132 int const nThread = min(subSpace.
dim(), (
int)sqrt(
attr.maxThreadsPerBlock));
137
139
141 mat.ptr(),
m_dLocMat.ptr(), dSubSpace.ptr());
142 cuCHECK(cudaPeekAtLastError());
143 cuCHECK(cudaDeviceSynchronize());
144 debug_print(__func__ <<
": mat.data() = " << mat.data());
146 };
__global__ void constructHamiltonian_kernel(Eigen::MatrixBase< Derived1 > *dTotMat, Eigen::MatrixBase< Derived2 > const *dLocMat, SubSpace< TotalSpace, Scalar > const *subSpace)
Definition Ensemble copy.hpp:13
Definition ObjectOnGPU.cuh:149
Definition HilbertSpace.hpp:568
__host__ __device__ TotalSpace const & totalSpace() const
Definition HilbertSpace.hpp:671
cuCHECK(cudaFuncGetAttributes(&attr, MatrixElementsInSector))
struct cudaFuncAttributes attr
Definition getAttributesOfMatrixElementsInSector.cpp:2
Integer_t const nBlock
Definition getAttributesOfMatrixElementsInSector.cpp:5
Integer_t const nThread
Definition getAttributesOfMatrixElementsInSector.cpp:4
◆ constructHamiltonian() [3/3]
template<typename Scalar_t = Complex_t<Real_t>>
template<typename EigenMatrix , class TotalSpace , typename Scalar_ , typename std::enable_if_t<
on_GPU_v< EigenMatrix > > * = nullptr>
30 {
32 }
ScalableOperator< MatrixType > m_sample
Definition Ensemble.hpp:8
◆ discardSamples() [1/3]
template<typename Scalar_t = Complex_t<Real_t>>
16 {
17 if(num <= 0) return;
20 };
void discard(unsigned long long num)
Discards random numbers to advance internal states of the random number generator.
Definition RandomMatrices.hpp:67
◆ discardSamples() [2/3]
template<typename Scalar_t = Complex_t<Real_t>>
76 {
77 if(num <= 0) return;
81 };
◆ discardSamples() [3/3]
template<typename Scalar_t = Complex_t<Real_t>>
17 {
18 if(num <= 0) return;
20 hEnsemble.discard(num);
21 };
static HamiltonianEnsemble & get_instance(char **CL_argv)
Definition Ensemble.cuh:115
◆ getNewSample() [1/3]
template<typename Scalar_t = Complex_t<Real_t>>
◆ getNewSample() [2/3]
template<typename Scalar_t = Complex_t<Real_t>>
82 {
86#ifdef GPU
89#endif
91 return;
92 };
◆ getNewSample() [3/3]
template<typename Scalar_t = Complex_t<Real_t>>
◆ count
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_count
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_dLocMat [1/2]
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_dLocMat [2/2]
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_GUE [1/2]
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_GUE [2/2]
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_locHSpace [1/2]
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_locHSpace [2/2]
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_locMat
template<typename Scalar_t = Complex_t<Real_t>>
◆ m_sample
template<typename Scalar_t = Complex_t<Real_t>>
The documentation for this class was generated from the following files: