# Topology Design Region
In topology or density-based optimization methods, the permittivity values of each grid cell in a design region can be controlled by adjusting the design parameters. This means the permittivity can vary between a minimum and a maximum value, allowing for greater flexibility in the final design. Projection filters can help ensure that the final design is binary and does not contain intermediary permittivity values. This powerful approach is less reliant on the initial geometry and can lead to interesting and non intuitive designs. This tutorial (opens new window) presents a detailed explanation on topology optimization.
# Design Region Bounds
Definition of the design region bounds. You can set it manually or select the dimensions from an existing structure. Click Select from existing structure to copy the structure bounding box parameters.
Note: The Design Region will override other structures when they overlap.
# Center + size
Defines the Design Region bounding box using a center position and size.
center: Center of the design region in x, y, and z-directions.
Type: floating-point number
- Unit: m, μm (default), or nm
- Default: (0, 0, 0)
size: Size of the design region in x, y, and z-directions.
Use Infinity ("inf") to define a geometry extending to infinity in both directions along an axis.
Type: floating-point number
- Unit: m, μm (default), or nm
- Constraint: greater than 0
- Default: 1 μm
- Required field
# Bounds
Constructs the design region bounding box from minimum and maximum coordinate bounds.
min: Values of the x, y, and z coordinates defining the design region bounding box lower corner.
Type: floating-point number
- Unit: m, μm (default), or nm
- Required field
max: Values of the x, y, and z coordinates defining the design region bounding box upper corner.
Type: floating-point number
- Unit: m, μm (default), or nm
- Required field
# Optical Properties
Definition of the Design Region relative permittivity values. The design region permittivity values will vary between the minimum and maximum values along the optimization. Select between Refractive Index or Permittivity input values.
Minimum: Minimum refractive index or permittivity values for the design region along the optimization process.
Type: floating-point number
- Constraint: greater than 0
- Default: 1
- Required field
Maximum: Maximum refractive index or permittivity values for the design region along the optimization process.
Type: floating-point number
- Constraint: greater than 0
- Default: 3.464 (12)
- Required field
# Initial Design Parameters
Specification of how to initialize the design parameters in the design region. Along the optimization process, the design parameters are set by the optimizer based on the gradient information at each iteration. The design parameters can vary between 0 and 1 and, after applying the transformations, they are mapped to the minimum and maximum permittivity values.
# Uniform Initialization
Initialize the design parameters with a uniform value.
Value: Initial value for the design parameters.
Type: floating-point number
- Constraint: Between 0 and 1
- Default: 0.5
- Required field
# Random Initialization
Initialize the design parameters with a uniform random distribution.
Min: Minimum values for the random distribution.
Type: floating-point number
- Constraint: Between 0 and 1
- Default: 0
- Required field
Max: Maximum values for the random distribution.
Type: floating-point number
- Constraint: Between 0 and 1
- Default: 1
- Required field
Seed: Seed for the random distribution generator.
Type: integer
- Constraint: Greater or equal to 0
# Design Mesh
Sets the resolution of the permittivity grid and also determines the shape of the parameter array.
Pixel Size: Pixel size of the design region in x, y, z. For now, we only support the same pixel size in all 3 dimensions. If Override Structure Dl is left None, the Pixel Size will determine the FDTD mesh size in the design region. Therefore, if your pixel size is large compared to the FDTD grid size, we recommend setting the Override Structure Dl directly to a value on the same order as the grid size.
Type: floating-point number
- Unit: m, μm (default), or nm
- Constraint: Greater than 0
- Default: 0.025 μm
- Required field
# Fabricability
You can include projection filters and control the permittivity binarization along the optimization process. These parameters are important to obtain final devices with desirable characteristics such as minimum hole radius and avoid intermediate permittivity values.
# Transformation
Transformations are specifications that tell the design region how to transform the supplied optimization parameters into a "material density" that is used to construct the permittivity grid. For example, a FilterProject transformation applies a conic filter convolution followed by a hyperbolic tangent function projection.
Radius: Radius of the conic filter to convolve with supplied spatial data.
Notes: 1) the corresponding feature size expressed in the device is typically
sqrt(3)times smaller than the radius. For best results, it is recommended to make your radius about twice as large as the desired feature size. 2) the radius value is often only approximately related to the final feature sizes. It is useful to apply aFilterProjecttransformation to "encourage" larger feature sizes, but we ultimately recommend enabling theErosionDilationPenaltypenalty if you desire strict fabrication constraints.
Type: floating-point number
- Unit: m, μm (default), or nm
- Constraint: Greater than or equal to 0
- Default: 0.1 μm
- Required field
Beta: Steepness of the binarization, higher values means more sharp transition at the expense of gradient accuracy and ease of optimization.
Type: floating-point number
- Unit: unitless
- Constraint: Greater than 0
- Default: 1
- Required field
Eta: Halfway point in projection function. The default value is usually a good choice.
Type: floating-point number
- Unit: unitless
- Constraint: Between 0 and 1
- Default: 0.5
- Required field
Strict Binarization: If False, the binarization is still continuous between the minimum and maximum values. If True, the values are snapped to the minimum and maximum values after projection.
Type: boolean
- Default: False
# Penalty
The optimizer objective function includes Metrics and Penalty contributions when this feature is active. Penalty are specifications that tell the optimizer how to penalize the material density corresponding to this design region. For example, an ErosionDilation penalty will look at the material density of the region (state of the parameters after all transformations have completed) and evaluate it based on whether the material density is invariant under erosion and dilation, a good proxy for feature size compatibility. You can use the weight parameter to tune the relative penalty contribution to the objective function.
Weight: When this penalty is evaluated, it will be weighted by this value.
Type: floating-point number
- Unit: unitless
- Constraint: Greater than or equal to 0
- Default: 1.0
Length Scale: Length scale of erosion and dilation. Corresponds to radius in the conic filter used for filtering. The parameter array is dilated and eroded by half of this value with each operation. Roughly corresponds to the desired minimum feature size and radius of curvature.
Type: floating-point number
- Unit: m, μm (default), or nm
- Constraint: Greater than or equal to 0
- Default: 0.1 μm
- Required field
Beta: Strength of the hyperbolic tangent projection on the dilation and erosion operations. Higher values correspond to stronger discretization.
Type: floating-point number
- Unit: unitless
- Constraint: Greater than 0
- Default: 100
Eta: Value between 0 and 1 that sets the projection midpoint. In other words, for values of Eta, the projected values are halfway between minimum and maximum.
Type: floating-point number
- Unit: unitless
- Constraint: Between 0 and 1
- Default: 0.5
Delta Eta: The binarization threshold for erosion and dilation operations. The thresholds are 0 + delta_eta on the low end and 1 - delta_eta on the high end. The default value balances binarization with differentiability so we strongly suggest using it unless there is a good reason to set it differently.
Type: floating-point number
- Unit: unitless
- Constraint: Greater than 0
- Default: 0.01
# Design Region Simulation Mesh
Override Structure Dl: Defines FDTD grid size within the design region. If left None, the inverse design will mesh the simulation with the same resolution as the Pixel Size. This is advised if the pixel size is relatively close to the FDTD grid size.
Type: floating-point number
- Unit: m, μm (default), or nm
- Constraint: Greater than 0