Expand description
Wafer cut and beam angles: the lab-to-crystal rotation from (tilt, twist, wafer rotation).
§Conventions
The figure and a worked example are in docs/crystal-orientation.md.
- Lab frame (as in
crate::geometry):+xis depth, pointing into the target along the surface normal;y,zare lateral. - Wafer cut. The surface is the plane
(hkl)(Miller indices on the conventional cell: the cube, or the hexagonala1, a2, c; hexagonal cuts may also be given as(hkil)and[uvtw], seeOrientation::new_miller_bravais). Its normaln = g_hkl / |g_hkl|(super::Lattice::plane_normal) is the crystal direction of lab+x, i.e.(hkl)names the inward normal: at zero tilt the beam travels alongn. (To name the outward normal(hkl), pass(-h, -k, -l); it matters only for polar faces.) The reference direction[uvw]is a lattice direction in the surface plane (the zone lawh u + k v + l w = 0must hold); its unit vectorris the crystal direction of lab+yat zero wafer rotation. The third axis ist = n x r, the crystal direction of lab+z, so(n, r, t)is right-handed like(x, y, z). - Tilt
θis the polar angle of the beam from lab+x(the inward normal), in[0, π/2). - Twist
φis the azimuth of the beam about lab+x, measured in the surface plane from lab+ytowards lab+z. The beam direction in the lab is(cos θ, sin θ cos φ, sin θ sin φ), the same ascrate::ion::bca::Beam::directionwithpolar_rad = θandazimuth_rad = φ. - Wafer rotation
ωturns the wafer (and the crystal) about lab+xbyω, right-handed: the reference directionrmoves from lab+ytowards lab+z.
So the crystal-to-lab rotation is M = R_x(ω) B, where B has rows
n, r, t (it takes crystal components to wafer components) and
R_x(ω) is the right-handed rotation by ω about x. The lab-to-crystal
rotation is its transpose, and the beam in the crystal frame is
d = cos θ n + sin θ cos(φ - ω) r + sin θ sin(φ - ω) t.For the beam direction only the difference φ - ω matters; the two are
kept apart because the lab frame (where the beam and the target geometry
live) and the crystal frame are distinct.
Reference direction. The meaning of “twist” differs between tools,
because the azimuth needs a zero. Here the zero is always the reference
direction the caller names, so there is no hidden default. As a cited
example of the polar/azimuth decomposition of an incidence direction on a
cubic crystal: K. Nordlund, F. Djurabekova and G. Hobler, “Large fraction
of crystal directions leads to ion channeling”, Phys. Rev. B 94, 214109
(2016), doi:10.1103/PhysRevB.94.214109, Sec. II B, p. 214109-3, set up a
cell “with a [001] surface normal and tilting (θ) and twisting (ϕ) the
incoming ion direction”, and reach [011] at θ = 45°, ϕ = 0° and
[111] at θ = 54.73°, ϕ = 45°: their twist is zero towards an in-plane
<100> axis. With n = [001] and r = [010] our convention gives the
same two channels (the second as [-111], a member of <111>; the paper
does not fix the sense of ϕ, which we fix above). A wafer flat or notch
direction can be passed as the reference instead.
Structs§
- Orientation
- A wafer cut and the beam angles. See the module docs for the conventions.
Functions§
- lab_
direction - Unit beam direction in the lab frame for tilt
θand twistφ:(cos θ, sin θ cos φ, sin θ sin φ).
Type Aliases§
- Mat3
- A 3x3 rotation matrix, row-major:
v' = M vwithv'_i = sum_j M[i][j] v_j.