AbbeVNumber
AbbeVNumber is a rule name that specifies the Abbe V-number, Vd = (nd-1) / (nf-nc), and is a measure of the chromatic aberration of an optical material.
Here, nf, nd, and nc are the refractive index values for three different wavelengths specified by the SpectralRegion option. See also: FindGlassNumbers, SpectralRegion, GlassCodeFunction, GlassMap, MeanDispersion, GlassCodeNumber, and PartialDispersionRatio.
ABCDMatrix
ABCDMatrix[component, {{M1, M2}, {M3, M4}}, options] is a generic building block that produces scattered rays according to the ABCD matrix law.
ABCDMatrix is also a rule that specifies ABCD-matrix data.
See also: ExitPosition, ThinLens, ThickLens, and ABCDOptic.
ABCDOptic
ABCDOptic[abcdmatrix, aperture, thickness, label, options] denotes a two-surfaced planar component that scatters rays using the abcdmatrix specified with an entrance plane and an exit plane separated by the indicated thickness.
The thickness parameter specifies either a number or a surface function of two variables. ABCDOptic is intended for simple two-dimensional ray-tracing procedures. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ABCDMatrix, ThinLens, and ThickLens.
AbsoluteSizeComponentOrientation
AbsoluteSizeComponentOrientation is a an option of ShowComponentOrientation, that determines the absolute length of lines. SizeComponentOrientation is suppressed by AbsoluteSizeComponentOrientation. See also: ShowSystem, ShowComponentOrientation.
AbsoluteSizeRayOrientation
AbsoluteSizeRayOrientation is a an option of ShowRayOrientation that determines the absolute length of lines. SizeRayOrientation is suppressed by AbsoluteSizeRayOrientation. See also: ShowSystem, ShowRayOrientation.
AbsoluteSizeSurfaceOrientation
AbsoluteSizeSurfaceOrientation is a an option of ShowSurfaceOrientation that determines the absolute length of lines. SizeSurfaceOrientation is suppressed by AbsoluteSizeSurfaceOrientation. See also: ShowSystem, ShowSurfaceOrientation.
AbsoluteStepSize
AbsoluteStepSize -> increment/Automatic gives the absolute rate of increment used to step through numeric solutions.
AbsoluteStepSize works in tandom with StepSize. AbsoluteStepSize -> Automatic indicates that the relative StepSize will be used instead. See also: StepSize.
Absorption
Absorption[component, options] is a generic building block that creates a ray-tracing function to absorb the intensity of rays hitting the optical surface.
Acetone
Acetone specifies the use of an acetone liquid medium at 20 degrees Celsius.
The refractive index model for Acetone is most suitable for the wavelength range of .43 microns to .66 microns. Acetone has a density of 0.791, relative to the density of water.
AcidResistance
AcidResistance is a database rule name that specifies the acid resistance of a material.
ActiveComponent
ActiveComponent -> True is an option that designates whether the component contains active surfaces where rays can interact.
ActiveComponent -> False is used when constructing inactive components made up of only graphical information. ActiveComponent is an option of ComponentFoundation.
ActiveRegion
ActiveRegion is an option of Component functions that determines which side of the optical surface shall be modeled for approaching rays by ModelIntensity and ModelPolarization.
For single surfaces, ActiveRegion -> Automatic or 0 is active on both sides of the surface. ActiveRegion -> -1 specifies rays approaching the surface from the negative optical axis, while ActiveRegion -> 1 indicates rays approaching from the positive optical axis.
For double surfaces, ActiveRegion -> Automatic or 0 specifies the region between the two surfaces.
ActiveScattering
ActiveScattering -> Automatic/True/False is an option of the ScatterRays that indicates whether seed-scattering sources are dynamically refreshed during the trace.
ActiveScattering has an important effect on randomized seed sources, which use MonteCarlo -> True/Stratified, since each scatter site will display an identical scattering behavior with ActiveScattering -> False. ActiveScattering -> Automatic uses the True setting with the MonteCarlo -> True/Stratified seed-source settings and False otherwise. An additional option, PropagateSystem -> False, can be used to conserve memory during TurboTrace calculations by inhibiting ActiveScattering -> False for PropagateSystem. See also: MonteCarlo.
Add
Add -> {newobjects, {coordinatepoints}} is an option of AnalyzeSystem/ShowSystem based on mouse-generated coordinatepoints that inserts new components and rays within an existing system.
Add uses a list of coordinatepoints taken with the mouse from the rendered graphics to indicate the final location of the inserted objects. A second coordinate point is used to indicate the previous element of the optical system. Object-sequence positions may also be used to specify objects instead of coordinatepoints. Add uses the two-dimensional coordinate system given in PlotType.
See also: DrawSystem, PlotType, ToleranceSelection, ToleranceDoubleClick, SnapGrid, SnapGridOffset, Move, MoveReflected, Arrange, Rotate, Copy, Constrain, Snap, Align, Transform, Swap, Remove, Identify.
AddDeflection
AddDeflection[component, options] is a generic building block used to append elements to Deflections.
AddDeflection -> {buildingblockname...} creates Deflections with buildingblockname[component, options] for every buildingblockname element. These deflections are appended to those inside component, but not connected to any of the surfaces. AddDeflection passes options and component as list of rules to genetic.
See also: AddSurface, InsertDeflection, RemoveDeflection, and RemoveSurface.
AddLabels
AddLabels -> {{listoflabels},{listofpositions}} is a PlugIn for ShowSystem that adds one or more labels to the system rendering.
AddLabels uses two lists to indicate the label names and label positions. See also: ShowSystem, MoveLabels, RenameLabels, and ShowLabels.
AddRandomRayTilt
AddRandomRayTilt[component, {{x1,x2},{y1,y2}}, options] is a generic building block that introduces a random factor to the tilt direction of each propagated ray.
Here, the {{x1,x2},{y1,y2}} parameters specify the angular ranges of the ray tilt fluctuations along the horizontal and vertical directions. When the random behavior is symmetric about the surface normal, then the single-valued full-angles x and y can be specified in place of {x1,x2} and {y1,y2}. When the random factor is non-isotropic and only varies in x, then the y parameters can be omitted. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The Lambertian option is also used by ScatterRays. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction.
See also: Lambertian, LimitScatter, and LimitByReflection.
AddSurface
AddSurface[component, options] is a genetic building block used to insert surfaces between existing ones.
The new surfaces are not related to a deflection and they are not an entrance surface, but they are inserted in ConfinedPaths. AddSurface -> value controls the insertion place, AffectedSurfaces -> value between which surfaces to insert. Allowed values in (the list) AddSurface are between 0 and 1, describing the fraction of the distance between adjacent surfaces. Alternatively a surface can be directly specified. AffectedSurfaces can be a list of numbers or a word value (except slot specifications). SimpleSurface -> True tries to generate simple shapes for the new surfaces. AddSurface passes options to ComponentFoundation, ComponentRendering and Confine.
See also: InsertDeflection, RemoveDeflection, AddDeflection, AffectedSurfaces, SortSurfaces, SimpleSurface, and RemoveSurface.
AddSurfaceRoughness
AddSurfaceRoughness[component, {{x1,x2}, {y1,y2}}, options] is a genetic building block that introduces a random factor to the surface normals of one or more optical surfaces in the component.
Here, the {{x1,x2}, {y1,y2}} parameters specify the angular ranges of the tilt fluctuations along the horizontal and vertical directions. When the random behavior is symmetric about the surface normal, then the single-valued full-angles x and y can be specified in place of {x1,x2} and {y1,y2}. When the surface roughness is non-isotropic and only varies in x, then the y parameters can be omitted. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
AddSurfaceRoughness inserts a Random function within the SurfaceNormalFunction.
AffectedSurfaces
AffectedSurfaces is an option of BuildComponent that specifies which surfaces of Component are to be affected by a newly introduced ray-tracing function.
AffectedSurfaces carries a list of numbers and word values that denotes the surfaces inheriting a new ray-tracing function trait. As an example, AffectedSurfaces -> {1} specifies that the first surface function slotted in Surfaces is to inherit the new ray-tracing function trait.
If a list element of AffectedSurfaces is a list, it specifies a pathnumber, pathslot and deflectionslot inside ConfinedPaths. The new deflection is inserted in the list of DeflectionNumber at position deflectionslot, but only in pathslot slot of pathnumber path of ConfinedPaths. This type of AffectedSurfaces is used for example to put a grating on a refractive surface.
See also: AllDeflections, AllSurfaces, FirstSlot, NotFirstSlot, LastSlot, NotLastSlot, and IndependentSurfaces.
Air
Air denotes the use of an air medium with a refractive index of 1.00027 at the 0.5876 micron wavelength. The refractive index data were calculated for a temperature of 20 degrees Celsius, a pressure of 100 kPa, 50% air humidity, and 450 ppm of carbon dioxide. The refractive index model for Air is most suitable for the wavelength range of 0.3 microns to 1.7 microns. The data for this Air model was provided by Dr. ir. Hedser van Brug.
Align
Align -> {coordinatepoints} is an option of AnalyzeSystem/ShowSystem based on mouse-generated coordinatepoints that automatically aligns the components and rays along an optical axis. The axis is three-dimensional and defined by the closest neighboring objects, or two-dimensional and defined as points.
Align uses a list of coordinatepoints taken with the mouse from the rendered graphics to indicate the start point of the axis, the objects getting aligned, and the end point of the axis. An optional point before the last one specifies the position along the axis. Object-sequence positions may also be used to specify objects instead of coordinatepoints.
Align does essentially the same as Snap, but it uses another order of coordinate points.
See also: DrawSystem, PlotType, ToleranceSelection, ToleranceDoubleClick, SnapGrid, SnapGridOffset, Move, MoveReflected, Arrange, Rotate, Copy, Constrain, Snap, Transform, Add, Swap, Remove, Identify.
AlkaliResistance
AlkaliResistance is a database rule name that specifies the alkali resistance of a material.
AllCreatedAmplitudes
AllCreatedAmplitudes = {{ax, ay, az},..} is used within HeldDeflectionKernel functions to specify new electric-field vectors of one or more outgoing rays.
In general, ax, ay, and az are complex numbers that indicate absolute field directions. AllCreatedAmplitudes is generated by some HeldDeflectionKernel functions to specify electric-field information. TurboTrace later converts the reported AllCreatedAmplitudes into Polarization for storage in TurboRays.
See also: RayAmplitude and Polarization.
AllCreatedRays
AllCreatedRays is a value of TakeFrom, AddTo, and ReplaceFor and specifies that all Ray objects returned by previous ray-tracing function calculations are passed to or returned from DeflectionFunction.
If AllCreatedRays is listed by TakeFrom, then AllCreatedRays is included as an input to the ray-tracing function calculation. If AllCreatedRays is listed by AddTo, then the elements of AllCreatedRays replace the previous AllCreatedRays object.
Currently, only Transmission and Hole are designed to use TakeFrom -> AllCreatedRays. See also: NewRay, CreatedRay, ChangedRay, OriginalRay, AddTo, and TakeFrom.
AllDeflections
AllDeflections is a value of AffectedSurfaces that denotes that the added genetic ray-tracing function slot number is interlaced throughout the listing of DeflectionNumber values.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths.
See also: AllSurfaces, FirstSlot, NotFirstSlot, LastSlot, NotLastSlot, AffectedSurfaces, and IndependentSurfaces.
AllowZeroRayLength
AllowZeroRayLength is an unauthorized rule of Ray that specifies whether the ray segment is permitted to have a zero length during a surface-ray intersection calculation.
AllowZeroRayLength is set to True when the ray is crossing between two distinct optical surfaces. AllowZeroRayLength is set to False during a repeated surface interaction. AllowZeroRayLength is only created when RayHistory is invoked. See also: RayHistory
AllSurfaces
AllSurfaces is a value of AffectedSurfaces of BuildComponent that specifies that the added ray-tracing function slot number is appended to all DeflectionNumber values.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths.
See also: AllDeflections, FirstSlot, NotFirstSlot, LastSlot, NotLastSlot, AffectedSurfaces, and IndependentSurfaces.
AnalyzeSystem
AnalyzeSystem[system, options] takes a system of light sources and optical elements defined by a mixed list of Source and Component objects, traces the rays through the components, and renders the results according to the PlotType, RayChoice, ShowRange, and ColorView options.
AnalyzeSystem is an alias name for DrawSystem. See also PropagateSystem, DrawSystem, TurboTrace, and TurboPlot.
AnamorphicPrisms
AnamorphicPrisms[aperture, bigedgethickness, firstangle, prismspacing, secondangle, exitoffset, label, options] specifies a pair of wedge-shaped prism elements that are commonly used to correct the asymmetric beam shape of a laser diode- from elliptical to near circular in shape.
AnamorphicPrisms is created with the first prism surface positioned at the origin with a tilt given by firstangle and the second prism located offset along the positive x-axis with the lateral offset given by exitoffset and tilted by secondangle. The aperture argument may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The bigedgethickness specifies the thickness of the larger prism edge. The firstangle and secondangle parameters denote the amount of tilt in the x-y plane given to the first and second prism elements. The prismspacing argument gives the gap between the two prism elements. Finally, the exitoffset parameter indicates the distance between the last prism's exit surface center and the x-axis (incoming optical axis). The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: Prism, WedgePrism, DovePrism, PentaPrism, and RhomboidPrism.
AngleTolerance
AngleTolerance is a database rule name that specifies the manufacturing angular tolerances of an optical component expressed in units of +- seconds of arc. See also: ThicknessTolerance and DimensionalTolerance.
Anisotropic
Anisotropic is a value of Theory to characterize an anisotropic medium.
AntireflectionCoating
AntireflectionCoating is part of the pattern ModelCoating[AntireflectionCoating, substrate, reflectivity] that is used to define a coating which reflects on every substrate reflectivity percent.
ApertureQ
ApertureQ[x] tests whether x is a valid aperture specification for an optical element. The result is True or False.
ApertureStop
ApertureStop[aperture, holeaperture, label, options] and ApertureStop[aperture, holeaperture, thickness, label, options] denotes a planar component with a hole created in its middle.
ApertureStop is created with its first surface centered about the origin. The aperture and holeaperture arguments may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
AppendGraphics
AppendGraphics -> primitiveslist is an option of ShowSystem that gives a list of graphics to be rendered after those of ShowSystem. See also: PrependGraphics.
Arrange
Arrange -> {coordinatepoints} is an option of AnalyzeSystem/ShowSystem based on mouse-generated coordinatepoints that rearranges the ordering of components and rays in the optical system.
Arrange uses a list of coordinatepoints taken with the mouse from the rendered graphics to specify a new sequence order for the selected objects. Normally, the first coordinate point indicates the point of insertion to the list of objects. If the first coordinate corresponds to an empty point in space then the listed objects will be inserted at the beginning of the optical system sequence. Object-sequence positions may also be used to specify objects instead of coordinatepoints. Arrange uses the two-dimensional coordinate system given in PlotType.
See also: DrawSystem, PlotType, ToleranceSelection, ToleranceDoubleClick, SnapGrid, SnapGridOffset, Move, MoveReflected, Rotate, Copy, Constrain, Snap, Align, Transform, Add, Swap, Remove, Identify.
AsphericLens
AsphericLens[{curvature1, conic1, polynomialcoefficients1,insideaperture1}, {curvature2, conic2, polynomialcoefficients2, insideaperture2}, aperture, thickness, label, options] designates a double-surfaced lens both having aspherical surfaces.
The centerline curvature, conicconstant, and aspheric polynomialcoefficients for an aspheric lens prescription are all required. An optional specification for an insideaperture to each surface may also be given. AsphericLens uses the EvenFunction->True option to indicate the use of even power polynomial terms as coefficients, starting with the second order term. Otherwise, both even and odd power terms will be used. AsphericLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture argument may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics. (Inspired by William Cottingame, UCLA.)
See also: AsphericLensSurface, AsphericMirror, ToroidalLensSurface, ToroidalLens, and ToroidalMirror.
AsphericLensSurface
AsphericLensSurface[{curvature, conicconstant, polynomialcoefficients, insideaperture}, aperture, label, options] designates a lens component that has an aspheric shape.
The centerline curvature, and conicconstant for an aspheric lens prescription are all required. Optional specifications for , the aspheric polynomialcoefficients and insideaperture to the surface may also be given. AsphericLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. AsphericLensSurface uses the EvenFunction->True option to indicate the use of even power polynomial terms as coefficients, starting with the second order. Otherwise, both even and odd power terms will be used. AsphericLensSurface is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. (Inspired by William Cottingame, UCLA.) The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: AsphericLens, AsphericMirror, ToroidalLensSurface, ToroidalLens, and ToroidalMirror.
AsphericMirror
AsphericMirror[{curvature, conicconstant, polynomialcoefficients, insideaperture}, aperture, label, options] and AsphericMirror[{curvature, conicconstant, polynomialcoefficients, insideaperture}, aperture, thickness, label, options] designates a mirror component that has an aspheric reflective shape.
The centerline curvature, and conicconstant for an aspheric mirror prescription are all required. Optional specifications for the aspheric polynomialcoefficients and insideaperture to the surface may also be given. The thickness refers to the refractive substrate of the mirror. If no thickness value is given, the component is a single-sided mirror. AsphericMirror is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. FlatSubstrate -> True creates the mirror on a flat-backed substrate. Hole -> holeaperture creates hole in the mirror. Depending on the InputEdgeThickness option setting, the thickness parameter may denote either the small edge thickness or the center thickness of the component. With InputEdgeThickness -> True, the thickness parameter is taken for the edge thickness. AsphericMirror uses the EvenFunction->True option to indicate the use of even power polynomial terms as coefficients, starting with the second order. Otherwise, both even and odd power terms will be used. (Inspired by Dave Whiteman, NASA.)
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: AsphericLens, AsphericLensSurface, ToroidalLensSurface, ToroidalLens, and ToroidalMirror.
AssignRay
AssignRay is a placeholder inside HeldTraceKernel that designate an assignment of ray values in a Map.
AttenuationIndex
AttenuationIndex is a rule of Ray that gives the imaginary part of the refractive index divided by the real part for the ray segment in the local environment. The effective refractive index for Snells law is defined by RefractiveIndex + I*AttenuationIndex. AttenuationIndex uses ModelRefractiveIndex to calculate its value. In the case of a birefringent material, the value is a 3x3 tensor with components relative to the coordinate system passed as variable to the function ModelRefractiveIndex. See also: ModelRefractiveIndex, RelativePermeability, RefractiveIndex.
AttenuationIndexFunction
AttenuationIndexFunction -> function is a rule within TurboSurfaces that designates the functions for the attenuation indices on both sides of a surface.
AuthorizeNewOptions
AuthorizeNewOptions[component, optionlabels, options] is a generic building block used for adding new Ray option labels that are authorized to be carried within Ray objects across multiple ray/surface generations.
Ray parameters created by ray-tracing functions that are not listed in Options[Ray] or included in the NewAuthorizedOptions Ray object parameter are removed after the following surface encounter. Contents of optionlabels are added to NewAuthorizedOptions.
Note that AuthorizeNewOptions is only used in PropagateSystem and is not recognized by TurboTrace, which limits its usefulness in the present Rayica version.
Back
Back is a value of CurvatureDirection.
BackFacetDiameter
BackFacetDiameter is an option of the Solitaire prism that denotes the diameter of the back half-facets (below the girdle) as a percentage of the overall Solitaire diameter.
Specialized options of the Solitaire prism include: TableDiameter, GirdleThickness, CrownAngle, PavilionAngle, StarDiameter, BackFacetDiameter, CrownHeight, PavilionDepth, CuletAngle, and CuletDiameter.
BackFocalLength
BackFocalLength indicates the distance between the FocalPoint position and the chief center of the last optical surface.
See also: FindFocus and FindFocusFast.
Baffle
Baffle[aperture, label, options] and Baffle[aperture, thickness, label, options] denote a planar, component having only absorbing sides.
Baffle is created centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
Baffled
Baffled is an option of some built-in component functions that specifies whether there are absorbing surfaces present.
Normally, Baffled -> True indicates that the effected surfaces are made as absorbers and Baffled -> False indicates that the effected surfaces are refractive surfaces. Baffled -> {surfacenumbers} is also used to specify each absorbing surface by the surface number.
BaffleSpan
BaffleSpan[{x1, y1}, {x2, y2}, height, label, options] and BaffleSpan[{x1, y1}, {x2, y2}, thickness, height, label, options] is similar to Baffle except that its size and placement are specified by the two two-dimensional coordinates {x1, y1} and {x2, y2}.
BaffleSpan spans the specified coordinates in the x-y-plane and has the specified height in z-direction.. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
BaffleWithHole
BaffleWithHole[aperture, holeaperture, label, options] and BaffleWithHole[aperture, holeaperture, thickness, label, options] designate a planar component with a hole created in its middle.
BaffleWithHole is created with its first surface centered about the origin. The aperture and holeaperture arguments may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
BaK1
BaK1 specifies the use of the BaK1 glass medium.
The refractive index model for BaK1 is most suitable for the wavelength range of .35 microns to 2.3 microns.
BalancePhaseFront
BalancePhaseFront -> True/False is an option of most ray sources that controls the starting point of the rays.
For True, the starting point of each ray is adjusted to maintain a uniform transverse phasefront for the light source. This is particularly important in wavefront calculations, where uniform transverse phasefronts are required. BalancePhaseFront works closely with the StartAtBirthPoint option.
See also: BirthPoint and StartAtBirthPoint.
BallBaffle
BallBaffle[radius, label, options] denotes an entire spherical absorbing surface.
BallBaffle is created with its center at the origin of the coordinate system. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
BallLens
BallLens[diameter, label, options] denotes an entire spherical refractive component.
With the option setting Centered -> True, BallLens is created with its center of mass at the coordinate origin. With Centered -> False, BallLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
BallMirror
BallMirror[diameter, label, options] denotes an entire spherical mirror.
With the option setting Centered -> True, BallMirror is created with its center of mass at the coordinate origin. With Centered -> False, BallMirror is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
Base
Base is a value that indicates the base surface of an optical component.
BeamCurvature
BeamCurvature is a rule returned by GaussianBeam that designates the radius of phase curvature in a particular transverse plane for a Gaussian beam.
See also: BeamWaist, SymbolicBeamWaist, WaistDistance, SymbolicWaistDistance, SymbolicBeamCurvature, SymbolicBeamSpotSize, BeamDivergence, SymbolicBeamDivergence, BeamScaleLength, SymbolicBeamScaleLength, ComplexBeamParameter, and SymbolicComplexBeamParameter.
BeamDivergence
BeamDivergence is an rule returned by GaussianBeam that specifies the far-field full angle of divergence (in radians) of a Gaussian beam.
See also: BeamWaist, SymbolicBeamWaist, WaistDistance, SymbolicWaistDistance, BeamCurvature, SymbolicBeamCurvature, BeamSpotSize, SymbolicBeamSpotSize, SymbolicBeamDivergence, BeamScaleLength, SymbolicBeamScaleLength, ComplexBeamParameter, and SymbolicComplexBeamParameter.
BeamScaleLength
BeamScaleLength is a rule returned by GaussianBeam that is directly related to the beam waist spot size and is the axial scale length given for the particular Gaussian beam waist.
See also: BeamWaist, SymbolicBeamWaist, SymbolicBeamWaist, SymbolicBeamSpotSize, BeamCurvature, SymbolicBeamCurvature, BeamDivergence, SymbolicBeamDivergence, SymbolicBeamScaleLength, ComplexBeamParameter, and SymbolicComplexBeamParameter.
BeamSplitter
BeamSplitter[{percentreflected, percenttransmitted}, aperture, label, options] and BeamSplitter[{percentreflected, percenttransmitted}, aperture, thickness, label, options] designate a planar component that has a partially reflective/transmissive side with a thickness specified and a refractive side.
BeamSplitter is created with its splitting surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
BeamSplitterCube
BeamSplitterCube[{percentreflected, percenttransmitted}, side, label, options] refers to a solid cube beam splitter that has a partially reflective/refractive surface across its diagonal.
BeamSplitter is created with one face centered about the origin and the opposite face positioned down the positive x axis. The side parameter specifies the edge dimension of a cube. Baffled->True is used to create absorbing surfaces at the top of the bottom of the cube. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: BeamSplitter, WedgeBeamSplitter, and ConjugateBeamSplitter.
BeamSpotSize
BeamSpotSize is a rule returned by GaussianBeam that designates the Gaussian beam radius (at 1/e of its amplitude peak) in a particular transverse plane.
See also: BeamWaist, SymbolicBeamWaist, WaistDistance, SymbolicWaistDistance, BeamCurvature, SymbolicBeamCurvature, SymbolicBeamSpotSize, BeamDivergence, SymbolicBeamDivergence, BeamScaleLength, SymbolicBeamScaleLength, ComplexBeamParameter, and SymbolicComplexBeamParameter.
BeamWaist
BeamWaist is a rule returned by GaussianBeam that designates the minimum radius size (at 1/e of its amplitude peak) at the waist position of a particular Gaussian beam.
See also: SymbolicBeamWaist, WaistDistance, SymbolicWaistDistance, SymbolicBeamSpotSize, BeamCurvature, SymbolicBeamCurvature, BeamDivergence, SymbolicBeamDivergence, BeamScaleLength, SymbolicBeamScaleLength, ComplexBeamParameter, and SymbolicComplexBeamParameter.
BiConcaveCylindricalLens
BiConcaveCylindricalLens[focallength, aperture, thickness, label, options] refers to a lens with two equally concave cylindrical surfaces.
BiConcaveCylindricalLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
Note that the specified focallength is always determined for a particular setting of the DesignWaveLength and ComponentMedium options. By default, Rayica uses DesignWaveLength->0.5461 microns and ComponentMedium->BK7. Care should be taken to insure that these default settings are compatible with the intended experimental design or unintended results can occur.
BiConcaveLens
BiConcaveLens[focallength, aperture, thickness, label, options] refers to a lens with two equally concave spherical surfaces.
BiConcaveLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
Note that the specified focallength is always determined for a particular setting of the DesignWaveLength and ComponentMedium options. By default, Rayica uses DesignWaveLength->0.5461 microns and ComponentMedium->BK7. Care should be taken to insure that these default settings are compatible with the intended experimental design or unintended results can occur.
BiConvexCylindricalLens
BiConvexCylindricalLens[focallength, aperture, thickness, label, options] designates a lens with two equally convex cylindrical surfaces.
BiConvexCylindricalLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
Note that the specified focallength is always determined for a particular setting of the DesignWaveLength and ComponentMedium options. By default, Rayica uses DesignWaveLength->0.5461 microns and ComponentMedium->BK7. Care should be taken to insure that these default settings are compatible with the intended experimental design or unintended results can occur.
BiConvexLens
BiConvexLens[focallength, aperture, thickness, label, options] designates a lens with two equally convex spherical surfaces.
BiConvexLens is created with its first surface centered about the origin and its second surface positioned down the positive x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
Note that the specified focallength is always determined for a particular setting of the DesignWaveLength and ComponentMedium options. By default, Rayica uses DesignWaveLength->0.5461 microns and ComponentMedium->BK7. Care should be taken to insure that these default settings are compatible with the intended experimental design or unintended results can occur.
BirefringentLensSurface
BirefringentLensSurface[axisangle, aperture, label, options] denotes a planar component that models the index boundary between a birefringent-refractive material and an isotropic-refractive material.
BirefringentLensSurface is always used in combination with one or more additional BirefringentLensSurface component types to create a complete optical element such as a prism. BirefringentLensSurface is created with its surface centered about the origin. BirefringentLensSurface uses the option ComponentMedium -> {mediumO, mediumE} to designate the type of birefringent optical material with the alignment axis of materialO given by axisangle. Otherwise, ComponentMedium -> {{mediumO, mediumE}, isotropicmedium} specifies the interface with an isotropic material other than the default IntrinsicMedium setting. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: CustomBirefringentLensSurface, LinearPolarizer, RetardationPlate, and JonesMatrixOptic.
BirthPoint
BirthPoint->coordinates is an option of ray sources that gives the three-dimensional spatial coordinates of the light source. BirthPoint -> Automatic yields an on-axis source at the origin. BirthPoint uses the CoordinateSystem option to specify whether its arguments shall be given in rectangular coordinates (CoordinateSystem -> CartesianCoordinates) or spherical coordinates (CoordinateSystem -> PolarCoordinates).
See also: SymbolicBirthPoint, CoordinateSystem, StartAtBirthPoint, and BalancePhaseFront.
BK7
BK7 indicates the use of the BK7 glass medium.
The refractive index model for BK7 is most suitable for the wavelength range of .35 microns to 2.3 microns.
Boundary
Boundary[boundaryparameters, label, options] designates a rectangular box that absorbs rays intercepted by its walls.
Here, the user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. There are four methods for specifying boundaryparameters: Boundary[{x1, y1, z1}, {x2, y2, z2}] uses the coordinates of top and bottom opposite corners of a rectangular box, Boundary[side] assumes a cube boundary, Boundary[xside, yside, zside] assumes a three-dimensional box that has a length specified by xside, a width specified by yside, and a height specified by zside, and Boundary[aside, bside] assumes a three-dimensional box that has a length specified by aside, a width specified by bside, and a height specified by bside. Optical systems usually have at least one boundary component listed at the end. By default, Boundary is not rendered. See also: ClearBoundary.
BoundaryChecked
BoundaryChecked -> True/False indicates whether ModelSurfaceRayIntersections has automatically incorporated the InsideSurfaceBoundaryQ information into the SurfaceIntersectionFunction.
BoundaryChecked and SurfaceIntersectionFunction are both returned by ModelSurfaceRayIntersections and embedded within the Surfaces rule of a component by ComponentFoundation. See also: InsideSurfaceBoundaryQ, ModelSurfaceRayIntersections, and SurfaceIntersectionFunction.
BoundaryFactor
BoundaryFactor -> factor determines a SurfaceBoundary scaling factor to be used during the construction of SurfaceApproximation models.
BoundaryFactor is an option of ModelSurfaceRayIntersections and ComponentFoundation. BoundaryFactor is also used in BoundingBox -> Automatic. See also: SurfaceApproximation, BoundingBox, and ModelSurfaceRayIntersections.
BoundaryLabel
BoundaryLabel -> label is a rule within TurboSurfaces that designates a boundary type.
BoundingBox
BoundingBox -> component is an option of custom optical elements that specifies a component shape whose one or more surfaces span the customized surface volume.
In addition to directly accepting a component or list of components, BoundingBox can also take one or more numerical values to describe its form. BoundingBox -> {{xmin, ymin, zmin}, {xmax, ymax, zmax}} may be used instead of a component to specify a three-dimensional rectangular volume. BoundingBox -> diameter specifies a spherical volume of the given diameter. Otherwise, BoundingBox -> {aside, bside} assumes a centred three-dimensional box that has a length specified by aside, a width specified by bside, and a height specified by bside. Finally, BoundingBox -> Automatic automatically determines a rectangular volume boundary from the SurfacePoints information when SurfaceApproximation -> Automatic is invoked.
In general, the BoundingBox information need not be rectangular and can be defined by any set of one or more analytic surfaces (passed in the component.) In addition, the BoundingBox need not define a closed volume. The BoundingBox option is used internally by ComponentFoundation and ModelSurfaceRayIntersections to construct the BoundingBoxQ function. BoundingBox is defined relative to the local coordinate system of the optical surface.
See also: BoundingBoxQ, ComponentFoundation, SurfacePoints, SurfaceApproximation, BoundaryFactor, and ModelSurfaceRayIntersections.
BoundingBoxQ
BoundingBoxQ -> function designates a function that returns True if the ray intercepts one or more of the BoundingBox surfaces.
BoundingBoxQ is used to speed nonsequential ray-trace calculations in which specialized custom surfaces are involved. The function of BoundingBoxQ takes the parameters: RSx, RSy, RSz, RTx, RTy, and RTz, where {RSx, RSy, RSz} is the ray starting point and {RTx, RTy, RTz} is the unit ray tilt vector. For iterative or open-form SurfaceRayIntersections settings (such as Numeric, FindRoot, FindMinimum, Solve, and NSolve), BoundingBoxQ is automatically created from BoundingBox and embedded within the SurfaceIntersectionFunction by ModelSurfaceRayIntersections. BoundingBoxQ is also located within the Surfaces rule of a component. BoundingBoxQ is only created for custom-component shapes and is not generally included in Rayica's standard components.
See also: BoundingBox, SurfaceRayIntersections, ModelSurfaceRayIntersections, and SurfaceIntersectionFunction.
BoxGraphic
BoxGraphic[{xmin, ymin, zmin}, {xmax, ymax, zmax}, label, options] specifies a three-dimensional rectangular box with its diagonally opposite corners placed at {xmin, ymin, zmin} and {xmax, ymax, zmax}.
BoxGraphic does not interact with rays in any way, but can be listed with active components or with other graphic components for creating passive three-dimensional shapes. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression.
BranchingSurface
BranchingSurface[aperture, componentincrement, label, options] refers to a planar component that causes intersecting rays to branch to a different component position relative to the list position held by BranchingSurface.
BranchingSurface is usually employed after a beam-splitter-type component, in order to redirect split rays down a different component-listing pathway, thereby shortening ray-trace calculation times. BranchingSurface is not visually rendered, but can be used to sample the ray/surface positions. BranchingSurface is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. Because BranchingSurface is not supported by TurboTrace, it now has limited application with the new version of Rayica. As such it is recommended to use the Resonate function instead.
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
BubbleClass
BubbleClass is a database rule name that specifies the bubble class of a material.
BuildComponent
BuildComponent[objectset, options] synthesizes generic traits from several Component objects into a single Component object.
While BuildComponent is usually used by generic building block functions, BuildComponent may also be used as an external function to combine several Component objects into a single Component unit. See also: GroupDescription and AffectedSurfaces.
BundleOfRays
BundleOfRays[seed, {{name, vector}..}, options] is an alias of CustomRays.
See CustomRays for a more complete description.
CalciteE
CalciteE is a default material of BirefringentLensSurface to be defined by DataToRayica later.
CalciteO
CalciteO is a default material of BirefringentLensSurface to be defined by DataToRayica later.
CalibrateEnergy
CalibrateEnergy -> True/False/number indicates whether the relative integrated energy of each reported surface should be calibrated to the energy present at the first surface result of the ray trace.
CalibrateEnergy -> True requires a time-consuming numeric integration of the IntensityFunction. CalibrateEnergy -> False sets the central intensity point to a fixed value determined by IntensityScaleFactor. CalibrateEnergy -> number is uses true when the total number of traced rays per surface is less than the specified number See also: EnergyReference and ReportedSurfaces.
CartesianCoordinates
CartesianCoordinates is a value of the option CoordinateSystem.
CatalogFocalLength
CatalogFocalLength is a database rule name for a lens that specifies the approximate effective focal length as written in the catalog.
The actual effective focal length is given by the FocalLength name. See also: FrontFocalLength, BackFocalLength, and FocalLength.
CatalogInformation
CatalogInformation -> {{database entry},...} is an option of BuildComponent that supplies database information about the characteristics of a manufactured component.
CatalogInformation contains nested lists of rules with labels such as: ComponentName, SerialNumber, Price, Date. Each entry of the outer list represents one component. If no catalog information is available, an empty list is inserted. Otherwise the entry contains a list of lists with each sublist having information of one component database entry.
Centered
Centered is an option of component functions that can have values of True, False, or a number, depending on the particular component function.
In some functions, Centered -> True, specifies that the component is to be centered on the x-axis. In other functions, Centered -> True, indicates that an active surface is centered between two refractive surfaces. Centered -> number usually specifies a number between 0 and 1 to indicate the fractional distance of the active surface between two refractive surfaces.
CenteringTolerance
CenteringTolerance is a database rule name that specifies the manufacturing angular tolerances of an optical component in units of +- seconds of arc.
CenterThickness
CenterThickness is a database rule name that specifies the center thickness of a lens.
ChangedComponent
ChangedComponent is a value of TakeFrom, AddTo, and ReplaceFor and specifies that the Component object may be passed to or returned from DeflectionFunction.
ChangedComponent contains all of the Component object's contents, including changed parameters. The contents of ChangedComponent are used to replace the original Component object. See also: ChangedSurface, AddTo, and TakeFrom.
ChangedRay
ChangedRay is a value of TakeFrom, AddTo, and ReplaceFor and indicates that the modified Ray objects returned by previous ray-tracing function calculations are passed to or returned from the current DeflectionFunction.
ChangedRay results contain only modifications made to the original ray entering the surface. Note that OriginalRay contains the unmodified ray parameters entering the surface. See also: NewRay, CreatedRay, OriginalRay, AddTo, and TakeFrom.
ChangedSurface
ChangedSurface is a value of TakeFrom, AddTo, and ReplaceFor and specifies that a slotted element from Surfaces may be passed to or returned from DeflectionFunction.
Normally the contents indicated by ChangedSurface is slotted inside the Surfaces rule of Component, replacing the slot's previous contents. See also: ChangedComponent, AddTo, and TakeFrom.
ChangeRay
ChangeRay is an option of CreateRay that is used internally.
It specifies whether a ray object should be changed, if all necessary rules for beam propagation are already present. Internally ChangeRay -> False is used to speed up calls to CreateRay. If in the ray object a necessary rule is missed, ChangeRay has no effect.
ChangeSurfaceIncrement
ChangeSurfaceIncrement[component, newincrement, options] is a generic building block that changes the value of SurfaceIncrement.
ChangeSurfaceIncrement is only valid for PropagateSystem calculations and is not recognized by TurboTrace. In this regard, ChangeSurfaceIncrement is now obsolete and Resonate should be used instead.
ChangeSurfacePosition
ChangeSurfacePosition[component, newsurfaceposition, options] is a generic building block that changes ConfinedPosition to a new value indicated by newsurfaceposition.
ChangeSurfacePosition is only valid for PropagateSystem calculations and is not recognized by TurboTrace. In this regard, ChangeSurfacePosition is now obsolete and Resonate should be used instead.
CheckLimits
CheckLimits -> True is an option of ComponentFoundation.
It initiates a check for limits of SurfaceFunction and SurfaceNormalFunction inside ComponentFoundation. Zero denominators are checked as well as infinite values of logarithm and trigonometric functions. Due to the complexity of automatic limit detection, the user should investigate the created component. SurfaceFunction/.(Surfaces/.(created component)) and SurfaceNormalFunction/.(Surfaces/.(created component)) return the checked functions. See also: ComponentFoundation, SurfaceFunction, and SurfaceNormalFunction.
CircleGraphic
CircleGraphic[aperture, label, options] relates to a two-dimensional circle, ellipse, rectangle, or polygon lying in the horizontal x-y plane, depending on the designation of aperture.
CircleGraphic does not interact with rays in any way, but can be listed with active components or with other graphics components for creating passive three-dimensional shapes. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression.
CircleOfRays
CircleOfRays[seed, size, options] initializes a set of rays distributed on the surface of a tube that points down the positive x-axis for the default BirthPoint setting.
If size is a list of two positive numbers {width, height}, then the tube has rectangular shape of dimensions {width, height}. If size is a single number, then the tube has a circular shape of a diameter dictated by size. If size is a list of two negative numbers {-width, -height}, then the tube has elliptical dimensions {width, height}.
The seed parameter is optional and is used to generate more elaborate ray patterns. When it is present, it specifies additional light sources to be nested with the basic CircleOfRays result. When PropagateSystem is used for the ray trace, CircleOfRays produces a set of Ray objects. However, with TurboTrace calculations, a TurboRays object is generated from CircleOfRays instead. The distribution of rays is controlled by the GridSpacing option and the starting origin is defined by the BirthPoint option.
See also: CreateRays, NumberOfRays, MonteCarlo, GridSpacing, SourceFraction, SourceOffset, BirthPoint, SingleRay, ConeOfRays, WedgeOfRays, LineOfRays, GridOfRays, PointOfRays, CustomRays, FieldOfRays, GaussianBeam, and RainbowOfRays.
CircumscribeBoundary
CircumscribeBoundary -> True is an option of ComponentFoundation that directs the triangular net of SurfacePoints to circumscribe the surface boundary.
CircumscribeBoundary -> False directs the SurfacePoints to inscribe the surface boundary. CircumscribeBoundary works in conjunction with SurfaceApproximation -> TriangleNet. See also: SurfacePoints, SurfaceApproximation, and SurfaceRayIntersection.
ClearAperture
ClearAperture is a database rule name that specifies the minimum clear aperture diameter of a lens.
Note that ClearAperture only gives the smallest side dimension for rectangular-shaped lenses See also: WindowParameters.
ClearBoundary
ClearBoundary[boundaryparameters, label, options] refers to a rectangular box that terminates rays intercepted by its walls.
ClearBoundary does not set the value of Intensity to zero, and therefore is useful for defining modular optical subunits to be pieced into a larger system. Here, the user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. There are three methods for specifying boundaryparameters: ClearBoundary[{x1, y1, z1}, {x2, y2, z2}] uses the coordinates of top and bottom opposite corners of a rectangular box, ClearBoundary[side] assumes a cube boundary, ClearBoundary[xside, yside, zside] assumes a three-dimensional box that has a length specified by xside, a width specified by yside, and a height specified by zside, and ClearBoundary[aside, bside] assumes a three-dimensional box that has a length specified by aside, a width specified by bside, and a height specified by bside. Optical systems usually have at least one boundary component listed at the end. By default, ClearBoundary is not rendered. See also: Boundary.
ClearRayicaCache
ClearRayicaCache[] clears special Rayica caches. Deleted caches are restored automatically by using Rayica, but a few that can be restored with RestoreRayicaCache. Any missing cache only affects the calculation time, not the results.
See also: Rayica, RestoreRayicaCache.
ClimaticResistance
ClimaticResistance is a database rule name that gives an indication of the climatic resistance of a material.
ClonePosition
ClonePosition indicates the origin of the local coordinate system of a cloned element generated from CreateClones data in TurboTrace.
ClonePosition is internally used by some DeflectionFunction definitions during ray traces involving CreateClones. See also: CloneScale and CloneRotation.
CloneRotation
CloneRotation indicates a rotation matrix transformation for the local coordinate system of a cloned element generated from CreateClones data in TurboTrace.
CloneRotation is internally used by some DeflectionFunction definitions during ray traces involving CreateClones. See also: CloneScale and ClonePosition.
CloneScale
CloneScale indicates a scaling transformation for the local coordinate system of a cloned element generated from CreateClones data in TurboTrace.
CloneScale is internally used by some DeflectionFunction definitions during ray traces involving CreateClones. See also: CloneRotation and ClonePosition.
CloneSortLength
CloneSortLength -> numberofelements determines the number of neighboring phantom optical components to be tested for closest intersection during the ray trace.
As the numberofelements setting is increased, the trace becomes more robust at the cost of diminished speed and increased memory consumption. See also: CreateClones, CloneSortMethod, and ShowClones.
CloneSortMethod
CloneSortMethod -> method determines the method used for sorting the phantom optical components to be tested for closest intersection during ray tracing.
Alteration of CloneSortMethod is normally not required unless the default ray trace method produces erroneous results. Presently, CloneSortMethod accepts four different settings: 1, 2, 3, and 4. Here, methods 1 and 3 are the fastest, but methods 2 and 4 are the most robust. Methods 1 and 2 are faster than methods 3 and 4 when the CloneSortLength value is significantly less than the total number of phantom elements. Methods 3 and 4 are most useful when the total number of cloned elements remains small. See also: CloneSortLength, CreateClones and ShowClones.
CO550
CO550 indicates the use of the Corning Glass Code CO550 molded glass.
The refractive index model for CO550 is most suitable for the wavelength range of 0.365 microns to 1.55 microns.
CoatedRefraction
CoatedRefraction is a value of Theory, for example returned by ModelRefractionTheory, to characterize a refractive medium with coated surface.
CoatingDirectory
CoatingDirectory is an option to LoadData that specifies a directory.
This directory contains data on optical coatings.
CoatingFiles
CoatingFiles is an option to LoadData that specifies a list of file names to be loaded.
These files contain information on optical coatings.
CoatingMedium
CoatingMedium is an option of component functions that indicates the type of material used in the fabrication of the coating of the component. Instead of a name a Reflectance can be given as percentage.
This label is used by ModelCoating in calculating the Intensity parameter. CoatingMedium is an option of all refractive components such as the Refraction genetic building block. See also: ComponentMedium, RefractiveIndex, and ModelCoating.
CoatingSpecification
CoatingSpecification is an option of component functions that indicates the "thickness" of the coating of the component.
This label is used by ModelCoating in calculating the Intensity parameter, and can be e. g. a thickness or a wavelength in microns. CoatingSpecification is an option of all refractive components such as the Refraction genetic building block. See also: ComponentMedium, RefractiveIndex, and CoatingMedium.
CodeVToData
CodeVToData[stringdata, options] is used to import CodeV lens data into Rayica's database format.
CodeVToData requires that the stringdata for import be given in a single ascii string. Usually, this operation is accomplished by directly copying and pasting the CodeV data from a text editor into a Mathematica notebook with double quotation marks placed manually on either side of the pasted data. CodeVToData then converts this string information into a rule-based, list format that is recognized by Mathematica. The translation process can be further modified by giving additional options to CodeVToData. Once converted, the new information can be edited further with EditData, saved to disk with SaveData, and converted to optical component models with DataToRayica. CodeVToData is presently restricted to lens data that describe centered, refractive, spherical, multiple lens-surfaces with field stops. Code V is a Trademark of Optical Research Associates, Pasadena, CA. See also: CodeVToRayica, DataToRayica, ExcelToData, ExcelToRayica, KDPToData, KDPToRayica, ZemaxToData, and ZemaxToRayica.
CodeVToRayica
CodeVToRayica[stringdata, options] is used to import and convert CodeV refractive lens data into one or more optical lens models for Rayica.
CodeVToRayica requires that the stringdata for import be given in a single ascii string. Usually, this operation is accomplished either by opening the CodeV data file inside Mathematica or by manually copying and pasting the relevant data into an existing Mathematica notebook and, as a final last step, creating a string object by manually placing double-quotation marks on either side of the data. CodeVToRayica then converts this string information into one or more optical lens models that work with Rayica. The conversion process can be further modified by giving additional options to CodeVToRayica (that get passed internally to StringReplace and EditData). CodeVToRayica makes internal calls to CodeVToData and DataToRayica. CodeVToRayica is presently restricted to lens data that describe centered, refractive, spherical, multiple lens-surfaces with field stops. Code V is a Trademark of Optical Research Associates, Pasadena, CA. See also: CodeVToData, DataToRayica, ExcelToRayica, KDPToRayica, and ZemaxToRayica.
Coherent
Coherent -> True is an option of ShowValue and ShowSurfacePlot that specifies, that the values are added together with the assumption, that all rays are mutually coherent.See also: ShowValue, ShowSurfacePlot.
ColorCode
ColorCode -> {wavelength1, wavelength2} is a database rule name for a material that gives a quick reference to where the UV absorption begins and how steep the edge is.
The wavelength1 gives the wavelength in nm for 0.80 transmittance through 10 millimeters of the material. The wavelength2 gives the wavelength in nm for 0.05 transmittance through 10 millimeters of the material.
ColorView
ColorView -> rayparameterlabel is an option of DrawSystem/AnalyzeSystem and ShowSystem that is used to specify the colors of rays.
ColorView gives rayparameterlabel to ModelRayColor for determining ray colors. As examples: you can use ColorView -> Black to render the rays in black; ColorView -> WaveLength attempts to match the color of the ray to the wavelength; ColorView -> Automatic displays the initial RGBColor values assigned for the RayLineRGB ray parameter; ColorView -> rayparameterlabel for any rayparameterlabel other than WaveLength attempts to colorize each ray segment according to the rank of the rayparameterlabel value within the possible range of rayparameterlabel values, for the displayed rays selected by RayChoice and ShowRange. If more than one rayparameterlabel is indicated or the parameter contains a vector of three elements, then each of three values is assigned to the red, green, and blue colors. ColorView may also point to a list of three numbers representing the red, green, and blue colors used. See also: ModelRayColor, AllColors, and RayChoice.
CompiledCoating
CompiledCoating -> value is a rule returned by GetCoatingRules, which describes the coating. The function value[] returns a PrecisionFunction, which depends on WaveLength, Intensity, Polarization, Temperature, Tension, SurfaceCoordinates, WaveTilt, SurfaceNormalMatrix. The result of this PrecisionFunction is a flattened list with Intensity for transmission, Polarization for transmission, Intensity for Reflection, Polarization for reflection..
CompiledIndices
CompiledIndices -> value is a rule returned by GetMaterialRules, which describes the material. The function value[] returns a PrecisionFunction, which depends on WaveLength, Intensity, Polarization, Temperature, Tension, MaterialRotationMatrix, MaterialSpecification, SurfaceCoordinates, WaveTilt, SurfaceNormalMatrix. The order is fixed and automatically created. MaterialRotationMatrix as well SurfaceCoordinates and WaveTilt are used in connection with birefringent or structured media. The result of this PrecisionFunction is a list with a content controlled by the second argument to GetMaterialRules.
CompiledSurfaceApproximation
CompiledSurfaceApproximation -> code is a rule within the Surfaces rule of a component that gives the code being used by Rayica to approximate a surface.
This approximation is used for custom surface functions to generate automatically start values to find a ray-surface intersection. See also: SurfacePoints.
CompiledSurfaceIntersectionFunction
CompiledSurfaceIntersectionFunction[compiledfunction] is used to designate a compiled function that calculates surface-ray intersections.
CompiledSurfaceIntersectionFunction replaces the CompiledFunction head and is always used in connection with the SurfaceIntersectionFunction rule embedded within the Surfaces rule of a component. The function takes the ray start and tilt in local surface coordinates as a sequence of six real values and returns a list of all the three-dimensional parametric intersection coordinates, ray length and two surface coordinates. If no intersection is found, the function returns {{-1,0,0}}. See also: SurfaceIntersectionFunction and SurfaceRayIntersections.
CompletedRay
CompletedRay is a placeholder inside HeldTraceKernel for a variable that holds the ray object after a new surface intersection.
ComplexBeamParameter
ComplexBeamParameter is an rule returned by GaussianBeam that provides the complex beam parameter q of a Gaussian beam at a particular transverse plane.
ComplexBeamParameter is returned by GaussianBeam. See also: BeamWaist, SymbolicBeamWaist, WaistDistance, SymbolicWaistDistance, BeamSpotSize, SymbolicBeamSpotSize, BeamCurvature, SymbolicBeamCurvature, BeamScaleLength, SymbolicBeamScaleLength, BeamDivergence, SymbolicBeamDivergence, and SymbolicComplexBeamParameter.
Component
Component[genetic traits] is an object made up of genetic traits that define the properties of an optical component.
These genetic traits describe the ray-tracing behavior as well as the rendering of Component. Component may actively interact with rays, or may be purely graphical in content. Any of the Move functions may be nested around Component to change its position and orientation.
ComponentBoundary
ComponentBoundary is a database rule name that specifies the entrance dimensions for a lens and the overall dimensions for a prism.
ComponentBoundary may follow the Rayica convention for lens apertures, where a single number indicates the diameter of a circular shape and a list of two numbers indicate a rectangular shaped boundary. However, ComponentBoundary can also be used to specify the shapes of prisms and other object forms. See also: ClearAperture, HousingBoundary, and SurfaceBoundary.
ComponentDescription
ComponentDescription -> ComponentDescription[descriptionlist] is a rule within Component, made up of a description that identifies the optical component. Creating the component with the option BuildComponent -> True places in the descriptionlist all of the genetic building blocks used to create the component.
ComponentFoundation
ComponentFoundation[{surfacevalue, surfacevalue}, aperture, thickness, options] and ComponentFoundation[surfacevalue, aperture, options] create the initial Component object data structure that defines either a double-surfaced or single-surfaced optical element in Rayica.
The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The surfacevalue parameters usually specify the curvature of the surface. The types of surface shapes used in ComponentFoundation are given by the SurfaceLabel option. SurfaceLabel identifies the surface types as either SphericalShape, ParabolicShape, PlanarShape, OtherShape, or a user-defined shape label. SphericalShape designates a spherical radius of curvature for surfacevalue. ParabolicShape specifies a parabolic focal length for surfacevalue. Surfaces can be set to planar shapes either by using Infinity in surfacevalue or by using PlanarShape in SurfaceLabel. Users can add new surface definitions by assigning new functions to ModelSurfaceShape with an accompanying SurfaceLabel value as an argument. Otherwise, user-defined, parametric surface functions can be directly specified by selecting SurfaceLabel -> OtherShape and using three-dimensional pure functions of two variables in surfacevalue. An example of such a user-defined, parametric surface function is: Function[{s,t},{s^2+t^2,s,t}]. Component objects are built by nesting ComponentFoundation at the center of the various other generic building blocks that give additional attributes to the component. ComponentFoundation defines the overall shape of the optic while other building blocks either determine how the element is graphically rendered, such as ComponentRendering, or give the optical properties of the different internal surfaces, such as Refraction, Reflection, and Diffraction.
See also: OffAxis, ActiveComponent, FunctionCenter, and ModelSurfaceShape.
ComponentID
ComponentID is a rule of Component and a rule embedded within Surfaces of Component that specifies a unique identification number.
ComponentID is usually determined by the function Unique during the creation of a Component object. As a rule of Ray, ComponentID indicates the component encountered by the ray segment. See also: BuildComponent, ComponentFoundation, and Component.
ComponentIncrement
ComponentIncrement -> value is a rule of Ray that forces a change in the next generated Ray object's component target.
ComponentIncrement -> Automatic causes Ray to proceed in the same direction through the component listing according to SurfaceIncrement, a related parameter. ComponentIncrement -> integer forces an immediate change of the component targeted by Ray, by the amount given by integer. As an example, ComponentIncrement -> -2, would cause -2 to be subtracted from the ComponentNumber parameter in Ray. The ComponentIncrement parameter reverts back to the Automatic setting after one propagation iteration. See also: ConfinedPosition, ComponentNumber, IntersectionNumber, GenerationNumber, ConfinedNumber, and SurfaceNumber.
ComponentMedium
ComponentMedium is an option of component functions that indicates the type of material used in the fabrication of the component.
This label is used by ModelRefractiveIndex in calculating the RefractiveIndex parameter, but can be used by other material-related models as well as ModelIntensity. ComponentMedium is an option of all refractive components such as the Refraction genetic building block. See also: IntrinsicMedium, OpticalMedium, RefractiveIndex, and ModelRefractiveIndex.
ComponentNumber
ComponentNumber is a rule of Ray that indicates the slot position of the affected component encountered by the ray segment.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
ComponentQ
ComponentQ[x] tests whether x is a Component object. The result is True or False.
ComponentRendering
ComponentRendering[component, options] is a generic building block that contructs information about the rendering of a component.
ComponentRendering defines how each surface within component is graphically rendered. If the component parameter contains multiple surfaces, then ComponentRendering also graphically connects the edges of the different surfaces together. GraphicDesign is an option to ComponentRendering that characterizes the component rendering. GraphicDesign has possible five styles. These are Automatic, Sketch, Wire, Solid, and Off. These styles are also options of ComponentRendering that characterize the rendering at a primitive level and are further defined with SurfaceRendering, EdgeRendering, and CrossRendering, although EdgeRendering does not apply to single-surfaced components. The component rendering can be controlled either by giving separate rendering commands for each suboption or by using the GraphicDesign option. See also: GraphicDesign, SurfaceRendering, EdgeRendering, and CrossRendering.
ComponentSelect
ComponentSelect[objectset, selectionproperties] takes an object set composed of Component objects, and returns a filtered list of Component objects that shares the common set of traits specified in selectionproperties.
There are two ways of specifying selectionproperties: the first way is to give a list of Component rules selected. The second way is to give a function that takes Component rules as inputs and returns True or False. An example of the first method is {TranslationVector -> {0, 0, 0}, ComponentNumber -> 2}. An example of the second method is Function[{ComponentNumber, TranslationVector}, ComponentNumber == 2 && TranslationVector[[1]] > 0]. If selectionproperties === All or selectionproperties is left out, then all Component objects are passed back. ComponentSelect[objectset] returns an unfiltered list of Component objects. ComponentSelect can also be used to translate TurboTrace data into Component object format.
ComponentSelectComponentOrientation
ComponentSelectComponentOrientation is a an option of ShowComponentOrientation that determines the numbers of components, for which an orientation should be drawn. See also: ShowSystem, ShowComponentOrientation.
ComponentTransformation
ComponentTransformation -> {translationvector, rotationmatrix} is a rule within Surfaces of Component that describes the original position and orientation of the parent component of the surface. Functions grouping components together, like Resonate, do not change ComponentTransformation. See also: TranslationVector, RotationMatrix
CompoundLens
CompoundLens[curvatures, surfaceboundaries, surfaceseparations, opticalmediumlist, label, options] refers to a lens assembly that consists of spherical and aspherical refracting surfaces.
The curvatures can be specified either by radiusofcurvatures, inverse radiusofcurvatures, and aspheric polynomial coefficients (see also: AsphericLensSurface), where either Infinity or 0 can be used to indicate planar surfaces. In addition, CompoundLens is specified by a list of surface separations. The opticalmediumlist must also be specified either as a list of symbols to identify built-in index functions, a list of numbers to define refractive index values, or as a list of functions. CompoundLens is created with its first surface centered about the origin and the remaining surfaces positioned down the x axis. The surfaceboundaries parameter gives a list of apertures that correspond to each surface, where an aperture may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CompoundLens may also include pinhole surfaces to provide field stops. Such a pinhole is detected by CompoundLens where IntrinsicMedium is listed twice consecutively or is given as the first element within opticalmediumlist. In such a case, the inside hole boundary is taken from corresponding aperture in surfaceboundaries and the outside boundary of the pinhole is taken from the average aperture size of the next neighboring lens surface(s). The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics. See also: LensDoublet and LensTriplet.
Conductive
Conductive is a value of Theory, for example returned by ModelRefractionTheory, to characterize a conductive, nonmagnetic medium.
Conductivity
Conductivity is a rule of Ray that gives the conductivity value for the ray segment in the local environment. The effective relative permittivity is calculated with the conductivity as (relative permittivity + I * (wavelength * conductivity) / (2 * Pi * vacuum speed of light * permittivity free space)).
ConeOfRays
ConeOfRays[seed, spread, options] initializes a set of rays distributed along a funnel-shaped surface that is oriented down the positive x-axis for the default BirthPoint setting.
The spread parameter is taken as the full cone angle, in degrees units, for the default BirthPoint setting of Automatic. However, for other BirthPoint settings, the spread parameter specifies the intercept spatial dimensions, at the y-z plane, of the ray set. If spread is a list of two positive numbers {width, height}, then the cone has rectangular shaped cross-section. If spread is a single number, then the cone has a circular shaped cross-section. If spread is a list of two negative numbers {-width, -height}, then the cone has elliptical shape given by {width, height}.
The seed parameter is optional and is used to generate more elaborate ray patterns. When it is present, it specifies additional light sources to be nested with the basic ConeOfRays result. When PropagateSystem is used for the ray trace, ConeOfRays produces a set of Ray objects. However, with TurboTrace calculations, a TurboRays object is generated from ConeOfRays instead. The distribution of rays is controlled by the GridSpacing option and the starting origin is defined by the BirthPoint option.
See also: NumberOfRays, MonteCarlo, GridSpacing, SourceFraction, SourceOffset, BirthPoint, SingleRay, CircleOfRays, WedgeOfRays, LineOfRays, GridOfRays, PointOfRays, CustomRays, FieldOfRays, GaussianBeam, and RainbowOfRays.
Confine
Confine[listofcomponents, entrancesurfacenumbers, options] is a generic building block used to encapsulate the list of Component objects into a single Component object that allows rays to enter the component only through surfaces specified by entrancesurfacenumbers.
Confine is used in conjunction with the Resonate generic building block to create arrays of multiple-surfaced elements, such as fiber optic bundles. Confine passes options to BuildComponent. See also: Resonate and Unconfine.
ConfinedNumber
ConfinedNumber is a rule of Ray that gives the present slot position of the outermost nested element within ConfinedPaths of Component.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
ConfinedPaths
ConfinedPaths is a rule of Component that indicates a nested list of rules that define the confined propagation behavior of a ray migrating through the component.
ConfinedPaths lists all of the confined migration pathways available for the impinging ray. ConfinedPaths contains lists including SurfaceNumber and DeflectionNumber rules. See also: ConfinedNumber.
ConfinedPosition
ConfinedPosition is a rule of Ray that gives the present slot position of the innermost nested element within ConfinedPaths of Component.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
ConjugateBeamSplitter
ConjugateBeamSplitter[{percentreflected, percenttransmitted}, aperture, label, options] and ConjugateBeamSplitter[{percentreflected, percenttransmitted}, aperture, thickness, label, options] designate a planar component that has a partially conjugate-reflective/transmissive side and, with a thickness specified, a refractive side.
ConjugateBeamSplitter is created with its splitting surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
ConjugateMirror
ConjugateMirror[aperture, label, options] and ConjugateMirror[aperture, thickness, label, options] refer to a planar, phase-conjugate reflective mirror.
The thickness refers to the refractive substrate of the mirror. If no thickness value is given, the component is a single-sided mirror. ConjugateMirror is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
ConjugateReflection
ConjugateReflection[component, options] is a generic building block produces conjugate-reflected rays from optical surfaces.
ConnectSelectedPoints
ConnectSelectedPoints is an option of ShowSelectedPoints that allows connection of points See also: ShowSystem.
ConserveEnergy
ConserveEnergy -> True/False is an option of the ScatterRays that indicates whether Intensity values in the scattered rays should be reduced to conserve overall energy.
Constrain
Constrain -> {coordinatepoints} is an option of AnalyzeSystem/ShowSystem based on mouse-generated coordinatepoints that repositions components and rays along a constrained horizontal or vertical axis of movement.
Constrain uses a list of coordinatepoints taken with the mouse from the rendered graphics to indicate the objects getting translated and the new translation coordinates. Object-sequence positions may also be used to specify objects instead of coordinatepoints. Constrain uses the two-dimensional coordinate system given in PlotType.
See also: DrawSystem, PlotType, ToleranceSelection, ToleranceDoubleClick, SnapGrid, SnapGridOffset, Move, MoveReflected, Arrange, Rotate, Copy, Snap, Align, Transform, Add, Swap, Remove, Identify.
ConstructMeritFunction
ConstructMeritFunction[opticalsystem, options] constructs a RayTraceFunction that calculates the performance of an optical system for a specified set of input parameters.
ConstructMeritFunction calls TurboTrace to create the RayTraceFunction according to the MeritType option setting. MeritType is internally converted by ConstructMeritFunction into particular settings for the ReportedParameters and ReportedFunction options. As an alternative to using the MeritType option, the user can instead work directly with the ReportedParameters and ReportedFunction options. ConstructMeritFunction is used by OptimizeSystem. See also: OptimizeSystem, MeritType, TurboTrace, and RayTraceFunction.
ConvertOptics
ConvertOptics[objectset, outputtype] takes an objectset composed of rays and/or components, and returns an objectset in the different format given by the OutputType setting.
The function is called at the beginning and end of TurboTrace, PropagateSystem, and ShowSystem. In RaySelect, ComponentSelect, ReadRays, and ReadComponents, the OutputType option is passed to ConvertOptics to change object formats. ConvertOptics uses the following OutputType settings: OpticalSystem, StandardGraphics, TurboSystem, and Surfaces.
CoordinateSystem
CoordinateSystem -> coordinatesystem is an option of geometric sources and some utility functions that gives the coordinate system being used for points.
It may take the values PolarCoordinates and CartesianCoordinates or a list thereof. Sources apply only the first the value in combination with BirthPoint.
Copy
Copy -> {coordinatepoints} is an option of AnalyzeSystem/ShowSystem based on mouse-generated coordinatepoints that duplicates and moves the new components and rays.
Copy uses a list of coordinatepoints taken with the mouse from the rendered graphics to select objects and produce a copy of objects relative to the last indicated coordinatepoints. Object-sequence positions may also be used to specify objects instead of coordinatepoints. Copy uses the two-dimensional coordinate system given in PlotType.
See also: DrawSystem, PlotType, ToleranceSelection, ToleranceDoubleClick, SnapGrid, SnapGridOffset, Move, MoveReflected, Arrange, Rotate, Constrain, Snap, Align, Transform, Add, Swap, Remove, Identify.
CosineCompensation
CosineCompensation -> True/False is an option of FindIntensity that specifies whether the ray intensities are weighted by the Cosine of their angle of incidence with the surface normal. See also: SequentialRead.
CoupledWaveTheory
CoupledWaveTheory->True/False is an option that indicates whether a specialized form of couple-wave theory is used for calculating the diffraction efficiency of gratings.
CoupledWaveTheory->True accurately describes the polarization-dependent behavior of a volumetic phase grating with a cosine index profile and two deflected waves without absorption. The present implementation of CoupledWaveTheory->True can only model the zero and first diffracted orders and cannot be applied to higher order terms of diffraction. Otherwise, CoupledWaveTheory->False can be used to model any combination of diffracted orders. The diffraction efficiency of diffracted terms in CoupledWaveTheory->False is based on the combined settings of the DiffractedOrders and EfficiencyFunction options. Although CoupledWaveTheory->False accurately models optical path length and diffraction directions, it does not incorporate polarization effects or model diffraction efficiency in the precise manner of CoupledWaveTheory->True.
See also: DiffractedOrders, EfficiencyFunction, Diffraction and Grating.
CreateClones
CreateClones -> {{coordinates, rotationmatrix, componentnumber, scale}, ...} specifies the placement of one or more phantom optical components to be used during the ray trace. These component aliases exhibit the raytrace behavior of the original component members but do not consume additional computer memory. This permits the efficient nonsequential ray tracing of large arrays of optical elements.
In the specification of CreateClones, the coordinates parameter gives the two or three-dimensional location of the cloned object, rotationmatrix provides the cloned optic orientation, componentnumber denotes which component in the optical system list will be cloned, and scale indicates the relative size of the new clone. In addition to taking a single numeric value, the scale parameter can also take a list of three numbers to specify three separate coordinate scales. If no twisting about the rotation axis is required, the unit-direction vector (the first rotationmatrix element) can be used on its own and the remaining rotationmatrix elements will be internally calculated. During the specification of CreateClones, rotationmatrix, componentnumber, and scale are all optional parameters that can be selectively omitted or mixed-in, however, componentnumber must also be present before a scale can be specified. When not present, rotationmatrix, componentnumber, and scale will assume the respective values of: {{1,0,0},{0,1,0},{0,0,1}}, 1, and 1.
CreateClones permits a wide variety of input data formats. For very large systems of specified elements, CreateClones also permits the use of packed arrays. In such a case, each set of parameters in the element listing is presented as a flattened list of real numbers. CreateClones also permits the specification of multiple sets of optical arrays. This is accomplished with an additional nesting of the data: {{{coordinates, rotationmatrix, componentnumber, scale}, ...},...}. Here, the rays are nonsequentially traced within each array, but are sequentially traced between the array data sets.
Although CreateClones only operates within the TurboTrace engine, CreateClones may also be specified for AnalyzeSystem/DrawSystem. In such an event, TracingEngine->TurboTrace is automatically used instead of PropagateSystem. See also: ShowClones, CloneSortLength, CloneSortMethod, ComponentNumber, TranslationVector, and RotationMatrix.
CreatedRay
CreatedRay is a value of TakeFrom, AddTo, and ReplaceFor and denotes that the Ray objects created by previous ray-tracing function calculations are passed to or returned from DeflectionFunction.
If CreatedRay is listed by TakeFrom, then CreatedRay is sequentially fed as an input to the ray-tracing function, with each sequential result creating a different output. The elements of CreatedRay are inserted into the previous Ray objects generated at this surface if CreatedRay is listed by AddTo. See also: ChangedRay, AllCreatedRays, and OriginalRay.
CreateFiberShape
CreateFiberShape[points] uses a list of two-dimensional points to create a set of fitted parametric-functions along with the fiber length.
CreateFiberShape is designed to work with CustomFiber and CustomFiberMirror. See also: Fiber, CustomFiber, and CustomFiberMirror.
CreateRay
CreateRay[source, options] is used by PropagateSystem and TurboTrace to generate either Ray objects or a TurboRays object that represents a set of rays for the given source.
In addition, CreateRay fills in any essential ray parameters missing from the specified source by taking default values from Options[Ray]. Check Options[Ray] for default settings. The option ChangeRay can be used suppress changes, if the ray contains all necessary rules for propagation. The OutputType -> Ray/TurboRays option of CreateRay is used internally by PropagateSystem and TurboTrace to determine the ray object-type that is generated. See also: CreateRays.
CreateRays
CreateRays[source, options] is used by PropagateSystem and TurboTrace to generate either Ray objects or a TurboRays object that represents a set of rays for the given source.
In addition, CreateRay fills in any essential ray parameters missing from the specified source by taking default values from Options[Ray]. Check Options[Ray] for default settings. The option ChangeRay can be used suppress changes, if the ray contains all necessary rules for propagation. The OutputType -> Ray/TurboRays option of CreateRay is used internally by PropagateSystem and TurboTrace to determine the ray object-type that is generated. CreateRays is an alias of CreateRay.
CreateRefractiveIndexModel
CreateRefractiveIndexModel[datalist, materiallabel] creates a wavelength-dependent model that is fitted to the data for the index model specified by the RayicaFunction option.
Note that the materiallabel is used for the purposes of referencing the particular material within Rayica. Although materiallabel can be given as a string (such as "NewName"), it is often given as a symbolic object (such as NewName). The datalist should have the following format: {{wavelength1, index1}, {wavelength2, index2}, {wavelength3, index3}, ...}. CreateRefractiveIndexModel plots the data points against the fitted function, revealing model deficiencies. Finally, CreateRefractiveIndexModel defines the refractive model in Rayica. With the SaveData->True setting, this model is also stored in Rayica's database on disk for future retrieval and use. See also: IndexInterpolationFunction, SellmeierFunction, CreateRefractiveIndexModel, GlassCodeFunction, HerzbergerFunction, ModelRefractiveIndex, and ModelIntensity.
CrossRendering
CrossRendering is an option of ComponentRendering that designates the graphical rendering of a cross that bridges the interior of a double-sided component and forms crossed lines on a single-sided component.
CrossRendering may take the values: Fill, Trace, Mesh, Empty, and {Fill, Mesh}. See also: ComponentRendering, EdgeRendering, SurfaceRendering, and RenderType.
CrossStyle
CrossStyle is an option of ComponentRendering that designates the graphical primitives to be inserted before the rendering of a cross that bridges the interior of a double-sided component and forms crossed lines on a single-sided component.
It is a list of two rules: LineStyle and FillStyle. See also: DefaultStyle, SurfaceStyle, EdgeStyle.
CrownAngle
CrownAngle is an option of the Solitaire prism that denotes the angle (in degrees) that the Crown facet makes with respect to the girdle waist. Note that CrownAngle and CrownHeight are complementary ways of fixing the bezel facet geometry on the crown (above the girdle).
Specialized options of the Solitaire prism include: TableDiameter, GirdleThickness, CrownAngle, PavilionAngle, StarDiameter, BackFacetDiameter, CrownHeight, PavilionDepth, CuletAngle, and CuletDiameter.
CrownGlass
CrownGlass designates the use of a crown glass medium.
The refractive index model for CrownGlass is most suitable for the wavelength range of .44 microns to .66 microns.
CrownHeight
CrownHeight is an option of the Solitaire prism that indicates the vertical distance from the girdle waist to the top table facet as a percentage of the overall Solitaire diameter. Note that CrownAngle and CrownHeight are complementary ways of fixing the bezel facet geometry on the crown (above the girdle).
Specialized options of the Solitaire prism include: TableDiameter, GirdleThickness, CrownAngle, PavilionAngle, StarDiameter, BackFacetDiameter, CrownHeight, PavilionDepth, CuletAngle, and CuletDiameter.
CuletAngle
CuletAngle is an option of the Solitaire prism that denotes the full angle (in degrees) spanned by the solitaire vertex (culet). Note that CuletAngle, PavilionDepth, and PavilionAngle are all complementary ways of defining the facet dimensions on the pavilion (below the girdle).
Specialized options of the Solitaire prism include: TableDiameter, GirdleThickness, CrownAngle, PavilionAngle, StarDiameter, BackFacetDiameter, CrownHeight, PavilionDepth, CuletAngle, and CuletDiameter.
CuletDiameter
CuletDiameter is an option of the Solitaire prism that indicates the diameter of the solitaire vertex (culet) facet as a percentage of the overall Solitaire diameter.
Specialized options of the Solitaire prism include: TableDiameter, GirdleThickness, CrownAngle, PavilionAngle, StarDiameter, BackFacetDiameter, CrownHeight, PavilionDepth, CuletAngle, and CuletDiameter.
CurvatureDirection
CurvatureDirection is an option of convex and concave lenses that specifies which side of the created lens is curved as indicated by word values Front or Back.
If Front is used, then the curved side is placed at the origin and the planar side is created one thickness position down the x axis.
CurvatureTolerance
CurvatureTolerance is a database rule name that specifies the manufacturing radius-of-curvature tolerances of an optical component expressed as a percentage.
CurvatureTolerance can also apply to non-spherical, curved components such as parabolic mirrors.
CustomBaffle
CustomBaffle[surfacefunction, aperture, label, options] and CustomBaffle[surfacefunction, aperture, thickness, label, options] designate a light-absorbing component that has a user-defined surfacefunction.
Here, the user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomBaffle is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
CustomBeamSplitter
CustomBeamSplitter[surfacefunction, {percentreflected, percenttransmitted}, aperture, objectlabel, label, options] and CustomBeamSplitter[surfacefunction, {percentreflected, percenttransmitted}, aperture, thickness, label, options] denote a component that partially reflects and partially transmits rays of light that has a user-defined surfacefunction.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. BeamSplitter is created with its splitting surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomBirefringentLensSurface
CustomBirefringentLensSurface[surfacefunction, axisangle, aperture, label, options] indicates a component that has a user-defined surfacefunction that models the refractive index boundary.
CustomBirefringentLensSurface is always used in combination with one or more additional BirefringentLensSurface component types to create a complete optical element. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomBirefringentLensSurface is created with its surface centered about the origin. CustomBirefringentLensSurface uses the option ComponentMedium -> {mediumA, mediumB} to designate the type of birefringent optical material with the alignment axis of materialA given by axisangle. Otherwise, ComponentMedium -> {{mediumO, mediumE}, isotropicmedium} specifies the interface with an isotropic material other than the default IntrinsicMedium setting. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: BirefringentLensSurface, LinearPolarizer, RetardationPlate, and JonesMatrixOptic.
CustomBranchingSurface
CustomBranchingSurface[surfacefunction, aperture, componentincrement, objectlabel, label, options] designates a component that causes intersecting rays to branch to a different component position relative to the list position held by CustomBranchingSurface.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomBranchingSurface is usually employed after a beam-splitter-type component, in order to redirect split rays down a different component-listing pathway, thereby shortening ray-trace calculation times. CustomBranchingSurface is not visually rendered, but can be used to sample the ray/surface positions. CustomBranchingSurface is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. Because CustomBranchingSurface is not supported by TurboTrace, it now has limited application with the new version of Rayica. As such it is recommended to use the Resonate function instead.
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomConjugateBeamSplitter
CustomConjugateBeamSplitter[surfacefunction, {percentreflected, percenttransmitted}, aperture, label, options] and CustomConjugateBeamSplitter[surfacefunction, {percentreflected, percenttransmitted}, aperture, thickness, label, options] denote a component that partially conjugate-reflects and partially transmits rays of light that has a user-defined surfacefunction.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. BeamSplitter is created with its splitting surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomConjugateMirror
CustomConjugateMirror[surfacefunction, aperture, label, options] and CustomConjugateMirror[surfacefunction, aperture, thickness, label, options] designate a phase-conjugate mirror that has a user-defined surfacefunction.
The thickness refers to the refractive substrate of the mirror. If no thickness value is given, the component is a single-sided mirror. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomConjugateMirror is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. Hole -> holeaperture creates hole in the mirror. Depending on the InputEdgeThickness option setting, the thickness parameter may denote either the small edge thickness or the center thickness of the component. With InputEdgeThickness -> True, the thickness parameter is taken for the maximum edge thickness. The Centered option can be used to change substrate rear surface position in off-axis parabolic mirrors. For Centered -> True indicates that the substrate rear surface is located directly behind and parallel with the local off-axis mirror surface. With Centered -> True only InputEdgeThickness -> True is recognized. For Centered -> False, the substrate orientation remains fixed with the y-z plane and parallel with the parabolic vertex. In addition, Centered -> False changes the specified aperture is taken for the projected boundary shape onto the y-z plane (as seen from projection down the primary optical (x) axis). For Centered -> True, the specified aperture is taken as the actual boundary shape of the off-axis surface (as seen by projection down the local surface normal). The Centered -> Automatic option automatically changes its value to fit best with other options settings of CustomConjugateMirror.
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomDeflectionFunction
CustomDeflectionFunction is a label of DeflectionFunction that designates a user-defined deflection.
CustomDeflections
CustomDeflections[component, raydeflectfunction, functionlabel, options] is a generic building block that allows the user to create custom ray-tracing functions.
CustomDiffuser
CustomDiffuser[surfacefunction, scatteringparameter, aperture, label, options], CustomDiffuser[surfacefunction, scatteringparameter, aperture, thickness, label, options], and CustomDiffuser[{surfacefunction1, surfacefunction2}, scatteringparameter, aperture, thickness, label, options] denote a custom-shaped component that splits incoming rays into diffused rays rays using the ray scattering distribution pattern given in scatteringparameter.
The scatteringparameter can either be light source function or a listing of one or more angles that describe the scattering behavior. If a light source function is specified, then the ScatterRays function is called internally. An example of a light-source scatteringparameter is WedgeOfRays[90, NumberOfRays->1, MonteCarlo -> True]. Otherwise, if a single number or a list of numeric scatter angles are passed in the scatteringparameter, then AddRandomRayTilt is called instead. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The thickness refers to the refractive substrate of the diffuser. If no thickness value is given, the component is a single-sided diffuser.
CustomDiffuser refers to a component that has a user-defined surfacefunction. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomDiffuser weights the scattered ray Intensity values according to seed ray Intensity values. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ScatterRays, AddRandomRayTilt, Diffuser, DiffuserMirror, SphericalDiffuserMirror, and CustomDiffuserMirror.
CustomDiffuserMirror
CustomDiffuserMirror[surfacefunction, scatteringparameter, aperture, label, options], CustomDiffuserMirror[surfacefunction, scatteringparameter, aperture, thickness, label, options], and CustomDiffuserMirror[{surfacefunction1, surfacefunction2}, scatteringparameter, aperture, thickness, label, options] denote a custom-shaped component that splits incoming rays into diffused rays reflected rays using the ray scattering distribution pattern given in scatteringparameter.
The scatteringparameter can either be light source function or a listing of one or more angles that describe the scattering behavior. If a light source function is specified, then the ScatterRays function is called internally. An example of a light-source scatteringparameter is WedgeOfRays[90, NumberOfRays->1, MonteCarlo -> True]. Otherwise, if a single number or a list of numeric scatter angles are passed in the scatteringparameter, then AddRandomRayTilt is called instead. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The thickness refers to the refractive substrate of the diffuser. If no thickness value is given, the component is a single-sided diffuser. CustomDiffuserMirror refers to a component that has a user-defined surfacefunction. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomDiffuser weights the scattered ray Intensity values according to seed ray Intensity values. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ScatterRays, AddRandomRayTilt, Diffuser, DiffuserMirror, SphericalDiffuserMirror, and CustomDiffuser.
CustomFiber
CustomFiber[{fx, fy, fz}, {corediameter, claddingdiameter}, length, label, options] designates a curved, stepped-index optical fiber that follows a curve specified in the parametric functions, {fx, fy, fz}.
The refractive core and cladding materials are given by the option, ComponentMedium -> {corematerial, claddingmaterial}. CustomFiber[{fx, fy, fz}, corediameter, length, options] indicates a bare optical fiber. CustomFiber can also have an elliptical cross section with the option EllipseRatio. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: Fiber, CustomFiberMirror, and CreateFiberShape.
CustomFiberMirror
CustomFiberMirror[{fx, fy, fz}, diameter, length, label, options] designates a curved, reflective, fiber-like tube that follows a curve specified in the parametric functions, {fx, fy, fz}.
CustomFiberMirror can also have an elliptical cross section with the option EllipseRatio. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: Fiber, CustomFiber, and CreateFiberShape.
CustomGeneticFunction
CustomGeneticFunction is now replaced by CustomDeflections.
CustomGrating
CustomGrating[surfacefunction, gratingfunction, aperture, label, options] and CustomGrating[surfacefunction, gratingfunction, aperture, thickness, label, options] denote a diffractive component that splits incoming rays into multiple diffracted orders according to the gratingfunction parameter and the DiffractedOrders option.
The thickness refers to the refractive substrate of the grating. If no thickness value is given, the component is a single-sided grating. According to the GratingThickness option, a refractive part may be present in the grating.
CustomGrating refers to a component that has a user-defined surfacefunction. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. For double-sided components a list of two surfacefunctions is used. The gratingfunction parameter specifies a grating vector either as a one-dimensional value, Gy, a two-dimensional list of values, {Gy, Gz}, a three-dimensional list of values, {Gx, Gy, Gz}, or a three-dimensional function, Function[{s,t}, {Gx[s,t], Gy[s,t], Gz[s,t]}], in which {Gx, Gy, Gz} specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter indicates a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers designates a uniformly distributed grating vector whose direction lies within the surface plane.
If you compare results with calculations by hand, please keep track of the correspondence of the options VacuumFrequency and GratingMedium. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: GratingTheory, EfficiencyFunction, GratingMirror, SphericalGratingMirror, and Diffraction.
CustomGratingMirror
CustomGratingMirror[surfacefunction, gratingfunction, aperture, label, options] and CustomGratingMirror[surfacefunction, gratingfunction, aperture, thickness, label, options] designate a diffractive, reflective component that splits incoming rays into multiple diffracted, reflected orders according to the gratingfunction parameter and the DiffractedOrders option.
The thickness refers to the refractive substrate of the grating. If no thickness value is given, the component is a single-sided grating. According to the GratingThickness option, a refractive part may be present in the grating. CustomGratingMirror refers to a component that has a user-defined surfacefunction. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. The gratingfunction parameter specifies a grating vector either as a one-dimensional value, Gy, a two-dimensional list of values, {Gy, Gz}, a three-dimensional list of values, {Gx, Gy, Gz}, or a three-dimensional function, Function[{s,t}, {Gx[s,t], Gy[s,t], Gz[s,t]}], in which {Gx, Gy, Gz} specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter indicates a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers relates to a uniformly distributed grating vector whose direction lies within the surface plane.
If you compare results with calculations by hand, please keep track of the correspondence of the options VacuumFrequency and GratingMedium. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: GratingTheory, EfficiencyFunction, GratingMirror, Grating, and Diffraction.
CustomGratingSurface
CustomGratingSurface is obsolete. Please use CustomGrating with no thickness instead.
CustomIntrinsicSurface
CustomIntrinsicSurface[surfacefunction, aperture, medium1, medium2, label, options] indicates a component that has a user-defined surfacefunction that models the refractive index boundary between two different refractive mediums.
The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. Refractive components encountered by rays that have previously encountered CustomIntrinsicSurface are refracted using the new IntrinsicMedium value given by IntrinsicSurface. CustomIntrinsicSurface uses parameters medium1 and medium2 to obtain intrinsic index functions on each side of the fluid boundary. If the ray is coming from an environment that has an intrinsic index given by medium1, then the value of IntrinsicMedium of the Ray object is replaced by medium2. Likewise, if the ray is coming from an environment that has an intrinsic index given by medium2, then the value of IntrinsicMedium of the Ray object is replaced by medium1. CustomIntrinsicSurface is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it.
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics. Please mote that all IntrinsicSurface-related functions are only intended for very specialized applications that involve changing the surrounding ambient environment of an optical system and are seldom ever used. For most applications involving refractive surfaces, a LensSurface-type function should be used instead.
See also: the SwitchIntrinsicMedium genetic building block. IntrinsicSurface, IntrinsicSphericalSurface, and IntrinsicCylindricalSurface are all related components.
CustomJonesMatrixOptic
CustomJonesMatrixOptic[surfacefunction, Jonesmatrix, axisangle, aperture, thickness, label, options] is the underlying function of JonesMatrixOptic to create curved optics.
If the thickness parameter is zero or is omitted, then the optic will be created without any thickness. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomLens
CustomLens[f1, f2, aperture, thickness, label, options] designates a double-surfaced refractive component having user-defined surface functions.
The surfaces are given by f1 and f2, where f1 and f2 are three-dimensional surface equations, and Function[0.] is used to specify planar surfaces. CustomLens is created with its first surface centered about the origin and its second surface positioned down the x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomLensSurface
CustomLensSurface[surfacefunction, aperture, label, options] indicates a component that has a user-defined surfacefunction that models the refractive index boundary at a lens surface.
CustomLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomLensSurface is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: SurfaceFacet, LensSurface, SphericalLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface.
CustomLinearPolarizer
CustomLinearPolarizer[surfacefunction, axisangle, aperture, thickness, label, options] is the underlying function of LinearPolarizer to create curved optics.
If the thickness parameter is zero or is omitted, then the optic will be created without any thickness. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomMirror
CustomMirror[surfacefunction, aperture, objectlabel, options] and CustomMirror[surfacefunction, aperture, thickness, objectlabel, options] designate a mirror that has a user-defined surfacefunction, and a user-named objectlabel.
The thickness refers to the refractive substrate of the mirror. If no thickness value is given, the component is a single-sided mirror. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. CustomMirror is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. Hole -> holeaperture creates hole in the mirror. Depending on the InputEdgeThickness option setting, the thickness parameter may denote either the small edge thickness or the center thickness of the component. With InputEdgeThickness -> True, the thickness parameter is taken for the maximum edge thickness. The Centered option can be used to change substrate rear surface position in off-axis parabolic mirrors. For Centered -> True indicates that the substrate rear surface is located directly behind and parallel with the local off-axis mirror surface. With Centered -> True only InputEdgeThickness -> True is recognized. For Centered -> False, the substrate orientation remains fixed with the y-z plane and parallel with the parabolic vertex. In addition, Centered -> False changes the specified aperture is taken for the projected boundary shape onto the y-z plane (as seen from projection down the primary optical (x) axis). For Centered -> True, the specified aperture is taken as the actual boundary shape of the off-axis surface (as seen by projection down the local surface normal). The Centered -> Automatic option automatically changes its value to fit best with other options settings of CustomMirror.
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomPrism
CustomPrism[facetpointlisting, label, options] creates a multi-faceted prism with user-specified optical properties.
As its first parameter, CustomPrism accepts either a Graphics3D object or a nested list of three-dimensional points to describe the facet vertices. The optical properties of CustomPrism are specified by the SurfaceType option. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression.
See also: SurfaceType and SurfaceFacet.
CustomRays
CustomRays[seed, {{name, vector}..}, options] initializes a set of user-defined rays.
The name parameter designates an optionname of Ray, the vector contains the corresponding values. For example {RayStart, Flatten[Table[{0, i, j}, {i, -3, 3}, {j, -2, 2}], 1]} can be used to define a planar equidistant grid of rays. All vector parameters must have the same dimension or an integer multiple of the shortest vector. For ResolvePoints -> True, every data point that generates a ray is considered to be an independent source.
The seed parameter is optional and is used to generate more elaborate ray patterns. When it is present, it specifies additional light sources to be nested with the basic CustomRays result. When PropagateSystem is used for the ray trace, CustomRays produces a set of Ray objects. However, with TurboTrace calculations, a TurboRays object is generated from CustomRays instead.
See also: SingleRay, CircleOfRays, ConeOfRays, WedgeOfRays, LineOfRays, GridOfRays, PointOfRays, CustomRays, FieldOfRays, GaussianBeam, and RainbowOfRays.
CustomRetardationPlate
CustomRetardationPlate[surfacefunction, wavedifference, axisangle, aperture, thickness, label, options] is the underlying function of RetardationPlate to create curved optics.
If the thickness parameter is zero or is omitted, then the optic will be created without any thickness. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CustomScreen
CustomScreen[surfacefunction, aperture, label, options] designates a component that intersects rays without disturbing them.
CustomScreen denotes a single-surfaced component that has a user-defined surfacefunction. The component shape, given by surfacefunction, is specified either by a function of two variables or by Function[0.] for planar surfaces. Although CustomScreen is usually not rendered, the ray/screen intersections can be rendered by using the DrawSystem option, PlotType->Surface. CustomScreen is created with its surface centered about the origin. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CylinderGraphic
CylinderGraphic[diameter, length, label, options] refers to a three-dimensional cylinder with one circular center placed at the origin and its length directed down the positive x axis.
CylinderGraphic can be created with a partially opened side wall, using the option OpenSide from Options[CylinderGraphic]. OpenSide takes values {startangle, finishangle} or False. CylinderGraphic does not interact with rays in any way, but can be listed with active components or with other graphics components for creating passive three-dimensional shapes. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression.
CylindricalBaffle
CylindricalBaffle[radius, aperture, label, options] and CylindricalBaffle[radii, aperture, thickness, label, options] refer to a cylindrical component that absorbs light.
CylindricalBaffle is created with its surface centered about the origin. The aperture parameter may indicate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CylindricalDiffuser
CylindricalDiffuser[radius, scatteringparameter, aperture, label, options] and CylindricalDiffuser[radius, scatteringparameter, aperture, thickness, label, options] denote a spherical, diffusing, component that splits incoming rays into diffused rays rays after an optical surface using the ray scattering distribution pattern given in scatteringparameter.
The scatteringparameter can either be light source function or a listing of one or more angles that describe the scattering behavior. If a light source function is specified, then the ScatterRays function is called internally. An example of a light-source scatteringparameter is WedgeOfRays[90, NumberOfRays->1, MonteCarlo -> True]. Otherwise, if a single number or a list of numeric scatter angles are passed in the scatteringparameter, then AddRandomRayTilt is called instead. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The thickness refers to the refractive substrate of the diffuser. If no thickness value is given, the component is a single-sided diffuser. CylindricalDiffuser weights the scattered ray Intensity values according to seed ray Intensity values. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ScatterRays, AddRandomRayTilt, Diffuser, DiffuserMirror, CustomDiffuser, and CustomDiffuserMirror.
CylindricalDiffuserMirror
CylindricalDiffuserMirror[radius, scatteringparameter, aperture, label, options] and CylindricalDiffuserMirror[radius, scatteringparameter, aperture, thickness, label, options] denote a spherical, diffusing, reflective, component that splits incoming rays into diffused rays reflected rays after an optical surface using the ray scattering distribution pattern given in scatteringparameter.
The scatteringparameter can either be light source function or a listing of one or more angles that describe the scattering behavior. If a light source function is specified, then the ScatterRays function is called internally. An example of a light-source scatteringparameter is WedgeOfRays[90, NumberOfRays->1, MonteCarlo -> True]. Otherwise, if a single number or a list of numeric scatter angles are passed in the scatteringparameter, then AddRandomRayTilt is called instead. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The thickness refers to the refractive substrate of the diffuser. If no thickness value is given, the component is a single-sided diffuser.
CylindricalDiffuserMirror weights the scattered ray Intensity values according to seed ray Intensity values. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ScatterRays, AddRandomRayTilt, Diffuser, DiffuserMirror, CustomDiffuser, and CustomDiffuserMirror.
CylindricalGratingMirror
CylindricalGratingMirror[radius, gratingfunction, aperture, label, options] and CylindricalGratingMirror[radius, gratingfunction, aperture, thickness, label, options] denote a spherical, diffractive, reflective, component that splits incoming rays into multiple diffracted, reflected orders according to the gratingfunction parameter and the DiffractedOrders option.
The thickness refers to the refractive substrate of the grating. If no thickness value is given, the component is a single-sided grating. According to the GratingThickness option, a refractive part may be present in the grating. The gratingfunction parameter specifies a grating vector either as a one-dimensional value, Gy, a two-dimensional list of values, {Gy, Gz}, a three-dimensional list of values, {Gx, Gy, Gz}, or a three-dimensional function, Function[{s,t}, {Gx[s,t], Gy[s,t], Gz[s,t]}], in which {Gx, Gy, Gz} specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter denotes a uniformly distributed grating vector pointing in the direction of the y axis. A list of two numbers indicates a uniformly distributed grating vector whose direction lies within the surface plane.
If you compare results with calculations by hand, please keep track of the correspondence of the options VacuumFrequency and GratingMedium. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: GratingTheory, Grating, Diffraction, and Reflection.
CylindricalLens
CylindricalLens[r1, r2, aperture, thickness, label, options] specifies a lens having cylindrical surfaces.
The radii of curvatures are specified by r1 and r2 where Infinity is used to specify planar surfaces. CylindricalLens is created with its first surface centered about the origin and its second surface positioned down the x axis. The aperture parameter may denote a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CylindricalLensSurface
CylindricalLensSurface[radius, aperture, label, options] refers to a cylindrical component occupying half a complete cylinder that models the refractive index boundary at a lens surface.
CylindricalLensSurface is always used in combination with one or more additional LensSurface component types to create a complete lens object. CylindricalLensSurface is created with its surface centered about the origin. The aperture parameter may designate a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: SurfaceFacet, LensSurface, SphericalLensSurface, CylindricalLensSurface, ParabolicLensSurface, and CustomLensSurface.
CylindricalMirror
CylindricalMirror[radius, aperture, label, options] and CylindricalMirror[radius, aperture, thickness, label, options] refer to a cylindrical mirror.
The thickness refers to the refractive substrate of the mirror. If no thickness value is given, the component is a single-sided mirror. CylindricalMirror is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. FlatSubstrate -> True creates the mirror on a flat-backed substrate. Hole -> holeaperture creates hole in the mirror. Depending on the InputEdgeThickness option setting, the thickness parameter may denote either the small edge thickness or the center thickness of the component. With InputEdgeThickness -> True, the thickness parameter is taken for the edge thickness.
The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CylindricalScreen
CylindricalScreen[radius, aperture, label, options] designates a cylindrical component that intersects rays without disturbing them.
Although CylindricalScreen is usually not rendered, the ray/screen intersections can be rendered by using the DrawSystem option, PlotType->Surface. CylindricalScreen is created with its surface centered about the origin. The aperture parameter may specify a circle, rectangle, or polygon depending on the number and type of elements listed by it. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
CylindricalShape
CylindricalShape is a value of SurfaceLabel within Component that denotes the cylindrical SurfaceFunction.
DataToRayica
DataToRayica[databaselist, options] is used to build models in Rayica of optical components, light sources, coatings, and materials from the information given in databaselist. DataToRayica[databaselist, selectionproperties, options] first calls SearchData to select for specific data items.
DataToRayica automatically recognizes the appropriate model format for each type of data entry. DataToRayica first passes databaselist and selectionproperties to SearchData. If no databaselist is directly given, DataToRayica uses the internally loaded catalog database according to the specified selectionproperties. DataToRayica uses the ReportedInterval option to restrict the maximum number of models created at one time. Note that DataToRayica may not use all present database information within the actual optical component models. See also: SearchData, ReadData, LoadData, SaveData, EditData, ExcelToData, DataToExcel, KDPToData, and ZemaxToData.
DefaultAngleSetting
DefaultAngleSetting is an option of some built-in component functions that specifies one or more default settings for internal angles of the component.
DefaultGRINIndex
DefaultGRINIndex specifys an spatial-dependent, axial-symmetric refractive index model that is given by the function: Function[(2.5-.04*Dot[SurfaceCoordinates,SurfaceCoordinates])/.#]. This is used by GRINLens when no other index model has been specified by the user. See also: GRINLens, GradeRefraction.
DefaultStyle
DefaultStyle -> primitiveslist is an option of ShowSystem that gives a list of graphic primitives to be prepended to every component rendering and component label. See also: EdgeStyle, SurfaceStyle, CrossStyle.
DeflectionFunction
DeflectionFunction -> functionlisting denotes the ray-tracing behavior at component surfaces.
DeflectionFunction is used both as a function and as a rule parameter label in Component. As a rule parameter label, DeflectionFunction -> functionlisting is contained within the Deflections rule of Component, where functionlisting can be in a direct or indirect form. In the direct form, the ray-tracing function is explicitly defined by the functionlisting. In this case, DeflectionFunction -> Function[#] specifies a pure function that uses in its input a list of objects specified by TakeFrom and returns its results to the objects specified by AddTo and ReplaceFor as a list of modified Ray or Component objects carrying only the ray or component parameters being modified. In the indirect form, the ray-tracing function is defined elsewhere, and only parameter values are passed, rather than the actual ray-tracing function definition in the functionlisting. In this case, DeflectionFunction -> {deflectionlabel, {inputparameters}} uses deflectionlabel as an identifying label to call up the appropriate external ray-tracing function. In the case of indirect ray-tracing function definitions, DeflectionFunction also plays a role as the external function head. Here, DeflectionFunction[deflectionlabel, inputparameters] = Function[#] denotes the external ray-tracing function identified by deflectionlabel. See also: Deflections, DeflectionLabel, AddTo, ReplaceFor, and TakeFrom.
DeflectionID
DeflectionID is a rule embedded within Deflections of Component that specifies a unique identification number.
DeflectionID is usually determined by the function Unique during the creation of a deflection. As a rule of Ray, DeflectionID indicates the deflection encountered by the ray segment. See also: BuildComponent, ComponentFoundation, Component.
DeflectionLabel
DeflectionLabel -> functionname denotes the ray-tracing behavior at component surfaces with the function that created the Deflections parameter. See also: Deflections, DeflectionFunction, AddTo, ReplaceFor, and TakeFrom.
DeflectionNumber
DeflectionNumber is a rule embedded within ConfinedPaths of Component that gives the slot positions of ray-tracing functions listed in Deflections.
DeflectionNumber designates all ray-tracing functions used when a ray hits the given surface. Each ray-tracing function is called up in sequence with its list position in DeflectionNumber.
Deflections
Deflections -> {{functionelement1, functionelement2, ...}, {...}, ...} is a rule giving a list of elements that define the various functions used in tracing rays within a component.
Each functionelement of Deflections follows a standard format.
{TakeFrom -> {takefromobjects}, AddTo -> {addtoobjects}, DeflectionFunction -> functionlisting}
Here takefromobjects denotes the objects used by DeflectionFunction and addtoobjects specifies the objects given by DeflectionFunction. In some cases, ReplaceFor is used instead of AddTo.
DegreeUnits
DegreeUnits -> True/False is an option that determines whether angular parameters have units of degrees or radians.
DeleteRecoveredOptions
DeleteRecoveredOptions is an option of BuildComponent and RecoverInput that indicates whether echoed input system expression is stripped of system options.
The DeleteRecoveredOptions -> True is be used to delete all options from the echoed input system. This gives an much shorter expression with incomplete information that is easier to read. DeleteRecoveredOptions -> False is the default setting that retains all of relevant option settings. DeleteRecoveredOptions->True is used in conjunction with the BuildComponent->True to study the internal working structure of a Component definition.
DensityValues
DensityValues -> True is an option of ShowValue and ShowSurfacePlot that scales the plotted values with the number of all source rays, so that the plot is independent of this number. DensityValues -> False leads to plots increasing in z values with the number of source rays.See also: ShowValue, ShowSurfacePlot.
DesignRefractiveIndex
DesignRefractiveIndex is a database rule name that specifies a refractive index of a lens element at the design wavelength.
See also: DesignWaveLength.
DesignWaveLength
DesignWaveLength is an option of most built-in lens functions that indicates the design wavelength value used in calculating the lens curvatures from the focal length specified.
Dielectric
Dielectric is a value of Theory, for example returned by ModelRefractionTheory, to characterize a dielectric medium.
DiffractedOrders
DiffractedOrders is an option that indicates the number of diffracted orders generated during diffraction.
DiffractedOrders uses a list of ordered paired numbers that has a length of any size. The left number in each pair is an integer that specifies the diffracted order. The right number in each pair has a value between 0.0 and 1.0 that denotes the relative order strength. DiffractedOrders is an option of all grating components, as well as the Diffraction genetic building block. However, it is only active with CoupledWaveTheory -> False. See also: CoupledWaveTheory, Diffraction and Grating.
Diffraction
Diffraction[component, gratingfunction, options] is a genetic building block that produces diffracted rays through optical surfaces according to the gratingfunction parameter.
The gratingfunction parameter specifies a grating vector either as a one-dimensional value, Gy, a two-dimensional list of values, {Gy, Gz}, a three-dimensional list of values, {Gx, Gy, Gz}, or a three-dimensional function, Function[{Gx[s,t], Gy[s,t], Gz[s,t]}], in which {Gx, Gy, Gz} specify the indicated grating directions with the grating surface initially oriented parallel to the y-z plane. These vector quantities have units of spatial frequency and are given in line pairs per millimeter. A single number used in the grating parameter refers to a uniformly distributed grating vector pointing horizontally with the surface. A list of two numbers indicates a uniformly distributed grating vector whose direction lies within the surface plane. An example of a functional grating parameter is Function[{0.,1500.,0.}], which creates a uniform grating vector having 1500 lines per millimeter, pointing horizontally down the y axis.
The gratingvector may depend on the values of the options: SurfaceCoordinates (as sequence), Temperature, Tension. Initially the grating vector starts in global {x, y, z} coordinates. The final orientation of the grating depends on three coordinate transformations. First, the gratingvector is transformed to the system given in the GratingRotationMatrix option. For PlanarShape set to True, this is transformed into the system given by the local surface curvature direction. Finally, the RotationMatrix of the surface transforms the gratingvector into global coordinates. The "bending" of the grating, the second transformation, does not take into account any strain of the grating.
Diffraction creates multiple diffracted rays according to the DiffractedOrders option or according to the CoupledWaveTheory option. Diffraction does not take into account any refraction. For a thick grating, Refraction must be placed both before and after Diffraction to get physically correct results.
Diffraction returns RayTilt, WaveTilt, Intensity, Polarization, MaterialSpecification and DiffractionOrderNumber as ray parameters.
If you compare results with calculations by hand, please keep track of the correspondence of the options VacuumFrequency and IntrinsicMedium. See also Grating.
DiffractionLimitedRange
DiffractionLimitedRange -> {lowwavelength, highwavelength} is a database rule name for a lens that specifies the range of wavelengths in microns for which the lens is diffraction limited.
See also: TransmissionRange and WaveLengthRange.
DiffractionMismatch
DiffractionMismatch is a rule of Ray returned by diffractive components that denotes the mismatch fraction of the diffracted ray.
The mismatch fraction is defined as the difference in magnitude between the incident wave vector and the diffracted wave vector divided by the magnitude of the incident wave vector. DiffractionMismatch can take on both positive and negative values. See also: EfficiencyFunction, MismatchCutOff, Diffraction, GratingSurface, and GratingMirror.
DiffractionOrderNumber
DiffractionOrderNumber is a rule of Ray returned by diffractive components that relates to the diffraction order of the ray.
See also: DiffractedOrders, Diffraction, GratingSurface, and GratingMirror.
Diffuser
Diffuser[scatteringparameter, aperture, label, options] and Diffuser[scatteringparameter, aperture, thickness, label, options] denote a planar component that splits incoming rays into diffused rays using the ray scattering distribution pattern given in scatteringparameter.
The scatteringparameter can either be light source function or a listing of one or more angles that describe the scattering behavior. If a light source function is specified, then the ScatterRays function is called internally. An example of a light-source scatteringparameter is WedgeOfRays[90, NumberOfRays->1, MonteCarlo -> True]. Otherwise, if a single number or a list of numeric scatter angles are passed in the scatteringparameter, then AddRandomRayTilt is called instead. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The thickness refers to the refractive substrate of the diffuser. If no thickness value is given, the component is a single-sided diffuser. Diffuser weights the scattered ray Intensity values according to seed ray Intensity values. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ScatterRays, AddRandomRayTilt, DiffuserMirror, SphericalDiffuserMirror, CustomDiffuser, and CustomDiffuserMirror.
DiffuserMirror
DiffuserMirror[scatteringparameter, aperture, label, options] and DiffuserMirror[scatteringparameter, aperture, thickness, label, options] denote a planar component that splits incoming rays into diffused rays reflected rays after an optical surface using the ray scattering distribution pattern given in scatteringparameter.
The scatteringparameter can either be light source function or a listing of one or more angles that describe the scattering behavior. If a light source function is specified, then the ScatterRays function is called internally. An example of a light-source scatteringparameter is WedgeOfRays[90, NumberOfRays->1, MonteCarlo -> True]. Otherwise, if a single number or a list of numeric scatter angles are passed in the scatteringparameter, then AddRandomRayTilt is called instead. Three examples of this are: 90, {90,90}, and {{-45,45},{-45,45}}.
The thickness refers to the refractive substrate of the diffuser. If no thickness value is given, the component is a single-sided diffuser. DiffuserMirror weights the scattered ray Intensity values according to seed ray Intensity values. For Lambertian->True, the scattered rays are oriented about the surface normal. For Lambertian->False, the scattered rays are oriented with the incoming ray direction. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: ScatterRays, AddRandomRayTilt, Diffuser, SphericalDiffuserMirror, CustomDiffuser, and CustomDiffuserMirror.
DimensionalTolerance
DimensionalTolerance is a database rule name that specifies the manufacturing dimensional tolerances of an optical component expressed in units of either +- mm or as a percentage of the overall dimensions (indicated by a % sign). See also: ThicknessTolerance and AngleTolerance.
DirectionChange
DirectionChange is an unauthorized rule of Ray that is an internal flag variable. It is used by TurboTrace and Diffraction to indicate a reflection.
DirectVisionPrism
DirectVisionPrism[length, thickness, label, options] is constructed from three prisms cemented together that act as a dispersing element where spectral separation is required without any additional deviation of the beam.
The outer elements of DirectVisionPrism are commonly made from crown glass while the center element is made from flint glass. The length parameter gives the overall length of the component's base. DirectVisionPrism is normally aligned with its entrance face at x = 0 and the exit face positioned along the x-axis. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: Prism, RhomboidPrism, WedgePrism, and PellinBrocaPrism.
Dispersion
Dispersion -> {{nd, vd}, {ne, ve}, nf-nc, nfprime-ncprime} is a database rule name that specifies a traditional set of numbers to indicate how dispersive a given glass is.
DistortionGrid
DistortionGrid[seed, gridsize, gridpoints] creates a grid of rays to display the image distortion of an optical system.
The grid is rectangular in shape, where its dimensions are given by the gridsize parameter and the number of points along each grid dimension is specified by the gridpoints parameter. Both gridsize and gridpoints parameters may be given either as a single numeric value (to create a one-dimensional set of points) or as a list of two numeric values (to create a two-dimensional array of points).
The seed parameter is optional and is used to generate more elaborate ray patterns. When it is present, it specifies additional light sources to be nested with the basic DistortionGrid result. However, when DistortionGrid is used in conjunction with FindFocalSurface, the seed parameter should be included using a point-source function, such as PointOfRays. DistortionGrid calls CustomRays internally and is principally used by FindFocalSurface.
See also FindFocalSurface.
DistributeValues
DistributeValues -> True is an option of ShowValue and ShowSurfacePlot that specifies, that a ray is distributed over all adjacent elements, taking into account its distance to the elements.See also: ShowValue, ShowSurfacePlot.
DoubleSubstrate
DoubleSubstrate -> True/False indicates that the optical component consists of two thick optical substrates that are sandwiched together.
At the moment, DoubleSubstrate is only implemented with flat Grating functions.
DovePrism
DovePrism[width, length, label, options] refers to a six-sided prism having trapezoidal dimensions on two sides and rectangular dimensions on the remaining sides.
DovePrism[width, slantlength, length, label, options] is another pattern for DovePrism. DovePrism is commonly used as an image rotator. As the prism is rotated, the image that passes through it will rotate at twice the angular rate of the prism. DovePrism uses internal reflection off the hypotenuse face to rotate the image. The hypotenuse face of a dove prism is the face of the largest area. If the Mirrored -> True option is given, a reflective-coated surface is placed on the reflecting face of the prism. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: PechanPrism, PentaPrism, ReversionPrism, RoofPrism, and Prism.
DovePrismMirrored
DovePrismMirrored is obsolete. Use DovePrism with the Mirrored -> True option instead.
DrawSystem
DrawSystem[system, options] takes a system of light sources and optical elements defined by a mixed list of Source and Component objects, traces the rays through the components, and renders the results according to the PlotType, RayChoice, ShowRange, and ColorView options.
The option ShowSystem -> False can be used to suppress rendering and return an OpticalSystem. DrawSystem calls PropagateSystem and ShowSystem. DrawSystem passes options to Graphics and Graphics3D. See also PropagateSystem, AnalyzeSystem, TurboTrace, and TurboPlot.
DTIRCLens
DTIRCLens[cf, exitaperture, label, options] defines a Dielectric Total Internal Reflecting Concentrator (DTIRC) having a spherical entrance surface, functionally defined tapered sides, and a planar exit surface.
Parameters for the functional shape are contained in cf, i.e., {C0,C1,C2,C3,C4,r,ap}, where C0 through C4 are coefficients for a fourth order polynomial defining the shape of the sides, r1 is the radius of the spherical surface, and ap is the maximum diameter of the DTIRCLens at the intersection of the sides and spherical entrance surface. The variable exitaperture is used to scale the specified DTIRCLens shape to provide the desired aperture for the planar exit surface.
DTIRCLens is created with the center of the spherical lens centered at the origin and the center of the planar exit surface positioned down the positive x axis. DTIRCLens is used in light gathering applications. (This is an experimental component contributed by William Cottingame, UCLA.) The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also DTIRCLensSurface, FunnelLens, FunnelLensSurface, SnowConeLens, SquareConeMirror, and WinstonConeMirror.
DTIRCLensSurface
DTIRCLensSurface[entranceaperture, cf, length, label, options] designates a functionally defined tapered surface to describe a Dielectric Total Internal Reflecting Concentrator (DTIRC).
DTIRCLensSurface is used internally by DTIRCLens, but is not normally ever used directly and has only been made public for experimental purposes. Coefficients of a fourth order polnominal, contained in cf, have been optimized for a specific case, are calculated elsewhere, and are of a different form from the cf parameter defined for DTIRCLens. DTIRCLensSurface is created with its entrance aperture centered about the origin and its exit aperture positioned down the positive x axis. DTIRCLensSurface is used in light gathering applications. (This is an experimental component contributed by William Cottingame, UCLA.) The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also DTIRCLens, FunnelLens, FunnelLensSurface, SnowConeLens, SquareConeMirror, and WinstonConeMirror.
DummyRay
DummyRay is a placeholder inside HeldTraceKernel that designates a temporary ray object that is deleted before the ray trace is completed.
EdgeRendering
EdgeRendering is an option of ComponentRendering that indicates the graphical rendering of an annular surface that joins the two outer perimeters of a double-sided component. In the prism component, EdgeRendering is used to define the two triangular faces of the prism.
EdgeRendering may take the values: Fill, Trace, Mesh, Empty, and {Fill, Mesh}. See also: ComponentRendering, SurfaceRendering, CrossRendering, and RenderType.
EdgeStyle
EdgeStyle is an option of ComponentRendering that indicates the graphical primitives to be inserted before the graphical rendering of an annular surface that joins the two outer perimeters of a double-sided component.
It is a list of two rules: LineStyle and FillStyle. See also: DefaultStyle, SurfaceStyle, CrossStyle.
EdgeThickness
EdgeThickness is a database rule name that gives the edge thickness of a lens.
EfficiencyFunction
EfficiencyFunction is an option that indicates the diffraction efficiency of the grating component as a function of the DiffractionMismatch parameter.
EfficiencyFunction uses a real function that scales Intensity according to the value indicated by DiffractionMismatch. EfficiencyFunction is initially set to return 1.0 for all input values; however, the user can reset EfficiencyFunction for modeling the behavior of particular grating structures. EfficiencyFunction is an option of all grating components, as well as the Diffraction genetic building block. However, EfficiencyFunction is largely not used anymore since it is used only with the option CoupledWaveTheory->False. See also: CoupledWaveTheory, DiffractionMismatch, MismatchCutOff, Diffraction, Grating.
ElasticModulus
ElasticModulus -> MegaPascals is a database rule name that indicates the modulus of elasticity for a material.
ElementDirectory
ElementDirectory is an option to LoadData that specifies a directory.
This directory contains data on manufactured optical components.
ElementFiles
ElementFiles is an option to LoadData that specifies a list of file names to be loaded.
These files contain information on manufactured optical components.
Ellipse
Ellipse is a value of BoundaryLabel and HoleBoundaryLabel.
EllipseAngle
EllipseAngle is an option of CustomFiber and FiberMirror that determines the angle of the elliptical long-axis in the fiber cross-section.
EllipseAngle -> 90 denotes a vertical-oriented axis. See also: EllipseRatio.
EllipseRatio
EllipseRatio is an option of CustomFiber and FiberMirror that determines the level of ellipticity in the fiber cross-section.
EllipseRatio -> 1 denotes a circular cross-section. See also: EllipseAngle.
EmbedGenerationLimit
EmbedGenerationLimit -> True is an option of TurboTrace that fixes the GenerationLimit information within RayTraceFunction at the time of the RayTraceFunction source code creation.
EmbedGenerationLimit -> False leaves the GenerationLimit information as one of the input parameters of RayTraceFunction. EmbedGenerationLimit -> Automatic uses the setting of True with OutputType -> TurboSystem and False with OutputType -> RayTraceFunction.
See also: $generationlimit, GenerationLimit, RayTraceFunction, EmbedRays, EmbedThresholdIntensity and ReportedParameters.
EmbedRays
EmbedRays -> True is an option of TurboTrace that fixes the geometric ray source information within RayTraceFunction at the time of the RayTraceFunction source code creation.
EmbedRays -> False leaves the geometric ray information as one of the input parameters of RayTraceFunction. EmbedRays -> Automatic uses the setting of True with OutputType -> RayTraceFunction and False with OutputType -> TurboSystem.
EmbedRays -> True is especially useful for repetitive ray-trace problems such as lens optimization and imaging problems where a component or light-source parameter is varied between each trace. EmbedRays -> True can greatly speed such problems where the system initialization consumes a significant fraction of the calculation time. In this instance, any symbolic parameter information passed with the light source is automatically included as an input parameter of RayTraceFunction.
See also: $inputrays, RayTraceFunction, EmbedThresholdIntensity, EmbedGenerationLimit, and ReportedParameters.
EmbedThresholdIntensity
EmbedThresholdIntensity -> True is an option of TurboTrace that fixes the ThresholdIntensity information within RayTraceFunction at the time of the RayTraceFunction source code creation.
EmbedThresholdIntensity -> False leaves the ThresholdIntensity information as one of the input parameters of RayTraceFunction. EmbedThresholdIntensity -> Automatic uses the setting of True with OutputType -> TurboSystem and False with OutputType -> RayTraceFunction.
See also: $thresholdintensity, ThresholdIntensity, RayTraceFunction, EmbedRays, EmbedGenerationLimit, and ReportedParameters.
Energy
Energy -> energy specifies the amount of integrated energy present either on a surface or in a system.
EnergyReference
EnergyReference -> energy is an option of FindIntensity that specifies the total integrated energy that is present at the first surface reported by the ray trace.
This value is used with the CalibrateEnergy -> True setting. All subsequent reported surfaces are then calibrated to the energy present at the first reported surface. See also: CalibrateEnergy.
EntranceCoordinates
EntranceCoordinates is a rule of Component that gives the center coordinates of the first surface encountered within each confined migration pathway.
The slot position of the each EntranceCoordinates element corresponds with a slot position within ConfinedPaths. EntranceCoordinates is used in constructing UnconfinedPath. See also: ConfinedPaths and UnconfinedPath.
EquivalentMagnification
EquivalentMagnification is a database rule name that indicates the equivalent microscope objective magnification value.
See also: Magnification.
EscapeComponent
EscapeComponent[component, options] is a generic building block that forces an increment to a new optical element after the ray encounters the specified surface given in the AffectedSurfaces option.
EscapeComponent preserves the initial increment direction of ray propagation through the component listing. An earlier nested FreezeIncrement generic building block may be used to enable multiple ray interactions at the surface site before escaping.
EscapeComponent is only valid for PropagateSystem calculations and is not recognized by TurboTrace. In this regard, EscapeComponent is now obsolete and Resonate should be used instead.
Ethanol
Ethanol specifies the use of an ethanol liquid medium at 20 degrees Celsius.
The refractive index model for Ethanol is most suitable for the wavelength range of .43 microns to .66 microns. Ethanol has a density of 0.800, relative to the density of water.
EvenFunction
EvenFunction is an option of AsphericLensSurface, AsphericLens, and AsphericMirror that indicates the use of even power polynomial terms as coefficients.
EvenFunction->True indicates that the polynomial terms start with the second order power and followed with higher order even-powered terms. For EvenFunction->False, the polynomial starts with the first order term and is followed by monotonically increasing power terms.
ExcelToRayica
ExcelToRayica[stringdata, options] is used to import and convert Excel spreadsheet data into one or more optical lens models for Rayica.
Normally, the number of columns is automatically determined by ExcelToRayica. As an alternative, ExcelToRayica[stringdata, numberofcolumns, options] can be used to specify the number of filled spreadsheet columns. ExcelToRayica requires that the stringdata for import be given in a single ascii string. Usually, this operation is accomplished by directly copying and pasting the data from Excel into Mathematica with double quotation marks placed manually on either side of the pasted data. The first row in the copied spreadsheet matrix must contain valid Mathematica option names that are used to identify the corresponding columns of information. Provided that the correct database information is present, ExcelToRayica then converts this information into one or more optical lens models that work with Rayica. The conversion process can be further modified by giving additional options to ExcelToRayica (that get passed internally to EditData). Note that ExcelToRayica requires stringdata to originate from a filled matrix in the spreadsheet. ExcelToRayica makes internal calls to ExcelToData and DataToRayica. ExcelToRayica is presently restricted to lens data that describe centered, refractive, spherical, multiple lens-surfaces with field stops. Excel is a Trademark of Microsoft Corporation, Redmond WA. See also: ExcelToData, DataToRayica, CodeVToRayica, KDPToRayica, and ZemaxToRayica.
ExitPosition
ExitPosition is an option of ABCDMatrix that denotes the starting position of the exiting ray from the component.
ExitPosition uses either a number or a surface function of two variables.
ExternalDeflectionFunction
ExternalDeflectionFunction[deflectionid] is a global function used by TurboTrace to calculate ray deflections.
ExternalDeflectionFunction is uniquely created for specific component Deflections (identified by DeflectionID -> deflectionid) and provides a compile interface to uncompilable aspects of DeflectionFunctions in TurboTrace.
ExternalSurfaceIntersectionFunction
ExternalSurfaceIntersectionFunction[surfaceid, RSx, RSy, RSz, RTx, RTy, RTz] is a global function used by TurboTrace to calculate surface-ray intersections.
ExternalSurfaceIntersectionFunction is uniquely created for specific component surfaces (identified by SurfaceID -> surfaceid) and provides a compile interface to uncompilable SurfaceIntersectionFunctions in TurboTrace. In particular, ExternalSurfaceIntersectionFunction is used with Solve, NSolve, FindRoot, and FindMinimum, since these cannot be directly compiled by Mathematica. See also: SurfaceIntersectionFunction.
ExtrapolateSurfaceFunction
ExtrapolateSurfaceFunction is an option of ComponentFoundation that specifies whether the surface function is continued automatically outside the aperture of the surface.
Some numeric functions, like InterpolatingFunction, are restricted to a parameter range. During the process of finding ray-surface intersections, the surface parameters can bounce off this range although the intersection is within the surface boundary. For ExtrapolateSurfaceFunction -> True, a continuation is generated and the calculation can succeed. ExtrapolateSurfaceFunction -> Automatic together with SurfaceNormalCalculations -> Numeric acts as the setting True.
In order to generate an extrapolation, a parametric point outside the aperture of the surface is projected onto the aperture. The value of the surface function at this aperture point is then added to the derivative times the distance of the parametric and aperture points.
FarField
FarField -> True/False is an option that controls the ray-trace modelling of GaussianBeam sources.
For FarField -> True, the rays are constructed to accurately simulate the spot size and divergence in the far-field of the beam waist. Any specified spot size near the beam waist, however, will not be accurately modelled with this setting. FarField -> False accurately represents the starting spot size and divergence of Gaussian sources, regardless of their distance from the beam waist. For Gaussian beams that are generated close to their beam waist position, however, this setting will not accurately model the far-field beam behavior. Nevertheless, FarField -> False does accurately model the far-field behavior of sources that do not originate close to their beam waist positions. In this situation, the FarField -> True and FarField -> False settings converge to produce the same result. Note that the FarField option only affects the numerical ray-trace properties of GaussianBeam functions but has no effect on symbolic-related calculations.
Fiber
Fiber[corediameter, claddingdiameter, length, label, options] and Fiber[corediameter, length, label, options] designates a straight-lined, stepped-index optical fiber.
The refractive core and cladding materials are given by the option, ComponentMedium -> {corematerial, claddingmaterial}. Fiber is created with an end located at x = 0 and with its length oriented along the x axis. When no claddingdiameter parameter is given, then the fiber is assumed to be uncladded with its outer surfaces exposed to the IntrinsicMedium of the environment. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: CustomFiber and CustomFiberMirror.
FiberFunctionQ
FiberFunctionQ[x] and FiberFunctionQ[{x}] test whether x indicates one or more Function objects that evalue to numerical result or a numerical value. The result is True or False.
Field
Field is a pattern of RayParameters.
FieldOfRays
FieldOfRays[seed, horizontal, options] initializes a set of overlapping rays that point down the positive x-axis (for the default BirthPoint setting) and are distributed over the specified range of horizontal polarizations.
The horizontal parameter specifies the scaled horizontal polarization between 0 and 1. It can be a single value or a range of two values. The vertical polarization is set to Sqrt[1-horizontal^2]. The number of horizontal polarizations is given by the first number of the option NumberOfRays, the number of polarization angles by the second.
The seed parameter is optional and is used to generate more elaborate ray patterns. When it is present, it specifies additional light sources to be nested with the basic FieldOfRays result. When PropagateSystem is used for the ray trace, FieldOfRays produces a set of Ray objects. However, with TurboTrace calculations, a TurboRays object is generated from FieldOfRays instead. The distribution of rays is controlled by the GridSpacing option and the starting origin is defined by the BirthPoint option.
See also: NumberOfRays, PhaseAngle, MonteCarlo, GridSpacing, SourceFraction, SourceOffset, SingleRay, CircleOfRays, ConeOfRays, WedgeOfRays, LineOfRays, GridOfRays, PointOfRays, CustomRays, GaussianBeam, and RainbowOfRays.
FieldOfView
FieldOfView is a database rule name that specifies the half-angle field of view for a lens in degrees.
FieldStopLocation
FieldStopLocation is a database rule name that provides the field stop surface number of a compound lens.
Fill
Fill is a value of RenderType within Component that designates that the surface graphics should be filled with shaded areas.
FillOffset
FillOffset -> percentage is an option of ComponentRendering and a rule embedded within Component that specifies the separation of the rendered surface net from the surface outline.
The percentage may also be a list, each entry corresponding to one surface. If the lines of the outline are partly covered by the surface net, this option can be used to artificially reduce the fill factor of the surface net.
FillStyle
FillStyle is an option of optical components that carries a list of graphics styles for the rendering of filled surfaces. See also: LineStyle.
FilterAllCreatedRays
FilterAllCreatedRays -> function is a rule sometimes embedded within Deflections in Component that designates a function being used to filter the input to the ray-tracing function calculation.
The function takes as arguments the rays corresponding to the AllCreatedRays and OriginalRay rules and must return a single ray.
As word value of AddTo or ReplaceFor, FilterAllCreatedRays acts on the filtered rays returned by TakeFrom. See also: TakeFrom.
FilterTrace
FilterTrace -> True/False is an option of TurboTrace and PropagateSystem that determines which rays are retained from a trace.
This option is used to discard certain types of surface-ray interactions during the ray-trace process. This is used in TurboTrace during the scout trace process (for ScoutTrace -> True or SequentialTrace -> True). In the case where multiple rays are generated at a optical surface, such as with diffraction gratings and Fresnel reflections, FilterTrace -> True retains only the strongest ray generated at each surface encounter. FilterTrace -> False passes all of the generated rays from the trace.
In addition to True/False settings, FilterTrace -> {orderfunction, selectfunction} can be used to determine the ray selection criteria. The rays are ordered by using orderfunction inside OrderedQ. Then, the ray list is scanned with selectfunction to select rays. Both functions take a deflected ray as argument, the selectfunction takes additionally the slot number of the ray in the ordered ray sequence and the total number of rays created by the deflection. Examples of {orderfunction, selectfunction} include {(Intensity/.#1)&, (#2===#3)&} and {1&, (#2===1)&}.
FinalMerit
FinalMerit returns the final performance value found by a minimization calculation in OptimizeSystem.
See also: OptimizeSystem.
FindFocalSurface
FindFocalSurface[opticalsystem] determines the image surface of best focus in three-dimensional space for an array of focus points that result from the DistortionGrid light source function.
Internally, FindFocalSurface calls FindFocusFast to determine the foci positions. If the SingleRay -> True option setting is used, then FindFocalSurface returns a single ray for each foci position. Otherwise, FindFocalSurface returns a cluster of rays for each foci position according to the input source function.
See also DistortionGrid.
FindFocus
FindFocus[objectset, options] determines the minimum spot size for a locus of rays at the last reported surface in the system and plots the results.
The focus search is started at the last reported surface. FindFocus returns a list of rules containing FocalPoint, SpotSize, BackFocalLength, FocalPlaneTilt. Although FindFocus can use previously ray-traced results in objectset, objectset need not be ray-traced in advance. To catch all rays of nonsequential optical systems, use a TurboSystem, TracingEngine -> TurboTrace (the default) for untraced systems or RayHistory -> TurboSystem when generating the system.
FindFocus minimizes the maximum distance from the first ray in objectset. See also: FindSpotSize, ConstructMeritFunction, and RaySelect.
FindFocusFast
FindFocusFast[objectset, options] determines the minimum spot size for a locus of rays at the last reported surface in the system without plotting the results.
FindFocusFast returns a list of rules including FocalPoint, SpotSize, BackFocalLength, FocalPlaneTilt. The focus search is started at the last reported surface. If necessary, the objectset is traced and/or converted with TurboTrace.
To catch all rays of nonsequential optical systems, use a TurboSystem, TracingEngine -> TurboTrace (the default) for untraced systems or RayHistory -> TurboSystem when generating the system.
FindMinimum -> delta suppresses optimization and assumes the focus to have the perpendicular distance delta from the last reported surface. IndependentSources -> True allows to find one focus for each source. TurboRays -> True also returns a TurboRays object with ray ends corresponding to the ray segments from the before last surface to the focus. With SingleRay -> True, FindFocusFast returns only one ray for each focus.
See also: TracingEngine.
FindGlassNumbers
FindGlassNumbers[opticalmediumlist, options] calculates five important parameters traditionally used to characterize optical glasses: the refractive value, the Abbe V-number, the mean dispersion value, the glasscodenumber, and the partial dispersion ratio.
The opticalmediumlist contains labels used to identify optical materials. If an optical material definition exists in the Rayica database but has not yet been created in Rayica, FindGlassNumbers uses DataToRayica to build a refractive index model corresponding to the opticalmedium label. FindGlassNumbers uses the SpectralRegion option to specify the wavelength lines for its calculations. See also: RefractiveIndex, AbbeVNumber, GlassCodeNumber, PartialDispersionRatio, MeanDispersion, SpectralRegion, SpectralRegion, GlassCodeFunction, DataToRayica, and GlassMap.
FindIntensity
FindIntensity[system, options] calculates the intensity function for each optical surface that gets reported from the ray trace of the system.
For its input, FindIntensity works best with either an untraced, raw, optical system or a previously calculated result of FindIntensity. However, when necessary, FindIntensity can also work with externally generated trace results. FindIntensity works equally well for surfaces that either are close to a focal plane or far from any focus. If a light sheet light source is used (ie. WedgeOfRays or LineOfRays), then a one-dimensional intensity function is automatically calculated. If a volume-filling light source is used (ie. PointOfRays, GaussianBeam, or GridOfRays), then the intensity calculations are automatically carried out for each reported surface in two-dimensions.
FindIntensity uses the KernelScale and SmoothKernelSize options to specify a Gaussian smoothing kernel that gets convolved with the intensity data. This smoothing kernel can be set to the diffraction-limited spot-size of the systen in order to incorporate the diffraction-limited behavior with the geometric ray-trace data.
See also: KernelScale, SmoothKernelSize, and SmoothKernelRange.
FindNumericNormalToDerivativePartials
FindNumericNormalToDerivativePartials[surfacefunction, aperture, {SCx,SCy}] finds the surface normal vector of a numeric surfacefunction for the specific parametric coordinates given by {SCx,SCy}.
Note that FindNumericNormalToDerivativePartials is not designed for high accuracy and is only used by FindExtrapolatedFunction to get an approximate result.
FindSpotSize
FindSpotSize[objectset, selectionproperties, options] takes an object set containing Ray objects, and returns the diameter and position of a circle enclosing the locus of ray/surface intersection points that shares the common set of traits specified in selectionproperties.
FindSpotSize works with either PropagateSystem or TurboTrace results. If the objectset has not been ray-traced, then FindSpotSize will first run PropagateSystem. If no selectionproperties are given, then the intersection points at the last surface are used. However, for TurboTrace results, FindSpotSize reveals only the spot size on the last surface and ignores any specified selectionproperties. See also: FindFocus, ReadRays, and RaySelect.
FinishPoint
FinishPoint is a rule nested within RenderedPolygons of Component that gives the two-dimensional ending coordinate on a surface indicated by SurfaceNumber.
FinishPoint is used for creating the sides of a polygon that span several surfaces.
FirstSlot
FirstSlot is a value of AffectedSurfaces and indicates that the first slot position within each confined path in ConfinedPaths inherits the new ray-tracing function trait.
In general, ray-tracing function traits are added to a surface by appending the ray-tracing function position (within Deflections) to the affected DeflectionNumber value within ConfinedPaths.
See also: AllDeflections, AllSurfaces, NotFirstSlot, LastSlot, NotLastSlot, AffectedSurfaces, and IndependentSurfaces.
FlatSubstrate
FlatSubstrate -> True is an option that denotes that a curved mirror has a flat substrate back.
FlatSubstrate -> False creates a curved mirror substrate backing that is adjusted to maintain an equal thickness throughout the mirror. See also: InputEdgeThickness and FrontSurface.
FNumber
FNumber is a database rule name that specifies the f-number (also called f/# or speed) of a lens.
The f/# is defined by: (focal length)/(clear aperture diameter). See also: NA.
FocalLength
FocalLength is a database rule name that specifies the effective focal length of a lens.
See also: FrontFocalLength, BackFocalLength, and CatalogFocalLength.
FocalPlaneTilt
FocalPlaneTilt labels the unit vector that denotes the direction of the ray bundle's optical axis.
See also: FindFocus and FindFocusFast.
FocalPoint
FocalPoint indicates the point of focus in three-dimensions.
See also: FindFocus and FindFocusFast.
FocusDiameter
FocusDiameter is a setting for FocusType that specifies that the focus diameter is to be minimized. It is slower and more accurate than FocusRadius.
FocusRadius
FocusRadius is a setting for FocusType that specifies that the focus radius is to be minimized. It is faster and less accurate than FocusDiameter.
FocusRays
FocusRays[component, focalpoint, efficiency, options] is a generic building block that focuses the rays from the component surface to a chosen focal point in three-dimensional space.
The efficiency parameter alters the Intensity value of the propagated rays and can be either a number or a held expression that evaluates to a value between zero and one.
FocusType
FocusType -> FocusDiameter is an option that specifies what is considered to be the focus. Allowed values are: RMSFocus, FocusRadius, FocusDiameter.
FollowContour
FollowContour -> True/False is an option of the ScatterRays and Diffraction that indicates whether the three-dimensional shape of the surface is taken into account in the ray scattering calculation.
In ScatterRays, FollowContour indicates whether the scattering profile of non-point seed-sources take into account the three-dimensional shape of the surface. FollowContour -> True adjusts the starting points of displaced rays to fit the local surface contour. FollowContour -> False does not use the surface contour information to construct displaced ray scattering.
In Diffraction, FollowContour indicates whether the grating vector is oriented with respect to the localized surface normal direction and follows the contour of the grating surface. Note that FollowContour with ScatterRays is currently only implemented for TurboTrace and not with PropagateSystem.
ForwardDirection
ForwardDirection is an unauthorized rule of Ray that is an internal flag variable. It is used by TurboTrace and Refraction to indicate the propagation direction.
FreezeIncrement
FreezeIncrement[component, options] is a generic building block that causes the ray to remain targeted to the same surface for successive propagation generations.
This effect enables successive ray interactions with the same surface to occur. The ray is allowed to continue propagating to other surfaces once the current surface is no longer in its trajectory path. In PropagateSystem, FreezeIncrement is also an unauthorized option of Ray. The ray parameter FreezeIncrement -> True causes rays not to increment to other surfaces until no intersection is found with the current surface.
FreezeIncrement is only valid for PropagateSystem calculations and is not recognized by TurboTrace. In this regard, FreezeIncrement is now obsolete and Resonate should be used instead.
Fresnel
Fresnel[component, groovespacing, options] is a generic building block used for transforming a regular optical element into a flattened Fresnel equivalent.
The groovespacing argument specifies the width of the Fresnel grooves and the groove direction is specified by the FresnelSymmetry option. If SagFit->True is used then the groovespacing parameter denotes the depth of each groove and the groove width is varied to match the specified sag. Fresnel uses the AffectedSurfaces option to specify the component surfaces affected by Fresnel. If AffectedSurfaces does not specify a number or list of numbers, Fresnel will transform all surfaces present. See also: SmoothFresnel, SmoothKernelSize, SmoothKernelRange, FresnelSymmetry, and SagFit.
FresnelReflections
FresnelReflections -> False is an option of Refraction that is used to suppress ray-surface reflections at a refractive interface.
Otherwise, FresnelReflections -> True generates a reflected ray at the refractive interface that has an Intensity value determined by the ray Polarization state.
FresnelRefraction
FresnelRefraction is a value of Theory, for example returned by ModelRefractionTheory, to characterize a medium with normal Fresnel refraction.
FresnelRhomb
FresnelRhomb[entranceface, label, options] is a special construction of RhomboidPrism that uses total-internal Fresnel reflections to perform an achromatic retardation of either 1/4 wave or 1/2 wave on the incident light for polarization applications.
The FullForm option is used to switch between half-wave and quarter-wave prism models. The default setting of FullForm -> False gives a 1/4 wave retardation by modeling a single RhomboidPrism-type object to create two internal reflections. FullForm -> True gives a 1/2 wave retardation by modeling a joined pair of RhomboidPrism-type objects to create four internal reflections. FresnelRhomb is aligned with its entrance face at x = 0 and located in the x-y plane to maintain a parallel exit beam with the x-axis. The entranceface specifies the smaller thickness dimension of the entrance face (the longer slant dimension is then internally calculated). FresnelRhomb uses the DefaultAngleSetting option to set the entrance angle. DefaultAngleSetting -> Automatic calculates the angle based on the given DesignWaveLength and ComponentMedium options. The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also: RhomboidPrism, Prism, PentaPrism, WedgePrism, and PellinBrocaPrism.
FresnelSymmetry
FresnelSymmetry is an option of Fresnel that indicates the groove symmetry of the Fresnel surface.
FresnelSymmetry can be set to Automatic, RadialSymmetry, HorizontalSymmetry, VerticalSymmetry, and OtherSymmetry.
Front
Front is a value of CurvatureDirection.
FrontFocalLength
FrontFocalLength is a database rule name for a lens that specifies the distance between the front focal point and the front lens surface.
See also: BackFocalLength, FocalLength, and CatalogFocalLength.
FrontSurface
FrontSurface -> True is an option that denotes that the first side of a mirror is reflective. This sometimes allows a simpler mirror model to be implemented.
FrontSurface -> False replaces a refractive surface at the front and a reflective surface at the back of the mirror. This incorporates a more complex refractive/reflective propagation model into the component's description. FrontSurface is an option of all double-sided, built-in mirrors, except for conjugate mirrors. See also: FlatSubstrate, InputEdgeThickness, and FrontSurface.
FrontView
FrontView is a value of PlotType that gives a two-dimensional orthoscopic rendering showing a projection onto the y-z plane of the optical system.
See also: RealTime3D, Surface, TopView, SideView, ShadowProject, Off, and Full3D.
Full3D
Full3D is a value of PlotType that gives the full three-dimensional rendering of the optical system.
See also: RealTime3D, Surface, TopView, SideView, FrontView, ShadowProject, and Off.
FullPlotRange
FullPlotRange -> values is a rule sometimes embedded inside the Options rule of an optical system.
The values are number pairs specifying the minimum and maximum coordinates in each direction of the global coordinate system. The component graphics as well as the rays are taken into account. The option does not depend on the option PlotRange.
FunctionCenter
FunctionCenter is an option of ComponentFoundation that gives the values of the component surface functions at the function origin.
Well-behaved surface functions have finite values at their origin and the default setting FunctionCenter -> Automatic is used. However, some custom-defined functions, whose limits approach infinity at their function origin, need to be manually set to some finite value, FunctionCenter -> {x1, x2, ...} where typically xi = 0. For a single-surfaced component, use FunctionCenter -> x where typically x = 0. See also: SurfaceCenter and EntranceCoordinates.
FunnelLens
FunnelLens[domeradius, entrancediameter, exitdiameter, length, label, options] defines a lens having a spherical entrance surface with the specified radius, parabolic tapered side walls defined by the entrance and exit aperture along with the length, and a planar exit surface.
FunnelLens is created with the center of the spherical lens centered at the origin and the center of the planar exit surface positioned down the positive x axis. FunnelLens is used in light gathering applications. (This is an experimental component contributed by William Cottingame, UCLA.) The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also DTIRCLens, DTIRCLensSurface, FunnelLens, FunnelLensSurface, SnowConeLens, SquareConeMirror, and WinstonConeMirror.
FunnelLensSurface
FunnelLensSurface[entrancediameter, exitdiameter, length, label, options] designates a parabolic tapered surface defined by entrance and exit aperture along with an overall length.
FunnelLensSurface is used internally by FunnelLens, but is not normally ever used directly and has only been made public for experimental purposes. FunnelLensSurface is created with its entrance aperture centered about the origin and its exit aperture positioned down the positive x axis. FunnelLensSurface is used in light gathering applications. (This is an experimental component contributed by William Cottingame, UCLA.) The user-named label parameter is optional and can be omitted. When it is present, its text content is used to identify the object in both the rendered graphics and the output cell expression. When it is omitted, Rayica uses the default setting of the Labels option with the rendered graphics.
See also DTIRCLens, DTIRCLensSurface, FunnelLens, SnowConeLens, SquareConeMirror, and WinstonConeMirror.
FusedSilica
FusedSilica indicates the use of a fused silica medium.
The refractive index model for FusedSilica is most suitable for the wavelength range of .18 microns to 2.0 microns.
GaussianBeam
GaussianBeam[beamspotsize, fulldivergence, options] and GaussianBeam[complexbeamparameter, options] is a light source that takes either the output beam spotsize radius (specified at 1/e of the axial value of the electric field amplitude peak in the starting plane) and far-field beam fulldivergence (specified as the full angle in radians at 1/e^2) or the complex beam parameter as input and creates an extended point source ray model of a Gaussian laser beam.
In addition, GaussianBeam uses the FullForm option to determine whether a uniform grid of rays are created or two distinct fans of rays are instead constructed. For FullForm->False, GaussianBeam creates either a single two-dimensional fan of rays in the x-y plane or two cross-hatched fans of rays that lie in the x-y and x-z planes, depending on whether the spotsize and fulldivergence or complexbeamparameter contains single numbers or sets of two numbers. For FullForm->True, GaussianBeam attempts to construct a uniform three-dimensional grid of rays to model the spot size and beam divergence behavior. In some instances, however, when the two transverse beam waists occur at different locations along the optical axis, then GaussianBeam cannot presently construct a full three-dimensional model. In this event, it reverts to the FullForm->False behavior.
In order to generate an elliptical Gaussian beam, one needs to specify FullForm->True, provide a list of two values for the horizontal and vertical components of either beamspotsize or fulldivergence, and specify only the horizontal component of the remaining beamspotsize or fulldivergence parameter. In this instance, Rayica will automatically calculate the value of the remaining unspecified vertical component.
GaussianBeam uses the UnitScaleFactor option to determine the spatial units of the beamspotsize input parameter. In its default setting, UnitScaleFactor -> 1, the units are taken in millimeters. Note, however, that the WaveLength option is not affected by UnitScaleFactor and always takes units of microns.
Each input parameter may also take a symbolic setting in addition to a numeric value. In such an event, a two-element list of terms, {symbolic,numeric}, is given for each symbolic parameter setting. In addition to geometric ray tracing, GaussianBeam is also used in symbolic Gaussian beam propagation calculations.
Note that the RunningCommentary -> True/False/All option can be included with GaussianBeam to observe the internal processes involved.
See also: UnitScaleFactor, FarField, SpotSizeFactor, BeamWaist, SymbolicBeamWaist, BeamSpotSize, SymbolicBeamSpotSize, BeamCurvature, SymbolicBeamCurvature, BeamDivergence, SymbolicBeamDivergence, BeamScaleLength, SymbolicBeamScaleLength, ComplexBeamParameter, SymbolicComplexBeamParameter, SingleRay, CircleOfRays, ConeOfRays, WedgeOfRays, LineOfRays, GridOfRays, PointOfRays, CustomRays, FieldOfRays, and RainbowOfRays.
GenerationLimit
GenerationLimit is an option of PropagateSystem that determines the maximum number of ray/surface interactions permitted before the ray propagation is discontinued.
See also: GenerationNumber and ThresholdIntensity.
GenerationNumber
GenerationNumber is a rule of Ray that specifies the maximum-valued IntersectionNumber found within the global system of Ray objects at the creation of the specified Ray object.
SurfaceNumber, ComponentNumber, ConfinedPosition, UnconfinedPosition, IntersectionNumber, GenerationNumber, and ConfinedNumber are all pointer parameters stored in Ray.
Geometry
Geometry is a pattern of RayParameters.
GetCoatingRules
GetCoatingRules[coatingmedium, {medium1, medium2}, coatingspecification, deflectiontype, compiled, check, options] returns a list of two rules: CompiledCoating -> coating, and a new deflectiontype.
The values of coating[] is a PrecisionFunction depending on: WaveLength, Intensity, Polarization, Temperature, Tension, SurfaceCoordinates, WaveTilt, SurfaceNormalMatrix. The order is fixed and automatically created from ModelRefractiveIndex. Inside a DeflectionFunction, the values are calculated by calling the function with all parameters. MaterialRotationMatrix as well SurfaceCoordinates and WaveTilt are used in connection with birefringent or structured media.
For compiled equals False, the index functions are not compiled, and check being False suppresses the range checks. The options as well as coatingmedium, {medium1, medium2} and coatingspecification are passed directly to ModelCoating.
GetMaterialRules
GetMaterialRules[medium, indices, materialrotation, temperature, tension, surfacenormalfunction, compiled, check, theorymodifications] returns a list of rules, designating the medium used. Inside a DeflectionFunction, the indices are calculated by calling the function with all parameters.
The second parameter gives a list of names to designate the indices of interest and may contain RefractiveIndex, AttenuationIndex, RelativePermeability, RelativePermittivity, and Conductivity. For compiled equals False, the index functions are not compiled, and check being False suppresses the range checks. The theorymodifications can contain up to two elements, that describe the calculation method to be forced and are given as values or the rules FresnelReflections -> value and DirectionCalculations -> value. The rest of this parameter is a list of rules and passed directly to ModelRefractiveIndex and ModelRefractionTheory.
GetRealRefractiveIndex
GetRealRefractiveIndex[medium, listofrules] returns the refractive index of medium using listofrules. If the material model does not return a number, the index is set to 1, an imaginary part is set to zero. The function is designed for fast calculations that cope only with a real refractive index.
GirdleThickness
GirdleThickness is an option of the Solitaire prism that specifies the thickness of the girdle (solitaire waist) as a percentage of the overall Solitaire diameter.
Specialized options of the Solitaire prism include: TableDiameter, GirdleThickness, CrownAngle, PavilionAngle, StarDiameter, BackFacetDiameter, CrownHeight, PavilionDepth, CuletAngle, and CuletDiameter.
GlassCodeFunction
GlassCodeFunction[input, options] takes variety of input formats and creates linear or second-order, wavelength-dependent, refractive index functions used in ray-trace calculations.
GlassCodeFunction is used together with ModelRefractiveIndex to designate a new material model. There are four basic input formats recognized by GlassCodeFunction. If the input is a number less than 100, then the input is assumed to be a fixed refractive index and GlassCodeFunction creates a constant refractive index function. If the input is a number greater than 100, then GlassCodeFunction recognizes this to be a glass code number and creates a linear glass dispersion model for it. Alternatively, when the input is a list of either two or three numbers: GlassCodeFunction[{nd, Vd}] (as well as GlassCodeFunction[{Vd, nd}]) generates a linear glass dispersion model function and GlassCodeFunction[{nd, Vd, Pdc}] generates a second-order glass dispersion model, where Vd = (nd-1)/(nf-nc) is the Abbe V-number, and Pdc = (nd-nc)/(nf-nc) is the relative partial dispersion for the refractive material. Here, nf, nd, and nc are the refractive index values for three different wavelengths specified by the SpectralRegion option of GlassCodeFunction. In the case of GlassCodeFunction[{nd, Vd}] and GlassCodeFunction[{nd, Vd, Pdc}], the order of Vd and nd is automatically detected. The input parameters of GlassCodeFunction have long been associated with optical glasses. However, the GlassCodeFunction can be used to model any optical material.
GlassCodeFunction is automatically called by ModelRefractiveIndex to generate the index function if a single number or list of numbers is specified by the ComponentMedium option of a component function. In such cases, the default SpectralRegion option setting is used. See also: ModelRefractiveIndex, SellmeierFunction, IndexFunction, IndexInterpolationFunction, HerzbergerFunction, SpectralRegion, AbbeVNumber, PartialDispersionRatio, FindGlassNumbers, IndexChart, PartialDispersionChart, and DataToRayica.
GlassCodeNumber
GlassCodeNumber -> (nd-1):Vd is a rule name that specifies the standard six digit glass identification number of an optical glass.
The first three digits indicate the refractive index minus one of the material. The last three digits provide the Abbe V-number of the material times a factor of ten. For example, a glass with an Nd of 1.517 and a V-number of 64.5 would be identified as 517645. Note: in rare cases where the refractive index reach a value of 2, the GlassCodeNumber will contain seven digits. See also: FindGlassNumbers, SpectralRegion, GlassCodeFunction, GlassMap, PartialDispersionRatio, MeanDispersion, and AbbeVNumber.
GlassMap
GlassMap[selectionproperties, options] is used to illustrate dispersive properties of optical materials and to select new material models from the Rayica database.
GlassMap uses ReadData internally to select the optical data for display. If no selectionproperties are given, then all loaded optical materials are displayed. GlassMap uses the option PlotType to specify the plotted parameters. In all cases, the optical materials are represented by distinct points on a graph. As an example of PlotType, with either PlotType -> RefractiveIndex or PlotType -> Automatic, GlassMap gives a plot of the refractive index, nd, versus the Abbe V-number for the selected database-stored optical materials. The Abbe V-number, Vd = (nd-1) / (nf-nc), is a measure of the chromatic aberration of the specified material in a lens component. The smaller the Abbe number, the greater will be the chromatic aberration contribution of the material to a lens. Here, nf, nd, and nc are the refractive index values for three different wavelengths specified in the SpectralRegion option of GlassMap. As an alternative, PlotType -> {RefractiveIndex, AbbeVNumber} can also be used for the same effect.
Depending on the PlotType values given, GlassMap gives a number of different point-like representations for the refractive index and dispersive properties of optical materials. PlotType can hold either one or a list of two values. If a single value is given, then the chosen value is plotted on the vertical axis, and the horizontal axis shows the AbbeVNumber. Otherwise, PlotType -> {value1, value2} can be used to directly indicate the horizontal and vertical display parameters. PlotType values can include: Automatic, RefractiveIndex, PartialDispersionRatio, MeanDispersion, AbbeVNumber, and Function[{nf, nd, nc}, F[nf, nd, nc]] where F[nf, nd, nc] is a user-defined expression. When PlotType holds a list of two values, the value list order is usually not important. In particular, the MeanDispersion and AbbeVNumber parameters always take the horizontal axis regardless of their specified positions in PlotType, unless both get specified simultaneously. In such a case, the MeanDispersion parameter gets plotted on the vertical axis and the AbbeVNumber parameter remains plotted on the horizontal axis. However, in the case of two user-specified Function parameters, the first Function parameter takes the horizontal axis while the second Function parameter takes the vertical axis.
GlassMap has two different modes of operation: rendering of data and creation of new optical material models. GlassMap is initially used to create a plot of optical material points. In its plotting mode, GlassMap uses ShowLabels -> True to indicate display of the Schott glass boundaries and ShowText -> True to indicate display of the material names with their corresponding points. Finally, GlassMap can be used to create new refractive index models in Rayica for specific selected materials. Once a plot has been generated in any PlotType format by one GlassMap function, the mouse-sampled coordinate points can then be copied and pasted as selectionproperties into a second GlassMap function having the same PlotType setting to generate new optical material models. When GlassMap receives one or more sets of coordinate points in selectionproperties, GlassMap identifies the corresponding optical material types and calls DataToRayica with the