InfiniteParaxialSystem

class dnois.optics.InfiniteParaxialSystem(focal_ratio: Real | Tensor, principal1: Real | Tensor = None, principal2: Real | Tensor = None)

An implementation of ParaxialSystem whose focal lengths are both infinite. However, the ratio of the image focal length to the object one is finite.

See ParaxialSystem for descriptions of more parameters.

Parameters:

focal_ratio – Ratio of the image focal length to the object one.

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.

property fl2