|
NAME fourc - 4-circle geometry modes
DESCRIPTION The fourc version of
spec operates a standard four-circle
diffractometer. These notes give a brief description of the
features of fourc. Further details are given in the
Four-Circle Reference section of the spec
manual.
FOUR-CIRCLE MODES The four-circle modes represent
the various constraints that can be made on the transformation
equations from reciprocal space to diffractometer angles. Use
the setmode macro to select a four-circle mode. The
different modes are numbered as follows:
- 0 - Omega Equals Zero
- 1 - Omega Fixed
- 2 - Zone (Chi and Phi Fixed)
- 3 - Phi Fixed
- 4 - Azimuthal
- 5 - Alpha Fixed
- 6 - Beta Fixed
FROZEN ANGLES Each of the four-circle modes has
associated an angle (or angles) that are fixed in that mode. As
a convenience, there is a freeze macro that turns on
a frozen mode. When in frozen mode, all moves that
specify reciprocal space coordinates will use the frozen value(s)
of the current mode's fixed angle(s). Thus you can move motors
around for lining up, etc, but have the the fixed parameter
automatically restored to the frozen value when doing reciprocal
space scans, br moves, etc. The
unfreeze macro turns frozen mode off.
The frozen values are stored in variables (actually macros)
named F_OMEGA (omega-fixed mode),
F_CHI_Z and F_PHI_Z (zone mode),
F_PHI (phi-fixed mode), F_AZIMUTH
(azimuthal mode), F_ALPHA (alpha-fixed mode), and
F_BETA (beta-fixed mode). You can, of course,
assign values to these variables by hand.
FOUR-CIRCLE SECTORS The sector transformations are
symmetry operations on the diffractometer angles that yield eight
different positions of the diffractometer circles that correspond
to the same H, K and L
position. A ninth sector minimizes abs(chi - 90) and
abs(phi). The sectors H K L macro
prints the diffractometer angles that would be used for each of
the possible sectors for a particular reciprocal space position.
Use the setsector macro to select a sector.
CUT POINTS Cut points affect the direction the
diffractometer circles turn to get from one position to the next.
For example, if a cut point is at zero, the corresponding circle
will only move through angles of 0 to 360 degrees. Thus, to get
from 355 (=-5) to 5 degrees, the circle will turn 350
degrees. If a cut point is at -180, the circle will move through
angles from -180 to 180. Thus the same motion from -5 to 5 will
require only 10 degrees of movement. Use the cuts
macro to select cut points for theta, chi and
phi (and the azimuth). The two-theta motor
always uses -180 as a cut point. (Only the sign of the
azimuth cut point is used, and it determines the sign of
the azimuth angle.)
LATTICE PARAMETERS The setlat and
setrlat macros let you set the lattice parameters in
direct space or reciprocal space, respectively.
ORIENTATION MATRIX With known lattice parameters,
you need to find two (nonparallel) reflections in order to
determine the orientation matrix. The macros or0 H K
L and or1 H K L are used to
associate the current diffractometer angles with the primary and
secondary reflections. Macros called setor0 and
setor1 also let you set the orientation reflections,
but don't require you to move the diffractometer to the correct
position. Instead, you are prompted for each of the angles and
values for H, K and L.
The or_swap macro is available to exchange the
primary and secondary reflections.
You can also fit an orientation matrix if you have three or
more known reflections (not all in the same plane), but unknown
lattice parameters. Use reflex_beg to initialize a
reflections data file. Use reflex H K L to
add the current reflection to the file. Use
reflex_end to complete the file. You then run the
reflections file as a spec command file in order
to fit the reflections to obtain a new orientation matrix. To
calculate lattice parameters from the new orientation matrix,
type calcL. You can then display the lattice
parameters with the pa macro. Naturally, you can
edit the reflections data file to delete or modify any of the
reflection data there.
GLOBALS AND MACROS
Q[] - a built-in array which holds the
following four-circle parameters:
def H 'Q[0]' - Reciprocal space coordinate.
def K 'Q[1]' - Reciprocal space coordinate.
def L 'Q[2]' - Reciprocal space coordinate.
def LAMBDA 'Q[3]' - Wavelength of X rays.
def ALPHA 'Q[4]' - Incident angle, useful
for surface diffraction.
def BETA 'Q[5]' - Exit angle, useful for
surface diffraction.
def OMEGA 'Q[6]' - The theta -
two-theta / 2 parameter.
def AZIMUTH 'Q[7]' - Rotation angle of a
reference vector about the scattering vector, useful for surface
diffraction.
def F_ALPHA 'Q[8]' - Frozen value of
ALPHA for alpha-fixed mode.
def F_BETA 'Q[9]' - Frozen value of
BETA for beta-fixed mode.
def F_OMEGA 'Q[10]' - Frozen value of
OMEGA for omega-fixed mode.
def F_AZIMUTH 'Q[11]' - Frozen value of
AZIMUTH for azimuth-fixed mode.
def F_PHI 'Q[12]' - Frozen value of
PHI for phi-fixed mode.
def F_CHI_Z 'Q[13]' - Frozen value of
CHI for zone mode.
def F_PHI_Z 'Q[14]' - Frozen value of
PHI for zone mode.
def CUT_TH 'Q[15]' - The theta cut
point.
def CUT_CHI 'Q[16]' - The chi cut
point.
def CUT_PHI 'Q[17]' - The phi cut
point.
def CUT_AZI 'Q[18]' - The azimuth
cut point flag.
G[] - a built-in array which holds the
following four-circle parameters:
def g_mode 'G[0]' - Holds current four-
circle mode.
def g_sect 'G[1]' - Holds current four-
circle sector.
def g_frz 'G[2]' - Nonzero when frozen mode
is on.
def g_haz 'G[3]' H of
azimuthal reference vector.
def g_kaz 'G[4]' K of
azimuthal reference vector.
def g_laz 'G[5]' L of
azimuthal reference vector.
def g_zh0 'G[6]' H of first
zone-mode vector.
def g_zk0 'G[7]' K of first
zone-mode vector.
def g_zl0 'G[8]' L of first
zone-mode vector.
def g_zh1 'G[9]' H of second
zone-mode vector.
def g_zk1 'G[10]' K of
second zone-mode vector.
def g_zl1 'G[11]' L of
second zone-mode vector.
calcHKL - calculates
H,
K, L, ALPHA,
BETA, and AZIMUTH from the four-circle
angles in the motor array A[].
calcA - calculates
A[],
OMEGA, ALPHA, BETA and
AZIMUTH from H, K and
L.
calcZ - calculates the phi and
chi to put the two vectors specified by the six elements
of the built-in
Z[] array in the scattering plane.
cz - "calculate zone", prints the
chi and phi necessary to put the two vectors
specified as arguments in the scattering plane.
mz - "move zone", moves to the
chi and phi values that put the two vectors
specified as arguments into the scattering plane. Also sets zone
mode and turns on frozen mode using the calculated chi and
phi values.
sz - "set zone", calculates the
chi and phi values that put the two vectors
specified as arguments into the scattering plane. Also sets zone
mode and turns on frozen mode using the calculated chi and
phi values.
SEE ALSO geo_fourc.c, C source file for the
four-circle geometry calculations.
fourc.src, macro source file for the four-circle
macros.
hkl.mac, macro source file for reciprocal space
macros.
ub.mac, macro source file for orientation matrix
macros.
The Four-Circle Reference in the
spec manual.
... Meeting the software needs of scientists since 1985 ...
Last Formatted Jun 20, 2009
Last Updated 02/28/01
Send comments, queries, suggestions to
info@certif.com
© 1995-2003 Certified Scientific Software. All rights reserved
|