16. 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.

16.1. 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.

16.2. 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.

16.3. Data Linking (Pickups)

To maintain the relationships required for a multi-configuration system (where most parameters are shared across configurations), Optiland uses optiland.pickups.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.