Multi-Configuration Framework#

The Multi-Configuration framework in Optiland is designed to manage optical systems with multiple states, such as zoom lenses, thermal soaks, or scanning systems.

Architecture#

The core of the framework is the optiland.multiconfig.multi_configuration.MultiConfiguration class.

This class maintains a list of optiland.optic.Optic instances, where each instance represents a full, independent state of the optical system. Configuration 0 is always the “base” optic from which others are typically derived.

Configuration Creation#

When add_configuration(source_config_idx) is called, the source optic is deep-copied to create a new configuration. This ensures that each configuration has its own independent set of Surfaces, Fields, and other properties.

Data Linking (Pickups)#

To maintain the relationships required for a multi-configuration system (where most parameters are shared across configurations), Optiland uses optiland.pickup.Pickup.

When a new configuration is added, the framework automatically establishes pickups for: - Surface Radii - Surface Conic Constants - Surface Thicknesses (except the last surface) - Material properties

This means that by default, changing a parameter in the Base Configuration (Config 0) will propagate to all other configurations.