Added qp_extract_cipsi_data.py
continuous-integration/drone/push Build was killed Details

This commit is contained in:
Anthony Scemama 2023-03-21 17:31:53 +01:00
parent d3bb04ec8d
commit c19f486670
2 changed files with 55 additions and 0 deletions

View File

@ -0,0 +1,54 @@
#!/usr/bin/env python3
import re
import sys
# Read output file
with open(sys.argv[1], 'r') as file:
output = file.read()
def extract_data(output):
lines = output.split("\n")
data = []
n_det = None
e = None
pt2 = None
err_pt2 = None
rpt2 = None
err_rpt2 = None
e_ex = None
reading = False
for iline, line in enumerate(lines):
if not reading and line.startswith(" N_det "):
n_det = int(re.search(r"N_det\s+=\s+(\d+)", line).group(1))
reading = True
if reading:
if line.startswith(" E "):
e = float(re.search(r"E\s+=\s+(-?\d+\.\d+)", line).group(1))
elif line.startswith(" PT2 "):
pt2 = float(re.search(r"PT2\s+=\s+(-?\d+\.\d+E?.\d*)", line).group(1))
err_pt2 = float(re.search(r"\+/-\s+(-?\d+\.\d+E?.\d*)", line).group(1))
elif line.startswith(" rPT2 "):
rpt2 = float(re.search(r"rPT2\s+=\s+(-?\d+\.\d+E?.\d*)", line).group(1))
err_rpt2 = float(re.search(r"\+/-\s+(-?\d+\.\d+E?.\d*)", line).group(1))
elif "minimum PT2 Extrapolated energy" in line:
e_ex_line = lines[iline+2]
e_ex = float(e_ex_line.split()[1])
reading = False
data.append((n_det, e, pt2, err_pt2, rpt2, err_rpt2, e_ex))
n_det = e = pt2 = err_pt2 = rpt2 = err_rpt2 = e_ex = None
return data
data = extract_data(output)
for item in data:
print(" ".join(str(x) for x in item))

View File

@ -12,6 +12,7 @@ program save_natorb
! matrices of each state with the corresponding
! :option:`determinants state_average_weight`
END_DOC
PROVIDE nucl_coord
read_wf = .True.
touch read_wf
call save_natural_mos