Derived from the classical electron oscillator model, with coefficients determined empirically, the Sellmeier equation is commonly used to approximate the index of refraction for various glasses at a particular wavelength.


The Sellmeier equation, usually expanded to the third term, is useful for finding the refractive index at a particular wavelength for a certain type of glass. However, catalogues generally calculate the refractive indeces for only a set of more common wavelengths. For those who use tunable lasers, like me, a refractive index calculator might prove to be convenient.

IndexCalc is basically just that, a refractive index calculator, which allows you to save the Sellmeier coefficients of various glasses in a text file.

System Requirements

JRE 1.6 or above is required to run this program; the Java Runtime Environment is available for most popular operating systems.


To use, first download the archive and extract it using the archiving tool of your choice, or cd to the directory and run:

tar xzvf IndexCalc.tar.gz

Using a command line, cd to the IndexCalc folder that was extracted. The "glasses" file in this directory is a plain text file, and includes the list of glasses and their respective Sellmeier coefficients. Different glasses are separated by this delimiter:


and including this delimiter is required if you want to edit the glasses file manually. If more than one name is entered for a glass type, the glass names must be separated by a single space (see figure).

The six numbers after the glass name(s) are the B1, B2, B3, C1, C2, C3 Sellmeier coefficients (in that order) for ordinary wave polarization, and the final set of six numbers are the coefficients for extraordinary wave polarization. The Sellmeier coefficients are labeled using the following notation:

n^2(\lambda) = 1+\frac{B_1 \lambda^2}{\lambda^2-C_1}+\frac{B_2 \lambda^2}{\lambda^2-C_2}+\frac{B_3 \lambda^2}{\lambda^2-C_3}

You may also add a new glass type to the "glasses" file through the program. While you are in the IndexCalc directory, run:

java -jar IndexCalc.jar

to start the program. A dialog that says:

Enter glass type or 'custom':

will appear. Type:


and press the Enter key to continue. Then, specify whether the glass is birefringent or not. You may then enter a name or set of names for the glass. If entering more than one name, separate different names with a single space. After naming the glass, you will be able to enter the Sellmeier coefficients for the glass. The next time you run the program, you can simply type the name of the glass at the "Enter glass type:" dialog to find the refractive index at the desired wavelength and input polarization.

To quit the program during exection, press Ctrl+C.


IndexCalc Ver. 0.1
This work is licensed under the MIT License.
Please feel free to submit issues to my email. I will open up a github page for this program if there is interest from the community to improve upon it.