implement t0 and t1 import from openQCD, allow no param file for these

This commit is contained in:
Justus Kuhlmann 2025-04-17 08:36:31 +00:00
commit 7fc8e91a3e
4 changed files with 148 additions and 28 deletions

View file

@ -9,7 +9,7 @@ from pyerrors import Obs, Corr
from hashlib import sha256
def write_measurement(path, ensemble, measurement, uuid, code, parameter_file):
def write_measurement(path, ensemble, measurement, uuid, code, parameter_file=None):
"""
Write a measurement to the backlog.
If the file for the measurement already exists, update the measurement.
@ -49,17 +49,33 @@ def write_measurement(path, ensemble, measurement, uuid, code, parameter_file):
pars[subkey] = sfcf.get_specs(corr + "/" + subkey, parameters)
elif code == "openQCD":
parameters = openQCD.read_param(path, uuid, parameter_file)
pars = {}
subkeys = []
for i in range(len(parameters["rw_fcts"])):
par_list = []
for k in parameters["rw_fcts"][i].keys():
par_list.append(str(parameters["rw_fcts"][i][k]))
ms_type = list(measurement.keys())[0]
if ms_type == 'ms1':
parameters = openQCD.read_ms1_param(path, uuid, parameter_file)
pars = {}
subkeys = []
for i in range(len(parameters["rw_fcts"])):
par_list = []
for k in parameters["rw_fcts"][i].keys():
par_list.append(str(parameters["rw_fcts"][i][k]))
subkey = "/".join(par_list)
subkeys.append(subkey)
pars[subkey] = json.dumps(parameters["rw_fcts"][i])
elif ms_type in ['t0', 't1']:
if parameter_file is not None:
parameters = openQCD.read_ms3_param(path, uuid, parameter_file)
else:
parameters = {}
for rwp in ["integrator", "eps", "ntot", "dnms"]:
parameters[rwp] = "Unknown"
pars = {}
subkeys = []
par_list= []
for k in ["integrator", "eps", "ntot", "dnms"]:
par_list.append(str(parameters[k]))
subkey = "/".join(par_list)
subkeys.append(subkey)
pars[subkey] = json.dumps(parameters["rw_fcts"][i])
subkeys = [subkey]
pars[subkey] = json.dumps(parameters)
for subkey in subkeys:
parHash = sha256(str(pars[subkey]).encode('UTF-8')).hexdigest()
meas_path = file_in_archive + "::" + parHash