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.
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PKG-INFO +1 -1
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/PKG-INFO +1 -1
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/SOURCES.txt +14 -12
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/top_level.txt +1 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyproject.toml +1 -1
- pyquda_utils-0.10.0.dev0/pyquda_io/__init__.py +46 -0
- 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
- pyquda_utils-0.10.0.dev0/pyquda_io/_version.py +1 -0
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/chroma.py +1 -1
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/kyu.py +8 -5
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/milc.py +1 -1
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/nersc.py +2 -2
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/npy.py +1 -1
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/openqcd.py +2 -2
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/xqcd.py +6 -3
- pyquda_utils-0.10.0.dev0/pyquda_utils/_version.py +1 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/gpt.py +1 -1
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/io/__init__.py +27 -36
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/setup.py +2 -0
- pyquda_utils-0.9.11.dev0/pyquda_utils/_version.py +0 -1
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/LICENSE +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/MANIFEST.in +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/dependency_links.txt +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/requires.txt +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/README.md +0 -0
- /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
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/io_general.py +0 -0
- {pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/lime.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/__init__.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/convert.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/core.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/deprecated.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/gamma.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/hmc_param.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/milc_rhmc_param.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/phase.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/quasi_axial_gauge_fixing.py +0 -0
- {pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/source.py +0 -0
- {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.
|
|
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.
|
|
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
|
|
@@ -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 .
|
|
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
|
-
|
|
77
|
-
|
|
78
|
-
).real
|
|
79
|
-
plaq[
|
|
80
|
-
|
|
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 .
|
|
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 .
|
|
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,
|
|
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,
|
|
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,
|
|
64
|
+
.reshape(Ns, Ns, Lt, Lz, Ly, Lx, Nc, Nc, 2)
|
|
62
65
|
.astype(dtype)
|
|
63
|
-
.transpose(
|
|
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 .
|
|
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 .
|
|
9
|
-
from .
|
|
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 .
|
|
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 .
|
|
9
|
-
from .
|
|
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 .
|
|
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,
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
-
|
|
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()
|
|
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"
|
|
File without changes
|
|
File without changes
|
{pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/PyQUDA_Utils.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyquda_utils-0.9.11.dev0/pyquda_utils/io → pyquda_utils-0.10.0.dev0/pyquda_io}/io_general.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{pyquda_utils-0.9.11.dev0 → pyquda_utils-0.10.0.dev0}/pyquda_utils/quasi_axial_gauge_fixing.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|