The imaging engine checked against what the physics says it must do.
What is checked, and how.
Every figure on this page is computed by the same engine the simulator runs, on canonical masks, and compared with a closed-form expectation.
The data were generated on 2 Nov 2026 from the engine directly (backend/scripts/validation_report.py), not through the API, so they carry no plan limits. The model is scalar and partially coherent with a threshold resist; the checks test that implementation, not a manufacturing process. Where a check depends on a tool, the presets are DUV dry · 193 nm · NA 0.93 (σ 0.7); DUV immersion · 193 nm · NA 1.35 (σ 0.7, n 1.44); EUV low-NA · 13.5 nm · NA 0.33 (σ 0.7); EUV high-NA · 13.5 nm · NA 0.55 (σ 0.7).
| Engine commit | 3a17d27 |
|---|---|
| Generated | 2 Nov 2026 |
| Python / NumPy | 3.10.5 / 2.0.1 |
| Raster | 512² for every check except grid convergence |
| Verdict | 13 of 13 checks pass their stated tolerance |
Each check states the expectation it is held to and a numeric tolerance; the badge under each figure is the verdict for this data set. Two numeric limits are known and are not hidden by the tolerances: a result depends on how a mask edge falls on the raster (about 2 nm per pixel on the default field), and the three-ring source sampling can make a curve through pitch change in small steps where a diffraction order enters the pupil for one ring at a time.
A clear field images to one.
The threshold has an absolute meaning only if an open mask images to exactly 1.0, and the fast image path must agree with a full-grid evaluation.
| Preset | Clear field min | Clear field max | Image grid | Max difference vs full grid |
|---|---|---|---|---|
| DUV dry · 193 nm · NA 0.93 | 1.000000 | 1.000000 | 128² | 0.00e+0 |
| EUV low-NA · 13.5 nm · NA 0.33 | 1.000000 | 1.000000 | 128² | 0.00e+0 |
passExpected: clear field images to 1.000 (min and max within ±0.002); reduced-grid image equals the full-grid image within 0.01.
passExpected: clear field images to 1.000 (min and max within ±0.002); reduced-grid image equals the full-grid image within 0.01.
The image is formed on a reduced grid that over-samples the (1 + σ)·NA/λ passband and is returned to the raster by zero-padding in frequency. For a band-limited image that interpolation is exact, which the last column confirms to floating-point precision.
The printed CD converges with the raster.
The same 150 nm isolated line on the same 1100 nm field, imaged on three rasters. The threshold is the dose to size found on the 512 grid, so the three widths differ only by what the raster does to the edges.
| Grid | nm per pixel | Printed CD (nm) | Δ from design (nm) |
|---|---|---|---|
| 256² | 4.297 | 146.10 | -3.90 |
| 512² | 2.148 | 150.36 | 0.36 |
| 1024² | 1.074 | 148.21 | -1.79 |
passExpected: CD at the 512-grid dose to size changes by less than 2 % of the design CD between the 512 and 1024 grids.
DUV dry · 193 nm · NA 0.93, τ = 0.3103: the 512 and 1024 grids agree to 2.15 nm, about one 512-grid pixel. The 256 grid, at 4.3 nm per pixel, is the coarse end of what the simulator offers and shows how much of a CD reading is raster.
Dense lines resolve above the cutoff pitch.
With a source of radius σ, a grating's first order enters the pupil for some source point only when pitch ≥ λ / ((1 + σ)·NA). Below that pitch the image carries no modulation at all.
passExpected: modulation at the grating frequency (central five pitches) is < 0.05 at 0.7×cutoff, and every pitch ≥ 1.2×cutoff modulates more than every pitch ≤ 0.9×cutoff.
DUV dry · 193 nm · NA 0.93: contrast stays near zero below 122.1 nm (k₁ = 0.294 at the cutoff) and climbs steeply past it; a coherent source would need 207.5 nm. The residual contrast under the cutoff is the raster's own quantization of the line edges, not an image: measured at the grating frequency itself, the modulation at 0.7× the cutoff is 0.003.
passExpected: modulation at the grating frequency (central five pitches) is < 0.05 at 0.7×cutoff, and every pitch ≥ 1.2×cutoff modulates more than every pitch ≤ 0.9×cutoff.
DUV immersion · 193 nm · NA 1.35: contrast stays near zero below 84.1 nm (k₁ = 0.294 at the cutoff) and climbs steeply past it; a coherent source would need 143 nm. The residual contrast under the cutoff is the raster's own quantization of the line edges, not an image: measured at the grating frequency itself, the modulation at 0.7× the cutoff is 0.000.
passExpected: modulation at the grating frequency (central five pitches) is < 0.05 at 0.7×cutoff, and every pitch ≥ 1.2×cutoff modulates more than every pitch ≤ 0.9×cutoff.
EUV low-NA · 13.5 nm · NA 0.33: contrast stays near zero below 24.1 nm (k₁ = 0.294 at the cutoff) and climbs steeply past it; a coherent source would need 40.9 nm. The residual contrast under the cutoff is the raster's own quantization of the line edges, not an image: measured at the grating frequency itself, the modulation at 0.7× the cutoff is 0.003.
Bossung curves are symmetric about best focus.
For a binary mask in a scalar, aberration-free model, the image at +z equals the image at −z. The curves below are measured at dose to size and at ±10 % of it.
passExpected: CD(+z) equals CD(−z) at dose to size within one raster pixel.
DUV dry · 193 nm · NA 0.93, isolated 150 nm line: largest asymmetry between +z and −z 0.00 nm (one raster pixel is 2.148 nm). Where a point is drawn on the baseline, nothing printed at that defocus.
passExpected: CD(+z) equals CD(−z) at dose to size within one raster pixel.
DUV immersion · 193 nm · NA 1.35, isolated 100 nm line: largest asymmetry between +z and −z 0.00 nm (one raster pixel is 2.148 nm). Where a point is drawn on the baseline, nothing printed at that defocus.
passExpected: CD(+z) equals CD(−z) at dose to size within one raster pixel.
EUV low-NA · 13.5 nm · NA 0.33, isolated 24 nm line: largest asymmetry between +z and −z 0.00 nm (one raster pixel is 0.703 nm). Where a point is drawn on the baseline, nothing printed at that defocus.
passExpected: CD(+z) equals CD(−z) at dose to size within one raster pixel.
EUV high-NA · 13.5 nm · NA 0.55, isolated 24 nm line: largest asymmetry between +z and −z 0.00 nm (one raster pixel is 0.703 nm). Where a point is drawn on the baseline, nothing printed at that defocus.
NILS grows with feature size.
The normalized image log slope at dose to size rises with CD as the feature leaves the resolution limit: small k₁ features print on a shallow slope.
| CD (nm) | Dose to size τ | NILS | ILS (1/µm) | Peak intensity |
|---|---|---|---|---|
| 80 | 0.294 | 1.73 | 21.6 | 0.442 |
| 100 | 0.309 | 2.72 | 27.2 | 0.590 |
| 120 | 0.332 | 3.64 | 30.3 | 0.761 |
| 150 | 0.310 | 4.82 | 32.1 | 0.949 |
| 200 | 0.302 | 6.10 | 30.5 | 1.000 |
| 250 | 0.280 | 8.39 | 33.6 | 1.000 |
| 300 | 0.281 | 10.33 | 34.4 | 1.000 |
passExpected: the largest line (300 nm) is wide enough for its peak intensity to reach the clear-field value 1.00 within ±0.02.
| CD (nm) | Dose to size τ | NILS | ILS (1/µm) | Peak intensity |
|---|---|---|---|---|
| 14 | 0.260 | 1.34 | 96.0 | 0.353 |
| 16 | 0.265 | 1.85 | 115.8 | 0.413 |
| 20 | 0.302 | 2.85 | 142.5 | 0.595 |
| 24 | 0.303 | 3.97 | 165.3 | 0.765 |
| 32 | 0.313 | 5.08 | 158.8 | 1.000 |
| 40 | 0.271 | 7.09 | 177.3 | 1.000 |
| 50 | 0.291 | 8.71 | 174.1 | 1.000 |
passExpected: the largest line (50 nm) is wide enough for its peak intensity to reach the clear-field value 1.00 within ±0.02.
An extended source washes out coherent ringing.
A coherent image of an edge overshoots and rings; a σ = 0.7 source smooths the ringing while keeping most of the slope. An annular source sharpens the edge slightly and ripples more.
passExpected: with the conventional σ0.7 source the bright side stays within 1.000 ± 0.01 beyond the first fringe (x ≥ λ/((1+σ)NA)) to the end of the sampled row.
The coherent profile dips to 0.886 on the bright side; the clip at 1.0 hides the matching overshoot. With the conventional source the bright side settles to 1.000 within the first fringe.
These checks are regenerated whenever the engine changes; the figures in the model guide and the numbers quoted in the plain-language guide come from the same code. litopc remains an educational model: scalar, thin-mask, aberration-free, with a threshold resist. Passing these checks shows the implementation does what its equations say; it is not a calibration against a process or a sign-off model.