integrators: register NpT barostat as a readable parameter (bug-sweep #8) - #5351
Draft
RudolfWeeber wants to merge 1 commit into
Draft
integrators: register NpT barostat as a readable parameter (bug-sweep #8)#5351RudolfWeeber wants to merge 1 commit into
RudolfWeeber wants to merge 1 commit into
Conversation
) VelocityVerletIsoNPT::do_construct reads five construct-time parameters (ext_pressure, piston, cubic_box, direction, barostat) but add_parameters() registered only the first four. Because ObjectHandle::serialize() emits only registered parameters and there is no get_internal_state override, the barostat string (m_barostat) was never serialized. On checkpoint restore (or any script-interface deserialize), do_construct fell back to the default 'Andersen', so an MTK-configured NpT simulation silently resumed with the Andersen barostat (a distinct propagation scheme), and the active barostat could not be read back from Python. Fix: register 'barostat' as a read-only AutoParameter returning m_barostat, mirroring the existing ext_pressure/piston/direction/cubic_box entries. This makes the value round-trip through serialize/deserialize (no longer defaulting to Andersen) and readable via get_params(). Read-only is correct because the barostat is only meaningful at construction, where activate() consumes it to select the integ_switch. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
VelocityVerletIsoNPT::do_construct reads five construct-time parameters
(ext_pressure, piston, cubic_box, direction, barostat) but add_parameters()
registered only the first four. Because ObjectHandle::serialize() emits only
registered parameters and there is no get_internal_state override, the
barostat string (m_barostat) was never serialized. On checkpoint restore (or
any script-interface deserialize), do_construct fell back to the default
'Andersen', so an MTK-configured NpT simulation silently resumed with the
Andersen barostat (a distinct propagation scheme), and the active barostat
could not be read back from Python.
Fix: register 'barostat' as a read-only AutoParameter returning m_barostat,
mirroring the existing ext_pressure/piston/direction/cubic_box entries. This
makes the value round-trip through serialize/deserialize (no longer defaulting
to Andersen) and readable via get_params(). Read-only is correct because the
barostat is only meaningful at construction, where activate() consumes it to
select the integ_switch.
Co-Authored-By: Claude Opus 4.8 noreply@anthropic.com
🤖 Generated with Claude Code