Optimization

This section covers the optimization functionality of the Optiland package. The optimization module provides a set of tools for optimizing optical systems. It includes a variety of optimization algorithms, such as gradient-based and evolutionary algorithms, as well as tools for defining optimization variables and objectives.

For thin film and coating specific optimization (e.g., Needle Synthesis), see the Thin Film module.

The optimization module is divided into four subcategories:

  1. Core Functionalities - Problem definition and optimizers

  2. Operands - Functions to compute optical performance metrics

  3. Variables - Properties of optical elements that can be optimized

  4. Scaling - Methods to scale optimization variables for better performance

Core Functionalities

optimization.problem

Optimization Problem Module

optimization.optimizer.scipy.base

Optiland Scipy Optimization Module

optimization.optimizer.scipy.basin_hopping

optimization.optimizer.scipy.differential_evolution

optimization.optimizer.scipy.dual_annealing

optimization.optimizer.scipy.least_squares

optimization.optimizer.scipy.orthogonal_descent

Orthogonal Descent Optimizer Module

optimization.optimizer.scipy.shgo

optimization.optimizer.scipy.glass_expert

Optiland Glass Expert Optimization Module

optimization.optimizer.torch.base

Torch Base Optimizer

optimization.optimizer.torch.adam

Torch Adam Optimizer

optimization.optimizer.torch.sgd

Torch SGD Optimizer

Operands

The optimization.operand subpackage contains the following modules:

optimization.operand.aberration

Aberration Operands Module

optimization.operand.operand

Operand Module

optimization.operand.paraxial

Paraxial Operands Module

optimization.operand.ray

Ray Operands Module

Variables

The optimization.variable subpackage contains the following modules:

optimization.variable.asphere_coeff

Asphere Coefficients Variable Module

optimization.variable.base

Base Variable Module

optimization.variable.chebyshev_coeff

Chebyshev Coefficients Variable Module

optimization.variable.conic

Conic Constant Variable Module

optimization.variable.decenter

Decenter Variable Module

optimization.variable.forbes_coeff

Specialized variable handlers for Forbes polynomial coefficients.

optimization.variable.index

Refractive Index Variable Module

optimization.variable.material

Material Variable Module

optimization.variable.norm_radius

This module provides variable handling for normalization radius parameters.

optimization.variable.nurbs

This module contains variable classes for NURBS geometries.

optimization.variable.polynomial_coeff

Polynomial XY Variable Module

optimization.variable.radius

Radius of Curvature Variable Module

optimization.variable.reciprocal_radius

Reciprocal Radius Variable Module

optimization.variable.thickness

Thickness Variable Module

optimization.variable.tilt

Tilt Variable Module

optimization.variable.variable_manager

optimization.variable.variable

Variable Module

optimization.variable.zernike_coeff

Zernike Coefficients Variable Module

Scaling

The optimization.scaling subpackage contains the following modules:

optimization.scaling.base

Base Scaler Module

optimization.scaling.identity

Identity Scaler Module

optimization.scaling.linear

Linear Scaler Module

optimization.scaling.log

Log Scaler Module

optimization.scaling.power

Power Scaler Module

optimization.scaling.reciprocal

Reciprocal Scaler Module