Optical Ports: Extracting S-Parameters


The concept of a port was introduced into FDTD Solutions in the 2017a release. New objects called ports can be added to a simulation and used to extract the equivalent circuit representation of a device. A port is usually defined as a cross section on a waveguide structure or a connector, and it serves as a reference point to extract an equivalent circuit representation. The port objects in FDTD Solutions can be used to excite all the ports of a device in order to extract a complete S-parameter representation. At the bottom of this post you will find a simulation file and a script with a simple example. The simulation file consists of a straight glass waveguide with two ports. To extract the full S-parameter matrix, all the ports must be excited individually using separate simulations. In this example, two simulations are needed: one to excite port 1 and extract S11 and S21, and another one to excite port 2 and extract S12 and S22. This process can be carried out by hand or in an automated way using the new S-parameter sweep tool. The two approaches are briefly illustrated here.

Extracting S-parameters by Hand

The attached script extracts S11 and S21 and compares them against the expected results. First, the script sets the first mode of port 1 as the exciting port. This is done with the following two commands:

setnamed("FDTD::ports","source port","port 1");
setnamed("FDTD::ports","source mode","mode 1");

Afterwards, the script runs the simulation and collects S11 from port 1 and S21 from port 2 and plots the results:

Extracting S-parameters Using a Sweep

The S-parameter sweep tool can be used to extract all the S-parameters of the device in an automated way. The attached simulation file already contains a sweep that will run one simulation for each of the two ports:

The sweep tool will automatically run the simulations and aggregate the S-parameter results. The complete results can be visualized from the result view after running the sweep:

Simulation Files

ports_straight_waveguide_demo.fsp (4.0 MB)
ports_straight_waveguide_demo.lsf (1.2 KB)

some question about the grating coupler on your website
Taper simulation using EME mode Sol.
pinned #2


I see that if you rename the ports, e.g., “Port A” instead of the default “port 1”, and save the S-Parameters to a file, the .dat file correctly lists the ports via their name in FDTD, e.g., “Port A”.

However, when you load this S-Parameter file in INTERCONNECT using the “Optical N Port S-Parameter” object, the port names are always stuck on “port 1”, “port 2”, etc. Is this a bug, or is there a way to get the port names imported too?

Thank you


Hi Lukas,

This a limitation of the current export S-parameters to INTERCONNECT feature (2017a release of FDTD Solutions). We are working on fixing this issue and it will be resolved in the 2017b release. In the 2017b release, you will be able to change the port name, change the name of each mode in each port and specify the location of each port in the INTERCONNECT icon.



I just updated FDTD to 8.17.1157, from the previous one about 1 month ago, 8.17.10xx.

The S-Parameters that are returned are now only 1 frequency point, whereas previously they had 101 points, as specified in the ports GUI, namely “monitor frequency points” = 101.

Here is the GUI configuration:

And here is the plot of the S-param versus wavelength. It should have 101 points…

any idea how to fix this?

thank you


Hi Lukas,

This is a small bug with the addport scripting command. If you set the number of monitor frequency points on the port group right after you add all the ports that you need, your simulations will work as expected. Adding ports from the UI works fine, it is just the scripting command that has a glitch. This was recently fixed in our code base, but, unfortunately, the fix did not make it to 8.17.157 (R5).