Basic FDTD Simulation - Lumerical style commands#
A simple example to demonstrate using PyLumerical using Lumerical Script File (lsf) style commands. Sets up and runs a basic FDTD simulation. E field results are plotted in Lumerical.
Prerequisites:#
Valid FDTD license is required.
Perform required imports#
[ ]:
1import ansys.lumerical.core as lumapi
Open an interactive session#
[ ]:
2# Set hide = True to hide the Lumerical GUI.
3fdtd = lumapi.FDTD(hide=False)
Set up simulation region#
[ ]:
4fdtd.addfdtd()
5fdtd.set("x", 0)
6fdtd.set("x span", 8e-6)
7fdtd.set("y", 0)
8fdtd.set("y span", 8e-6)
9fdtd.set("z", 0.25e-6)
10fdtd.set("z span", 0.5e-6)
Set up source#
[ ]:
11fdtd.addgaussian()
12fdtd.set("injection axis", "z")
13fdtd.set("direction", "forward")
14fdtd.set("x", 0)
15fdtd.set("x span", 16e-6)
16fdtd.set("y", 0)
17fdtd.set("y span", 16e-6)
18fdtd.set("z", 0.2e-6)
19fdtd.set("use scalar approximation", 1)
20fdtd.set("waist radius w0", 2e-6)
21fdtd.set("distance from waist", 0)
22fdtd.setglobalsource("wavelength start", 1e-6)
23fdtd.setglobalsource("wavelength stop", 1e-6)
Set up monitor#
[ ]:
24fdtd.adddftmonitor()
25fdtd.set("monitor type", "2D Z-normal")
26fdtd.set("x", 0)
27fdtd.set("x span", 16e-6)
28fdtd.set("y", 0)
29fdtd.set("y span", 16e-6)
30fdtd.set("z", 0.3e-6)
Run and save simulation#
[ ]:
31fdtd.save("fdtd_tutorial.fsp")
32fdtd.run()
Retrieve and plot results#
[ ]:
33E = fdtd.getresult("monitor", "E")
34fdtd.visualize(E)
Keep session open until user clicks space bar#
[ ]:
35fdtd.print("Example complete. Hit space bar to close.")
36fdtd.pause(60)
