From c77ac2598f363e27c7e2e6ffb9f6ee63212e406b Mon Sep 17 00:00:00 2001 From: Anthony Scemama Date: Fri, 4 Feb 2022 12:07:03 +0100 Subject: [PATCH] Dressing with HTC --- devel/dmc_dress/EZFIO.cfg | 6 ++++++ devel/dmc_dress/dress.py | 16 +++++++++++----- devel/dmc_dress/dressing_vector.irp.f | 2 +- 3 files changed, 18 insertions(+), 6 deletions(-) diff --git a/devel/dmc_dress/EZFIO.cfg b/devel/dmc_dress/EZFIO.cfg index 88bc4ff..a48c247 100644 --- a/devel/dmc_dress/EZFIO.cfg +++ b/devel/dmc_dress/EZFIO.cfg @@ -4,3 +4,9 @@ doc: Dressing matrix obtained from DMC size: (determinants.n_det) interface: ezfio, provider +[dmc_delta_htc] +type: double precision +doc: Dressing matrix obtained from H_TC +size: (determinants.n_det) +interface: ezfio, provider + diff --git a/devel/dmc_dress/dress.py b/devel/dmc_dress/dress.py index 53f585b..4a5464a 100755 --- a/devel/dmc_dress/dress.py +++ b/devel/dmc_dress/dress.py @@ -12,21 +12,26 @@ sys.path.insert(0,QP_PATH) from ezfio import ezfio def read_hamiltonian(inp): - text = subprocess.run(["qmcchem", "result", inp], capture_output=True).stdout +# text = subprocess.run(["qmcchem", "result", inp], capture_output=True).stdout + text = subprocess.run(["cat", "OUT"], capture_output=True).stdout inside = None h = [] s = [] norm = None for line in text.splitlines(): - line = str(line) - print (line) + line = line.decode("utf-8") + if line == "": + continue if "Psi_norm :" in line: - norm = float(line.split()[3]) + norm = float(line.split()[2]) if "]" in line: inside = None if inside == "H": data = line.split() - h.append(float(data[3])) +# h.append(float(data[2])) #ave + h.append(max(float(data[2]) - float(data[4]),0.)) #diff +# if float(data[2]) - float(data[4])>0.: h.append(float(data[2])) +# else: h.append(0.) elif "Ci_dress" in line: inside = "H" h = np.array(h)/norm @@ -38,3 +43,4 @@ h = read_hamiltonian(sys.argv[1]) ezfio.set_file(sys.argv[1]) ezfio.set_dmc_dress_dmc_delta_h(h) print(h) + diff --git a/devel/dmc_dress/dressing_vector.irp.f b/devel/dmc_dress/dressing_vector.irp.f index 71c59c8..cbe8e20 100644 --- a/devel/dmc_dress/dressing_vector.irp.f +++ b/devel/dmc_dress/dressing_vector.irp.f @@ -11,7 +11,7 @@ double precision, allocatable :: delta(:) allocate(delta(N_det)) - delta(1:N_det) = dmc_delta_h(1:N_det) + delta (1:N_det) = dmc_delta_h(1:N_det) + dmc_delta_htc(1:N_det) call dset_order(delta,psi_bilinear_matrix_order_reverse,N_det)