21 Jul 2006
With a variety of optical design software on the market, choosing the right package for your application can be difficult. Michael Stevenson breaks down the options and lists important questions to consider when searching for the software that suits your needs.
Modern optical software programs provide engineers and designers with fast, accurate virtual-prototyping resources to visualize optical system designs. R&D managers sign off on optical software purchases because the right software package improves engineer productivity and reduces product development costs, leading to better innovations on tighter budgets and timelines.
Evaluate today's optical software landscape and you will find that a number of options are available to you. If you are new to optical software, this can certainly be a confusing time. The first thing that you need to know about all of these programs is that their core engines generally fit into one of three categories: sequential ray-tracing; non-sequential ray-tracing; and finite-difference time-domain (FDTD) simulation.
Ray-tracing involves modelling the geometrical components of optical systems, defining the optical properties of these objects, approximating light sources with directional rays and then predicting real-world system behaviour by propagating these rays through system models and by observing.
Sequential ray-tracing engines trace the rays created to approximate source characteristics in a sequential fashion – intersecting optical elements one at a time and in a pre-defined order.
Boundary conditions defining the optical properties of media on both sides of a surface, as well as thin-film coatings applied directly to surfaces, are all entered by the user to tell the ray-tracing engine how to reflect, refract, absorb and/or diffract the rays at each interface.
Sequential ray-tracing software is most often used to design, optimize and tolerance systems of lenses – providing insight into the number of lens elements required in an optical system, their curvatures and ideal glass types. Cameras, endoscopes, microscopes and telescopes are examples of lens systems amenable to sequential ray-tracing analysis.
As the name suggests, non-sequential ray-tracing engines permit rays to encounter surfaces in any order and any number of times with automatic ray splitting. Allowing rays to scatter and interact with system components as they do in reality, this type of ray-tracing methodology can accurately predict the real-world behaviour of optical systems.
Non-sequential ray-tracing software is often used to model complex optical systems in which scattering and stray light characteristics must be known and controlled. Examples include imaging systems, backlights, light pipes and luminaires.
Non-sequential engines can also be used to model coherent systems through a method known as Gaussian beam summation, which relies on grids of Gaussian beamlets propagated by geometric ray-tracing. Non-sequential ray-tracing engines capable of Gaussian beam propagation can be used to model interferometry, diffraction, partial coherence and other wave-optics phenomena.
As the feature sizes in optical systems shrink to approach wavelength-scale structures, the Gaussian beam summation model breaks down and conventional ray-tracing engines become increasingly less able to accurately predict the kind of behaviour seen in micro-optical systems.
FDTD engines solve Maxwell's equations to propagate electromagnetic fields through micro- and nanoscale structures. This enables the consideration of wave-optics phenomena, without approximation, in arbitrary materials having microscale system geometry.
FDTD codes are used for design and analysis of integrated optical devices, plasmonic devices, optical microcavities and scattering from wavelength-scale objects and structured surfaces. Now that you have some background on the categories of optical software programs, there are some key factors to consider that will help you to further narrow your search.
The first step in modelling an optical system is to create an accurate geometrical model. Most optical software programs include interfaces for creating geometrical models from primitive/native shapes and a bevy of options for importing system geometry from computer-aided-design (CAD) packages.
If you choose to create your geometrical system model inside of an optical software program with primitive geometry elements, you will enjoy two advantages. Firstly, an increased analysis efficiency, which can save you hours, and secondly, enhanced parameterization and iteration for analysis automation.
Alternatively, you may have access to a complete CAD model of your system, in which case you will want to explore the native file interoperability features available in some programs, or universal translation formats such as IGES, STEP and XML.
There is also a class of optical software programs that exist as plug-ins to various CAD packages, in effect bringing optical software features into the mechanical engineering workspace. If you are already a CAD user, this may be your best option but be sure to consider the scope of your optical analysis needs and how the release schedules of both the CAD package and the plug-in may affect your workflow.
Now ask yourself:
Modelling and analysis capability
The second step in modelling an optical system is applying optical properties to the geometrical elements that you have created or imported. Here you will accurately define the boundary conditions telling the analysis engine how to treat optical interactions at each interface in your system. Your results depend on the accuracy of both your geometrical model and the optical properties you apply to it. Look for a tool that will allow you to create and apply optical transmission, absorption, diffraction and scatter models that closely approximate the real-world properties of every material in your system.
Some programs come with material libraries to accelerate your system setup but you may also want the option to create custom interface models based on lab measurements, which may include BSDF (bidirectional scattering distribution function) data.
As part of your system model, you will need to define a source. If you are using a non-sequential ray-tracing program, you can also include source geometry detail for considering the secondary ray interactions that produce ghost images.
Source models can consist of source images, point sources, ray grids and fans, as well as custom wavefront approximations. In some cases, you may need to model complete sources such as incandescent bulbs, LEDs or cold-cathode fluorescent lamps. Know what type of source characterization your system will require and ask if pre-defined source libraries are available to save you time.
Before you begin to analyse your complete system model, know your end goal. If you are simply validating a design, you may be ready to begin tracing rays or propagating a wavefront. If you are optimizing a design, you should think in advance about iterative steps and variable parameters. For advanced applications, you may require optimization tools, user-definable macros and integrated scripting support for alternate programming languages.
Now ask yourself:
Accuracy and speed
Optical software programs are tools to ask precise questions about the way in which light behaves in optical systems. For equally precise answers, programs must model geometrical entities and optical interactions as they occur in the real world.
Realistic simulation requires an optical computation engine that does not make surface approximations or skip over secondary and tertiary optical interactions or beyond. Here, the engine must be particularly efficient at parsing system objects and calculating ray or wavefront interactions.
Accuracy and speed are reciprocal characteristics. The most accurate programs available do not cut corners in the interest of reducing analysis run times. Others produce seemingly instantaneous first-order results that should be treated as rough approximations. Know the degree of accuracy you require and ask about any shortcuts taken to reduce analysis time.
Now ask yourself:
Technical support and software updates are commonly bundled together in what software companies refer to as maintenance contracts. The level of support available from an optical software company and the frequency of software updates should be a significant factor in your search.
You should expect a convenient process for submitting enquires and fast, technically accurate responses. Beyond answering your specific questions, a skilled support team will be able to offer insight into the problem-solving approach that is best for your application. To ensure this level of support, make certain that your maintenance contract gives you access to senior optical engineers whose sole function is to provide software clients with technical support.
Now ask yourself:
Software product quality results from the right development resources working with the right development process. Development teams operating under well-defined process guidelines, such as the industry-standard SEI CMMI Capability Maturity Model, are able to produce more capable and reliable products. Ask about a company's quality-assurance practices, which may include full-time quality-assurance engineers.
Look for development teams that remain well-interfaced with other business units but are dedicated solely to software development activities. Watch out for development groups that are also performing technical support and working engineering contracts, which take away from development momentum. Also seek out companies that are allocating their development resources to balance new product development with existing product development and maintenance.
Optics has far-reaching applications, each with its own demands on software packages. As such, the top software companies are constantly evaluating market opportunities and developing for the next wave of optics applications. Find out as much as you can about how planned feature enhancements will relate to your needs.
Now ask yourself: