Skip to content

Add energy contributions - #36

Open
hdsassnick wants to merge 8 commits into
cp2k:developfrom
hdsassnick:add_energy_contributions
Open

Add energy contributions#36
hdsassnick wants to merge 8 commits into
cp2k:developfrom
hdsassnick:add_energy_contributions

Conversation

@hdsassnick

Copy link
Copy Markdown

Hi Tiziano,

I thought it would be nice to parse in addition to the force consistent energy also the uncorrected total energy and other energy contributions, e.g. to check the impact of dispersion corrections etc. As for the levelparser I added the energies to the InnerSCF block.

I didn't add new tests but adjusted the existing ones to also check the new properties.

Please let me know what you think.

All the best,
Holger

@dev-zero dev-zero left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some minor remarks, but agreed, that's something useful to have, thanks a lot!

Comment thread cp2k_output_tools/blocks/energies.py Outdated
Comment thread cp2k_output_tools/blocks/energies.py Outdated
if not match:
if match:
energies["total force_eval"] = match["value"]
spans += match.spans(0)

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
spans += match.spans(0)
spans += [match.spans(0)]

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I reversed this change since it was resulting in the cli tests to fail. Checking the output I believe that my original implementation was actually already giving the correct output?

Comment thread cp2k_output_tools/blocks/energies.py
Comment thread cp2k_output_tools/blocks/scf.py Outdated

INNER_SCF_START_RE = re.compile(r"^\s+ SCF\ WAVEFUNCTION\ OPTIMIZATION", re.VERBOSE | re.MULTILINE)
INNER_SCF_END_RE = re.compile(
INNER_SCF_CONV_RE = re.compile(

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Please note that the blocks themselves can be used by other tools, changing the names will break them.
But if you think there is good reason to do so, please continue. The only thing I would then ask you is whether you can add a new entry in CHANGELOG.md for the next minor version (major.minor.patch) to make sure we don't forget to bump it on the next release for the backwards incompatible change.
The reason I called it SCF_END_RE is because it's notoriously difficult to reliably determine whether the CP2K (SCF) finished properly. The idea was to assume that the presence of that line indicates a finished SCF, everything else not.

@hdsassnick hdsassnick Dec 11, 2023

Copy link
Copy Markdown
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sorry, I didn't take that into consideration. I just thought that as the energies are parsed further below in the output file and SCF_END_RE would refer to the end of the inner SCF cycle it would make sense to rename it.

However, having backwards compatibility is probably more important in this case, thus I reversed this change.

Comment thread tests/test_optimization.py
hdsassnick and others added 6 commits December 11, 2023 06:02
Co-authored-by: Tiziano Müller <tm@dev-zero.ch>
Co-authored-by: Tiziano Müller <tm@dev-zero.ch>
Co-authored-by: Tiziano Müller <tm@dev-zero.ch>
Co-authored-by: Tiziano Müller <tm@dev-zero.ch>
@hdsassnick
hdsassnick requested a review from dev-zero December 11, 2023 05:33
@hdsassnick

Copy link
Copy Markdown
Author

Thank you for the swift review and feedback. Except maybe for the format of the spans I believe it is ready to be merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants