PyQUDA-Utils 0.9.9.dev4__tar.gz → 0.9.9.dev5__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 (36) hide show
  1. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/PKG-INFO +1 -1
  2. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/PyQUDA_Utils.egg-info/PKG-INFO +1 -1
  3. pyquda_utils-0.9.9.dev5/pyquda_utils/_version.py +1 -0
  4. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/__init__.py +17 -9
  5. pyquda_utils-0.9.9.dev5/pyquda_utils/io/openqcd.py +58 -0
  6. pyquda_utils-0.9.9.dev4/pyquda_utils/_version.py +0 -1
  7. pyquda_utils-0.9.9.dev4/pyquda_utils/io/openqcd.py +0 -39
  8. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/LICENSE +0 -0
  9. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/MANIFEST.in +0 -0
  10. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/PyQUDA_Utils.egg-info/SOURCES.txt +0 -0
  11. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/PyQUDA_Utils.egg-info/dependency_links.txt +0 -0
  12. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/PyQUDA_Utils.egg-info/requires.txt +0 -0
  13. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/PyQUDA_Utils.egg-info/top_level.txt +0 -0
  14. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/README.md +0 -0
  15. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyproject.toml +0 -0
  16. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/__init__.py +0 -0
  17. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/convert.py +0 -0
  18. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/core.py +0 -0
  19. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/deprecated.py +0 -0
  20. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/gamma.py +0 -0
  21. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/gpt.py +0 -0
  22. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/hmc_param.py +0 -0
  23. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/chroma.py +0 -0
  24. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/io_general.py +0 -0
  25. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/kyu.py +0 -0
  26. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/lime.py +0 -0
  27. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/milc.py +0 -0
  28. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/nersc.py +0 -0
  29. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/npy.py +0 -0
  30. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/io/xqcd.py +0 -0
  31. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/milc_rhmc_param.py +0 -0
  32. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/phase.py +0 -0
  33. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/quasi_axial_gauge_fixing.py +0 -0
  34. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/pyquda_utils/source.py +0 -0
  35. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/setup.cfg +0 -0
  36. {pyquda_utils-0.9.9.dev4 → pyquda_utils-0.9.9.dev5}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: PyQUDA-Utils
3
- Version: 0.9.9.dev4
3
+ Version: 0.9.9.dev5
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.9.dev4
3
+ Version: 0.9.9.dev5
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>
@@ -0,0 +1 @@
1
+ __version__ = "0.9.9.dev5"
@@ -1,4 +1,4 @@
1
- from typing import List, Literal, Union
1
+ from typing import List, Union
2
2
 
3
3
  import numpy
4
4
 
@@ -218,20 +218,28 @@ def writeNPYPropagator(filename: str, propagator: LatticePropagator):
218
218
  write(filename, propagator.latt_info.global_size, propagator.lexico())
219
219
 
220
220
 
221
- def readOpenQCDGauge(filename: str, return_plaquette: bool = False):
221
+ def readOpenQCDGauge(filename: str):
222
+ from pyquda.field import X, Y, Z, T
222
223
  from .openqcd import readGauge as read
223
224
 
224
- latt_size, plaquette, gauge_raw = read(filename)
225
- if not return_plaquette:
226
- return LatticeGauge(LatticeInfo(latt_size), cb2(gauge_raw, [1, 2, 3, 4]))
227
- else:
228
- return LatticeGauge(LatticeInfo(latt_size), cb2(gauge_raw, [1, 2, 3, 4])), plaquette
225
+ latt_size, plaquette, gauge_ = read(filename)
226
+ gauge_ = LatticeGauge(LatticeInfo(latt_size), gauge_)
227
+ gauge_.toDevice()
228
+ gauge = gauge_.shift([X, Y, Z, T])
229
+ gauge.data[:, 1] = gauge_.data[:, 0]
230
+ assert numpy.isclose(gauge.plaquette()[0], plaquette)
231
+ return gauge
229
232
 
230
233
 
231
- def writeOpenQCDGauge(filename: str, gauge: LatticeGauge, plaquette: float):
234
+ def writeOpenQCDGauge(filename: str, gauge: LatticeGauge):
235
+ from pyquda.field import X, Y, Z, T
232
236
  from .openqcd import writeGauge as write
233
237
 
234
- write(filename, gauge.latt_info.global_size, plaquette, gauge.lexico())
238
+ gauge.toDevice()
239
+ plaquette = gauge.plaquette()[0]
240
+ gauge_ = gauge.shift([-X, -Y, -Z, -T])
241
+ gauge_.data[:, 0] = gauge.data[:, 1]
242
+ write(filename, gauge.latt_info.global_size, plaquette, gauge_.getHost())
235
243
 
236
244
 
237
245
  def readNERSCGauge(filename: str, return_plaquette: bool = False, link_trace: bool = True, checksum: bool = True):
@@ -0,0 +1,58 @@
1
+ from os import path
2
+ import struct
3
+ from typing import List
4
+
5
+ import numpy
6
+
7
+ from pyquda import getSublatticeSize, getMPIRank, getMPIComm, readMPIFile, writeMPIFile
8
+
9
+ Nd, Ns, Nc = 4, 4, 3
10
+
11
+
12
+ def readGauge(filename: str):
13
+ filename = path.expanduser(path.expandvars(filename))
14
+ with open(filename, "rb") as f:
15
+ latt_size = struct.unpack("<iiii", f.read(16))[::-1]
16
+ plaquette = struct.unpack("<d", f.read(8))[0] / Nc
17
+ offset = f.tell()
18
+ Lx, Ly, Lz, Lt = getSublatticeSize(latt_size)
19
+ dtype = "<c16"
20
+
21
+ gauge_reorder = readMPIFile(filename, dtype, offset, (Lt, Lx, Ly, Lz // 2, Nd, 2, Nc, Nc), (1, 2, 3, 0))
22
+
23
+ gauge = numpy.zeros((Nd, 2, Lt, Lz, Ly, Lx // 2, Nc, Nc), dtype="<c16")
24
+ for t in range(Lt):
25
+ for y in range(Ly):
26
+ for z in range(Lz):
27
+ for x in range(Lx // 2):
28
+ x_ = 2 * x + (1 - (t + z + y) % 2)
29
+ z_ = z // 2
30
+ gauge[[3, 0, 1, 2], :, t, z, y, x, :, :] = gauge_reorder[t, x_, y, z_]
31
+
32
+ gauge = gauge.astype("<c16")
33
+ return latt_size, plaquette, gauge
34
+
35
+
36
+ def writeGauge(filename: str, latt_size: List[int], plaquette: float, gauge: numpy.ndarray):
37
+ filename = path.expanduser(path.expandvars(filename))
38
+ Lx, Ly, Lz, Lt = getSublatticeSize(latt_size)
39
+ dtype, offset = "<c16", None
40
+
41
+ gauge_reorder = numpy.zeros((Lt, Lx, Ly, Lz // 2, Nd, 2, Nc, Nc), dtype="<c16")
42
+ for t in range(Lt):
43
+ for y in range(Ly):
44
+ for z in range(Lz):
45
+ for x in range(Lx // 2):
46
+ x_ = 2 * x + (1 - (t + z + y) % 2)
47
+ z_ = z // 2
48
+ gauge_reorder[t, x_, y, z_] = gauge[[3, 0, 1, 2], :, t, z, y, x, :, :]
49
+
50
+ gauge = gauge_reorder.astype(dtype)
51
+ if getMPIRank() == 0:
52
+ with open(filename, "wb") as f:
53
+ f.write(struct.pack("<iiii", *latt_size[::-1]))
54
+ f.write(struct.pack("<d", plaquette * Nc))
55
+ offset = f.tell()
56
+ offset = getMPIComm().bcast(offset)
57
+
58
+ writeMPIFile(filename, dtype, offset, (Lt, Lx, Ly, Lz // 2, Nd, 2, Nc, Nc), (1, 2, 3, 0), gauge)
@@ -1 +0,0 @@
1
- __version__ = "0.9.9.dev4"
@@ -1,39 +0,0 @@
1
- from os import path
2
- import struct
3
- from typing import List
4
-
5
- import numpy
6
-
7
- from pyquda import getSublatticeSize, getMPIRank, getMPIComm, readMPIFile, writeMPIFile
8
-
9
- Nd, Ns, Nc = 4, 4, 3
10
-
11
-
12
- def readGauge(filename: str):
13
- filename = path.expanduser(path.expandvars(filename))
14
- with open(filename, "rb") as f:
15
- latt_size = struct.unpack("<iiii", f.read(16))[::-1]
16
- plaquette = struct.unpack("<d", f.read(8))[0] / Nc
17
- offset = f.tell()
18
- Lx, Ly, Lz, Lt = getSublatticeSize(latt_size)
19
- dtype = "<c16"
20
-
21
- gauge = readMPIFile(filename, dtype, offset, (Lt, Lz, Ly, Lx, Nd, Nc, Nc), (3, 2, 1, 0))
22
- gauge = gauge.transpose(4, 0, 1, 2, 3, 5, 6).astype("<c16")
23
- return latt_size, plaquette, gauge
24
-
25
-
26
- def writeGauge(filename: str, latt_size: List[int], plaquette: float, gauge: numpy.ndarray):
27
- filename = path.expanduser(path.expandvars(filename))
28
- Lx, Ly, Lz, Lt = latt_size
29
- dtype, offset = "<c16", None
30
-
31
- gauge = numpy.ascontiguousarray(gauge.transpose(1, 2, 3, 4, 0, 5, 6).astype(dtype))
32
- if getMPIRank() == 0:
33
- with open(filename, "wb") as f:
34
- f.write(struct.pack("<iiii", *latt_size[::-1]))
35
- f.write(struct.pack("<d", plaquette * Nc))
36
- offset = f.tell()
37
- offset = getMPIComm().bcast(offset)
38
-
39
- writeMPIFile(filename, dtype, offset, (Lt, Lz, Ly, Lx, Nd, Nc, Nc), (3, 2, 1, 0), gauge)