This article explains:
The article is accompanied by a ZIP archive containing the samples used and a macro. This can be downloaded from the final page of the article.
Normal glasses are homogeneous and isotropic, that is, they have the same refractive index no matter what direction light travels through them. Uniaxial materials, such as Calcite, have a crystal axis which defines an axis of symmetry. These materials refract rays differently, depending on the polarization state of the ray and the angle the ray makes with respect to the crystal axis. Therefore there are two possible refraction angles for any ray, representing two orthogoanl polarization states. This phenomenon is known as double refraction or birefringence.
Birefringent materials always bend rays according to Snell's law, but the effective index of refraction in the media depends on the input polarization state of the ray and the angle the ray makes to the crystal axis. "Ordinary" rays are refracted by:
nsinq = nosinq'
where no is the ordinary refractive index. which is just Snell's law. "Extraordinary" rays are refracted by:
nsinq = n(qw)sinq'
which is also Snell's law, but note that the refractive index is now a function of the angle qw, which is the angle between the crystal axis vector a and the refracted wavevector k.
Now here is the hard part. The ray vector S, which points in the direction of energy flow, does not follow the wave vector k but instead makes a small angle with respect to it. In normal glasses k and S are the same vector and we just keep track of k. In birefringent media we must consider the ray and wave vectors as being different. The vectors k and S both lie in the same plane as the crystal axis vector a, and
cosqw = k•a
The effective refractive index seen by the extraordinary ray is defined by:
(1/n(qw))2 = (cosqw /no)2 + (sinqw /ne)2
where ne is the extraordinary index of refraction.
Clearly tracing birefingent rays is more complex than ordinary ray-tracing: we must consider two refractive indices and the orientation of the ray and wave vectors relative to a crystal axis vector. So, birefringent ray tracing is performed only when called for. It starts when a ray hits a Birefringent In surface, and ends when the ray hits a Birefringent Out surface. Only Coordinate Break surfaces are allowed between a Birefringent IN and Birefringent Out surface.
In normal ray-tracing the ray vector S and the wave vector k point in the same direction: the direction of energy flow. Therefore in normal ray-tracing the k vector components define the ray's direction cosines.
In birefringent ray-tracing, k and S are not identical but are coplanar with the crystal axis vector a. The components of S now define the ray's direction cosines.
Here is an example of a ray entering a block of calcite. The dotted line represents the crystal axis:

The ray enters the calcite and appears to be split (more on this later) into two rays. The ordinary ray refracts normally, and as the surface is flat, it is not bent. The extraordinary ray undergoes double refraction, once at the surface and again at the crystal axis, and so is deviated, even though the surface is flat and the ray is at normal incidence.
This is how this is entered in ZEMAX:

The ray is traced surface-by-surface normally until it hits the Birefringent In surface. This has the same surface shape as the Standard surface (i.e., a conic asphere) Note the glass used is CALCITE: this is used as the ordinary index. ZEMAX will look in the same catalog for a glass named CALCITE-E. This contains the extraordinary index of the material. By using two glasses, every piece of data about the glass (transmission, dispersion, thermal properties etc) can be incorporated for both indices.
The crystal axis orientation relative to the surface normal is defined by the parameter data of the Birefringent-In surface:

The direction cosines of the crystal axis are entered directly, in the local coordinates of the Birefringent-In surface. The "Draw Axis" parameter specifies the length of the dotted line shown in layout plots to represent the axis, in lens units. This may be set to zero to avoid drawing the axis, if required.
Now the layout plot above is misleading: it appears to show a ray being split into ordinary and extraordinary components. In sequential ray-tracing, rays can never split: one ray in must give only one ray out. The Mode flag in the parameters of the Birefringent In surface tells ZEMAX which ray to trace:
This layout plot is computed by using one configuration of the design with mode = 0, and another with mode = 1, and overlaying the plots for the two configurations:


Modelling birefringent polarizers usually requires two birefringent media, with the crystal axes of the two media rotated in some fashion. For example, the Rochon polarizer is made of two prisms of a birefringent material (KDP in this case)


We then recombine the rays by adding their field amplitudes together, not their intensities. This is a key point, and is discussed in detail on the next page.
In this particular sample file, rays which see the extraordinary index in the second crystal are bent at the crystal-crystal interface. In the first crystal, the crystal axis is along z and so the a ray sees the same index irrespective of its polarization. Remember: inside the birefringent material the S-polarization refers to a plane perpendicular to the crystal axis and the P to a plane parallel to it. At normal incidence with the crystal axis in z these are indistinguishable.
In the second, with the crystal axis along x, the S-polarization is still perpendicular to the crystal axis, and the P is parallel to it. These two limiting cases are clearly distinguishable. Therefore, rays polarized in y are bent at the crystal-crystal interface.
In this example, modes 1 and 3 (in which the ordinary ray is traced in the second crystal) are transmitted undeviated by the crystal, whilst configs 2 and 4 are bent by double refraction.
Let's say we want to compute the extinction ratio of the undeviated beam. Experimentally, we might illuminate the polarizer with y-polarizer light and measure the transmitted intensity, then repeat with x-polarized light, and then take the ratio. That is exactly what we will do in ZEMAX. The complication is that "the" transmitted intensity is the coherent sum of two configurations. So, instead of adding intensities, we must add fields, and then compute the intensities. The easiest way to do this is with a ZPL macro.
Here are the keywords we'll need (see the manual for the full syntax):
POLDEFINE Ex, Ey, PhaX, PhaY to define the initial polarization state of the ray, and
POLTRACE Hx, Hy, Px, Py, wavelength, vec, surf to perform polarization ray-tracing on the ray specified, to the surface specified, and to store the resulting data in an array specified by the vec expression. The data we need is stored in the following elements of this data array:
To compute the total intensity in the ray described by summing configuration 1 and configuration 3, the code is:2: E-Field X component, real
3: E-Field Y component, real
4: E-Field Z component, real
5: E-Field X component, imaginary
6: E-Field Y component, imaginary
7: E-Field Z component, imaginary

and the routine print_vector is just

In the main body of the macro the key section is:

Using this to trace an axial ray gives an extinction ratio of infinity, whilst a general skew ray shows energy being transmitted from the x-polarized rays, and hence has a small extinction.
![]() | ![]() |
The Polarization Pupil Map can also sum the field amplitudes to compute the transmission of a given polarization state across the pupil. Because there may be any number of birefingent crystals there may be any number of configurations, this feature lets you define which configurations to consider simply by typing a space-delimited list of configuration numbers.

This article has demonstrated the basic techniques needed to model birefringent components in ZEMAX. In summary:
Further Reading
1. Saleh and Teich, Fundamentals of Photonics, Wiley Interscience
2. Quan-Ting Liang, "Simple ray tracing formulas for uniaxial optical crystals", Applied Optics Vol. 29, No. 7, (1990).