Skip to content

Commit 12aac5e

Browse files
committed
Update the extractor the workcchain definition
1 parent 7f8050f commit 12aac5e

File tree

2 files changed

+7
-6
lines changed

2 files changed

+7
-6
lines changed

src/aiida_common_workflows/workflows/relax/abacus/extractors.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -12,13 +12,12 @@ def get_ts_energy(common_relax_workchain: AbacusCommonRelaxWorkChain) -> float:
1212
"""Return the T * S value of a concluded ``QuantumEspressoCommonRelaxWorkChain``.
1313
1414
Here, T is the fictitious temperature due to the use of smearing and S is the entropy. This "smearing contribution"
15-
to the free energy in Quantum ESPRESSO is expressed as -T * S:
15+
to the free energy in Abacus is expressed as -T * S:
1616
17-
smearing contrib. (-TS) = -0.00153866 Ry
17+
E_KS(sigma->0)
1818
19-
And the ``PwParser`` also maintains this sign, i.e. it only converts the units to eV.
20-
21-
:param common_relax_workchain: ``QuantumEspressoCommonRelaxWorkChain`` for which to extract the smearing energy.
19+
This energy is printed at every electronic cycle.
20+
:param common_relax_workchain: ``AbacusCommonRelaxWorkChain`` for which to extract the smearing energy.
2221
:returns: The T*S value in eV.
2322
"""
2423
if not isinstance(common_relax_workchain, WorkChainNode):
@@ -27,4 +26,4 @@ def get_ts_energy(common_relax_workchain: AbacusCommonRelaxWorkChain) -> float:
2726
return ValueError('The input workchain is not a `AbacusCommonRelaxWorkChain`')
2827

2928
abacus_relax_wc = common_relax_workchain.base.links.get_outgoing(link_type=LinkType.CALL_WORK).one().node
30-
return -abacus_relax_wc.outputs.misc['energy_smearing']
29+
return abacus_relax_wc.outputs.misc['ts_contribution']

src/aiida_common_workflows/workflows/relax/abacus/workchain.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
def extract_from_misc(misc):
1515
"""Return the total energy and optionally the total magnetization from the given parameters node."""
1616

17+
# Default to use the free energy (E_KohnSham - TS) since it is consistent with the
18+
# forces and is also used by the ACWF verification project
1719
total_energy = misc.base.attributes.get('total_energy')
1820
total_magnetization = misc.base.attributes.get('total_magnetization', None)
1921

0 commit comments

Comments
 (0)