Technical Issues - Index temperature dependence

n,k vs. temperature data are generally not available and will
require a series of measurements. Click here to learn more.

Temperature variations bring about n,k variations causing spectral shifts in optical coatings. Several approaches are supported by FilmStar. We can use dispersive index files corresponding to particular temperatures and/or implement temperature dependence thermo-optic coefficients dn/dT, dk/dT.

When thermo-optic coefficients prove insufficient, it may be necessary to interpolate between tables measured over temperature ranges or utilize formulas beyond the capability of the Index Formulator. This is similar to our treatment of alloys such as AlGaAs.

One approach is to simply create and store (using program INDEX) dispersion files corresponding to different temperatures. A user might, for example, store data for TiO2 at 150 deg as file TIO2-150. The dispersion files become referenced in the Film Indices dialog as shown below for material H.

When considering index variations, the design must be
characterized by physical rather than optical thickness. 

Facilitating switching between temperatures, entries displayed in the Film Indices dialog can be stored on disk independently of the thin film design itself. This is accomplished in several ways:

  1. Set DESIGN to use FILM mode instead of FILM Archive mode. Then Film Indices are loaded and saved via File Open and File Save As.

  2. If FILM Archive mode is utilized (recommended), Film Indices can still be opened with shortcut keys <Alt+Ctrl+I> and saved with <Alt+Shift+I>. Or, if  Augment File Open/Save is checked in File Configuration Preferences, the usual File Open and File Save As dialogs support Film Indices (.inw) files in addition to FILM Archive (.faw) files.

Other ways of including temperature dependence rely on User-Defined Index Functions. Suppose we know that the index of refraction of a material at 20° is 2.453 and the temperature dependence coefficient dn/dT = 11.5*10^-6/°C. If the wavelength range of interest is restricted so that dispersion can be neglected, we might use the following Index Function to specify material M at 90°C in the Film Indices dialog (see above). While variable A could be replaced by constant 2.453 in the formula, it is more general to utilize A as a coefficient.

Alternatively, suppose we need to use dispersion, but can assume that the temperature dependence dn/dT is relatively constant over the wavelength range of interest. Assuming once again that there is no absorption (k=0) we define User Index Function TMPTR2 which specifies material N at 90°C in the Film Indices dialog.

Suppose we have dispersion curves for 20°C and 150°C and believe that intermediate values follow a linear relation. In this case, Index Function TMPTR3 specifies material P at 90°C in the Film Indices dialog.

Approximate thermo-optic coefficients are given below.
These were obtained from various sources and, in some cases, apply to bulk materials.

BK7 2.3E-6/°K (bulk)
TiO2 -1.2E-4/°K
SiO2 9.6E-6/°K (bulk)
Al2O3 1.3E-5/°K (bulk)
HfO2 5.8E-6/°K (doped)
MgF2 8.8E-7/°K (bulk)

Another approach is to use a FilmStar BASIC program to generate new index tables. In the following example (included in FilmStar installation and in basic.zip), index file 'TiO2' (room temperature, say 23°C) is processed into two new files: 'TiO2 +40C' and 'TiO2 -10C'.

' Program IndexTempVar.bas for FilmStar INDEX
' Copyright 2009 FTG Software
' Applies thermo-optic coefficient to n values
' NOTE: This model assumes a constant index dn/dT
'       variation with temperature deviation from 23°C
Option Base 1
Option Explicit
DefInt i-N
DefSng A-H, O-Z
Public fName$, Coeff
Sub Main
    Dim s$
    Const Title$ = "Index Adjust"
    On Error Resume Next
    fName$ = IndexName$
    If fName$ <> "" Then
        Coeff = Val(InputBox(fName$ & " thermo-optic coefficient?", Title$, s$))
        If MsgBox("Apply T-O coefficient " & Format$(Coeff, "0.00E+0") & _
        " to index table " & fName$ & "?",vbQuestion + vbYesNo, Title$) = vbYes Then
            If nIndex > 0 Then
                TableModify
                MsgBox "New files (+40°C, -10°C) saved",vbInformation, Title$
            Else
                MsgBox "Unsuccessful operation",vbExclamation, Title$
            End If
        End If
    Else
        MsgBox "No index file specified", vbExclamation, Title$
    End If
End Sub
Sub TableModify
    Dim i
    ReDim xIndx(1, 1)
    xIndx = nkTable
    ' original index tables at 23°C (room temperature)
    For i = 1 To nIndex
        ' increase 17°C
        xIndx(i, 2) = xIndx(i, 2) + 17 * Coeff  ' + 40°C
    Next i
    nkTable = xIndx
    FileSave fName$ & " +40C"
    For i = 1 To nIndex
        ' decrease -50°C
        xIndx(i, 2) = xIndx(i, 2) - 50 * Coeff  ' - 10°C
    Next i
    nkTable = xIndx
    FileSave fName$ & " -10C"
End Sub

  Back to Technical Issues

Copyright © 2023 FTG Software Associates
Last updated on January 31, 2023