FiniteParaxialSystem

class dnois.optics.FiniteParaxialSystem(principal1: Real | Tensor = None, principal2: Real | Tensor = None, focal1: Real | Tensor = None, focal2: Real | Tensor = None, fl1: Real | Tensor = None, fl2: Real | Tensor = None)

An implementation of ParaxialSystem whose focal lengths are both finite.

In the constructor either the position of a focal point or the corresponding focal length must be specified but cannot be both.

See ParaxialSystem for descriptions of more parameters.

Parameters:
  • focal1 – The position of focal point in object space.

  • focal2 – The position of focal point in image space.

  • fl1 – Focal length in object space.

  • fl2 – Focal length in image space.

composite(other: ParaxialSystem, delta: Real | Tensor = None, d: Real | Tensor = None) ParaxialSystem

Composite two paraxial systems. To compute the focal lengths of resulted system, their distance must be determined, which can be specified by the distance between their focal points (delta) or their principal points (d). If both systems have definite principal points, these two parameters cannot be given.

Parameters:
  • other (ParaxialSystem) – Another paraxial system.

  • delta – Distance between the two focal points.

  • d – Distance between the two principal points.

Returns:

A new paraxial system.

Return type:

ParaxialSystem

feature(obj_d: Real | Tensor, img_d: bool = True, transverse: bool = True, longitudinal: bool = True, angular: bool = True) ConjugatePointFeature

Compute various features of the conjugate points at a given object distance.

Parameters:
  • obj_d – Object distance.

  • img_d (bool) – Whether to compute image distance. Default: True.

  • transverse (bool) – Whether to compute transverse magnification. Default: True.

  • longitudinal (bool) – Whether to compute longitudinal magnification. Default: True.

  • angular (bool) – Whether to compute angular magnification. Default: True.

Returns:

A ConjugatePointFeature object.

Return type:

ConjugatePointFeature

classmethod from_interface(roc: Real | Tensor, n1: Real | Tensor, n2: Real | Tensor, location: Real | Tensor = None) ParaxialSystem

Construct a paraxial system from the interface between two media given its radius of curvature. See Paraxial Optics for the rule about the sign of radius of curvature.

Parameters:
  • roc – Radius of curvature of the interface.

  • n1 – Refractive index of the medium before the interface.

  • n2 – Refractive index of the medium after the interface.

  • location – Location of the interface which serves as the principal points. Default: not specified.

Returns:

A paraxial system.

Return type:

ParaxialSystem

img_point(obj_point: Tensor) Tensor

Compute the conjugate point of a given point in object space. The point is specified by its 3D coordinate. Note that the optical axis is z-axis, while the directions of x-axis and y-axis do not matter.

Parameters:

obj_point (Tensor) – The point in object space. A tensor whose size in last dimension is either 3 where the first two indicates x- and y-coordinates, or 2 where the first indicates lateral coordinates.

Returns:

The conjugate point in image space. Its shape is broadcast from that of obj_point and some features of self.

Return type:

Tensor

imgd(obj_d: Real | Tensor) Real | Tensor

Call dnois.optics.imgd() with focal lengths of this system.

obj_point(img_point: Tensor) Tensor

Similar to img_point() but computes object point from image point.

objd(img_d: Real | Tensor) Real | Tensor

Call dnois.optics.objd() with focal lengths of this system.

fl2: Real | Tensor

Model of paraxial (or ideal, Gaussian) optical system. Its main properties include the positions of two principal points. Principal points can also be left unspecified. Their positions are defined as their coordinates on optical axis, where smaller coordinate implies object space.

See Paraxial Optics for more information.

Parameters:
  • principal1 – Position of object principal point. Default: not specified.

  • principal2 – Position of image principal point. Default: not specified.

property focal1: Real | Tensor | None

Position of the focal point in object space. None if it is not specified.

property focal2: Real | Tensor | None

Position of the focal point in image space. None if it is not specified.