Welcome to Python Lumercial Costructor Script’s documentation!
To isntall the library please clone the git repo https://github.com/MartinMiroslavovMihaylov/Python_Lumerical.git to a empty folder. The you can install the Costructor lib with the setup.py file. Type in open Terminal:
pip install -e .
How to use the script
First you need to locate your Lumerical installation folder and find the lumpi.py file. For example under Windows you can find the file under “C:Program FilesLumericalv221apipythonlumapi.py”.
Once located yoy will need to add to Lumerical an Material File. The file will have an ending “Material_File_Example.mdf”. If you dont have an Material file you can skip this part.
Finaly go to your Python IDLE and import the Constructor lib that you just installed:
import os
import os.path
import sys
# Import Constructor
import Constructor as Constructor
# Import Help Menu
from Constructor import Help
#Import Loading Bar
from Constructor import loadingBar
# Import Logfile function extractor
from Constructor import Logfile
# Give the lumpi.py files paths
Path = "C:/Program Files/Lumerical/v221/api/python/lumapi.py"
# Start the Lumerical FDTD API
obj = Constructor.Constructor(file, "FDTD")
# If you have an Material Library you wanna import you can use
MaterialPath = "C:/.../Materials.mdf"
obj = Constructor.Constructor(file, "FDTD", MaterialPath )
How to define Materials and Parameters
The Materials are taken from the Lumerical build in or imported Materials database. The user can give Materials by them names as an python list of str. For Example:
Material = ["SiO2 (Glass) - Palik", 'LiNbO3_20deg_X cut', "SU-8"]
The parameters are given as dictionary to the Costructor. For example to create an 1x2_MMI you can use this code snip:
#Create empty dictionary
Parameters = {}
Parameters['Substrate Height'] = 1.05e-6
Parameters['MMI Width'] = 3.6e-6
Parameters['MMI Length'] = 18e-6
Parameters['angle'] = 20
Parameters['WG Height'] = 0.3e-6
Parameters ['WG Width'] = 0.5e-6
Parameters['WG Length'] = 5e-6
Parameters['Offset Input'] = 0
Parameters['Position Offset'] = 1.49e-6
Parameters['Slab Height'] = 0.6e-6 - Parameters['WG Height']
Parameters['Material'] = Material
Parameters['Taper Length'] = 10e-6
Parameters['Taper Width'] = 4e-6
Parameters['Taper'] = False
# Create the MMI
obj.MMI2x1(Parameters)
How to use the Logfile function
The Logfile function can be used after each simulation to generate an .txt file with all the parameters used for this specific simulation and the time stemp of the simulation. To use the function simply type:
# Save solver info to an variable
solver = obj.ReturnLogInfo()
# create an list of solver info and parameters used for this simulation
data = [solver, Parameters]
# Write the information to an .txt file in the given location
path_for_logFile = "C:/..../Simulation_Data/"
Logfile(data, path_for_logFile)
How to use the loadingBar function
The laoding bar function will create an loading bar in your python terminal whitch will give you more information about the current status of the simulation (if you are doing an sweep over couple of parameters). To show you how to use the function an for loop will be used :
import time as t
Lenght = np.arange(20e-6,30e-6,2e-6)
for i in range(len(Lenght)):
#Set the loading bar function
loadingBar(i, len(Lenght))
Parameters['Taper Length'] = Lenght[i]
obj.StraightWaveguide(Parameters)
t.sleep(5)
obj.removeObject()
Constructor package
Submodules
Constructor.Constructor module
Created on Fri Feb 10 08:31:42 2023
@author: Martin.Mihaylov
- class Constructor.Constructor.Charge(file, Mode, MaterialLib=None)[source]
Bases:
Constructor
- MZM(Parameters)[source]
- Parameters:
Parameters (dictionary) –
Dictionary with all the parameters needt for the MZM creation Parameters[‘Substrate Height’] : int/float
Substrate Height
- Parameters[“Optical”]dictionary of str
Optical Materials Dataset
- Parameters[“Electrical”]dictionary of str
Electrical Materials Dataset
- Parameters[‘angle’]int/float
Side angle of the Waveguife
- Parameters[‘Slab Height’]Slab Height
Height of the Material slab. It can be set to 0 if no Slab is presented
- Parameters[‘WG Height’]int/float
Waveguide Height
- Parameters[‘WG Width’]int/float
Waveguide Width. Here the Top Waveguide width is considered
- Parameters[‘WG Length’]int/float
Waveguide lenght. This determin the structure length as well
- Parameters[“GND Electrodes Width”]int/float
Ground Electrode width
- Parameters[“Signal Electrodes Width”]int/float
Signal electrode Width
- Parameters[“Electrodes Height”]int/float
Height of the Metal electrodes
- Parameters[“Gap”]int/float
Gap between the waveguide and the electrodes. The Gab is set from bottom Wg corner to electrodes.
- Return type:
None.
- MZM_ChargeSolver(Parameters)[source]
This function will create the CHARGE solver putting all the needed parameters and setting the simulation region monitor.
- Args: Parameters: dict
Dictionary with all the parameters needt for the MZM FEEM Solver region. The Simulation region is define only on the halft of the structure since the FEEM region is the simulation region too.
- Parameters[‘Substrate Height’]: int/float
Height of the Substrate
- Parameters[‘Slab Height’]: int/float
Slab Height
- Parameters[‘WG Height’]: int/float
Waveguide hight. You need to give this value but for the moment it will not effect anything
- Parameters[‘WG Width’]: int/float
Width of the Waveguide
- Parameters[“GND Electrodes Width”]: int/float
Ground Electrode width
- Parameters[“Signal Electrodes Width”]: int/float
Signal Electrode width
- Parameters[“Electrodes Height”]: int/float
Height of the Ground and Singla electrodes
- Parameters[“Gap”]: int/float
Gap between the electrode and Waveguide.
- Return type:
None.
- MZM_FEEMSolver(Parameters)[source]
- Parameters:
Parameters (dict) –
Dictionary with all the parameters needt for the MZM FEEM Solver region. The Simulation region is define only on the halft of the structure since the FEEM region is the simulation region too. Parameters[‘Substrate Height’] : int/float
Substrate Heigh
- Parameters[‘Slab Height’]Slab Height
Height of the Material slab. It can be set to 0 if no Slab is presented
- Parameters[‘WG Height’]int/float
Waveguide Height
- Parameters[‘WG Width’]int/float
Waveguide Width. Here the Top Waveguide width is considered
- Parameters[“GND Electrodes Width”]int/float
Ground Electrode width
- Parameters[“Signal Electrodes Width”]int/float
Signal electrode Width
- Parameters[“Electrodes Height”]int/float
Height of the Metal electrodes
- Parameters[“Gap”]int/float
Gap between the waveguide and the electrodes. The Gab is set from bottom Wg corner to electrodes.
- Parameters[“Wavelength”]int/float
Simulation wavelength
- Return type:
None.
- Material(Material_Data)[source]
- Parameters:
Material_Data (dictionary) – Material Optical or Electrical data. Separate Materials into Electrical and Optical in List Material_Data[“Electrical”] = [“mat1”, “mat2”..] and optical Material_Data[“Optical”] = [“omat1”, “omat2”, …]
- Returns:
Materials_Added – List of added materials to the simulation.
- Return type:
list
- ResultsCHARGE(Parameters_CHARGE)[source]
- Parameters:
Parameters (dict) –
Dictionary with all the parameters needt for the MZM CHARGE Results analysis. This function will plot the changes in the n_EO so that the user can see it.
- Parameters_CHARGE[‘min Polarization Fraction’]: int/float
This is the minimal Polarisation Fraction of the mode that need to be tracked in the waveguide. The user can first performe an FDE Analysis and extract the Polarisation Fraction and then give it in this function, so that in case of multimodal waveguide the right mode will be tracked and analysed.
- Returns:
electro – Simulation results from the monitor of CHARGE. This function will create an Lumerical window into Charge solver. The user can use the window to see tha changes in EO index depending on the voltage apply on the electrodes. The function will return the monitor Data, so that the user can use it for some post precessing.
- Return type:
dict
- ResultsFEEM(CHARGE_Data)[source]
This function will performe an FEEM sweep simulation to extract the neff changes from the waveguide. The changing neff is due to the changing voltage and electric field power over the waveguide.
- Parameters:
Parameters (dict) –
Dictionary with all the parameters needt for the MZM FEEM Results analysis. This function will plot the L_pi vs Volt, L_pi*Volt vs Volt, and delta_neff vs Volt
- CHARGE_Data is an dictionary that can be taken directly from the function ResultsCHARGE()
and give to this function. All the needed Parameters for the FEEM solver are there.
- If the user wanna give the Parameters manuel you can:
- CHARGE_Data[“V_Signal”]: int/float array
Array of the sweep voltage from the CHARGE Solver
- CHARGE_Data[‘min Polarization Fraction’]: int/float
This is the minimal Polarisation Fraction of the mode that need to be tracked in the waveguide. The user can first performe an FDE Analysis and extract the Polarisation Fraction and then give it in this function, so that in case of multimodal waveguide the right mode will be tracked and analysed.
Returns –
FeemResults: dictionary with all the results from the FEEM solver to plot them or use them in other function FeemResults[“lambda”]: int/float
Operation Wavelength
- FeemResults[“Volt”]: int/float
Array of voltages used in CHARGE solver and FEEM for the analysis
- FeemResults[“L_pi”]: int/float
Array with L_pi values
- FeemResults[“neff_TE”]: int/float
Array with neff TE Mode values from the FEEM solver
- FeemResults[“neff”]: int/float
Array with neff values from the FEEM solver
- FeemResults[“dneff”]: int/float
Array of delta_neff Values for the L_Pi Calculation: L_pi = lambda/ (2*RE{neff[No Voltage over Electrodes]] - neff[Voltage over Electrodes]})
- Set_SimulationRegion(Parameters)[source]
- Parameters:
Parameters (Dictionary of Parameters) –
Dictionary with all the parameters needt for the MZM simulation region. The Simulation region is define only on the halft of the structure sice the MZM is symetrical component. Parameters[‘Substrate Height’] : int/float
Substrate Heigh
- Parameters[‘Slab Height’]Slab Height
Height of the Material slab. It can be set to 0 if no Slab is presented
- Parameters[‘WG Width’]int/float
Waveguide Width. Here the Top Waveguide width is considered
- Parameters[“GND Electrodes Width”]int/float
Ground Electrode width
- Parameters[“Signal Electrodes Width”]int/float
Signal electrode Width
- Parameters[“Electrodes Height”]int/float
Height of the Metal electrodes
- Parameters[“Gap”]int/float
Gap between the waveguide and the electrodes. The Gab is set from bottom Wg corner to electrodes.
- Return type:
None.
- StartCHARGESolver()[source]
This function will first save the simulation into the folder where the this script is saved. After saving the script an Mesh of the structure will be performed and the mesh will be locked for further simulation. After this the CHARGE solver will be started.
- Return type:
None.
- StartFEEMSolver()[source]
This function will first save the simulation into the folder where the this script is saved. After saving the script an Mesh of the structure will be performed and the mesh will be locked for further simulation. After this the FEEM solver will be started.
- Return type:
None.
- class Constructor.Constructor.Constructor(file, Mode, MaterialLib=None)[source]
Bases:
object
- ArcWaveguide(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the Arc Wavaguide.
- Parameters[‘Substrate Height’]int/float
Substrate height
- Parameters[‘WG Height’]int/float
Waveguide height
- Parameters[‘WG Width’]int/float
Waveguide width
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[‘Material’]list
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[“Wavelength”]int/float
Wavelength
- Parameters[“S_Band Radius”]int/float
Radius of the Circle in um
- Parameters[‘Arc deg’]int
Can be 90 or 180 for 1/4 of a cirle or 1/2 of a circle.
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Raises:
ValueError – Value Error
- Return type:
None.
- BendWaveguide(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the Bend Wavaguide.
- Parameters[‘Substrate Height’]int/float
Substrate Height
- Parameters[‘WG Height’]int/float
Waveguide Height
- Parameters[‘WG Width’]int/float
Waveguide width
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[‘Material’]list
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[“x span”]int/float
Length of the S Curve. Span of the object.
- Parameters[“y span”]int/float
Height of the curve. Difference between the input and output of the S-curve.
- Parameters[“poles”]boolen
If Parameters[“poles”] = True an Bezier Curbe will be made. if Parameters[“poles”] = False an Cosinus Curve = y_span*(cos((pi/(2*x_span))*t)^2) will be made. Where t is in the range of 0 - y_span
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Raises:
ValueError – Value Error Massage.
- Return type:
None.
- CascadetMMI(Parameters, SpaceX, SpaceY)[source]
- Parameters:
Parameters (TYPE) – DESCRIPTION.
- Return type:
None.
- CoppyDcard(modeTE, modeTM)[source]
- Parameters:
modeTE (str) – The TE mode that will be copy to dCard to do the overlap analysis.
modeTM (str) – The TM mode that will be copy to dCard to do the overlap analysis.
- Return type:
None.
- DirectionalCoupler(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the Directional Coupler. Parameters[‘Material’] : list of str
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[‘Substrate Width’]int/float
Substrate Width.
- Parameters[‘DC Length’]int/float
Length of the directional coupler
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. The minimum distance between Waveguides is 1 um becouse of manufactering restrictions in the University.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Raises:
ValueError – DESCRIPTION.
- Return type:
None.
- EME_Solver(Structure, Parameters)[source]
- Parameters:
Structure (str) – Structure to be simulated.
Parameters (dict) – Dictionary with solver parameters.
- Raises:
ValueError – Error when wrong structure was selected.
- Return type:
None.
- ExtractEMEResults(MonitorName, EMEName)[source]
- Parameters:
MonitorName (str) – The name of the monitor. By defoult the name will be ‘monitor’. So MonitorName = ‘monitor’ can be used. In case of change in the name the new name of the monitor should be given.
EMEName (str) – The name of the solver. In this case per defoult will be EMEName = ‘EME’. In case of change in the name, the new name should be given.
- Returns:
OptionsMonitor (dict) –
- Dictionary with:
’lambda’ ‘f’ ‘x’ ‘y’ ‘z’ ‘E’ ‘H’ ‘Lumerical_dataset’
EME_Data (dict) –
- Dictionary with:
’user s matrix’ ‘internal s matrix’ ‘local diagnostics’ ‘coefficients’ ‘global diagnostics’
- ExtractFDEModes(EffIndexValue)[source]
- Parameters:
EffIndexValue (float/int) – Effective index value. All modes with effective index smaller then the Effective will be deleted. Effective is usualy the smalles effective index from the hole construction (usualy the cladding).
- Returns:
dictData – Dictionary with the modes polarization numbers
- Return type:
dict
- ExtractFDEResultsExtendet(EffIndexValue)[source]
- Parameters:
EffIndexValue (float/int) – Effective index value. All modes with effective index smaller then the Effective will be deleted. Effective is usualy the smalles effective index from the hole construction (usualy the cladding).
- Returns:
dictModes (dict) –
- Dictionary with:
’TE polarization fraction num’ ‘effective area’ ‘effective index num’ ‘group index num’ ‘Ex’ ‘Ey’ ‘Ez’
dictData (dict) –
- Dictionary with:
’E’
- ExtractFDTDResults(Ports, Sparam)[source]
This fuction will add an S-Parameter Sweep to the FDTD simulation. This will allowed to sweep the S-parameter Matrix like it is done in EMe solver. Additionally will extract the Power on each port according to the time monitors that ware set in the solver functions.
- ExtrtactData(Type, Parameters)[source]
- Parameters:
Type (str) – Solver Type.
Parameters (boolen) – Need to be set True if S-Parameter analysis in FDTD solver is wanted. Otherwise False.
- Raises:
ValueError – DESCRIPTION.
- Returns:
Error when wrong structure was selected.
- Return type:
TYPE
- FDE_Solver(Structure, Parameters)[source]
- Parameters:
Structure (str) – Structure to be simulated.
Parameters (dict) – Dictionary with solver parameters.
- Raises:
ValueError – Error when wrong structure was selected.
- Return type:
None
- FDTD_Solver(Structure, Parameters)[source]
- Parameters:
Structure (str) – Structure to be simulated.
Parameters (dict) – Dictionary with solver parameters.
- Raises:
ValueError – Error when wrong structure was selected.
- Return type:
None.
- GratingCoupler(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the GratingCoupler. Parameters[‘Material GC’] : list of str
List of Materials. the list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. For Example “Parameters[‘Material GC’] = [“SiO2 (Glass) - Palik”, “Si (Silicon) - Palik”]”
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[“Length GC”]: int/float
Lenght of the Grating Coupler Area
- Parameters[“Width GC”]: int/float
Widht of the Grating Coupler Area
- Parameters[“Hight GC”]: int/float
Hight of the Grating Coupler Material
- Parameters[“Etch Depth GC”]: int/float
How deep, taken from the Parameters[“Hight GC”] will be the etchin depth of the gratings
- Parameters[“Duty Cycle”]: int/float
Duty cycle of the gratings. For example Parameters[“Duty Cycle”] = 0.39 will result in 39% Duty Cycle
- Parameters[“Pitch GC”]: int/float
Pitch of the Grating Coupler. For Example Parameters[“Pitch GC”] = 0.6e-6 will result in 6um Etch Space + Rib Space = 0.6um.
- Parameters[“Input Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place before the Grating Coupler region will start.
- Parameters[“Output Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place after the Grating Coupler region to finish the structure.
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect! In this case is used only when Parameters[“Taper”] = True
- Parameters[“Taper”]boolen
You can create an input Taper to your Grating Coupler structure
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width. Also in this function and ONLY in this function this will be the ibverse Taper width!!!
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[‘Taper Length’]int/float
Taper Length
- Parameters[“SMF Core Diameter”]int/float
Single Mode Fiber core Diameter
- Parameters[“SMF Cladding Diameter”]int/float
Single Mode Fiber Cladding Diameter
- Parameters[“SMF Core Index”]
Single Mode Fiber Core Index
- Parameters[“SMF Cladding Index”]
Single Mode Fiber Cladding Index
- Parameters[“SMF Theta”]: int/float
Tilting Angle of the Single Mode Fiber to the Grating Coupler. Normaly we choose Parameters[“SMF Theta”] = 15
- Parameters[“SMF Z Span”]: int/float
Lenght/Span of the Single Mode Fiber
- Return type:
None.
- InverseTaper(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the InverseTaper. Parameters[‘Material’] : list of str
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! For this structure 3 Material will be needed Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width. Also in this function and ONLY in this function this will be the ibverse Taper width!!!
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[‘Taper Length’]int/float
Inverse Taper Length
- Parameters[‘Taper Width’]int/float
Front Width of the inverse Taper!! In this Function and ONLY in this function, the Parameters[‘Taper Width’] is the frond width of the inverse Taper!
- Parameters[‘PWB Taper Width Back’]int/float
Photonic Wirebonding (PWB) Width back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Hight Back’]int/float
Photonic Wire Bonding Height back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Width Front’]int/float
Photonic Wirebonding (PWB) Width front side (to the photonic waveguide)
- Parameters[‘PWB Taper Hight Front’]int/float
Photonic Wire Bonding Height front side (to the photonic waveguide)
- Parameters[‘PWB Taper Length’]int/float
Length of the Photonic Wire Bonding Taper
- Parameters[“SMF Core Diameter”]int/float
Single Mode Fiber core Diameter
- Parameters[“SMF Cladding Diameter”]int/float
Single Mode Fiber Cladding Diameter
- Parameters[“SMF Core Index”]
Single Mode Fiber Core Index
- Parameters[“SMF Cladding Index”]
Single Mode Fiber Cladding Index
- Raises:
ValueError – DESCRIPTION.
- Return type:
None.
- LenseFiber(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the GratingCoupler. Take care since this object will create his own FDTD simulation object. No extra Solvers needed! Parameters[‘Material’] : list of str
List of Materials. the list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. For Example “Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, “Si (Silicon) - Palik”]”
- Parameters[“Lense Diameter”]int/float
Lense diameter.
- Parameters[“Lense Thickness”]: int/float
Lens thickness
- Parameters[“SMF Core Diameter”]int/float
Single Mode Fiber core Diameter
- Parameters[“SMF Cladding Diameter”]int/float
Single Mode Fiber Cladding Diameter
- Parameters[“SMF Core Index”]
Single Mode Fiber Core Index
- Parameters[“SMF Cladding Index”]
Single Mode Fiber Cladding Index
- Parameters[‘Support Cylunder Hight’]: int/float
Hight of the Cylinder holding the Lense. This is needed so that the Lense can have flat fine serface to be printed on.
- Parameters[‘Hexagon Hight’]: optional int/float
Hight of the Hexagon holding the Cylinder. If the Parameter is not set the Hexagon will be made with 4 um thickness. Where 2 um will go into the fiber array and 2 um will be above to print the cylinder on it. This is how is done in NanoPrintX.
- Parameters[‘x res’]int/float
Mesh step size
- Parameters[‘Wavelength’]: int/float
Simulation Wavelenght
- Return type:
None.
- MMI2x1(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the 2x1 MMI.
- Parameters[‘Material’]list of str
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[‘MMI Width’]int/float
Width of the MMI.
- Parameters[‘MMI Length’]int/float
Length of the MMI.
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘WG Length’]int/float
Waveguide length.
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. If Taper == True then this become the offset betweent he tapers wider sides. Waveguide and Tapers cannot be placed ourside the MMI structure. The minimum distance between Taper and Waveguide is 1 um becouse of manufactering restrictions in the University.
- Parameters[‘Offset Input’]int/float
Offset of the input waveguide.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Taper’]boolen
Taper can be set to be True ot False. if Taper == False - No Taper used if Taper == True - Taper placed
- Parameters[‘Taper Length’]int/float
If Taper == True, then this will set the Tapers length. If Taper == False this will be ignored and some random value can be given.
- Parameters[‘Taper Width’]int/float
If Taper == True, then this will set the Tapers width. If Taper == False this will be ignored and some random value can be given.
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Parameters[“Offset Output”]anything, optional
This function will allow the user to move the outputs in oposite direction. Please dont use it since is there only becouse the maschine of our physic departmant had some proiblems with the LNOI objects design.
- Raises:
ValueError – DESCRIPTION.
- Return type:
None.
- MMI2x2(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the 2x2 MMI.
- Parameters[‘Material’]list of str
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[‘MMI Width’]int/float
Width of the MMI.
- Parameters[‘MMI Length’]int/float
Length of the MMI.
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘WG Length’]int/float
Waveguide length.
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. If Taper == True then this become the offset betweent he tapers wider sides. Waveguide and Tapers cannot be placed ourside the MMI structure. The minimum distance between Taper and Waveguide is 1 um becouse of manufactering restrictions in the University.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Taper’]boolen
Taper can be set to be True ot False. if Taper == False - No Taper used if Taper == True - Taper placed
- Parameters[‘Taper Length’]int/float
If Taper == True, then this will set the Tapers length. If Taper == False this will be ignored and some random value can be given.
- Parameters[‘Taper Width’]int/float
If Taper == True, then this will set the Tapers width. If Taper == False this will be ignored and some random value can be given.
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Raises:
ValueError – Value Error.
- Return type:
None.
- Overlap()[source]
- Returns:
TEModes (dict) – Dictionary of TE - Modes.
dictDataTE (dict) – Dictionary of TE - Modes E field values
SweepDictTE (dict) –
- Dictionary of TE - Modes:
overlap Procentage
TE polarization fraction number
TE polarization fraction
loss
Ex
Ey
Ez
TMModes (dict) – Dictionary of TM - Modes..
dictDataTM (dict) – Dictionary of TM - Modes E field values.
SweepDictTM (dict) –
- Dictionary of TM - Modes:
overlap Procentage
TE polarization fraction number
TE polarization fraction
loss
Ex
Ey
Ez
- OverlapFDEModes(Parameters)[source]
- Parameters:
Parameters (dict) – Dictionary with parameters needed for the FDE analysis.
- Return type:
None.
- RingGratingCoupler(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the GratingCoupler. Parameters[‘Material GC’] : list of str
List of Materials. the list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. For Example “Parameters[‘Material GC’] = [“SiO2 (Glass) - Palik”, “Si (Silicon) - Palik”]”
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[“Length GC”]: int/float
Lenght of the Grating Coupler Area
- Parameters[“Width GC”]: int/float
Widht of the Grating Coupler Area
- Parameters[“Hight GC”]: int/float
Hight of the Grating Coupler Material
- Parameters[“GC Radius”]: int/float
Radius of the Ring Grating Coupler in um. For Example “Parameters[“GC Radius”] = 25e-6”
- Parameters[“Etch Depth GC”]: int/float
How deep, taken from the Parameters[“Hight GC”] will be the etchin depth of the gratings
- Parameters[“Duty Cycle”]: int/float
Duty cycle of the gratings. For example Parameters[“Duty Cycle”] = 0.39 will result in 39% Duty Cycle
- Parameters[“Pitch GC”]: int/float
Pitch of the Grating Coupler. For Example Parameters[“Pitch GC”] = 0.6e-6 will result in 6um Etch Space + Rib Space = 0.6um.
- Parameters[“Input LengthGC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place before the Grating Coupler region will start.
- Parameters[“Output Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place after the Grating Coupler region to finish the structure.
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[“SMF Core Diameter”]int/float
Single Mode Fiber core Diameter
- Parameters[“SMF Cladding Diameter”]int/float
Single Mode Fiber Cladding Diameter
- Parameters[“SMF Core Index”]
Single Mode Fiber Core Index
- Parameters[“SMF Cladding Index”]
Single Mode Fiber Cladding Index
- Parameters[“SMF Theta”]: int/float
Tilting Angle of the Single Mode Fiber to the Grating Coupler. Normaly we choose Parameters[“SMF Theta”] = 15
- Parameters[“SMF Z Span”]: int/float
Lenght/Span of the Single Mode Fiber
- Return type:
None.
- Script()[source]
- Returns:
myscript – small script syntax for creating Tapers tooken from Lumerical . It is used only for check comperisons.
- Return type:
str
- Solver(Structure, Type, Parameters)[source]
- Parameters:
Structure (str) – Object that will be simulated.
Type (str) – Solver Type.
Parameters (dict) – Dictionary of solver parameters.
- Raises:
ValueError – Error when wrong solver type selected.
- Return type:
None.
- StartEMESimulation()[source]
This Function will save a the construted object under the name “SimRun1” then will run the simulation. The simulation cannot be done without first saving the object. On the end the ‘emepropagation’ of the mode 1 port 1 will be done.
- Return type:
None.
- StartFDESimulation()[source]
This Function will save a the construted object under the name “SimRun1” then will run the simulation. The simulation cannot be done without first saving the object. On the end the ‘findmodes’ will simulate all 20 modes that are set by defoult to be calculated.
- Return type:
None.
- StartFDTDSimulation()[source]
This Function will save a the construted object under the name “SimRun1” then will run the simulation. The simulation cannot be done without first saving the object. On the end the ‘emepropagation’ of the mode 1 port 1 will be done.
- Return type:
None.
- StartSimFunction(Type)[source]
- Parameters:
Type (str) – Solver Type.
- Raises:
ValueError – Error when wrong solver type selected.
- Return type:
None.
- StraightWaveguide(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the Straight Wavaguide.
- Parameters[‘Substrate Height’]int float
Substrate Height
- Parameters[‘WG Height’]int/float
Height of the Waveguide
- Parameters[‘WG Width’]int/float
Width of the Waveguide
- Parameters[‘WG Length’]int/float
Length of the Waveguide
- Parameters[‘Taper’]boolen
If Taper == False, only Waveguiedes will be constructed. If Taper == True, only an single Taper will be constructed
- Parameters[‘Taper Length’]int/float
Taper Length
- Parameters[‘Taper Width’]int/float
Taper backside width, the frontside width is the waveguide width
- Parameters[‘angle’]int
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘Slab Height’]int/float
Slab height.
- Parameters[‘Material’]list
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[“Wavelength”]int/float
Wavelength
- Parameters[“Waveguide Angle”]int/float
Bending angle of the Waveguide. Set it to 0 to simulate the straight waveguide. If Waveguide Angle is different then 0, then the straight waveguide will be tilted at the choosen degrees.
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Parameters[“Taper Type”]anything, optional
This function will check if you have set Parameters[“Taper Type”] to anaything, for example “Parameters[“Taper Type”]=1” and if so it will design an Inverse Taper Structure with no Cladding. Here the option “Cladding” is not active and will be ignored. If the user didnt give the “Taper Type” as dictionary key, then an normal taper structure will be simulated. If Taper Type is selected the user need to provide additional information:
TaperWidthF = Parameters[‘PWB Taper Width Front’] TaperWidthB = Parameters[‘PWB Taper Width Back’] TaperHightB = Parameters[‘PWB Taper Hight Back’] TaperHightF = Parameters[‘PWB Taper Hight Front’] TaperLength_PWB = Parameters[‘PWB Taper Length’]
- Raises:
ValueError – Value Error
- Return type:
None.
- WDM(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the WDM. Parameters[‘Material’] : list of str
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[‘MMI Width’]int/float
Width of the MMI.
- Parameters[‘MMI Length’]int/float
Length of the MMI.
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘Wavelength’]int/float
Wavelength.
- Parameters[‘WG Length’]int/float
Waveguide length.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Angle Thetha’] :
Input and output angle of the waveguide. This is only temporally
- Parameters[‘Taper Width’]int/float
Backside width of the Taper, frontside width is the waveguide width
- Parameters[‘Taper Length’]int/float
Length of the Taper.
- Parameters[‘Taper’]boolen
If Taper == False, no Taper will be placed with the Waveguides. If Taper == True, tapers will be placed with the waveguides
- Parameters[“Cladding”]anything, optional
This function will check if you have set Parameters[“Cladding”] to anaything, for example “Parameters[“Cladding”]=1” and if so it will put cladding over your structure. If the user didnt give the “Cladding” as dictionary key no cladding will be set.
- Raises:
ValueError – DESCRIPTION.
- Return type:
None.
- Waveguide(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the Wavaguide.
- Parameters[‘Substrate Height’]int7float
Height of the substrate.
- Parameters[‘WG Length’]: int/float
Length of the Waveguide.
- Parameters[‘WG Height’]int/float
Height of the Waveguide
- Parameters[‘WG Width’]int/float
Width of the Waveguide
- Parameters[‘angle’]int
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘Slab Height’]int/float
Slab height.
- Parameters[‘Material’]list of str
List of Materials. The list should be with names (str) of a valid Lumerical materials. Check the names in Lumerical Materials viewer. The List of materials must contain at least 2 materials! Parameters[‘Material’] = [‘Cladding/Substrat’, ‘Object Material’]. For Example: Parameters[‘Material’] = [“SiO2 (Glass) - Palik”, ‘LiNbO3_20deg_X cut’].
- Raises:
ValueError – Value Error
- Return type:
None.
- removeObject()[source]
Switch from simulation to layout mode. Remove all objects.
- Return type:
None.
- setArcWaveguideFDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the ArcWaveguideFDTDSolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘x res’]int/float
EME Mesh resolutio,
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“S_Band Radius”]int/float
S-Bend Radius in um.
- Parameters[‘Arc deg’]int/float
Arc define the Arc of the curve. It can be 90 or 180 degrees only. This two will define an 1/4 of a circle or 1/2 of a circle.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Return type:
None.
- setBendWaveguideFDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the BendWaveguideFDTDSolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘x res’]int/float
EME Mesh resolutio,
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“x span”]int/float
Length of the S-Bend Waveguide
- Parameters[“y span”]int/float
Width of the S-Bend Waveguide
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Return type:
None.
- setDCEMESolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the DCEMESolver. Parameters[‘Substrate Height’] : float/int
Height of the Substrate
- Parameters[‘Substrate Width’]float/int
Width of the MMI
- Parameters[‘DC Length’]float/int
Length of the Directional coupler
- Parameters[‘WG Height’]float/int
Height of the Waveguide
- Parameters[‘WG Width’]float/int
Waveguide Width
- Parameters[‘Position Offset’]float/int
Positional offser of the waveguides. If posOffset the two Waveguides will be offset of the middle position (y = 0) by the half of there Width. In this case they will not overlap if the Offset is 0.
- Parameters[‘y res’]float/int
Mesh resolution for the y-Axis
- Parameters[‘z res’]float/int
Mesh resolution for the z Axis
- Parameters[‘Slab Height’]float/int
Slab height.
- Parameters[‘Wavelength’]float/int
Wavelength
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Return type:
None.
- setDCFDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the DCFDTDSolver. Parameters[‘Substrate Height’] : float/int
Height of the Substrate
- Parameters[‘Substrate Width’]float/int
Width of the MMI
- Parameters[‘DC Length’]float/int
Length of the Directional coupler
- Parameters[‘WG Height’]float/int
Height of the Waveguide
- Parameters[‘WG Width’]float/int
Waveguide Width
- Parameters[‘Position Offset’]float/int
Positional offser of the waveguides. If posOffset the two Waveguides will be offset of the middle position (y = 0) by the half of there Width. In this case they will not overlap if the Offset is 0.
- Parameters[‘x res’]float/int
Mesh resolution for the x-Axis
- Parameters[‘Slab Height’]float/int
Slab height.
- Parameters[‘Wavelength’]float/int
Wavelength
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Return type:
None.
- setGratingCouplerFDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the GratingCouplerFDTDSolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[“Length GC”]: int/float
Lenght of the Grating Coupler Area
- Parameters[“Input Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place before the Grating Coupler region will start.
- Parameters[“Output Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place after the Grating Coupler region to finish the structure.
- Parameters[“Width GC”]: int/float
Widht of the Grating Coupler Area
- Parameters[“Hight GC”]: int/float
Hight of the Grating Coupler Material
- Parameters[‘Taper’]boolen
Add Taper to structure
- Parameters[‘Taper Length’]int/float
Length of the Taper
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[‘x res’]int/float
Mesh x-Axis
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]list of floats/ints
List of x,y and z span of the Ports. For this simulation only y and z parametes will be taken.
- Parameters[“GC Radius”]: int/float
Radius of the Ring Grating Coupler in um. For Example “Parameters[“GC Radius”] = 25e-6”
- Return type:
None.
- setInverseTaperEMESolver(Parameters)[source]
- ParametersDictionary
Dictionary with all the data needet for the InverseTaperEMESolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[‘WG Height’int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[‘PWB Taper Width Back’]int/float
Photonic Wirebonding (PWB) Width back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Hight Back’]int/float
Photonic Wire Bonding Height back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Length’]int/float
Length of the Photonic Wire Bonding Taper
- Parameters[“SMF Core Diameter”]int/float
Single Mode Fiber core Diameter
- Parameters[“SMF Cladding Diameter”]int/float
Single Mode Fiber Cladding Diameter
- Parameters[‘y res’]int/float
Mesh y-Axis
- Parameters[‘z res’]int/float
Mesh z-Axis
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]list of floats/ints
List of x,y and z span of the Ports. For this simulation only y and z parametes will be taken.
- Return type:
None.
- setInverseTaperFDTDSolver(Parameters)[source]
- ParametersDictionary
Dictionary with all the data needet for the InverseTaperFDTDSolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[‘WG Height’int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘Slab Height’]int/float
Slab height
- Parameters[‘PWB Taper Width Back’]int/float
Photonic Wirebonding (PWB) Width back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Hight Back’]int/float
Photonic Wire Bonding Height back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Length’]int/float
Length of the Photonic Wire Bonding Taper
- Parameters[“SMF Core Diameter”]int/float
Single Mode Fiber core Diameter
- Parameters[“SMF Cladding Diameter”]int/float
Single Mode Fiber Cladding Diameter
- Parameters[‘x res’]int/float
Mesh x-Axis
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]list of floats/ints
List of x,y and z span of the Ports. For this simulation only y and z parametes will be taken.
- Return type:
None.
- setMMI2x1EMESolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the MMI2x1EMESolver. Parameters[‘Substrate Height’] : int/float
Height of the slab.
- Parameters[‘MMI Width’]int/float
Width of MMI
- Parameters[‘MMI Length’]int/float
Length of MMI
- Parameters[‘angle’]int/float
Angle of the Waveguide Walls. it is calculated WG_angle = 90 - angle. For anfle = 90 we get a perfect rect!
- Parameters[‘WG Height’]int/float
Heigth of waveguide
- Parameters[‘WG Width’]int/float
Width og waveguide
- Parameters[‘WG Length’]int/float
Length of waveguide
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. If Taper == True then this become the offset betweent he tapers wider sides. Waveguide and Tapers cannot be placed ourside the MMI structure. The minimum distance between Taper and Waveguide is 1 um becouse of manufactering restrictions in the University.
- Parameters[‘Offset Input’]int/float
Input waveguide/taper offset.
- Parameters[“Taper”]: boolen
Add Taper to the structure on the input and output waveguids
- Parameters[‘Taper Length’]: int/float
Lenght of the Taper in Parameters[“Taper”] = True
- Parameters[‘y res’]int/float
Mesh cell sizes.
- Parameters[‘z res’]int/float
Mesh cell sizes.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Parameters[“Offset Output”]anything, optional
This function will allow the user to move the outputs in oposite direction. Please dont use it since is there only becouse the maschine of our physic departmant had some proiblems with the LNOI objects design.
- Return type:
None.
- setMMI2x1FDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the MMI2x1FDTDSolver. Parameters[‘Substrate Height’] : int/float
Height of the slab.
- Parameters[‘MMI Width’]int/float
Width of MMI
- Parameters[‘MMI Length’]int/float
Length of MMI
- Parameters[‘WG Height’]int/float
Heigth of waveguide
- Parameters[‘WG Width’]int/float
Width og waveguide
- Parameters[‘WG Length’]int/float
Length of waveguide
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. If Taper == True then this become the offset betweent he tapers wider sides. Waveguide and Tapers cannot be placed ourside the MMI structure. The minimum distance between Taper and Waveguide is 1 um becouse of manufactering restrictions in the University.
- Parameters[‘Offset Input’]int/float
Input waveguide/taper offset.
- Parameters[“Taper”]: boolen
Add Taper to the structure on the input and output waveguids
- Parameters[‘Taper Length’]: int/float
Lenght of the Taper in Parameters[“Taper”] = True
- Parameters[‘x res’]int/float
Mesh cell sizes.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Parameters[“Offset Output”]anything, optional
This function will allow the user to move the outputs in oposite direction. Please dont use it since is there only becouse the maschine of our physic departmant had some proiblems with the LNOI objects design.
- Return type:
None.
- setMMI2x2EMESolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the MMI2x2EMESolver. Parameters[‘Substrate Height’] : int/float
Height of the slab.
- Parameters[‘MMI Width’]int/float
Width of MMI
- Parameters[‘MMI Length’]int/float
Length of MMI
- Parameters[‘WG Height’]int/float
Heigth of waveguide
- Parameters[‘WG Width’]int/float
Width og waveguide
- Parameters[‘WG Length’]int/float
Length of waveguide
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. If Taper == True then this become the offset betweent he tapers wider sides. Waveguide and Tapers cannot be placed ourside the MMI structure. The minimum distance between Taper and Waveguide is 1 um becouse of manufactering restrictions in the University.
- Parameters[“Taper”]: boolen
Add Taper to the structure on the input and output waveguids
- Parameters[‘Taper Length’]: int/float
Lenght of the Taper in Parameters[“Taper”] = True
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘y res’]int/float
Mesh cell sizes.
- Parameters[‘z res’]int/float
Mesh cell size.
- Parameters[‘Wavelength’]int/float
Wavelength.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Return type:
None.
- setMMI2x2FDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the MMI2x2FDTDSolver. Parameters[‘Substrate Height’] : int/float
Height of the slab.
- Parameters[‘MMI Width’]int/float
Width of MMI
- Parameters[‘MMI Length’]int/float
Length of MMI
- Parameters[‘WG Height’]int/float
Heigth of waveguide
- Parameters[‘WG Width’]int/float
Width og waveguide
- Parameters[‘WG Length’]int/float
Length of waveguide
- Parameters[‘Position Offset’]int/float
Offset between the waveguides. If Taper == True then this become the offset betweent he tapers wider sides. Waveguide and Tapers cannot be placed ourside the MMI structure. The minimum distance between Taper and Waveguide is 1 um becouse of manufactering restrictions in the University.
- Parameters[“Taper”]: boolen
Add Taper to the structure on the input and output waveguids
- Parameters[‘Taper Length’]: int/float
Lenght of the Taper in Parameters[“Taper”] = True
- Parameters[‘x res’]int/float
Mesh cell sizes.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- Return type:
None.
- setRingGratingCouplerFDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the RingGratingCouplerFDTDSolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[“Length GC”]: int/float
Lenght of the Grating Coupler Area
- Parameters[“Input Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place before the Grating Coupler region will start.
- Parameters[“Output Length GC”]: int/float
An squere Waveguide with the same WG Height as the Grating coupler place after the Grating Coupler region to finish the structure.
- Parameters[“Width GC”]: int/float
Widht of the Grating Coupler Area
- Parameters[“Hight GC”]: int/float
Hight of the Grating Coupler Material
- Parameters[“GC Radius”]: int/float
Radius of the Ring Grating Coupler in um. For Example “Parameters[“GC Radius”] = 25e-6”
- Parameters[‘Taper Length’]int/float
Length of the input Taper
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[‘x res’]int/float
Mesh x-Axis
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]list of floats/ints
List of x,y and z span of the Ports. For this simulation only y and z parametes will be taken.
- Return type:
None.
- setStraightWaveguideEMESolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the StraightWaveguideEMESolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[‘WG Length’]int/float
Waveguide Length
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[“Taper”]boolen
If Taper == False, only straight Waveguide will be simulated, If Taper == True an Taper will be simulated
- Parameters[‘Taper Width’]int/float
Taper backside Width. Taper Fronside width is the width of the Waveguide
- Parameters[‘Taper Length’]int/float
Taper Length
- Parameters[‘y res’]: int/float
EME Mesh resolutio,
- Parameters[‘z res’]: int/float
EME Mesh resolutio,
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“Waveguide Angle”]int/float
This Parameter will set the theta ratation angle of the port. It can be 90 or 180.
- Parameters[“Port Span”]list of floats/ints
List of x,y and z span of the Ports. For this simulation only y and z parametes will be taken.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Taper Type”]anything, optional
This function will check if you have set Parameters[“Taper Type”] to anaything, for example “Parameters[“Taper Type”]=1” and if so it will design an Inverse Taper Structure with no Cladding. Here the option “Cladding” is not active and will be ignored. If the user didnt give the “Taper Type” as dictionary key, then an normal taper structure will be simulated.
- If Parameters[“Taper Type”] is given, themn the user need to set couple more parameters:
- Parameters[‘PWB Taper Width Back’]int/float
Photonic Wirebonding (PWB) Width back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Hight Back’]int/float
Photonic Wire Bonding Height back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Width Front’]int/float
Photonic Wirebonding (PWB) Width front side (to the photonic waveguide)
- Parameters[‘PWB Taper Hight Front’]int/float
Photonic Wire Bonding Height front side (to the photonic waveguide)
- Parameters[‘PWB Taper Length’]int/float
Length of the Photonic Wire Bonding Taper
- Return type:
None.
- setStraightWaveguideFDTDSolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the StraightWaveguideFDTDSolver. Parameters : Dictionary
Dictionary with all the data needet for the Bend Wavaguide. Data needet:
- Parameters[‘Substrate Height’]int/float
Substrate height.
- Parameters[‘WG Length’]int/float
Waveguide Length
- Parameters[‘WG Height’]int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[“Taper”]boolen
If Taper == False, only straight Waveguide will be simulated, If Taper == True an Taper will be simulated
- Parameters[‘Taper Width’]int/float
Taper backside Width. Taper Fronside width is the width of the Waveguide
- Parameters[‘Taper Length’]int/float
Taper Length
- Parameters[‘x res’]int/float
EME Mesh resolutio,
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[“Waveguide Angle”]int/float
This Parameter will set the theta ratation angle of the port. It can be 90 or 180.
- Parameters[“Port Span”]list of floats/ints
List of x,y and z span of the Ports. For this simulation only y and z parametes will be taken.
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Taper Type”]anything, optional
This function will check if you have set Parameters[“Taper Type”] to anaything, for example “Parameters[“Taper Type”]=1” and if so it will design an Inverse Taper Structure with no Cladding. Here the option “Cladding” is not active and will be ignored. If the user didnt give the “Taper Type” as dictionary key, then an normal taper structure will be simulated.
- If Parameters[“Taper Type”] is given, themn the user need to set couple more parameters:
- Parameters[‘PWB Taper Width Back’]int/float
Photonic Wirebonding (PWB) Width back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Hight Back’]int/float
Photonic Wire Bonding Height back side (to the Photonic Wire Bonding)
- Parameters[‘PWB Taper Width Front’]int/float
Photonic Wirebonding (PWB) Width front side (to the photonic waveguide)
- Parameters[‘PWB Taper Hight Front’]int/float
Photonic Wire Bonding Height front side (to the photonic waveguide)
- Parameters[‘PWB Taper Length’]int/float
Length of the Photonic Wire Bonding Taper
- Return type:
None.
- setWDMEMESolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the WDMEMESolver. Parameters[‘Substrate Height’] : int/float
Substrate height.
- Parameters[‘MMI Width’]int/float
Width of the MMI.
- Parameters[‘MMI Length’]int/float
Length of the MMI.
- Parameters[‘WG Height’int/float
Waveguide hight. Also the height of the MMI section
- Parameters[‘WG Length’]int/float
Waveguide length.
- Parameters[‘WG Width’]int/float
Waveguide width.
- Parameters[‘Taper Width’]int/float
Taper backside width, frontside width is the waveguide width.
- Parameters[‘Taper Length’]int/float
Taper Length
- Parameters[‘y res’]int/float
Mesh y-Axis
- Parameters[‘z res’]int/float
Mesh z-Axis
- Parameters[‘Slab Height’]int/float
Slab Height.
- Parameters[‘Wavelength’]int/float
Wavelength
- Parameters[‘Angle Thetha’]boolen
Angle for the input and output waveguides
- Parameters[“Mode”]str
Mode to choose from (“fundamental TE mode”, “fundamental TM mode”, “fundamental mode”)
- Parameters[“Port Span”]: list of int/floats
Parameters[“Port Span”] = [Span of Port in x direction, Span of Port in y direction, Span of Port in z direction]
- raises ValueError:
DESCRIPTION.
- rtype:
None.
- setWaveguideFDESolver(Parameters)[source]
- Parameters:
Parameters (Dictionary) –
Dictionary with all the data needet for the WaveguideFDESolver. Parameters : Dictionary
Dictionary with all the data needet for the Bend Wavaguide. Data needet:
- Parameters[‘Substrate Height’]: int/float
Substrate height
- Parameters[‘WG Height’]int/float
Heigth of waveguide
- Parameters[‘y res’]int/float
Mesh cell sizes.
- Parameters[‘z res’]int/float
Mesh cell sizes.
- Parameters[‘Slab Height’]int/float
Height of the slab.
- Parameters[‘Wavelength’]int/float
Wavelength.
- Return type:
None.
- Constructor.Constructor.Logfile(data, path)[source]
- Parameters:
data (list) – List of dictionarys with all the data for the simulation (obj.ReturnLogInfo()) and the parameters (Parameters dictionary) given to the simulation.
- Return type:
None.
- Constructor.Constructor.loadingBar(count, total, size=1)[source]
- Parameters:
count (int) – count is the loop iteration variable. For example count = i in case “for i in range(…):” is used.
total (int) – Total number of bars that must be loaded for the respective process. For example total = 10 in case “for i in range(10):”
size (int, optional) – Defines how many “=” signs are used when the loading bar is printed in the console. The default is 1.
- Return type:
None.