Single flat mirror plate using the conic.h reflection routines (test component)
Author: Peter Willendrup
Origin: DTU
Date: October 2026
Test component for the reflection routines in conic.h (ConicTracer), which are used by e.g. Conics_*, FlatEllipse_finite_mirror and NMO. It models a single flat mirror so that the results can be compared directly with Mirror.comp.
The mirror lies in the local y-z plane at x=0, extending from z=0 to z=length and from y=-yheight/2 to y=yheight/2. Only neutrons arriving from the x<0 side (vx>0) interact; everything else passes unaffected. Each neutron interacts at most once.
conic=0: the mirror is a conic.h FlatSurf and is handled by reflectNeutronFlat(), which reflects with probability R and otherwise transmits the neutron unaffected. Compare with Mirror(transmit=1). conic=1: the mirror is a conic.h ConicSurf cylinder of (very large) radius 1 km, handled by reflectNeutronConic(), which always reflects and weights by R. Compare with Mirror(transmit=0). A Gaussian figure (slope) error can be applied via sigma_m and sigma_s; the default is 0 here, whereas the Conics_* components default to the conic.h values of 1 and 250 urad.
Example: Mirror_conic(length=1, yheight=0.1, m=2)
Parameters in boldface are required; the others are optional.
|
Name |
Unit |
Description |
Default |
|
|
|||
|
length |
m |
Length of the mirror along z |
1 |
|
yheight |
m |
Height of the mirror along y |
0.1 |
|
R0 |
1 |
Low-angle reflectivity |
0.99 |
|
Qc |
Å\(^{-1}\) |
Critical scattering vector |
0.021 |
|
alpha |
Å |
Slope of reflectivity |
6.07 |
|
m |
1 |
m-value of material |
2 |
|
W |
Å\(^{-1}\) |
Width of supermirror cut-off |
0.003 |
|
conic |
1 |
0: use FlatSurf/reflectNeutronFlat(), 1: use ConicSurf/reflectNeutronConic() |
0 |
|
sigma_m |
rad |
RMS meridional slope (figure) error, conic=1 only; for grazing angles below 10*sigma_m the waviness model of Hansen et al., arXiv:1612.03763 is used |
0 |
|
sigma_s |
rad |
RMS sagittal slope (figure) error, conic=1 only |
0 |
|
|
|||
|
|
|||
|
|
|||
Component source code found in file Mirror_conic.comp.