1. 30 Sep, 2020 3 commits
  2. 29 Sep, 2020 11 commits
  3. 28 Sep, 2020 1 commit
  4. 26 Sep, 2020 1 commit
  5. 24 Sep, 2020 2 commits
    • Samuel Rowlinson's avatar
      Added animation support for symbolic PropagationSolution objects · 9e776692
      Samuel Rowlinson authored
      PropagationSolution.animate takes a dict of model parameter substitutions
      and produces an animation of the beamsizes and accumulated Gouy phase
      over the array-like entries.
      An example is shown in examples/tracing/z_tel_length_animation.py.
    • Samuel Rowlinson's avatar
      Improvements to PropagationSolution class · 2ace2091
      Samuel Rowlinson authored
      Changed methods which allow parameter substitution (for symbolic solutions) to
      use the subs dict instead of "named" parameters.
      Modified PropagationSolution.q (and dependencies) to return a dict of both
      input and output nodes of propagation when passing a component as an argument.
  6. 23 Sep, 2020 3 commits
  7. 22 Sep, 2020 1 commit
    • Samuel Rowlinson's avatar
      Re-organised tracing tools · c45929e9
      Samuel Rowlinson authored
      Added a new tracing.tools sub-module containing (slightly re-factored) functions
      which were originally in tracing.ctracer; ctracer now contains just the TraceForest
      and TraceTree data structures and a couple of associated functions.
      This tracing.tools module contains a propagate_beam method (callable from Model too)
      which returns a PropagationSolution object. This solution contains convenient attributes
      and methods for accessing properties of the beam in the path specified when propagate_beam
      was called. Both this function and its associated solution object will replace utility_trace
      due to a more elegant algorithm and better accessibility of beam properties; both in terms
      of numeric and symbolic expressions.
  8. 17 Sep, 2020 3 commits
    • Samuel Rowlinson's avatar
      Some more useful beam tracing / mode matching tools · 4d28293d
      Samuel Rowlinson authored
      Added a symbolic_trace method (to Model) and corresponding solution object, providing
      symbolic expressions for beam parameters, accumulated Gouy phases and composite ABCD
      matrices along an arbitrary path of the model. The solution object then exposes some
      convenience methods for retrieving acc. Gouy phases over parts of the path, beam-sizes
      at specific nodes or components etc.
      Implemented a cavity_mismatch function which computes a mismatch figure-of-merit between
      all the cavities of the model (or between just two cavities if specified).
      Added an enable_only argument to Model.beam_trace which will switch off all dependencies
      apart from the ones given in this arg - this is used by the cavity_mismatch function.
    • Phil Jones's avatar
      Fix motion detectors. · f17742f2
      Phil Jones authored
    • Phil Jones's avatar
      Fix special $fs variable in legacy parser. · 8e3db9de
      Phil Jones authored
      Previously, fsigs were created after detectors, meaning that detectors
      couldn't reference "$fs" and "$mfs" properly (and this check wasn't
      being performed anyway). This is fixed by constructing fsigs first.
  9. 16 Sep, 2020 2 commits
  10. 15 Sep, 2020 3 commits
    • Samuel Rowlinson's avatar
      Allowing use of Port objects for source node of Cavities · a24980dc
      Samuel Rowlinson authored
      I was previously only allowing OpticalNode instances as the source node, but
      a Port can be given now too - where the source is then defined as the output
      optical node of the port given.
    • Samuel Rowlinson's avatar
      Making sure TotalReflectionErrors get caught in ctracer when constructing trees · 9dc326b0
      Samuel Rowlinson authored
      Previously, if a user had a file with beamsplitters which caused total reflections, these
      exceptions were being ignored in the cdef methods of TraceForest - resulting in nasty
      error messages.
    • Samuel Rowlinson's avatar
      Minor convenience changes · d81094d0
      Samuel Rowlinson authored
      Propagating q_in to next output node if first node of path is an input node
      in Model.acc_gouy.
      Added as_bp flag (default: True) to BeamParam.eval method for determining whether
      returned value should be a BeamParam instance or just a complex number (or iterable
      of complex numbers, if using array parameter substitutions).
  11. 09 Sep, 2020 1 commit
  12. 08 Sep, 2020 1 commit
  13. 04 Sep, 2020 1 commit
  14. 02 Sep, 2020 1 commit
    • Samuel Rowlinson's avatar
      Minor bug fixes and improvements · 1dc8f5d2
      Samuel Rowlinson authored
      Fixed bugs in Model.ABCD and Model.utility_trace when specifying from, to nodes
      rather than a pre-computed path.
      Added support for using Ports as keys to beam trace solution object such that
      a dict of input, output node beam params are returned.
  15. 01 Sep, 2020 1 commit
    • Samuel Rowlinson's avatar
      Fixes #170, #171 · fefaf4e2
      Samuel Rowlinson authored
      Typo fixed in Model.acc_gouy resulting in errors when from_node, to_node are specified.
      Checking that startnode arg in Model.beam_trace is of type OpticalNode before continuing.
      Removed deepcopy operation from data property of BaseTraceSolution - no need for this copy.
  16. 25 Aug, 2020 1 commit
    • Samuel Rowlinson's avatar
      Minor convenience changes · 152d4134
      Samuel Rowlinson authored
      Allowed `gaussian.transform_beam_param` function to handle array-like q1 argument. Also
      updated `BeamParam.overlap` and `BeamParam.mismatch` to support array computation rather
      than just singular beam parameters.
      Automatically switching Model to modal, if not already, when adding a bp/cp/gouy/knm detector.
  17. 21 Aug, 2020 1 commit
  18. 20 Aug, 2020 1 commit
    • Samuel Rowlinson's avatar
      Changing the way beam trace solution objects are displayed · ef887455
      Samuel Rowlinson authored
      Updated the `__str__` method of SimulationTraceSolution to use the
      Model trace forest for making a string of trees with beam parameters
      displayed at each node. This allows one to more easily see the order
      in which traces were performed when printing the trace solution.
  19. 19 Aug, 2020 2 commits