Skip to content

Latest commit

 

History

History
92 lines (67 loc) · 2.78 KB

concepts.rst

File metadata and controls

92 lines (67 loc) · 2.78 KB

Concepts

.. toctree::
   :glob:
   :hidden:

   concepts/*

hklpy2 block diagram

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 :ref:`concepts.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 :meth:`~hklpy2.diffract.DiffractometerBase.forward()` and :meth:`~hklpy2.diffract.DiffractometerBase.inverse()` methods.

Transformations

from to solution(s) transformation
reals pseudos 1 :meth:`~hklpy2.diffract.DiffractometerBase.inverse()`
pseudos reals 0, 1, or more :meth:`~hklpy2.diffract.DiffractometerBase.forward()`

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 :ref:`concepts.solvers` for more details.

Core Operations

The :class:`~hklpy2.diffract.DiffractometerBase` class provides the ophyd PseudoPositioner. This class relies on :class:`~hklpy2.ops.Operations` to provide most features (sample, lattice, reflections, ...) and to connect with the diffractometer's chosen |solver|. See :ref:`concepts.ops` for more details.

hklpy2.creator()

The creator() function reduces the effort to create all but the most complex diffractometer objects. See :ref:`concepts.creator` for more details.

DiffractometerBase()

All diffractometers are created as subclasses of :class:`!hklpy2.diffract.DiffractometerBase`. This base class defines a diffractometer as an ophyd.PseudoPositioner. See :ref:`concepts.diffract` for more details.


.. seealso:: :ref:`glossary`

Footnotes

[1]https://en.wikipedia.org/wiki/Diffractometer
[2]https://blueskyproject.io/ophyd/user/how-to/pseudopositioner.html
[3]monochromatic: The variation of wavelengths in the source is negligible for scientific interpretation.