Package theia :: Package optics :: Module lens :: Class Lens
[hide private]
[frames] | no frames]

Class Lens

source code




Lens class.

This class is a base class for lenses. It implements the hit and hitActive
methods for all lenses.

*=== Attributes ===*
SetupCount (inherited): class attribute, counts all setup components.
    [integer]
OptCount (inherited): class attribute, counts optical components. [integer]
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]
Name (inherited): name of the component. [string]
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
 *****                               ********
*******                             *******

Nested Classes [hide private]

Inherited from component.SetupComponent: __metaclass__

Instance Methods [hide private]
 
isHit(self, beam)
Determine if a beam hits the Lens.
source code
 
hit(self, beam, order, threshold)
Compute the refracted and reflected beams after interaction.
source code
 
hitActive(self, beam, point, faceTag, order, threshold)
Compute the daughter beams after interaction on HR or AR at point.
source code

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

Inherited from component.SetupComponent: __str__, lines

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

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

Inherited from optic.Optic: Name, OptCount

Inherited from component.SetupComponent: SetupCount

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

isHit(self, beam)

source code 
Determine if a beam hits the Lens.

This is a generic function for all lenses, using their geometrical
attributes. This uses the line***Inter functions from the geometry
module to find characteristics of impact of beams on lenses.

beam: incoming beam. [GaussianBeam]

Returns a dictionary with keys:
    'isHit': whether the beam hits the optic. [boolean]
    'intersection point': point in space where it is first hit.
            [3D vector]
    'face': to indicate which face is first hit, can be 'HR', 'AR' or
        'side'. [string]
    'distance': geometrical distance from beam origin to impact. [float]

Overrides: component.SetupComponent.isHit

hit(self, beam, order, threshold)

source code 
Compute the refracted and reflected beams after interaction.

This function is valid for all types of lenses.
The beams returned are those selected after the order and threshold
criterion.

beam: incident beam. [GaussianBeam]
order: maximum strayness of daughter beams, whixh are not returned if
    their strayness is over this order. [integer]
threshold: idem for the power of the daughter beams. [float]

Returns a dictionary of beams with keys:
    't': refracted beam. [GaussianBeam]
    'r': reflected beam. [GaussianBeam]

Overrides: component.SetupComponent.hit

hitActive(self, beam, point, faceTag, order, threshold)

source code 
Compute the daughter beams after interaction on HR or AR at point.

AR andHr are the 'active' surfaces of the lens.
This function is valid for all types of lenses.

beam: incident beam. [GaussianBeam]
point: point in space of interaction. [3D vector]
faceTag: either 'AR' or 'HR' depending on the face. [string]
order: maximum strayness of daughter beams, whixh are not returned if
    their strayness is over this order. [integer]
threshold: idem for the power of the daughter beams. [float]

Returns a dictionary of beams with keys:
    't': refracted beam. [GaussianBeam]
    'r': reflected beam. [GaussianBeam]