Optical Layout
Tool
Usually, optical layout of an IFO is designed using a generic CAD (such as AutoCAD) or a special optical CAD (e.g. Zemax). We haven't used Zemax so I have no word on it.
Using a generic CAD was the original plan for LCGT optical layout. However, as I work on it, several problems were identified.
- It is very time consuming as we have to manually calculate the reflection and deflection angles.
- Optical path lengths also have to be manually calculated taking into account the index of refraction.
- Manual calculations can easily introduce errors.
- Every time something is changed (such as BS wedge angle), the whole drawing has to be redone.
- Fulfilling multiple IFO requirements (RC optical length, ITM incident angles, etc) with an optical layout is
- not a trivial task. Ad hoc CAD drawing is not suitable for this task. More systematic way is necessary.
Therefore I (Y. Aso) wrote a small python library to programatically create optical layouts. The library is called gtrace (meaning Gaussian ray-Tracing), and easy to use. The library features:
- Automatically calculate reflection and deflection angles when a beam hit an optical component.
- Multiple reflections inside a thick optics can be handled.
- Laser beams are treated as fully Gaussian beams.
- Beam parameters (q-parameter, width and ROC) evolve as the beam propagates.
- Optical distance is properly calculated when transmitting through optics.
- Gouy phase change is tracked.
- Beam parameters are stored in x and y directions separately. So when a beam hit a spherical surface from a diagonal direction, astigmatism is taken into account.
By using the library, one can turn logical requirements such as the RC optical lengths, folding angle, ITM surface normal directions (they have to be orthogonal), etc into a real optical layout in a systematic way by writing a program. Once the program is written, it is easy to change wedge angle or substrate material, because all you have to do is to re-run the program to generate a new optical layout.