Skip to content

v2.11.0

Choose a tag to compare

@roytsmart roytsmart released this 23 Sep 20:12
9836969

Measured efficiencies interpolated over the angle of incidence (#241)

MeasuredRulings, MeasuredMirror and MeasuredFilter can now use an
efficiency measured, or computed, at several angles of incidence. Before
this release they raised on anything but a single angle.

  • Each class has a new field, axis_angle, naming the axis of
    efficiency_measured along which the angle of incidence varies.
    The directions of the measurement are then scalar angles of incidence
    from the surface normal, increasing along that axis, and the efficiency
    is interpolated linearly in both wavelength and angle of incidence,
    holding the nearest measurement outside the measured range.
  • Each angle may have its own wavelength samples, and the angles may also
    vary along other axes, such as one per channel, which broadcast into the
    result.
  • With axis_angle=None, the default, nothing changes: a measurement at a
    single angle is used at every angle of incidence. A measurement whose
    directions hold more than one value now says to set axis_angle.
  • shape leaves out axis_angle, as it already left out the wavelength
    axis, since efficiency() consumes both.

The three classes now share a single implementation of the interpolation.
MeasuredRulings also has its first documentation example.

The new field sits directly after efficiency_measured, so code that
passed substrate or medium positionally needs to pass it by keyword.