EXPLORE: consolidate orbitlist on the python and c++ side

  • Currently the cs.orbit_list and cs._get_orbit_list() are an OrbitList object and _OrbitList object respectively. If you make a change in one of them you do not make a change to the other.
  • If you add functionality to the OrbitList class in the python module it will not transfer to _OrbitList

Example

>>> cs = ClusterSpace(....)
>>> ol = cs.orbit_list
>>> ol._remove_orbit(10)
>>> ol_cpp = cs._get_orbit_list()
>>> len(ol) == len(ol_cpp)
False

Possible fix

Remove everything in the OrbitList module except for the constructor parts and keep functionality via PyBind and change cs.orbit_list to return cs_get_orbit_list()

Subtasks

  • Explore if a consolidation is possible

cc @erhart

Edited by Paul Erhart
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information