Concepts#

Functional blocks in hklpy2.#
Overview#
The hklpy2 diffractometer [1] is an ophyd PseudoPositioner, [2] providing both pseudo coordinates and real coordinates. Movement in one coordinate space updates the coordinates of the other space. For diffractometers, the orientation matrix ($UB$) enables transformation between the two spaces.
Note
A monochromatic [3] radiation source is expected. See Wavelength for more details.
Coordinates#
- pseudos:
Virtual coordinates (crystallographic h, k, l), computed from reals.
- reals:
Positioners (rotation motors) in physical coordinates.
An ophyd PseudoPositioner relies on the
forward()
and
inverse()
methods.
Transformations#
from |
to |
solution(s) |
transformation |
---|---|---|---|
reals |
pseudos |
1 |
|
pseudos |
reals |
1 or exception |
|
pseudos |
reals |
0, 1 or more |
Note
The diffractometer’s forward() method picks the default solution from
the list returned from core.forward()
. Initially, the first solution in
the list is chosen.
Solvers#
A Solver provides computational support for one or more diffractometer
geometries. Each geometry has a specific set of pseudos, reals, and other
terms which support the forward()
and inverse()
transformations. See
Solvers for more details.
Core Operations#
The DiffractometerBase
class provides the ophyd
PseudoPositioner. This class relies on Operations
to
provide most features (sample, lattice, reflections, …) and to connect with
the diffractometer’s chosen Solver. See
Core Operations for more details.
hklpy2.creator()
#
The creator()
function reduces the effort to create all but the most
complex diffractometer objects. See Diffractometer creator for more details.
DiffractometerBase()
#
All diffractometers are created as subclasses of
hklpy2.diffract.DiffractometerBase
. This base class defines a
diffractometer as an ophyd.PseudoPositioner
. See Diffractometer
for more details.
See also
Footnotes