Package theia :: Package optics :: Module optic :: Class Optic
[hide private]
[frames] | no frames]

Class Optic

source code




Optic class.

This class is a base class for optics which may interact with Gaussian
beams and return transmitted and reflected beams (mirrors, lenses, etc.)


*=== Attributes ===*
SetupCount (inherited): class attribute, counts all setup components.
    [integer]
OptCount: 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: center of the 'chord' of the AR surface. [3D vector]
ARNorm: unitary normal to the 'chord' of the AR (always pointing
 towards the outside of the component). [3D vector]
N: refraction index of the material. [float]
HRK, ARK: curvature of the HR, AR surfaces. [float]
HRr, HRt, ARr, ARt: power reflectance and transmission coefficients of
    the HR and AR surfaces. [float]
KeepI: 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]
 
__init__(self, ARCenter, ARNorm, N, HRK, ARK, ARr, ARt, HRr, HRt, KeepI, HRCenter, HRNorm, Thickness, Diameter, Ref)
Optic base initializer.
source code
 
apexes(self)
Returns the positions of the apexes of HR and AR as a tuple.
source code
 
collision(self)
Determine whether the HR and AR surfaces intersect.
source code
 
geoCheck(self, word)
Makes geometrical checks on surfaces and warns when necessary.
source code
 
hitSide(self, beam)
Compute the daughter beams after interaction on Side at point.
source code
 
translate(self, X=0.0, Y=0.0, Z=0.0)
Move the optic to (current position + (X, Y, Z)).
source code

Inherited from component.SetupComponent: __str__, hit, isHit, lines

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

Class Variables [hide private]
  Name = 'Optic'
  OptCount = 0

Inherited from component.SetupComponent: SetupCount, __abstractmethods__

Properties [hide private]

Inherited from object: __class__

Method Details [hide private]

__init__(self, ARCenter, ARNorm, N, HRK, ARK, ARr, ARt, HRr, HRt, KeepI, HRCenter, HRNorm, Thickness, Diameter, Ref)
(Constructor)

source code 

Optic base initializer.

Parameters are the attributes of the object to construct.

Returns an Optic.

Overrides: object.__init__

collision(self)

source code 

Determine whether the HR and AR surfaces intersect.

Returns True if there is an intersection, False if not.

hitSide(self, beam)

source code 

Compute the daughter beams after interaction on Side at point.

Generic function: all sides stop beams.

beam: incident beam. [GaussianBeam]

Returns {'t': None, 'r': None}

translate(self, X=0.0, Y=0.0, Z=0.0)

source code 

Move the optic to (current position + (X, Y, Z)).

This version takes care of HRcenter and ARCenter and overwrites the SetupComponent version.

X, Y, Z: components of the translation vector.

No return value.

Overrides: component.SetupComponent.translate