Skip to main content

Module crystal

Module crystal 

Source
Expand description

Crystalline targets: the cubic and hexagonal lattice models and the geometry that sets the ion direction in the crystal frame (steps 19a and 19b of the M2 crystal plan).

This module is the data model. The binary-collision engine (crate::ion::bca) uses it for the regions named in Bca::with_crystal (the crystal flight model, see crate::ion::bca::crystal); everywhere else it is unchanged and amorphous runs are bit-identical. It provides three pieces:

  • Lattice (lattice): Bravais (primitive) vectors, a basis of sites with their species, and lattice parameters stated with their temperature. Constructors exist for the cubic diamond (Si, Ge) and zincblende (GaAs, 3C-SiC) structures and the hexagonal wurtzite and polytype (stacking sequence, e.g. 4H, 6H) structures. Presets carry cited lattice parameters (LatticeConstant, HexagonalConstants): Si, Ge, GaAs, 3C-SiC, GaN, 4H-SiC and 6H-SiC. Miller-index plane normals and lattice directions are computed from the reciprocal lattice; hexagonal lattices also take four-index (Miller-Bravais) planes (hkil) and directions [uvtw], with the convention in the lattice module docs.
  • Orientation (orientation): the wafer cut (surface normal and an in-plane reference direction, both as indices), and the beam tilt, twist and wafer rotation. It gives the lab-to-crystal rotation and the beam direction in the crystal frame. The conventions are written out in the orientation module docs and in docs/crystal-orientation.md, with a figure.
  • Divergence (divergence): beam divergence sampled on the per-particle random stream (crate::rng::stream): a Gaussian (independent normal deviations in two orthogonal angles) or a uniform cone.

§Frames

  • Crystal frame: Cartesian axes along the cube edges of the conventional cell, so the direction [100] is (1, 0, 0). For a hexagonal lattice, z is the c axis [0001] and x is along [11-20] (a1 + a2). Lengths are metres (crate::units).
  • Lab frame: the frame of crate::geometry: x is depth (the inward surface normal), y and z are lateral. A beam direction with polar angle θ from +x and azimuth φ from +y towards +z is (cos θ, sin θ cos φ, sin θ sin φ), the same as crate::ion::bca::Beam::direction.

Thermal vibration of lattice atoms is the Debye model in debye (amplitude and displacement sampling). The crystal flight model of the engine uses it when a crystal is given a temperature (CrystalTarget::thermal).

search finds the lattice sites within an impact parameter of a path segment by walking rectangular cells (Lattice::orthogonal_cell: the cube, or the orthohexagonal cell), ordered along the path (geometry only; the crystal flight model of the engine calls it for every segment).

Re-exports§

pub use divergence::Divergence;
pub use lattice::HexagonalConstants;
pub use lattice::Lattice;
pub use lattice::LatticeConstant;
pub use lattice::Site;
pub use lattice::Structure;
pub use orientation::Orientation;
pub use search::Candidate;
pub use search::LatticeSearch;

Modules§

debye
Debye model of thermal vibration: RMS displacement and its sampling.
divergence
Beam divergence: the spread of incidence directions about the nominal beam direction, sampled on the per-particle random stream.
lattice
Crystal lattices: Bravais vectors, a basis of sites with species, and lattice parameters stated with their temperature.
orientation
Wafer cut and beam angles: the lab-to-crystal rotation from (tilt, twist, wafer rotation).
search
Lattice neighbour search: the sites near a straight path segment, found by walking unit cells (step 20a of the M2 crystal plan).

Enums§

CrystalError
Errors from building lattices, orientations and divergence models.