Feature Checklist for v2#

This is a first-cut checklist for the v2 release. It could be re-organized.

  • [ ] community wish list

  • [ ] Solvers

  • [ ] Documentation

    • [ ] Choosing the default forward() solution.

    • [ ] documentation from hklpy.

    • [x] How to calculate UB from 2 reflections.

    • [ ] How to hold axes fixed during forward() transformation.

    • [ ] How to migrate from hklpy v1.

    • [x] How to refine lattice from 3 reflections.

    • [x] How to set UB directly.

  • [ ] Diffractometer-Operations API

    • [x] solver:

    • [x] geometry:

    • [x] samples:

    • [x] lattice:

    • [x] reflections:

    • [x] configuration:

      • [x] export

      • [x] restore

    • axes

      • pseudos

        • [x] dict

        • [x] list

        • [x] tuple

        • [x] PseudoPosition

      • reals

        • [x] dict

        • [x] list

        • [x] tuple

        • [x] RealPosition

    • [x] transformations

      • [x] forward (pseudos -> reals)

      • [x] inverse (reals -> pseudos)

    • user friendliness

      • [ ] features from hklpy

    • [x] position targets

      • [ ] numpy arrays

      • [x] scalars

  • [x] Operations-Solver interface transactions API

    • [x] axes : assignment : automatic

    • [x] axes : assignment : named

    • [x] axes : convert names between diffractometer and solver

    • [x] axes : expected pseudos

    • [x] axes : expected reals

    • [x] constraints

    • [x] geometry : get

    • [x] geometry : set

    • [x] orientation : calculate UB from 2 reflections

    • [x] orientation : export

    • [x] orientation : restore

    • [x] reflection : add

    • [x] sample : add

    • [x] sample : get

    • [x] sample : list all

    • [x] sample : remove

    • [x] solver : get

    • [x] solver : set

    • [x] transformation : forward (pseudos -> reals)

    • [x] transformation : inverse (reals -> pseudos)

  • [ ] Performance

    • [ ] minimum 2,000 inverse() operations/second

    • [ ] minimum 2,000 forward() operations/second

  • [ ] Backends - feature support

    • [ ] diffcalc_dls

    • [x] hkl_soleil (libhkl)

      • [x] axes : expected pseudos

      • [x] axes : expected reals

      • [x] extra parameters

      • [x] geometry : list all available geometries

      • [x] geometry : set

      • [x] list available solvers

      • [x] mode : list all available modes

      • [x] mode : set

      • [x] orientation : calculate UB from 2 reflections

      • [!] orientation : return B matrix (not provided by hkl_soleil)

      • [x] orientation : return U matrix

      • [x] orientation : return UB matrix

      • [!] orientation : set B matrix (not provided by hkl_soleil)

      • [x] orientation : set U matrix

      • [x] orientation : set UB matrix

      • [x] reflection : add

      • [x] reflection : remove all

      • [x] sample : add

      • [x] sample lattice : add

      • [x] sample lattice : refine from >2 reflections

      • [x] transformation : forward (pseudos -> reals)

      • [x] transformation : inverse (reals -> pseudos)

    • [ ] no_op

    • [ ] spec

    • [x] th_tth

      • axes : expected

        • [x] pseudos

        • [x] reals

      • geometry

        • [x] list all available geometries

        • [x] set

      • mode

        • [!] set (does not apply, only 1 mode)

        • [x] list available

      • [x] orientation : calculate (does not apply, empty [] as result)

      • [x] sample : add

      • [x] sample lattice

        • [x] add

        • [!] refine (does not apply)

      • [x] reflection

        • [x] add

        • [x] remove all

      • transformation

        • [x] forward (pseudos -> reals)

        • [x] inverse (reals -> pseudos)

      • [x] wavelength : set