Package theia :: Package optics :: Module mirror :: Class Mirror
[hide private]
[frames] | no frames]

Class Mirror

source code




Mirror class.

This class represents semi reflective mirrors composed of two faces (HR, AR)
and with a wedge angle. These are the objects with which the beams will
interqct during the ray tracing. Please see the documentation for details
on the geometric construction of these mirrors.

*=== 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]
Wedge: wedge angle of the mirror, please refer to the documentation for
    detaild on the geometry of mirrors and their implementation here.
    [float]
Alpha: rotation alngle used in the geometrical construction of the mirror
    (see doc, it is the amgle between the projection of Ex on the AR plane
    and the vector from ARCenter to the point where the cylinder and the AR
    face meet). [float]

**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, Wedge=0.0, Alpha=0.0, X=0.0, Y=0.0, Z=0.0, Theta=1.57079632679, Phi=0.0, Diameter=0.1, HRr=0.99, HRt=0.01, ARr=0.1, ARt=0.9, HRK=0.01, ARK=0, Thickness=0.02, N=1.4585, KeepI=False, Ref=None)
Mirror initializer.
source code
 
lines(self)
Returns the list of lines necessary to print the object.
source code
 
isHit(self, beam)
Determine if a beam hits the Optic.
source code
 
hit(self, beam, order, threshold)
Compute the refracted and reflected beams after interaction.
source code
 
hitHR(self, beam, point, order, threshold)
Compute the daughter beams after interaction on HR at point.
source code
 
hitAR(self, beam, point, order, threshold)
Compute the daughter beams after interaction on AR at point.
source code

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 = 'Mirror'
  __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, Wedge=0.0, Alpha=0.0, X=0.0, Y=0.0, Z=0.0, Theta=1.57079632679, Phi=0.0, Diameter=0.1, HRr=0.99, HRt=0.01, ARr=0.1, ARt=0.9, HRK=0.01, ARK=0, Thickness=0.02, N=1.4585, KeepI=False, Ref=None)
(Constructor)

source code 

Mirror initializer.

Parameters are the attributes and the angles theta and phi are spherical coordinates of HRNorm.

Returns a mirror.

Overrides: object.__init__

lines(self)

source code 

Returns the list of lines necessary to print the object.

Overrides: component.SetupComponent.lines

isHit(self, beam)

source code 
Determine if a beam hits the Optic.

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

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.

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

hitHR(self, beam, point, order, threshold)

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

beam: incident beam. [GaussianBeam]
point: point in space of interaction. [3D vector]
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]

hitAR(self, beam, point, order, threshold)

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

beam: incident beam. [GaussianBeam]
point: point in space of interaction. [3D vector]
order: maximum strayness of daughter beams, which 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]