Port Definitions
Variable | Type | Description |
---|---|---|
ports | Cell |
A cell array containing structs which have information about each port. Every struct must contain the following fields:
|
Photonic Model
Variable | Type | Description |
---|---|---|
photonic_model |
string |
String containing the name of the photonic model used for this template. Please visit here for a list of all available photonic models. |
Cosmetic Variables
Variable | Type | Description |
---|---|---|
description | String | A string containing a brief description of the model, which will be displayed to the end user. |
prefix | String | A string containing the prefix of the model, which will be used within interconnect to provide incrementing element names for each successive element that is added to the simulation layout. |
notes | Cell |
A cell array which provides model notes that will be displayed to the end user. Each element of the cell is a struct with the fields:
|
Parameter Variables
Variable | Type | Description |
---|---|---|
parameters | Cell |
Cell arrays containing structs which describe both the mode-altering and non-mode-altering properties of the waveguide. For detailed information about this variable, see the "parameters" and "length_props" cells section. |
length_props | Cell |
Modeling Variables
Variable | Type | Description |
---|---|---|
length_formula | String |
A string containing lumerical script which defines the waveguide length as wg_length, if it is not defined within the parameters cell array. This script can make use of variables with the names of parameters and length properties. (For more information, see the "parameters" and "length_props" cells section. |
length_formula_veriloga (optional) |
String |
A string containing Virtuoso Verilog-A script which defines the waveguide length as wg_length, if it is not defined within the parameters cell array. For Verilog-A CML only. This script can make use of variables with the names of parameters and length properties. (For more information, see the "parameters" and "length_props" cells section. |
tap_estimation | Integer |
An integer defining the type of tap estimation to use for the final model. Two options are available:
|
wg_length
Furthermore, the parameter script file for wg_parameterized needs to define the wg_length parameter somewhere within it. This can be done either by including a parameter in the "length_props" cell array that corresponds to waveguide length (for straight waveguides), or by defining the wg_length within the "length_formula" string. Using the length_formula string provides a way to define waveguides whose length depends on some mathematical relationship of other variables, like in the case of a waveguide arc which allows the user to modify arc angle. In this case, the total length of the waveguide is given by:
$$wg\_length = \theta * radius$$
The "parameters" and "length_props" cells
The "parameters" and "length_props" cell arrays are what provide wg_parameterized with it's flexibility. They enable the creation of waveguide elements with any number of user-facing parameters, even parameters that effect the mode properties of the waveguide. (Like waveguide width, for instance.) Each cell array contains a struct which corresponds to a user-facing parameter.
Furthermore, the parameters defined in these cell arrays can have an effect on the waveguide length, which is captured by including variables which match the names of parameters or length properties within the length_formula string.
parameters
The parameters cell array contains structs which define parameters that have an effect on the mode properties of the waveguide. Each cell must correspond to a dimension of the mode property matrices (neff, ng, loss, D). Each structure defines properties of a single parameter, and contains the following fields:
Field | Description |
---|---|
name |
A string which contains the name of the parameter. |
category |
A string which contains the name of the category that the parameter will be under within the property view of INTERCONNECT. |
type |
A string with the type of value allowed by this parameter. The options are given by the "Type" dropdown menu within the Property Editor in INTERCONNECT. Some examples:
|
kind |
A string with 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 |
A string with the unit of the parameter. This should be a valid unit with respect to the parameter kind set in the "kind" field, and must correspond to the allowed values for the "type" field. Some example units are:
|
annotate |
A boolean value which controls whether or not this parameter is annotated on the final INTERCONNECT element. |
visible_to_user |
A boolean value which controls whether or not this parameter is present* within the final INTERCONNECT element. |
value |
A vector containing the values for which this parameter's mode properties have been evaluated. The length of this vector must match the dimension of the mode property matrices which corresponds to this parameter. It's recommended that this is set using a vector which is contained within the data file. For more information about the mode property matrix layout, see the Data File section. |
default_value |
The default value of the parameter. Also, the fixed value of the parameter if visible_to_user is set to false. |
min |
The minimum allowed parameter value. |
max |
The maximum allowed parameter value. |
expression (optional) |
The relationship between the values stored in the "values" field, and the user-facing values (eg. curvature=1/radius or curvature=1/radius). This field only applies to INTERCONNECT CML. |
reciprocal_veriloga |
The relationship between the values stored in the "values" field, and the user-facing values. Set to 'true' or false to enable or disable reciprocal relationship, respectively. This field only applies to Verilog-A CML. |
Note: Most of these fields are visible to the end user!
*If visible_to_user is set to false, the dimension of this parameter 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_props
The length_props cell array contains structs which define properties that have no effect on the mode properties of the waveguide. The cells within this variable don't correspond to dimensions within the mode property matrices, and instead describe properties which only effect waveguide length/group delay. Each structure defines properties of a single properties, and contains the following fields (please see "parameters" above for more information):
- name
- category
- kind
- unit
- annotate
- visible_to_user
- default_value
- min
- max
Note: Most of these fields are visible to the end user!