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)

e7a0c0bc9288480cb8e12bcd7a33ae6b