Skip to content
  • Samuel Rowlinson's avatar
    Implementing CavityWorkspace for faster & cleaner cavity updating during simulation · dfcb5663
    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