1 #ifndef FACTORY_SPINFULLUNIFORM3D_HPP 2 #define FACTORY_SPINFULLUNIFORM3D_HPP 4 #include "../Hamiltonian.hpp" 5 #include "../QuantumSystem.hpp" 6 #include "../Filler.hpp" 7 #include "../VectorViewers/Grid3DViewer.hpp" 33 static int ToSite(
int x,
int y,
int z,
int L,
int W)
35 return x + L * y + L * W * z;
42 Dimensions &dimensions = quantumSystem.
dimensions;
43 Parameters ¶meters = quantumSystem.
parameters;
46 int length = dimensions.GetLength();
47 int width = dimensions.GetWidth();
48 int height = dimensions.GetHeight();
49 int N = length * width * height;
54 for (
int i = 0; i < N; i++)
64 for (
int z = 0; z < height; z++)
66 for (
int y = 0; y < width; y++)
68 for (
int x = 0; x < length - 1; x++)
70 int from =
ToSite(x, y, z, length, width);
71 int to =
ToSite(x + 1, y, z, length, width);
82 for (
int z = 0; z < height; z++)
84 for (
int x = 0; x < length; x++)
86 for (
int y = 0; y < width - 1; y++)
88 int from =
ToSite(x, y, z, length, width);
89 int to =
ToSite(x, y + 1, z, length, width);
98 for (
int y = 0; y < width; y++)
100 for (
int x = 0; x < length; x++)
102 for (
int z = 0; z < height - 1; z++)
104 int from =
ToSite(x, y, z, length, width);
105 int to =
ToSite(x, y, z + 1, length, width);
116 static constexpr
char name[] =
"SpinfullUniform3D";
Parameters parameters
Definition: QuantumSystem.hpp:15
displays vectors with sites numbered in 3D grid,
Definition: Grid3DViewer.hpp:21
Hamiltonian class for counting MZM in non-interacting systems.
Definition: Hamiltonian.hpp:13
Dimensions dimensions
Definition: QuantumSystem.hpp:16
class containing all information about quantum system, which is needed for hamiltonian construction ...
Definition: QuantumSystem.hpp:12
static void Fill(Hamiltonian< T > &ham, Targs... Fargs)
Definition: Filler.hpp:51