This post describes how to implement dispersive models not directly supported by Lumerical Solutions. This example shows how you might create a Plasma + Lorentz model.
One option is to use the Analytic material model, which requires an analytic function to define the refractive index. See the Analytic material model page for more information. The second option, which we will consider here, is to evaluate the function with some other tool (eg. MATLAB) and use the Sampled data material model.
usr_create_dispersive.lsf (2.7 KB)
Create the dispersive model data
The script file usr_create_material_data.lsf provides an example of how this can be done. This script function outputs the n,k values from a combined Plasma + Lorentz model to create a new material in the Material database. The script automatically creates the material with n,k data loaded in. Users can choose to export the data to a text file and load back in using the Sampled data, but this procedure might introduce numerical precision problems.
Check the fit
It is important to check the quality of fit that can be achieved by the multi-coefficient model. In some cases, the Max number of coefficients may need to be adjusted. Check the fit with the Material Explorer, which can be accessed from the top menu, under Simulation --> Material Explorer or from the main toolbar under ‘Check’.
In this example, the fit is very good for this Plasma + Lorentz model. In fact, only 3 coefficients were used, even though the maximum number of allowed poles was 6. Other functions may have larger errors, or may require more coefficients to achieve an acceptable error tolerance.
Note: Improve fit with advanced options
If you cannot get a good fit to your data, uncheck the ‘improve stability’ option in the advanced options section. You can also try to uncheck the ‘make fit passive’ option to remove even more restrictions on the fitting function. This may, however, lead to diverging simulations. For more information, see Modifying material fits.