A straight waveguide model for operation at multiple frequency bands.
Note: For legacy data format (2022 R2.4 and older) please visit following link:
Waveguide Straight (Parameterized) - Lumfoundry Template (Legacy)
Template: wg_strip_straight_parameterized
Photonic Model: wg_parameterized
Quality Assurance Test: wg_parameterized QA
Parameters: waveguide length, waveguide width, temperature.
Interoperability with Cadence Virtuoso:
- Circuit design flows using INTERCONNECT model: Yes.
- Circuit design flow using photonic Verilog-A model: Yes.
Modeling Data
The source data template for a straight waveguide element can be divided into two sections.
- For new users (continue with the following section: Basic data requirement)
- Advanced users ( continue with section: Complete Data Requirement )
The straight waveguide template can be used to create an advanced compact model for a custom straight waveguide. The template contains a lot of different modeling data to create an accurate model. However, not all these data need to be updated by users. The fastest and simplest way to modify the template data and create a custom compact model is to only update the data listed in the 'basic data requirement section' below, while all the remaining data (which are illustrated in detail in subsequent sections) can stay at their default value.
Note: Advanced users please jump start with the Complete Data Requirement (for advanced users) section.
Basic data requirement (for new users)
The basic and minimum data required to build the straight waveguide model is described below.
general
"general" is a struct with the following fields:
Field | Type | Description |
---|---|---|
description | string | A string containing a brief description of the model, which will be displayed to the end user. |
notes | cell |
A cell array providing model notes which will be displayed to the end user. Each element of the cell is a struct with the fields:
|
ports
"ports" is a struct with the following fields:
Field | Type | Description |
---|---|---|
opt_1 |
struct with the fields described in the table below | Port definition corresponding to the first and second waveguide ports. |
opt_2 |
Each struct above consists of the following fields:
Field | Type | Description |
---|---|---|
name | string | The name of the port, which will be visible to the end user. This name should be consistent with the name that will be used for netlisting. |
pos | string |
The side of the model which the port will be displayed on, either "Left", "Right", "Top", or "Bottom" |
order | number |
The order at which the port is listed in a netlist. |
parameters
The "parameters" struct is what provides wg_parameterized with it's flexibility. It enables the creation of waveguide elements with any number of user-facing parameters. This can be parameters that affect the mode properties of the waveguide or the ones that only affect the waveguide length. "parameters" is a struct with the following fields:
Field | Type | Description |
---|---|---|
parameter_X | struct with fields described in table below |
parameter_X with X being an integer are mode-altering parameters that the user can arbitrarily define. These parameters have an effect on the mode properties of the waveguide hence the mode property matrices provided in the "model_data" (neff, ng, loss, D) must have a dimension corresponding to such parameters. Note: If visible_to_user is set to false for any of these parameters, the dimension of this parameter for the mode properties will be collapsed, and thus any variation of mode properties in the dimension of this parameter will not be captured in the final model. |
length_parameter_X
|
struct with fields described in table below |
length_parameter_X with X being an integer are non-mode-altering parameters that the user can arbitrarily define. These parameters have no effect on the mode properties of the waveguide and they do not correspond to dimensions within the mode property matrices, and instead describe properties which only effect waveguide length and group delay. The effect of these parameters to the waveguide length is captured by including variables which match the names of these parameters within the length_formula string. Note: For a straight waveguide the name of this parameter should be set to "wg_length". However for other types of waveguides that their length is described by other parameters (e.g. as radius), such parameters need to be defined as length_parameter_X and the relationship between parameters and "wg_length" need to be defined within "length_formula" in "model_data" section. |
Each struct above consists of the following fields:
Field | Type | Description |
---|---|---|
name |
string |
Name of the parameter. |
kind | string |
The type of quantity described by this parameter. The values for this parameter correspond to the allowed values within the "Kind" dropdown menu within the Property Editor in INTERCONNECT. The "Kind" determines the units. Some example kinds are:
|
unit |
string |
The unit of the parameter. This should be a valid unit with respect to the parameter kind set in the "kind" field. Some example units are:
|
default |
number |
The nominal value of the parameter in SI units. Note: Parameter defaults for the parent and child elements need to be the same. |
annotate |
boolean | A flag to annotate the parameter value if the visible_to_user is set to True. |
min
|
number |
Minimum allowed value if the visible_to_user is set to True. |
max
|
number |
Maximum allowed value if the visible_to_user is set to True. |
reciprocal_veriloga |
boolean |
The relationship between the parameter points used for describing parameterized mode properties in "model_data" section, and the user-facing values. Set to 1 or 0 to enable or disable reciprocal relationship, respectively. Note:
|
model_data
"model_data" is a struct with the following fields:
Field | Type | Description |
---|---|---|
mode_data |
cell |
M x 1 cell array where M is the number of modes. Each element of the cell is a struct with fields:
Notes:
|
parameter_X |
matrix |
parameter_X with X being an integer is a matrix containing parameter points corresponding to the mode-altering parameters defined in "parameters" section. Waveguide mode properties ( ng, neff, loss and D) should be provided evaluated and parameterized at these parameter points. |
neff |
matrix |
The effective index of waveguide as a WxP1x..PnxM matrix where W is the number of wavelength points, P1 to Pn are the number of points provided for parameter_1 to parameter_n, and M is the number of modes. Note: For more information on mode properties, see Mode Properties in photonic model page. |
ng |
matrix |
The group index of waveguide as a WxP1x..PnxM matrix where W is the number of wavelength points, P1 to Pn are the number of points provided for parameter_1 to parameter_n, and M is the number of modes. Note: For more information on mode properties, see Mode Properties in photonic model page. |
D |
matrix |
The dispersion(s/m/m) of waveguide as a WxP1x..PnxM matrix where W is the number of wavelength points, P1 to Pn are the number of points provided for parameter_1 to parameter_n, and M is the number of modes. Note: For more information on mode properties, see Mode Properties in photonic model page. |
loss |
matrix |
The loss (dB/m) of waveguide as a WxP1x..PnxM matrix where W is the number of wavelength points, P1 to Pn are the number of points provided for parameter_1 to parameter_n, and M is the number of modes. Note: This must be a positive number. |
length_formula |
string |
A string containing lumerical script which defines the waveguide length as wg_length, if "wg_length" is not defined as a parameter. This script can use the variables defined in under "parameter_x" and "length_parameter_x". |
Complete data requirement (for advanced users)
The complete data section provides a complete reference of data supported by the straight waveguide model including the basic required data described in the previous section. The descriptions of all the fields in the straight waveguide source data template are described below.
general
"general" is a struct with the following fields:
[[snippet||11549514081811]]
ports
"ports" is a struct with the following fields:
[[snippet||11977740050067]]
Each struct above consists of the following fields:
[[snippet||11549759363603]]
parameters
The "parameters" struct is what provides wg_parameterized with it's flexibility. It enables the creation of waveguide elements with any number of user-facing parameters. This can be parameters that affect the mode properties of the waveguide or the ones that only affect the waveguide length. "parameters" is a struct with the following fields:
[[snippet||12005982527507]]
Each struct above consists of the following fields:
[[snippet||12006995584019]]
model_data
"model_data" is a struct with the following fields:
[[snippet||12007715196563]]
QA
"QA" is a struct with the following fields:
[[snippet||12014063100051]]