PyQUDA-Utils 0.9.11.dev0__tar.gz → 0.10.0.dev0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PKG-INFO +1 -1
  2. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/PKG-INFO +1 -1
  3. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/SOURCES.txt +14 -12
  4. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/top_level.txt +1 -0
  5. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyproject.toml +1 -1
  6. pyquda_utils-0.10.0.dev0/pyquda_io/__init__.py +46 -0
  7. pyquda_utils-0.9.11.dev0/pyquda_utils/io/gauge_utils.py → pyquda_utils-0.10.0.dev0/pyquda_io/_field_utils.py +72 -25
  8. pyquda_utils-0.10.0.dev0/pyquda_io/_version.py +1 -0
  9. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/chroma.py +1 -1
  10. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/kyu.py +8 -5
  11. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/milc.py +1 -1
  12. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/nersc.py +2 -2
  13. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/npy.py +1 -1
  14. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/openqcd.py +2 -2
  15. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/xqcd.py +6 -3
  16. pyquda_utils-0.10.0.dev0/pyquda_utils/_version.py +1 -0
  17. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/gpt.py +1 -1
  18. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/io/__init__.py +27 -36
  19. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/setup.py +2 -0
  20. pyquda_utils-0.9.11.dev0/pyquda_utils/_version.py +0 -1
  21. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/LICENSE +0 -0
  22. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/MANIFEST.in +0 -0
  23. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/dependency_links.txt +0 -0
  24. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/requires.txt +0 -0
  25. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/README.md +0 -0
  26. /pyquda_utils-0.9.11.dev0/pyquda_utils/io/mpi_file.py → /pyquda_utils-0.10.0.dev0/pyquda_io/_mpi_file.py +0 -0
  27. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/io_general.py +0 -0
  28. {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/lime.py +0 -0
  29. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/__init__.py +0 -0
  30. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/convert.py +0 -0
  31. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/core.py +0 -0
  32. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/deprecated.py +0 -0
  33. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/gamma.py +0 -0
  34. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/hmc_param.py +0 -0
  35. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/milc_rhmc_param.py +0 -0
  36. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/phase.py +0 -0
  37. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/quasi_axial_gauge_fixing.py +0 -0
  38. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/source.py +0 -0
  39. {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/setup.cfg +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyQUDA-Utils
3
- Version: 0.9.11.dev0
3
+ Version: 0.10.0.dev0
4
4
  Summary: Utility scripts based on PyQUDA
5
5
  Author-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
6
6
  Maintainer-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyQUDA-Utils
3
- Version: 0.9.11.dev0
3
+ Version: 0.10.0.dev0
4
4
  Summary: Utility scripts based on PyQUDA
5
5
  Author-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
6
6
  Maintainer-email: SaltyChiang <SaltyChiang@users.noreply.github.com>
@@ -8,6 +8,19 @@ PyQUDA_Utils.egg-info/SOURCES.txt
8
8
  PyQUDA_Utils.egg-info/dependency_links.txt
9
9
  PyQUDA_Utils.egg-info/requires.txt
10
10
  PyQUDA_Utils.egg-info/top_level.txt
11
+ pyquda_io/__init__.py
12
+ pyquda_io/_field_utils.py
13
+ pyquda_io/_mpi_file.py
14
+ pyquda_io/_version.py
15
+ pyquda_io/chroma.py
16
+ pyquda_io/io_general.py
17
+ pyquda_io/kyu.py
18
+ pyquda_io/lime.py
19
+ pyquda_io/milc.py
20
+ pyquda_io/nersc.py
21
+ pyquda_io/npy.py
22
+ pyquda_io/openqcd.py
23
+ pyquda_io/xqcd.py
11
24
  pyquda_utils/__init__.py
12
25
  pyquda_utils/_version.py
13
26
  pyquda_utils/convert.py
@@ -20,15 +33,4 @@ pyquda_utils/milc_rhmc_param.py
20
33
  pyquda_utils/phase.py
21
34
  pyquda_utils/quasi_axial_gauge_fixing.py
22
35
  pyquda_utils/source.py
23
- pyquda_utils/io/__init__.py
24
- pyquda_utils/io/chroma.py
25
- pyquda_utils/io/gauge_utils.py
26
- pyquda_utils/io/io_general.py
27
- pyquda_utils/io/kyu.py
28
- pyquda_utils/io/lime.py
29
- pyquda_utils/io/milc.py
30
- pyquda_utils/io/mpi_file.py
31
- pyquda_utils/io/nersc.py
32
- pyquda_utils/io/npy.py
33
- pyquda_utils/io/openqcd.py
34
- pyquda_utils/io/xqcd.py
36
+ pyquda_utils/io/__init__.py
@@ -2,7 +2,7 @@
2
2
  requires = ["setuptools", "wheel"]
3
3
 
4
4
  [tool.setuptools.packages.find]
5
- include = ["pyquda_utils*"]
5
+ include = ["pyquda_utils*", "pyquda_io*"]
6
6
 
7
7
  [tool.setuptools.dynamic]
8
8
  version = { attr = "pyquda_utils._version.__version__" }
@@ -0,0 +1,46 @@
1
+ # flake8: noqa
2
+
3
+ from .io_general import (
4
+ IOGeneral,
5
+ read as readIOGeneral,
6
+ write as writeIOGeneral,
7
+ )
8
+ from .lime import (
9
+ Lime,
10
+ )
11
+ from .npy import (
12
+ readGauge as readNPYGauge,
13
+ writeGauge as writeNPYGauge,
14
+ readPropagator as readNPYPropagator,
15
+ writePropagator as writeNPYPropagator,
16
+ )
17
+ from .chroma import (
18
+ readQIOGauge as readChromaQIOGauge,
19
+ readQIOPropagator as readChromaQIOPropagator,
20
+ readILDGBinGauge,
21
+ )
22
+ from .milc import (
23
+ readGauge as readMILCGauge,
24
+ writeGauge as writeMILCGauge,
25
+ readQIOPropagator as readMILCQIOPropagator,
26
+ )
27
+ from .kyu import (
28
+ readGauge as readKYUGauge,
29
+ writeGauge as writeKYUGauge,
30
+ readPropagator as readKYUPropagator,
31
+ writePropagator as writeKYUPropagator,
32
+ )
33
+ from .xqcd import (
34
+ readPropagator as readXQCDPropagator,
35
+ writePropagator as writeXQCDPropagator,
36
+ readPropagatorFast as readXQCDPropagatorFast,
37
+ writePropagatorFast as writeXQCDPropagatorFast,
38
+ )
39
+ from .nersc import (
40
+ readGauge as readNERSCGauge,
41
+ writeGauge as writeNERSCGauge,
42
+ )
43
+ from .openqcd import (
44
+ readGauge as readOpenQCDGauge,
45
+ writeGauge as writeOpenQCDGauge,
46
+ )
@@ -3,7 +3,7 @@ from typing import List
3
3
  from mpi4py import MPI
4
4
  import numpy
5
5
 
6
- from .mpi_file import getSublatticeSize, getNeighbourRank
6
+ from ._mpi_file import getSublatticeSize, getNeighbourRank
7
7
 
8
8
  Nd, Nc = 4, 3
9
9
 
@@ -72,30 +72,12 @@ def gaugeLexicoPlaquette(latt_size: List[int], grid_size: List[int], gauge: nump
72
72
  extended[:, -1, :-1, :-1, :-1] = buf
73
73
 
74
74
  plaq = numpy.zeros((6))
75
- plaq[0] = numpy.vdot(
76
- numpy.linalg.matmul(gauge[0], extended[1, :-1, :-1, :-1, 1:]),
77
- numpy.linalg.matmul(gauge[1], extended[0, :-1, :-1, 1:, :-1]),
78
- ).real
79
- plaq[1] = numpy.vdot(
80
- numpy.linalg.matmul(gauge[0], extended[2, :-1, :-1, :-1, 1:]),
81
- numpy.linalg.matmul(gauge[2], extended[0, :-1, 1:, :-1, :-1]),
82
- ).real
83
- plaq[2] = numpy.vdot(
84
- numpy.linalg.matmul(gauge[1], extended[2, :-1, :-1, 1:, :-1]),
85
- numpy.linalg.matmul(gauge[2], extended[1, :-1, 1:, :-1, :-1]),
86
- ).real
87
- plaq[3] = numpy.vdot(
88
- numpy.linalg.matmul(gauge[0], extended[3, :-1, :-1, :-1, 1:]),
89
- numpy.linalg.matmul(gauge[3], extended[0, 1:, :-1, :-1, :-1]),
90
- ).real
91
- plaq[4] = numpy.vdot(
92
- numpy.linalg.matmul(gauge[1], extended[3, :-1, :-1, 1:, :-1]),
93
- numpy.linalg.matmul(gauge[3], extended[1, 1:, :-1, :-1, :-1]),
94
- ).real
95
- plaq[5] = numpy.vdot(
96
- numpy.linalg.matmul(gauge[2], extended[3, :-1, 1:, :-1, :-1]),
97
- numpy.linalg.matmul(gauge[3], extended[2, 1:, :-1, :-1, :-1]),
98
- ).real
75
+ plaq[0] = numpy.vdot(gauge[0] @ extended[1, :-1, :-1, :-1, 1:], gauge[1] @ extended[0, :-1, :-1, 1:, :-1]).real
76
+ plaq[1] = numpy.vdot(gauge[0] @ extended[2, :-1, :-1, :-1, 1:], gauge[2] @ extended[0, :-1, 1:, :-1, :-1]).real
77
+ plaq[2] = numpy.vdot(gauge[1] @ extended[2, :-1, :-1, 1:, :-1], gauge[2] @ extended[1, :-1, 1:, :-1, :-1]).real
78
+ plaq[3] = numpy.vdot(gauge[0] @ extended[3, :-1, :-1, :-1, 1:], gauge[3] @ extended[0, 1:, :-1, :-1, :-1]).real
79
+ plaq[4] = numpy.vdot(gauge[1] @ extended[3, :-1, :-1, 1:, :-1], gauge[3] @ extended[1, 1:, :-1, :-1, :-1]).real
80
+ plaq[5] = numpy.vdot(gauge[2] @ extended[3, :-1, 1:, :-1, :-1], gauge[3] @ extended[2, 1:, :-1, :-1, :-1]).real
99
81
 
100
82
  plaq /= int(numpy.prod(latt_size)) * Nc
101
83
  plaq = MPI.COMM_WORLD.allreduce(plaq, MPI.SUM)
@@ -186,3 +168,68 @@ def gaugeEvenShiftBackward(latt_size: List[int], grid_size: List[int], gauge: nu
186
168
  MPI.COMM_WORLD.Sendrecv_replace(buf, dest=neighbour_rank[3], source=neighbour_rank[7])
187
169
  gauge_shift[3, 1, 0, :, :, :] = buf
188
170
  return gauge_shift
171
+
172
+
173
+ # matrices to convert gamma basis bewteen DeGrand-Rossi and Dirac-Pauli
174
+ # DP for Dirac-Pauli, DR for DeGrand-Rossi
175
+ # \psi(DP) = _DR_TO_DP \psi(DR)
176
+ # \psi(DR) = _DP_TO_DR \psi(DP)
177
+ _FROM_DIRAC_PAULI = numpy.array(
178
+ [
179
+ [0, 1, 0, -1],
180
+ [-1, 0, 1, 0],
181
+ [0, 1, 0, 1],
182
+ [-1, 0, -1, 0],
183
+ ]
184
+ )
185
+ _TO_DIRAC_PAULI = numpy.array(
186
+ [
187
+ [0, -1, 0, -1],
188
+ [1, 0, 1, 0],
189
+ [0, 1, 0, -1],
190
+ [-1, 0, 1, 0],
191
+ ]
192
+ )
193
+
194
+
195
+ def propagatorFromDiracPauli(propagator: numpy.ndarray):
196
+ P = _FROM_DIRAC_PAULI
197
+ Pinv = _TO_DIRAC_PAULI / 2
198
+
199
+ return numpy.ascontiguousarray(numpy.einsum("ij,tzyxjkab,kl->tzyxilab", P, propagator.data, Pinv, optimize=True))
200
+
201
+
202
+ def propagatorToDiracPauli(propagator: numpy.ndarray):
203
+ P = _TO_DIRAC_PAULI
204
+ Pinv = _FROM_DIRAC_PAULI / 2
205
+
206
+ return numpy.ascontiguousarray(numpy.einsum("ij,tzyxjkab,kl->tzyxilab", P, propagator.data, Pinv, optimize=True))
207
+
208
+
209
+ def spinMatrixFromDiracPauli(dirac_pauli: numpy.ndarray):
210
+ P = _FROM_DIRAC_PAULI
211
+ degrand_rossi = numpy.zeros_like(dirac_pauli)
212
+ for i in range(4):
213
+ for j in range(4):
214
+ for i_ in range((i + 1) % 2, 4, 2):
215
+ for j_ in range((j + 1) % 2, 4, 2):
216
+ if P[i, i_] * P[j, j_] == 1:
217
+ degrand_rossi[i, j] += dirac_pauli[i_, j_]
218
+ elif P[i, i_] * P[j, j_] == -1:
219
+ degrand_rossi[i, j] -= dirac_pauli[i_, j_]
220
+ return degrand_rossi.transpose(2, 3, 4, 5, 0, 1, 6, 7) / 2
221
+
222
+
223
+ def spinMatrixToDiracPauli(degrand_rossi: numpy.ndarray):
224
+ P = _TO_DIRAC_PAULI
225
+ degrand_rossi = degrand_rossi.transpose(4, 5, 0, 1, 2, 3, 6, 7) / 2
226
+ dirac_pauli = numpy.zeros_like(degrand_rossi)
227
+ for i in range(4):
228
+ for j in range(4):
229
+ for i_ in range((i + 1) % 2, 4, 2):
230
+ for j_ in range((j + 1) % 2, 4, 2):
231
+ if P[i, i_] * P[j, j_] == 1:
232
+ dirac_pauli[i, j] += degrand_rossi[i_, j_]
233
+ elif P[i, i_] * P[j, j_] == -1:
234
+ dirac_pauli[i, j] -= degrand_rossi[i_, j_]
235
+ return dirac_pauli
@@ -0,0 +1 @@
1
+ __version__ = "0.10.0.dev0"
@@ -4,7 +4,7 @@ from xml.etree import ElementTree as ET
4
4
 
5
5
  from mpi4py import MPI
6
6
 
7
- from .mpi_file import getSublatticeSize, getGridCoord, readMPIFile
7
+ from ._mpi_file import getSublatticeSize, getGridCoord, readMPIFile
8
8
 
9
9
  Nd, Ns, Nc = 4, 4, 3
10
10
  _precision_map = {"D": 8, "F": 4, "S": 4}
@@ -3,7 +3,8 @@ from typing import List
3
3
 
4
4
  import numpy
5
5
 
6
- from .mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
6
+ from ._mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
7
+ from ._field_utils import spinMatrixFromDiracPauli, spinMatrixToDiracPauli
7
8
 
8
9
  Nd, Ns, Nc = 4, 4, 3
9
10
 
@@ -42,12 +43,13 @@ def readPropagator(filename: str, latt_size: List[int], grid_size: List[int]):
42
43
 
43
44
  propagator = readMPIFile(filename, dtype, offset, (Ns, Nc, 2, Ns, Nc, Lt, Lz, Ly, Lx), (8, 7, 6, 5), grid_size)
44
45
  propagator = (
45
- propagator.transpose(5, 6, 7, 8, 3, 0, 4, 1, 2)
46
+ propagator.transpose(3, 0, 5, 6, 7, 8, 4, 1, 2)
46
47
  .astype("<f8")
47
48
  .copy()
48
- .reshape(Lt, Lz, Ly, Lx, Ns, Ns, Nc, Nc * 2)
49
+ .reshape(Ns, Ns, Lt, Lz, Ly, Lx, Nc, Nc * 2)
49
50
  .view("<c16")
50
51
  )
52
+ propagator = spinMatrixFromDiracPauli(propagator)
51
53
  return propagator
52
54
 
53
55
 
@@ -56,11 +58,12 @@ def writePropagator(filename: str, latt_size: List[int], grid_size: List[int], p
56
58
  Lx, Ly, Lz, Lt = getSublatticeSize(latt_size, grid_size)
57
59
  dtype, offset = ">f8", 0
58
60
 
61
+ propagator = spinMatrixToDiracPauli(propagator)
59
62
  propagator = (
60
63
  propagator.view("<f8")
61
- .reshape(Lt, Lz, Ly, Lx, Ns, Ns, Nc, Nc, 2)
64
+ .reshape(Ns, Ns, Lt, Lz, Ly, Lx, Nc, Nc, 2)
62
65
  .astype(dtype)
63
- .transpose(5, 7, 8, 4, 6, 0, 1, 2, 3)
66
+ .transpose(1, 7, 8, 0, 6, 2, 3, 4, 5)
64
67
  .copy()
65
68
  )
66
69
  writeMPIFile(filename, dtype, offset, (Ns, Nc, 2, Ns, Nc, Lt, Lz, Ly, Lx), (8, 7, 6, 5), grid_size, propagator)
@@ -7,7 +7,7 @@ from xml.etree import ElementTree as ET
7
7
  import numpy
8
8
  from mpi4py import MPI
9
9
 
10
- from .mpi_file import getGridCoord, getSublatticeSize, readMPIFile, writeMPIFile
10
+ from ._mpi_file import getGridCoord, getSublatticeSize, readMPIFile, writeMPIFile
11
11
 
12
12
  Nd, Ns, Nc = 4, 4, 3
13
13
  _precision_map = {"D": 8, "F": 4, "S": 4}
@@ -5,8 +5,8 @@ from typing import Dict, List
5
5
  import numpy
6
6
  from mpi4py import MPI
7
7
 
8
- from .mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
9
- from .gauge_utils import gaugeLexicoPlaquette
8
+ from ._mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
9
+ from ._field_utils import gaugeLexicoPlaquette
10
10
 
11
11
  Nd, Ns, Nc = 4, 4, 3
12
12
 
@@ -5,7 +5,7 @@ import numpy
5
5
  from numpy.lib.format import dtype_to_descr, read_magic, read_array_header_1_0, write_array_header_1_0
6
6
  from mpi4py import MPI
7
7
 
8
- from .mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
8
+ from ._mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
9
9
 
10
10
  Nd, Ns, Nc = 4, 4, 3
11
11
 
@@ -5,8 +5,8 @@ from typing import List
5
5
  import numpy
6
6
  from mpi4py import MPI
7
7
 
8
- from .mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
9
- from .gauge_utils import gaugeEvenOdd, gaugeLexico, gaugeLexicoPlaquette, gaugeOddShiftForward, gaugeEvenShiftBackward
8
+ from ._mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
9
+ from ._field_utils import gaugeEvenOdd, gaugeLexico, gaugeLexicoPlaquette, gaugeOddShiftForward, gaugeEvenShiftBackward
10
10
 
11
11
  Nd, Ns, Nc = 4, 4, 3
12
12
 
@@ -3,7 +3,8 @@ from typing import List
3
3
 
4
4
  import numpy
5
5
 
6
- from .mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
6
+ from ._mpi_file import getSublatticeSize, readMPIFile, writeMPIFile
7
+ from ._field_utils import spinMatrixFromDiracPauli, spinMatrixToDiracPauli
7
8
 
8
9
  Ns, Nc = 4, 3
9
10
 
@@ -15,7 +16,8 @@ def readPropagator(filename: str, latt_size: List[int], grid_size: List[int], st
15
16
 
16
17
  if not staggered:
17
18
  propagator = readMPIFile(filename, dtype, offset, (Ns, Nc, Lt, Lz, Ly, Lx, Ns, Nc), (5, 4, 3, 2), grid_size)
18
- propagator = propagator.transpose(2, 3, 4, 5, 6, 0, 7, 1).astype("<c16")
19
+ propagator = propagator.transpose(6, 0, 2, 3, 4, 5, 7, 1).astype("<c16")
20
+ propagator = spinMatrixFromDiracPauli(propagator)
19
21
  else:
20
22
  # QDP_ALIGN16 makes the last Nc to be aligned with 16 Bytes.
21
23
  propagator_align16 = readMPIFile(filename, dtype, offset, (Nc, Lt, Lz, Ly, Lx, 4), (4, 3, 2, 1), grid_size)
@@ -32,7 +34,8 @@ def writePropagator(
32
34
  dtype, offset = "<c8", 0
33
35
 
34
36
  if not staggered:
35
- propagator = propagator.astype(dtype).transpose(5, 7, 0, 1, 2, 3, 4, 6).copy()
37
+ propagator = spinMatrixToDiracPauli(propagator)
38
+ propagator = propagator.astype(dtype).transpose(1, 7, 2, 3, 4, 5, 0, 6).copy()
36
39
  writeMPIFile(filename, dtype, offset, (Ns, Nc, Lt, Lz, Ly, Lx, Ns, Nc), (5, 4, 3, 2), grid_size, propagator)
37
40
  else:
38
41
  # QDP_ALIGN16 makes the last Nc to be aligned with 16 Bytes.
@@ -0,0 +1 @@
1
+ __version__ = "0.10.0.dev0"
@@ -49,7 +49,7 @@ def LatticeGaugeGPT(lattice: List[g.lattice], gen_simd_width: int, gauge: Lattic
49
49
  else:
50
50
  assert latt_info.size == gauge.latt_info.size
51
51
  for index in range(latt_info.Nd):
52
- gpt_shape = [i for sl in zip(gpt_simd, gpt_latt) for i in sl]
52
+ gpt_shape = [i for sl in zip(gpt_simd[::-1], gpt_latt[::-1]) for i in sl]
53
53
  lattice[index].mview()[0][:] = (
54
54
  gauge[index]
55
55
  .lexico()
@@ -71,7 +71,7 @@ def rotateToDeGrandRossi(propagator: LatticePropagator):
71
71
 
72
72
  def readChromaQIOGauge(filename: str, checksum: bool = True):
73
73
  from pyquda import getGridSize
74
- from .chroma import readQIOGauge as read
74
+ from pyquda_io.chroma import readQIOGauge as read
75
75
 
76
76
  latt_size, gauge_raw = read(filename, getGridSize(), checksum)
77
77
  return LatticeGauge(LatticeInfo(latt_size), evenodd(gauge_raw, [1, 2, 3, 4]))
@@ -79,7 +79,7 @@ def readChromaQIOGauge(filename: str, checksum: bool = True):
79
79
 
80
80
  def readILDGBinGauge(filename: str, dtype: str, latt_size: List[int]):
81
81
  from pyquda import getGridSize
82
- from .chroma import readILDGBinGauge as read
82
+ from pyquda_io.chroma import readILDGBinGauge as read
83
83
 
84
84
  gauge_raw = read(filename, dtype, latt_size, getGridSize())
85
85
  return LatticeGauge(LatticeInfo(latt_size), evenodd(gauge_raw, [1, 2, 3, 4]))
@@ -87,7 +87,7 @@ def readILDGBinGauge(filename: str, dtype: str, latt_size: List[int]):
87
87
 
88
88
  def readChromaQIOPropagator(filename: str, checksum: bool = True):
89
89
  from pyquda import getGridSize
90
- from .chroma import readQIOPropagator as read
90
+ from pyquda_io.chroma import readQIOPropagator as read
91
91
 
92
92
  latt_size, staggered, propagator_raw = read(filename, getGridSize(), checksum)
93
93
  if not staggered:
@@ -98,21 +98,21 @@ def readChromaQIOPropagator(filename: str, checksum: bool = True):
98
98
 
99
99
  def readMILCGauge(filename: str, checksum: bool = True):
100
100
  from pyquda import getGridSize
101
- from .milc import readGauge as read
101
+ from pyquda_io.milc import readGauge as read
102
102
 
103
103
  latt_size, gauge_raw = read(filename, getGridSize(), checksum)
104
104
  return LatticeGauge(LatticeInfo(latt_size), evenodd(gauge_raw, [1, 2, 3, 4]))
105
105
 
106
106
 
107
107
  def writeMILCGauge(filename: str, gauge: LatticeGauge):
108
- from .milc import writeGauge as write
108
+ from pyquda_io.milc import writeGauge as write
109
109
 
110
110
  write(filename, gauge.latt_info.global_size, gauge.latt_info.grid_size, gauge.lexico())
111
111
 
112
112
 
113
113
  def readMILCQIOPropagator(filename: str):
114
114
  from pyquda import getGridSize
115
- from .milc import readQIOPropagator as read
115
+ from pyquda_io.milc import readQIOPropagator as read
116
116
 
117
117
  latt_size, staggered, propagator_raw = read(filename, getGridSize())
118
118
  if not staggered:
@@ -123,66 +123,57 @@ def readMILCQIOPropagator(filename: str):
123
123
 
124
124
  def readKYUGauge(filename: str, latt_size: List[int]):
125
125
  from pyquda import getGridSize
126
- from .kyu import readGauge as read
126
+ from pyquda_io.kyu import readGauge as read
127
127
 
128
128
  gauge_raw = read(filename, latt_size, getGridSize())
129
129
  return LatticeGauge(LatticeInfo(latt_size), evenodd(gauge_raw, [1, 2, 3, 4]))
130
130
 
131
131
 
132
132
  def writeKYUGauge(filename: str, gauge: LatticeGauge):
133
- from .kyu import writeGauge as write
133
+ from pyquda_io.kyu import writeGauge as write
134
134
 
135
135
  write(filename, gauge.latt_info.global_size, gauge.latt_info.grid_size, gauge.lexico())
136
136
 
137
137
 
138
138
  def readKYUPropagator(filename: str, latt_size: List[int]):
139
139
  from pyquda import getGridSize
140
- from .kyu import readPropagator as read
140
+ from pyquda_io.kyu import readPropagator as read
141
141
 
142
142
  propagator_raw = read(filename, latt_size, getGridSize())
143
- propagator = LatticePropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3]))
144
- propagator = rotateToDeGrandRossi(propagator)
145
- return propagator
143
+ return LatticePropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3]))
146
144
 
147
145
 
148
146
  def writeKYUPropagator(filename: str, propagator: LatticePropagator):
149
- from .kyu import writePropagator as write
147
+ from pyquda_io.kyu import writePropagator as write
150
148
 
151
- propagator = rotateToDiracPauli(propagator)
152
- propagator_raw = propagator.lexico()
153
- write(filename, propagator.latt_info.global_size, propagator.latt_info.grid_size, propagator_raw)
149
+ write(filename, propagator.latt_info.global_size, propagator.latt_info.grid_size, propagator.lexico())
154
150
 
155
151
 
156
152
  def readXQCDPropagator(filename: str, latt_size: List[int], staggered: bool):
157
153
  from pyquda import getGridSize
158
- from .xqcd import readPropagator as read
154
+ from pyquda_io.xqcd import readPropagator as read
159
155
 
160
156
  propagator_raw = read(filename, latt_size, getGridSize(), staggered)
161
157
  if not staggered:
162
- return rotateToDeGrandRossi(LatticePropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3])))
158
+ return LatticePropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3]))
163
159
  else:
164
160
  return LatticeStaggeredPropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3]))
165
161
 
166
162
 
167
163
  def writeXQCDPropagator(filename: str, propagator: Union[LatticePropagator, LatticeStaggeredPropagator]):
168
- from .xqcd import writePropagator as write
164
+ from pyquda_io.xqcd import writePropagator as write
169
165
 
170
- latt_size = propagator.latt_info.global_size
171
- grid_size = propagator.latt_info.grid_size
172
166
  staggered = isinstance(propagator, LatticeStaggeredPropagator)
173
- if not staggered:
174
- write(filename, latt_size, grid_size, rotateToDiracPauli(propagator).lexico(), staggered)
175
- else:
176
- write(filename, latt_size, grid_size, propagator.lexico(), staggered)
167
+ write(filename, propagator.latt_info.global_size, propagator.latt_info.grid_size, propagator.lexico(), staggered)
177
168
 
178
169
 
179
170
  def readXQCDPropagatorFast(filename: str, latt_size: List[int]):
180
171
  from pyquda import getGridSize
181
- from .xqcd import readPropagatorFast as read
172
+ from pyquda_io.xqcd import readPropagatorFast as read
182
173
 
183
174
  latt_info = LatticeInfo(latt_size)
184
175
  Lx, Ly, Lz, Lt = latt_info.size
185
- propagator_raw = read(filename, getGridSize(), latt_size)
176
+ propagator_raw = read(filename, latt_size, getGridSize())
186
177
  propagator = LatticePropagator(latt_info, evenodd(propagator_raw, [2, 3, 4, 5]))
187
178
  propagator.data = propagator.data.reshape(Ns, Nc, 2, Lt, Lz, Ly, Lx // 2, Ns, Nc)
188
179
  propagator.toDevice()
@@ -192,7 +183,7 @@ def readXQCDPropagatorFast(filename: str, latt_size: List[int]):
192
183
 
193
184
 
194
185
  def writeXQCDPropagatorFast(filename: str, propagator: LatticePropagator):
195
- from .xqcd import writePropagatorFast as write
186
+ from pyquda_io.xqcd import writePropagatorFast as write
196
187
 
197
188
  latt_info = propagator.latt_info
198
189
  Lx, Ly, Lz, Lt = latt_info.size
@@ -206,7 +197,7 @@ def writeXQCDPropagatorFast(filename: str, propagator: LatticePropagator):
206
197
 
207
198
  def readNPYGauge(filename: str):
208
199
  from pyquda import getGridSize
209
- from .npy import readGauge as read
200
+ from pyquda_io.npy import readGauge as read
210
201
 
211
202
  filename = filename if filename.endswith(".npy") else filename + ".npy"
212
203
  latt_size, gauge_raw = read(filename, getGridSize())
@@ -214,7 +205,7 @@ def readNPYGauge(filename: str):
214
205
 
215
206
 
216
207
  def writeNPYGauge(filename: str, gauge: LatticeGauge):
217
- from .npy import writeGauge as write
208
+ from pyquda_io.npy import writeGauge as write
218
209
 
219
210
  filename = filename if filename.endswith(".npy") else filename + ".npy"
220
211
  write(filename, gauge.latt_info.global_size, gauge.latt_info.grid_size, gauge.lexico())
@@ -222,42 +213,42 @@ def writeNPYGauge(filename: str, gauge: LatticeGauge):
222
213
 
223
214
  def readNPYPropagator(filename: str):
224
215
  from pyquda import getGridSize
225
- from .npy import readPropagator as read
216
+ from pyquda_io.npy import readPropagator as read
226
217
 
227
218
  latt_size, propagator_raw = read(filename, getGridSize())
228
219
  return LatticePropagator(LatticeInfo(latt_size), evenodd(propagator_raw, [0, 1, 2, 3]))
229
220
 
230
221
 
231
222
  def writeNPYPropagator(filename: str, propagator: LatticePropagator):
232
- from .npy import writePropagator as write
223
+ from pyquda_io.npy import writePropagator as write
233
224
 
234
225
  write(filename, propagator.latt_info.global_size, propagator.latt_info.grid_size, propagator.lexico())
235
226
 
236
227
 
237
228
  def readOpenQCDGauge(filename: str, plaquette: bool = True):
238
229
  from pyquda import getGridSize
239
- from .openqcd import readGauge as read
230
+ from pyquda_io.openqcd import readGauge as read
240
231
 
241
232
  latt_size, gauge = read(filename, getGridSize(), plaquette, False)
242
233
  return LatticeGauge(LatticeInfo(latt_size), gauge)
243
234
 
244
235
 
245
236
  def writeOpenQCDGauge(filename: str, gauge: LatticeGauge, plaquette: float = None):
246
- from .openqcd import writeGauge as write
237
+ from pyquda_io.openqcd import writeGauge as write
247
238
 
248
239
  write(filename, gauge.latt_info.global_size, gauge.latt_info.grid_size, gauge.getHost(), plaquette, False)
249
240
 
250
241
 
251
242
  def readNERSCGauge(filename: str, plaquette: bool = True, link_trace: bool = True, checksum: bool = True):
252
243
  from pyquda import getGridSize
253
- from .nersc import readGauge as read
244
+ from pyquda_io.nersc import readGauge as read
254
245
 
255
246
  latt_size, gauge_raw = read(filename, getGridSize(), plaquette, link_trace, checksum)
256
247
  return LatticeGauge(LatticeInfo(latt_size), evenodd(gauge_raw, [1, 2, 3, 4]))
257
248
 
258
249
 
259
250
  def writeNERSCGauge(filename: str, gauge: LatticeGauge, plaquette: float = None, use_fp32: bool = False):
260
- from .nersc import writeGauge as write
251
+ from pyquda_io.nersc import writeGauge as write
261
252
 
262
253
  write(filename, gauge.latt_info.global_size, gauge.latt_info.grid_size, gauge.lexico(), plaquette, use_fp32)
263
254
 
@@ -11,5 +11,7 @@ if "egg_info" in sys.argv or "dist_info" in sys.argv or "sdist" in sys.argv:
11
11
  tag, post = describe, 0
12
12
  with open(os.path.join(os.path.dirname(__file__), "pyquda_utils", "_version.py"), "w") as f:
13
13
  f.write(f'__version__ = "{tag[1:]}.dev{post}"\n')
14
+ with open(os.path.join(os.path.dirname(__file__), "pyquda_io", "_version.py"), "w") as f:
15
+ f.write(f'__version__ = "{tag[1:]}.dev{post}"\n')
14
16
 
15
17
  setup()
@@ -1 +0,0 @@
1
- __version__ = "0.9.11.dev0"