Skip to content

Commit 6aeef69

Browse files
committed
Fix a bug in openQCD I/O.
1 parent 75e4144 commit 6aeef69

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

pyquda_io/_field_utils.py

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -78,10 +78,9 @@ def gaugePlaquette(latt_size: List[int], grid_size: List[int], gauge: numpy.ndar
7878
plaq[3] = numpy.vdot(gauge[0] @ extended[3, :-1, :-1, :-1, 1:], gauge[3] @ extended[0, 1:, :-1, :-1, :-1]).real
7979
plaq[4] = numpy.vdot(gauge[1] @ extended[3, :-1, :-1, 1:, :-1], gauge[3] @ extended[1, 1:, :-1, :-1, :-1]).real
8080
plaq[5] = numpy.vdot(gauge[2] @ extended[3, :-1, 1:, :-1, :-1], gauge[3] @ extended[2, 1:, :-1, :-1, :-1]).real
81-
8281
plaq /= int(numpy.prod(latt_size)) * Nc
8382
plaq = MPI.COMM_WORLD.allreduce(plaq, MPI.SUM)
84-
return [plaq.mean().item(), plaq[:3].mean().item(), plaq[3:].mean().item()]
83+
return numpy.array([plaq.mean(), plaq[:3].mean(), plaq[3:].mean()])
8584

8685

8786
def gaugeOddShiftForward(latt_size: List[int], grid_size: List[int], gauge: numpy.ndarray):
@@ -229,8 +228,8 @@ def gaugeReconstruct12(gauge: numpy.ndarray):
229228
gauge_ = gauge.transpose(5, 6, 0, 1, 2, 3, 4)
230229
gauge = numpy.empty((Nc, *gauge_.shape[1:]), "<c16")
231230
gauge[:2] = gauge_
232-
gauge[2] = numpy.cross(gauge[..., 0, :], gauge[..., 1, :], axis=-1).conjugate()
233-
return gauge
231+
gauge[2] = numpy.cross(gauge[0], gauge[1], axis=0).conjugate()
232+
return gauge.transpose(2, 3, 4, 5, 6, 0, 1)
234233

235234

236235
# matrices to convert gamma basis bewteen DeGrand-Rossi and Dirac-Pauli

pyquda_io/openqcd.py

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ def readGauge(filename: str, grid_size: List[int], plaquette: bool = True, lexic
1515
filename = path.expanduser(path.expandvars(filename))
1616
with open(filename, "rb") as f:
1717
latt_size = struct.unpack("<iiii", f.read(16))[::-1]
18-
plaquette = struct.unpack("<d", f.read(8))[0] / Nc
18+
plaquette_ = struct.unpack("<d", f.read(8))[0] / Nc
1919
offset = f.tell()
2020
Lx, Ly, Lz, Lt = getSublatticeSize(latt_size, grid_size)
2121
dtype = "<c16"
@@ -35,10 +35,9 @@ def readGauge(filename: str, grid_size: List[int], plaquette: bool = True, lexic
3535
if lexico:
3636
gauge = gaugeLexico([Lx, Ly, Lz, Lt], gauge)
3737
if plaquette:
38-
assert numpy.isclose(gaugePlaquette(latt_size, grid_size, gauge)[0], plaquette)
38+
assert numpy.isclose(gaugePlaquette(latt_size, grid_size, gauge)[0], plaquette_)
3939
elif plaquette:
40-
gauge_lexico = gaugeLexico([Lx, Ly, Lz, Lt], gauge)
41-
assert numpy.isclose(gaugePlaquette(latt_size, grid_size, gauge_lexico)[0], plaquette)
40+
assert numpy.isclose(gaugePlaquette(latt_size, grid_size, gaugeLexico(latt_size, gauge))[0], plaquette_)
4241
gauge = gauge.astype("<c16")
4342

4443
return latt_size, gauge
@@ -62,8 +61,7 @@ def writeGauge(
6261
plaquette = gaugePlaquette(latt_size, grid_size, gauge)[0]
6362
gauge = gaugeEvenOdd([Lx, Ly, Lz, Lt], gauge)
6463
elif plaquette is None:
65-
gauge_lexico = gaugeLexico([Lx, Ly, Lz, Lt], gauge)
66-
plaquette = gaugePlaquette(latt_size, grid_size, gauge_lexico)[0]
64+
plaquette = gaugePlaquette(latt_size, grid_size, gaugeLexico([Lx, Ly, Lz, Lt], gauge))[0]
6765
gauge = gaugeEvenShiftBackward(latt_size, grid_size, gauge)
6866
gauge_reorder = numpy.zeros((Lt, Lx, Ly, Lz // 2, Nd, 2, Nc, Nc), dtype)
6967
for t in range(Lt):

0 commit comments

Comments
 (0)