Topology Optimization of a 4-channel wavelength demultiplexer (2D, TE-polarization)
In this example, we use the topology optimization feature from the inverse design toolbox lumopt to design a wavelength demultiplexer for 4 channels. We target a 10nm transmission band around the center wavelength of 1270nm, 1290m, 1310nm and 1330nm. Between the channels, there is a 10nm gap for isolation.
In this example, we restrict the design area to 6um x 6um.
Run and Results
Download the file CWDM_splitter_1310_4ch_2D_TE_topology.zip (2.6 KB) and unzip the files into one common directory.
To speed up the optimization, it is recommended to set the resource configuration of FDTD such that the job manager can run several jobs in parallel. Since each job is a relatively small 2d simulation, it makes sense to configure several Resources which use one thread each. For example, if the computer that will run the optimization has 8 physical cores, it makes sense to add 8 resources with one core each as shown in the screenshot below. In this example, there is no point in having more than 8 resources. So, if the computer has 16 cores, it makes sense to add 8 resources with two cores each.
Running the python script then starts the optimization. This example is a complex and the full optimization runs for about 1000 iterations. Depending on the available compute resources, this can take several hours up to a few days.
Important Model Settings
The initial condition
In this example, we initially fill the design area with a fictitious average material parameter, which often results in solutions with good performance. However, depending on the FOM and other settings, it is possible that a different starting condition will yield better results
Maximum number of iterations, especially during the binarization phase
The 4-channel wavelength demultiplexer is a complex device and the optimization requires significantly more iterations than simpler devices (such as the Y-splitter). In this example, we increased the number of iterations for the initial grayscale phase to 500 and we increased the maximum number of iterations for each binarization step to 50. Further increasing those values will lead to longer optimization times but can also further improve the results.