Building structures

Guide to assembling stratified stacks in refloxide: homogeneous slabs, mixed materials, callable depth laws, named functional forms, phase transitions, diffusion profiles, and multi-layer stacking.

This section replaces the former single-page “Built-in slabs” guide.

Figure builders live in docs/guides/builtin_slabs/build_figures.py.

Regenerate figures:

uv run python docs/guides/builtin_slabs/build_figures.py

Depth panels: left = sharp, right = erf-broadened interfacial roughness (display convention; kernel Nevot–Croce is unchanged). Reflectivity panels use refloxide.tmm.uniaxial_reflectivity at 284.4 eV over \(q \in [0.008,\,0.275]\,\mathrm{\AA}^{-1}\) (near the full accessible window at this energy).

Shared preamble used on every child page:

from refloxide.model import MaterialSLD, FreeUniTensor, Mix, ReflectModel
from refloxide.profiles import (
    Diffusion,
    SecondOrderTransition,
    DepthProfile,
    Spline,
    Polynomial,
    CallableField,
    CallableDepthProfile,
)

vac = MaterialSLD("", 0, name="vacuum")(0, 0)
si = MaterialSLD("Si", 2.33, name="si")(0, 3.0)
mat = FreeUniTensor(energies=[284.4], name="film")
mat_a = FreeUniTensor(energies=[284.4], name="a")
mat_b = FreeUniTensor(energies=[284.4], name="b")
mat_c = FreeUniTensor(energies=[284.4], name="c")

Contents

Page What it covers
Homogeneous slabs Free vs material tensors; uni (4) vs bi (6) diagonals
Mixed slabs Binary MixRule comparison and linear \(N=1,2,3\) mixes
Functional forms Named/callable fields on \(\phi\), orientation, or free \(\delta\)/\(\beta\)
  Splines Knotted \(\phi(z)\) and free-optical Splines
  Polynomials Polynomial \(\phi(z)\) and free \(\delta_o\)/\(\delta_e\)
  Callable profiles User callables on any channel or full tensors
Phase transitions SecondOrderTransition on \(\gamma\), \(\phi\), \(\langle\cos^2\gamma\rangle\)
Diffusion Couple vs exponential diffusion kinds
Stacking examples Multi-layer stacks, incl. free-optical Poly/Spline/\(\cos\) stack