diff --git a/parser/parser-quantum-espresso/QuantumEspressoXC.py b/parser/parser-quantum-espresso/QuantumEspressoXC.py index 2e225c42025c3b907d1ff99c6343c72dfaa91336..de4ec2ac29412cc867897a3e00ba66d5386d3efe 100644 --- a/parser/parser-quantum-espresso/QuantumEspressoXC.py +++ b/parser/parser-quantum-espresso/QuantumEspressoXC.py @@ -84,6 +84,8 @@ def translate_qe_xc_num(xc_functional_num, exact_exchange_fraction=None): xc_data_subtract, this_term, exact_exchange_fraction) apply_terms_subtract(xc_data, xc_data_subtract) apply_terms_filter(xc_data) + xc_functional = xc_functional_str(xc_data) + xc_section_method['XC_functional'] = xc_functional result = [] for k in sorted(xc_data.keys()): v = xc_data[k] @@ -131,6 +133,18 @@ def apply_terms_filter(xc_data): v.pop('exx_compute_weight', None) +def xc_functional_str(xc_data): + result = '' + for k in sorted(xc_data.keys()): + v = xc_data[k] + if len(result) > 0 and v.get('XC_functional_weight', 1.0) > 0: + result += '+' + if v.get('XC_functional_weight', None) is not None: + result += '%.3f*' % (v['XC_functional_weight']) + result += v['XC_functional_name'] + return result + + # origin: espresso-5.4.0/Modules/funct.f90 EXCHANGE = [ None,