From ec9189f3258d4184ab9c30223d3d422f33cc4933 Mon Sep 17 00:00:00 2001 From: David Waroquiers Date: Thu, 22 Feb 2024 16:07:54 +0100 Subject: [PATCH] Fixed parsing of irrep_data for TM>=7.7. --- turbomoleio/output/parser.py | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/turbomoleio/output/parser.py b/turbomoleio/output/parser.py index 7da55ab..7ca1717 100644 --- a/turbomoleio/output/parser.py +++ b/turbomoleio/output/parser.py @@ -1544,11 +1544,39 @@ def pre_escf_run(self): if match is not None: d["max_treated_vectors"] = convert_int(match.group().split()[-1]) + # In TM versions < 7.7, IRREP's block is like: + # IRREP tensor space dimension number of roots + # + # a1 24 12 + # a2 9 9 + # b1 19 12 + # b2 13 12 + # + # maximum number of Davidson iterations set to 35 + # + # + # machine precision: 2.22D-16 + # + # While in TM versions >= 7.7, the "maximum number of Davidson" disappeared: + # IRREP tensor space dimension number of roots + # + # a1 24 12 + # a2 9 9 + # b1 19 12 + # b2 13 12 + # + # machine precision: 2.22D-16 r = ( r"IRREP\s+tensor\s+space\s+dimension\s+number\s+of\s+roots(.+)" r"maximum number of Davidson" ) match = re.search(r, match_str, re.DOTALL) + if match is None: + r = ( + r"IRREP\s+tensor\s+space\s+dimension\s+number\s+of\s+roots(.+)" + r"machine precision:" + ) + match = re.search(r, match_str, re.DOTALL) if match is not None: irrep_data = {} for line in match.group(1).splitlines():