StatMech
Loading...
Searching...
No Matches
Ensemble.hpp
Go to the documentation of this file.
1#include "../ShortRange_mBody/Ensemble.cuh"
2#include <Eigen/Dense>
3
4template<typename Scalar_t = Complex_t<Real_t>>
6 private:
9
10 public:
12 debug_constructor_printf(1);
13 debug_print("\tlocHSpace.dim()=" << locHSpace.dim()
14 << ", m_dLocMat.ptr()=" << m_dLocMat.ptr());
15 }
16
17 void discardSamples(int num) {
18 if(num <= 0) return;
19 auto& hEnsemble = HamiltonianEnsemble::get_instance(2);
20 hEnsemble.discard(num);
21 };
22 void getNewSample(void) {
23 auto& hEnsemble = HamiltonianEnsemble::get_instance(2);
24 m_sample = hEnsemble.sample();
25 };
26
27 template<typename EigenMatrix, class TotalSpace, typename Scalar_,
28 typename std::enable_if_t<on_GPU_v<EigenMatrix>>* = nullptr>
29 void constructHamiltonian(EigenMatrix& mat,
30 SubSpace<TotalSpace, Scalar_> const& subSpace) const {
31 mat = m_sample.construct_globalOp(subSpace.totalSpace().sysSize());
32 }
33};
static HamiltonianEnsemble & get_instance(char **CL_argv)
Definition Ensemble.cuh:115
ObjectOnGPU< Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic, Eigen::RowMajor > > MatrixType
Definition Ensemble.cuh:87
Definition HilbertSpace.hpp:32
__host__ __device__ int dim() const
Definition HilbertSpace.hpp:34
Definition Ensemble_old.hpp:6
typename HamiltonianEnsemble::MatrixType MatrixType
Definition Ensemble.hpp:7
Eigen::MatrixX< Scalar_t > m_dLocMat
Definition Ensemble copy.hpp:58
void getNewSample(void)
Definition Ensemble.hpp:22
RandomMatrixEnsemble(HilbertSpace< int > const &locHSpace)
Definition Ensemble.hpp:11
void discardSamples(int num)
Definition Ensemble.hpp:17
void constructHamiltonian(EigenMatrix &mat, SubSpace< TotalSpace, Scalar_ > const &subSpace) const
Definition Ensemble.hpp:29
ScalableOperator< MatrixType > m_sample
Definition Ensemble.hpp:8
Definition Ensemble.cuh:112
Definition HilbertSpace.hpp:568
__host__ __device__ TotalSpace const & totalSpace() const
Definition HilbertSpace.hpp:671
debug_print("# Determining GPU configuration.")