Skip to content

EXP interface enhancements #423

Open

Description

@adrn

Once #413 is in, and EXP-code/EXP#136 is addressed, we should:

  • Use getAccel() to compute the acceleration instead of getFields (to save on computation)
  • Improve C++ exception handling (e.g., evaluating interpolator at a time outside of range)
  • Improve speed and benchmark against pyEXP orbit integration
  • Hessian
  • Pickling, saving, and loading an EXPPotential instance

cc @lgarrison

Activity

  1. lgarrison commented on Oct 15, 2025

    @lgarrison
    Collaborator

    As discussed today, we'll try to rebuild the EXP interface to use PyEXP objects. We will probably extract the EXP objects/pointers at the Python level and pass those to the Gala-EXP extension. The extension will thus depend on EXP but not PyEXP, although PyEXP will be a Python dependency.

    For the existing API of passing filename strings, we can make PyEXP objects under the hood and use those.

  2. adrn commented on Oct 20, 2025

    @adrn
    OwnerAuthor

    From @The9Cat:

    A quick follow up on getAccel(). I did put a getAccelArray() in the interface which takes arrays (x, y, z) and returns accel value as rows of a matrix. I think you want this to be a pure overload? So both named versions named getAccelArray? That's easy to do; just a binding change.
    FYI, my implementation of getAccelArray is a naive loop over getArray on the C++ side. This could be optimized.

  3. The9Cat commented on Oct 20, 2025

    @The9Cat

    I've overloaded getAccel() in the C++ inteface in EXP-code/EXP#170 so that both versions should bind and changed the pyEXP interface accordingly. This is probably the better choice? Not sure. Good for me either way.

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

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions