.. _overview: ======== Overview ======== |hklpy2| provides `ophyd `_ diffractometer devices. Each diffractometer is a positioner which may be used with `bluesky `_ plans. Any diffractometer may be provisioned with simulated axes; motors from an EPICS control system are not required to use |hklpy2|. Built from :class:`~hklpy2.diffract.DiffractometerBase()`, each diffractometer is an `ophyd.PseudoPositioner `_ that defines all the components of a diffractometer. The diffractometer :ref:`geometry ` defines the names and order for the real motor axes. Geometries are defined by backend :ref:`concepts.solvers`. Some solvers support different calculation engines (other than :math:`hkl`). It is common for a geometry to support several operating *modes*. .. seealso:: :ref:`glossary`, :ref:`v2_checklist`