Warn if CVDefinedVolume CVs return iterables #1030
Merged
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.
A recurring issue has been that users create CVs that return length-1 arrays/lists, and then use these CVs to define volumes/interfaces. Because Python/NumPy allow order comparisons on length-1 iterables as if they were scalars, sampling goes fine. However, some aspects of analysis expect the CVs to output scalars, and then users get cryptic error messages at unexpected points.
This PR emits a warning if the CV used by a
CVDefinedVolumereturns an iterable.See also #1029.
CVDefinedVolumeshould not, in general, be any kind of iterable (although things that aren't orderable will fail later anyway)