| Home | Trees | Indices | Help |
|
|---|
|
|
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.)
The way an optic interacts with a beam (if it adds to the order of a beam
upon reflection or transmission on HR or AR etc) is specified by the
action integers RonHR, TonHR, RonAR, TonAR of the optic. A beam which
reflects on HR will have its order increased by RonHR, etc.
All the optics which transmit or reflect beams (beam splitters, mirrors,
thin and thick lenses and special optics) inherit from this class. A
particular type of optic is characterized by its action integers and by the
inputs provided to the constuctors by the users. Everything else of the
optics follow the shape of this Optic class.
*=== 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]
ARCenter (inherited): center of the 'chord' of the AR 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]
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]
Wedge: wedge angle on the optic. [float]
Alpha: angle of the rotation to describe the orientation of the wedge.
See the documentation for details on this angle. [float]
TonHR, RonHR, TonAR, RonAR: amount by which the orders of the beams will
be increased upon relfection or transmission on AR or HR surfaces.
These are the principal parameters which distinguish mirrors and lenses
and beamsplitters, etc.
**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
***** ********
******* *******
|
|||
|
Inherited from |
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
|||
|
Inherited from Inherited from |
|||
|
|||
Name =
|
|||
OptCount = 0
|
|||
__abstractmethods__ =
|
|||
|
Inherited from Inherited from |
|||
|
|||
|
Inherited from |
|||
|
|||
Optic base initializer. Parameters are the attributes of the object to construct. Returns an Optic.
|
Determine whether the HR and AR surfaces intersect. Returns True if there is an intersection, False if not. |
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, 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]
|
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]
|
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, 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]
|
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} |
Determine if a beam hits the Optic.
This is a function uses the dictionaries provided by isHitDics to
find the closest face hit by the beam.
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]
|
Determine the dictionaries to evaluate if a beam hits the optic.
Uses the line***Inter functions from the geometry module to calculate
the dictionaries of data on interaction with HR and AR and side of
optics.
Returns a tuple of 3 dictionaries with keys:
'isHit': whether the optic is hit by the beam. [bool]
'intersection point': 3D point where the beam impacts.
[3D np-array]
'distance': distance from beam origin to interaction point. [float]
|
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.
|
| Home | Trees | Indices | Help |
|
|---|
| Generated by Epydoc 3.0.1 on Thu Aug 24 10:17:20 2017 | http://epydoc.sourceforge.net |