StatMech
Loading...
Searching...
No Matches
Ensemble.template.hpp
Go to the documentation of this file.
1
34namespace Ensemble::internal {
35 template<class MatrixType>
36 class ScalableOperator {
37 private:
38 using Scalar = typename MatrixType::Scalar;
39 MatrixType m_locOp;
40
41 public:
42 ScalableOperator(MatrixType&& locOp) : m_locOp{locOp} {
43 // Write codes here
44 }
45
46 MatrixType construct_globalOp(size_t L) {
47 MatrixType res;
48 // Write codes here
49 return res;
50 };
51 };
52} // namespace Ensemble::internal
53
55 public:
56 using MatrixType = Eigen::MatrixX<Scalar>;
57 using EigenSolver = Eigen::SelfAdjointEigenSolver<MatrixType>;
59
60 static std::string dataname(size_t rep) { return "Hamiltonian_No" + std::to_string(rep); };
61 static std::string usage(size_t nargs) {
62 std::string usage = "HamiltonianEnsemble Usage: ";
63 usage += std::to_string(nargs + 0) + ".(...) ";
64 // Add codes here
65 return usage;
66 };
67 static constexpr size_t nargs(void) { return 1; };
68
69 private:
70 HamiltonianEnsemble(char** CL_argv) {
71 // Write codes here
72 }
73
74 public:
79 static HamiltonianEnsemble& get_instance(char** CL_argv) {
80 static HamiltonianEnsemble instance(CL_argv);
81 return instance;
82 }
83
84 void discard(size_t n) {
85 // Write codes here
86 }
87
90 // Write codes to construct an observable here
91 return res;
92 }
93};
94
96 public:
97 using MatrixType = Eigen::MatrixX<Scalar>;
98 using EigenSolver = Eigen::SelfAdjointEigenSolver<MatrixType>;
99
100 static std::string dataname(size_t rep) { return "Observable_No" + std::to_string(rep); };
101 static std::string usage(size_t nargs) {
102 std::string usage = "ObservableEnsemble Usage: ";
103 usage += std::to_string(nargs + 0) + ".(...) ";
104 // Add codes here
105 return usage;
106 };
107 static constexpr size_t nargs(void) { return 1; };
108
109 private:
110
111 public:
117
118 void reset() {
119 // Write codes here
120 }
121
122 void discard(size_t n) {
123 // Write codes here
124 }
125
127 MatrixType res;
128 // Write codes to construct an observable here
129 return res;
130 }
131
132 auto& stateSpace() { return; }
133 auto& operatorSpace() { return; }
134};
Definition Ensemble.cuh:55
typename MatrixType::Scalar Scalar
Definition Ensemble.cuh:57
ScalableOperator(MatrixType &&locOp)
Definition Ensemble.template.hpp:42
MatrixType construct_globalOp(size_t L)
Definition Ensemble.template.hpp:46
MatrixType m_locOp
Definition Ensemble.template.hpp:39
Definition Ensemble.cuh:84
HamiltonianEnsemble(const HamiltonianEnsemble &)=delete
ScalableOperator sample()
Definition Ensemble.template.hpp:88
HamiltonianEnsemble(char **CL_argv)
Definition Ensemble.template.hpp:70
HamiltonianEnsemble & operator=(HamiltonianEnsemble &&)=delete
HamiltonianEnsemble & operator=(const HamiltonianEnsemble &)=delete
static HamiltonianEnsemble & get_instance(char **CL_argv)
Definition Ensemble.template.hpp:79
static constexpr size_t nargs(void)
Definition Ensemble.cuh:97
HamiltonianEnsemble(HamiltonianEnsemble &&)=delete
static std::string dataname(size_t rep)
Definition Ensemble.template.hpp:60
void discard(size_t n)
Definition Ensemble.template.hpp:84
static std::string usage(size_t nargs)
Definition Ensemble.template.hpp:61
Definition MatrixUtils.hpp:20
Definition Ensemble.cuh:131
static std::string dataname(size_t rep)
Definition Ensemble.template.hpp:100
ObservableEnsemble & operator=(const ObservableEnsemble &)=delete
static constexpr size_t nargs(void)
Definition Ensemble.cuh:147
auto & stateSpace()
Definition Ensemble.template.hpp:132
ObservableEnsemble(const ObservableEnsemble &)=delete
auto & operatorSpace()
Definition Ensemble.template.hpp:133
ObservableEnsemble(ObservableEnsemble &&)=default
static std::string usage(size_t nargs)
Definition Ensemble.template.hpp:101
ObservableEnsemble & operator=(ObservableEnsemble &&)=default
void reset()
Definition Ensemble.template.hpp:118
ObservableEnsemble()=default
MatrixType sample()
Definition Ensemble.template.hpp:126
void discard(size_t n)
Definition Ensemble.template.hpp:122
Definition Ensemble.cuh:112
Definition Ensemble.cuh:53