(v2_checklist)=
This is a first-cut checklist for the v2 release. It could be re-organized.
- community wish list
- user-requested changes
- move libhkl to be a replaceable back-end computation library
- easy to save/restore configuration
- easy to use different engines
- documentation
- example(s)
- tests
- Axes
- Make it easy to provide additional axes
- rotation about arbitrary vector
- Solvers with different reciprocal-space axes
- [~] extra parameters, as required by solver
- user can choose different names for any of the diffractometer axes
- Make it easy to provide additional axes
- [~] Default diffractometer geometries
- Bragg Peak optimization tools
- Defining orientation matrix or matrices (set UB)
- Simulating diffraction and diffractometer modes
- Built in reciprocal space plans (or scans)
- Choice of calculation engines other than the hkl C package
- Solver API
- a structure (dict or struct) describing a geometry (motors, reference positions, and constraints)
- observed mapping between real and reciprocal space to give you the "U" of the UB matrix
- the crystallography to give you the "B"
- Solver: custom project
- Solver: python-wrapped components from
libhkl
- Solver: SPEC
- easy to switch between solvers at run time so that new things can be validated
- analyzers and polarizers
- Reflections
- Other
- Solvers
- Documentation
- Choosing the default
forward()
solution. - documentation from hklpy.
- How to calculate UB from 2 reflections.
- How to hold axes fixed during
forward()
transformation. - How to migrate from hklpy v1.
- How to refine lattice from 3 reflections.
- Save & restore diffractometer configuration (includes orientation).
- How to set UB directly.
- Choosing the default
- Diffractometer-Core API
- solver:
- geometry:
- samples:
- lattice:
- reflections:
- configuration:
- export
- restore
- axes
- pseudos
- dict
- list
- tuple
- PseudoPosition
- reals
- dict
- list
- tuple
- RealPosition
- pseudos
- transformations
- forward (pseudos -> reals)
- inverse (reals -> pseudos)
- user friendliness
- features from hklpy
- position targets
- dicts
- lists
- numpy arrays
- scalars
- tuples
- Core-Solver interface transactions API
- axes : assignment : automatic
- axes : assignment : named
- axes : convert names between diffractometer and solver
- axes : expected pseudos
- axes : expected reals
- constraints
- geometry : get
- geometry : set
- orientation : calculate UB from 2 reflections
- orientation : export
- orientation : restore
- reflection : add
- sample : add
- sample : get
- sample : list all
- sample : remove
- solver : get
- solver : set
- transformation : forward (pseudos -> reals)
- transformation : inverse (reals -> pseudos)
- Performance
- minimum 2,000
inverse()
operations/second - minimum 2,000
forward()
operations/second
- minimum 2,000
- Backends - feature support
- ad hoc geometries
- diffcalc_dls
- hkl_soleil (libhkl)
- axes : expected pseudos
- axes : expected reals
- extra parameters
- geometry : list all available geometries
- geometry : set
- list available solvers
- mode : list all available modes
- mode : set
- orientation : calculate UB from 2 reflections
- [!] orientation : return B matrix (not provided by hkl_soleil)
- orientation : return U matrix
- orientation : return UB matrix
- [!] orientation : set B matrix (not provided by hkl_soleil)
- orientation : set U matrix
- orientation : set UB matrix
- reflection : add
- reflection : remove all
- sample : add
- sample lattice : add
- sample lattice : refine from >2 reflections
- transformation : forward (pseudos -> reals)
- transformation : inverse (reals -> pseudos)
- no_op
- SPEC server
- th_tth
- axes : expected
- pseudos
- reals
- geometry
- list all available geometries
- set
- mode
- [!] set (does not apply, only 1 mode)
- list available
- orientation : calculate (does not apply, empty [] as result)
- sample : add
- sample lattice
- add
- [!] refine (does not apply)
- reflection
- add
- remove all
- transformation
- forward (pseudos -> reals)
- inverse (reals -> pseudos)
- wavelength : set
- axes : expected
- xrayutilities