Files
dev/script/__Lib/diffcalc-2.1/doc/source/developer/intro.rst
2019-03-20 13:52:00 +01:00

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-api section 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.