This page provides a simple example that describes how to simulate a polymer curing process where the refractive index of the polymer changes as a beam propagates through it.
As light propagates through the polymer, a small fraction of power is absorbed, which changes the refractive index. The changing index affects the beam propagation, which in turn alters the absorption profile. A series of FDTD simulations are required to simulate this system.
The primary assumption required by this technique is that the time scale of the curing process is many orders of magnitude slower than 1/f. If this assumption holds, then the material properties change much slower than the time it takes any one photon to pass through the device. This allows us to approximate the system with a series of simulations with fixed refractive index profiles. The absorption profile from one simulation is used to update the refractive index profile for the next simulation, and so on.
In this example, we assume a very simple curing process. The index increases linearly with the absorbed power. Initially, the index is 1.5, and it can increase to a maximum of 1.6. Obviously real materials will have more complex behavior, but the basic idea is the same.
To reproduce these results, open the simulation file and run the script. It will run a series of 5 simulations and create the following figures. Initially, the index of the polymer is 1.5 everywhere. By the end of the simulation, the index has increased to 1.6 at the center of the beam.
Refractive index, |E|^2, absorption at each time step
Note: Time step size
It's important to use a time step size sufficiently small to ensure good convergence. In this example, we only use 5 time steps (dt=0.25) to keep the example quick. If the number of time steps is increased to 11 (dt=0.1), the results will change by 5-10%. However, increasing the number of time steps further does not have a significant effect on the results, suggesting that 11 points is sufficient.
The recommended procedure for using symmetry boundary conditions is to draw the entire physical structure, even if only 1/4 of the structure will actually be simulated.
In this example, you will notice that the polymer object is only defined in 1/4 of the volume. This is slightly unusual and not generally recommended. We decided to draw only 1/4 of the polymer so the index profile was clearly visible from the main CAD viewports. It also makes the simulation file smaller, since we only need to store the material properties in 1/4 of the volume.
If you choose to draw only one quarter of your device when using symmetry boundaries, it is very important that the structure extend at least 1 full mesh cell beyond the symmetry boundary. This is required for the symmetry boundaries to function properly. In this example, if you look closely, you will see the polymer extends 0.5um beyond the planes of symmetry.
Note: Conformal mesh
The default conformal mesh setting is used for this simulation. However, the material properties used for the polymer are imported as a function of x,y,z using an (n,k) import object and are meant to represent an index that varies continuously as a function of space. In this type of (n,k) import object, there is no interface and so the conformal meshing is not applied, except at the interfaces between objects such as the fiber core and cladding. For this reason, very similar results can be achieved using the staircase meshing.