DynamicOpticalSystem

class hcipy.optics.DynamicOpticalSystem

Bases: object

A dynamically varying optical system.

This can be used as a starting point for an implementation of an adaptive optics system. The optics are changed as specific moments in time, which can be scheduled by submitting a callback. The time points are bridged using the integrate function, which is written by the derived class. This function should integrate on each detector without reading out the detector. Detector readouts or DM changes should be implemented as callbacks.

Methods Summary

add_callback(self, t, callback)

Add a callback to the list of callbacks.

evolve_until(self, t)

Evolve the optical system until time t.

integrate(self, integration_time)

Integrate the current optical system for a certain integration time.

Methods Documentation

add_callback(self, t, callback)

Add a callback to the list of callbacks.

This function can even be called during handling of a callback. This is especially useful when implementing periodic callbacks: a callback can reinsert itself at a later time at the end of handling of the callback.

Parameters
tscalar

The time at which to call the callback.

callbackfunction

The function to call at time t. This function should have no arguments.

evolve_until(self, t)

Evolve the optical system until time t.

Parameters
tscalar

The point in time to which to simulate this optical system. Callbacks and integrations are handled along the way.

integrate(self, integration_time)

Integrate the current optical system for a certain integration time.

This function should be implemented by a user in a derived class.

Parameters
integration_timescalar

The integration time with which to integrate the optical system.