Tracing beams in reverse
What does this MR do and why?
- Adds new reverse_propagate to the propagate beam feature. This is fix issues with backwards tracing beams through components like the directional beamsplitter, whose connections are not symmetric. You can now do things like this:
model.propagate_beam(model.m1.p1.o, model.l1.p1.i, reverse_propagate=True)
assuming the model is connected to allow l1->m1 through a DBS.
-
tests symmetric tracing at DBS works
-
adds string node name access for BeamTraceSolution.getitem in addition to selecting with a node object
MR acceptance checklist
This checklist encourages us to confirm any changes have been analyzed to reduce risks in quality, performance, reliability, security, and maintainability.
-
Includes tests for added/modified code -
Added or modified the documentation if relevant -
Docstrings added/modified for new/modified functions -
Committer/reviewer has ran the documentation stage when ready to merge
Edited by Daniel Brown