Source code for qharv.reel.qmcpack_out
# Author: Yubo "Paul" Yang
# Email: yubo.paul.yang@gmail.com
# Routines to parse QMCPACK ASCII output.
from qharv.reel import ascii_out
[docs]def opt_vars(fout, begin_tag='<optVariables', end_tag='</optVariables'):
"""Parse optimizable variables
Args:
fout (str): optimization output
begin_tag (str, optional): default '<optVariables'
end_tag (str, optional): default '</optVariables'
Return:
list: a list of dictionary, each a key-value map of opt. var.s
"""
mm = ascii_out.read(fout)
idxl = ascii_out.all_lines_with_tag(mm, begin_tag)
entryl = []
for iopt, idx in enumerate(idxl):
mm.seek(idx)
text = ascii_out.block_text(mm, begin_tag, end_tag)
entry = ascii_out.name_val_table(text)
entryl.append(entry)
return entryl
[docs]def orb_rot_opt_vars(fout):
"""Build a database of orbital rotation parameters
Args:
fout (str): optimization output
Return:
pd.DataFrame: database of orbital rotation parameters
"""
import pandas as pd
entryl = opt_vars(fout)
data = []
for iopt, entry in enumerate(entryl):
for name, value in entry.items():
meta = orb_rot_meta(name)
meta.update({'value': value})
meta['iopt'] = iopt
data.append(meta)
df = pd.DataFrame(data)
return df