-
Samuel Rowlinson authored
This workspace makes use of the internal TraceTree of each cavity in the simulation trace forest to re-compute round-trip ABCD matrices (and dependencies, such as eigenmode, stability) if necessary. The ABCDSolution objects previously stored in Cavity are gone now as this solution is much cleaner and faster - also means caching of cavities in run_axes_scan of runners.pyx is no longer required. Duplication of code between Cavity and CavityWorkspace remains for now. This will be changed so that both use a single C based version (currently CavityWorkspace implements a fast C version of each update function whilst Cavity implements some Python methods for updating eigenmodes / stabilities and such). Also added in this commit is a work in progress trim method for TraceForest which will remove the need for checking traversed nodes during tree propagation beam tracing.
dfcb5663