2.2 KiB
Executable File
Introduction
Diffcalc is a diffraction condition calculator used for controlling
diffractometers within reciprocal lattice space. It performs the same
task as the fourc, sixc, twoc,
kappa, psic and surf macros from
SPEC.
Diffcalc's standard calculation engine is an implementation of [You1999] . The first versions of Diffcalc were based on [Vlieg1993] and [Vlieg1998] and a 'Vlieg' engine is still available. The 'You' engine is more generic and the plan is to remove the old 'Vlieg' engine once beamlines have been migrated. New users should use the 'You' engine.
The foundations for this type of calculation were laid by by Busing & Levi in their classic paper [Busing1967]. Diffcalc's orientation algorithm is taken from this paper. Busing & Levi also provided the original definition of the coordinate frames and of the U and B matrices used to describe a crystal's orientation and to convert between Cartesian and reciprical lattice space.
Geometry plugins are used to adapt the six circle model used internally by Diffcalc to apply to other diffractometers. These contain a dictionary of the 'missing' angles which Diffcalc uses to constrain these angles internally, and a methods to map from external angles to Diffcalc angles and visa versa.
Options to use Diffcalc:
- The User manual next to this developer manual or README file on github.
- The
quickstart-apisection describes how to run up only the core in Python. This provides a base option for system integration.
Diffcalc will work with Python 2.7 or higher with numpy, or with Jython 2.7 of higher with Jama.