Skip to content

Reimplementing ExternalPotentials #2529

Open

Description

@trisyoungs

ExternalPotentials will need to be removed temporarily as they block the removal of keywords (they are the last places which use them). Reintroducing them should be thought about since they are either massively inefficient and probably shouldn't come back (RegionalPotential which used an Expression- yuck) or they are slightly awkward to bring back in their original form now that we have moved to node/graph.

The general question is "How do we retrieve an energy or force kernel from anywhere in the graph which knows about any external potentials?". The obvious answer seems to be "Define external potentials at the Graph level, and have a pass-through function a bit like dissolveGraph() to traverse upwards as necessary". Another extension to this idea could be to have specialised Graphs which themselves embody the potentials - i.e. they have the options to control them. For example a PointRestraintGraph would offer energy / force kernels which restricted the movements of atoms / molecules about some reference positions (e.g. as a Structure input to the graph) or which can be set on the ConfigurationAtoms in a specific Vector3 (faster and neater at the expense of memory).

Activity

  1. added this to the Release 2.0 milestone on Jun 22, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions