StatMech
Loading...
Searching...
No Matches
ManyBodySpaceBase_GPUtest_kernel.cuh File Reference

Functions

template<class Derived >
__global__ void testManyBodySpaceBase_kernel (ManyBodySpaceBase< Derived > *const ptr)
 

Function Documentation

◆ testManyBodySpaceBase_kernel()

template<class Derived >
__global__ void testManyBodySpaceBase_kernel ( ManyBodySpaceBase< Derived > *const  ptr)
5 {
6 int const idx = blockIdx.x * blockDim.x + threadIdx.x;
7 if(idx > 1) return;
8
9 ManyBodySpaceBase<Derived>& hSpace = *ptr;
10 debug_printf("\t hSpace.dim()=%d, hSpace.sysSize()=%d, hSpace.dimLoc()=%d\n", hSpace.dim(),
11 hSpace.sysSize(), hSpace.dimLoc());
12 {
13 debug_printf("\t Calling the copy constructor\n");
14 ManyBodySpaceBase<Derived> hSpace2(hSpace);
15 debug_printf("\t (END) Calling the copy constructor\n\n");
16 }
17
18 debug_printf("\t Computing translation equivalent classes\n");
19 hSpace.computeTransEqClass();
20 debug_printf("\t hSpace.transEqDim()=%d\n", hSpace.transEqDim());
21 printf("(GPU)\t");
22 for(int j = 0; j != hSpace.transEqDim(); ++j) { printf("%d ", hSpace.transEqClassRep(j)); }
23 printf("\n");
24 printf("(GPU)\t");
25 for(int j = 0; j != hSpace.transEqDim(); ++j) { printf("%d ", hSpace.transPeriod()[j]); }
26 printf("\n");
27 debug_printf("\t (END) Computing translation equivalent classes\n\n");
28 debug_printf("\t hSpace.transEqDim()=%d, hSpace.transEqClassRep().data()=%p, "
29 "hSpace.transPeriod().data()=%p\n",
30 hSpace.transEqDim(), hSpace.transEqClassRep().data(), hSpace.transPeriod().data());
31 {
32 debug_printf("\t Calling the copy constructor\n");
33 ManyBodySpaceBase<Derived> hSpace2(hSpace);
34 debug_printf("\t (END) Calling the copy constructor\n");
35 debug_printf("\t hSpace2.transEqDim()=%d, hSpace2.transEqClassRep().data()=%p, "
36 "hSpace2.transPeriod().data()=%p\n",
37 hSpace2.transEqDim(), hSpace2.transEqClassRep().data(),
38 hSpace2.transPeriod().data());
39 printf("(GPU)\t");
40 for(int j = 0; j != hSpace2.transEqDim(); ++j) {
41 printf("%d ", hSpace2.transEqClassRep(j));
42 }
43 printf("\n");
44 printf("(GPU)\t");
45 for(int j = 0; j != hSpace2.transEqDim(); ++j) { printf("%d ", hSpace2.transPeriod()[j]); }
46 printf("\n");
47
48 debug_printf("\t Calling the move constructor\n");
49 ManyBodySpaceBase<Derived> hSpace3(std::move(hSpace2));
50 debug_printf("\t (END) Calling the move constructor\n");
51 debug_printf("\t hSpace3.transEqDim()=%d, hSpace3.transEqClassRep().data()=%p, "
52 "hSpace3.transPeriod().data()=%p\n",
53 hSpace3.transEqDim(), hSpace3.transEqClassRep().data(),
54 hSpace3.transPeriod().data());
55 printf("(GPU)\t");
56 for(int j = 0; j != hSpace3.transEqDim(); ++j) {
57 printf("%d ", hSpace3.transEqClassRep(j));
58 }
59 printf("\n");
60 printf("(GPU)\t");
61 for(int j = 0; j != hSpace3.transEqDim(); ++j) { printf("%d ", hSpace3.transPeriod()[j]); }
62 printf("\n");
63 }
64
65 debug_printf("\t Testing translation operation\n");
66 for(int j = 0; j != hSpace.transEqDim(); ++j) {
67 for(int trans = 0; trans != hSpace.transPeriod(j); ++trans) {
68 printf("(GPU)\t");
69 for(int pos = 0; pos != hSpace.sysSize(); ++pos)
70 printf("%d ", hSpace.locState(hSpace.transEqClassRep(j, trans), pos));
71 printf("\n");
72 }
73 printf("\n");
74 }
75}
__host__ __device__ int dim() const
Definition HilbertSpace.hpp:34
ManyBodySpinSpace defined by , where.
Definition HilbertSpace.hpp:130
__host__ __device__ int dimLoc() const
Definition HilbertSpace.hpp:266
__host__ __device__ Vector_t const & transPeriod() const
Definition HilbertSpace.hpp:317
__host__ __device__ int transEqDim() const
Definition HilbertSpace.hpp:309
__host__ __device__ void computeTransEqClass() const
Definition HilbertSpace.hpp:357
__host__ __device__ int locState(int state, int pos) const
Definition HilbertSpace.hpp:267
__host__ __device__ int sysSize() const
Definition HilbertSpace.hpp:265
__host__ __device__ Vector_t const & transEqClassRep() const
Definition HilbertSpace.hpp:311