Package theia :: Package optics :: Module thicklens :: Class ThickLens
[hide private]
[frames] | no frames]

Class ThickLens

source code




ThickLens class.

This class represents thick lenses, specified by curvatures and thickness
instead of focal length.

*=== Attributes ===*
SetupCount (inherited): class attribute, counts all setup components.
    [integer]
OptCount (inherited): class attribute, counts optical components. [integer]
Name: class attribute. [string]
HRCenter (inherited): center of the 'chord' of the HR surface. [3D vector]
HRNorm (inherited): unitary normal to the 'chord' of the HR (always pointing
    towards the outside of the component). [3D vector]
Thick (inherited): thickness of the optic, counted in opposite direction to
    HRNorm. [float]
Dia (inherited): diameter of the component. [float]
Ref (inherited): reference string (for keeping track with the lab). [string]
ARCenter (inherited): center of the 'chord' of the AR surface. [3D vector]
ARNorm (inherited): unitary normal to the 'chord' of the AR (always pointing
    towards the outside of the component). [3D vector]
N (inherited): refraction index of the material. [float]
HRK, ARK (inherited): curvature of the HR, AR surfaces. [float]
HRr, HRt, ARr, ARt (inherited): power reflectance and transmission
    coefficients of the HR and AR surfaces. [float]
KeepI (inherited): whether of not to keep data of rays for interference
    calculations on the HR. [boolean]

**Note**: the curvature of any surface is positive for a concave surface
(coating inside the sphere).
Thus kurv*HRNorm/|kurv| always points to the center
of the sphere of the surface, as is the convention for the lineSurfInter of
geometry module. Same for AR.

*******     HRK > 0 and ARK > 0     *******           HRK > 0 and ARK < 0
 *****                               ********         and |ARK| > |HRK|
 H***A                               H*********A
 *****                               ********
*******                             *******

**Note**: in the case of thicklenses, the thickness provided to and by the
initializer is the thickness *on the optical axis*, and not the thickness
on the side of the component (like mirrors).

**Note**: in the case of thicklenses, the center provided to the initializer
is the *apex* of the principal face, and not the chord of the HR surface.

Nested Classes [hide private]

Inherited from component.SetupComponent: __metaclass__

Instance Methods [hide private]
 
__init__(self, K1=0.01, K2=0.01, X=0.0, Y=0.0, Z=0.0, Theta=1.57079632679, Phi=0.0, Thickness=0.02, N=1.4585, KeepI=False, Diameter=0.05, R=0.1, T=0.9, Ref=None)
ThickLens initializer.
source code
 
lines(self)
Returns the list of lines necessary to print the object.
source code

Inherited from lens.Lens: hit, hitActive, isHit

Inherited from optic.Optic: apexes, collision, geoCheck, hitSide, translate

Inherited from component.SetupComponent: __str__

Inherited from object: __delattr__, __format__, __getattribute__, __hash__, __new__, __reduce__, __reduce_ex__, __repr__, __setattr__, __sizeof__, __subclasshook__

Class Variables [hide private]
  Name = 'ThickLens'
  __abstractmethods__ = frozenset([])

Inherited from optic.Optic: OptCount

Inherited from component.SetupComponent: SetupCount

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, K1=0.01, K2=0.01, X=0.0, Y=0.0, Z=0.0, Theta=1.57079632679, Phi=0.0, Thickness=0.02, N=1.4585, KeepI=False, Diameter=0.05, R=0.1, T=0.9, Ref=None)
(Constructor)

source code 

ThickLens initializer.

Parameters are the attributes.

Returns a ThickLens.

Overrides: object.__init__

lines(self)

source code 

Returns the list of lines necessary to print the object.

Overrides: component.SetupComponent.lines