- 06 Aug, 2018 4 commits
-
-
Daniel Brown authored
CMatrix now returns sparse matrix in COO format. Update to sagnac test. Getting different results after merging not, and numpy is also saying it is a singular matrix even though KLU solves it... more debugging to go
-
Daniel Brown authored
-
Daniel Brown authored
-
Daniel Brown authored
-
- 30 Jul, 2018 1 commit
-
-
Daniel Brown authored
Merging over polarisation components and changes, still some work to do matching it up with the opt/mech/elec node changes to go
-
- 28 Jul, 2018 1 commit
-
-
Daniel Brown authored
-
- 24 Jul, 2018 1 commit
-
-
Daniel Brown authored
-
- 23 Jul, 2018 2 commits
-
-
Daniel Brown authored
-
Daniel Brown authored
Changing Model.add to accept *args for adding multiple things without having to make a list. Adding print matrix option when running.
-
- 19 Jul, 2018 1 commit
-
-
Samuel Rowlinson authored
-
- 16 Jul, 2018 1 commit
-
-
Samuel Rowlinson authored
-
- 13 Jul, 2018 3 commits
-
-
Samuel Rowlinson authored
Corrected an issue in Mirror.ABCD and Beamsplitter.ABCD which resulted in the incorrect sign for radius of curvature term element in reflection from surface matrix - this was causing the round-trip matrix result in cavity_test to be incorrect. Added the resolution property to the Cavity class (defined as the mode-separation frequency divided by the cavity FWHM). Improved check_missing script to take into account if a class A is abstract - if it is then I no longer check for whether A.__init__ is included in the documentation files.
-
Samuel Rowlinson authored
-
Daniel Brown authored
-
- 12 Jul, 2018 1 commit
-
-
Samuel Rowlinson authored
The script check_missing.py iterates through all the finesse Python files and collects the classes and their associated methods. It then finds which of these class methods are missing from the API documentation (.rst) files in docs/source/api. Use this script after building the documentation to find which class methods need to be added to the documentation files in the correct places.
-
- 11 Jul, 2018 1 commit
-
-
Samuel Rowlinson authored
-
- 10 Jul, 2018 3 commits
-
-
Samuel Rowlinson authored
Added optical_nodes (and electrical, mechanical) property to Model, reflection axis inversion fix to Cavity._update_ABCD Model now has optical_nodes, electrical_nodes and mechanical_nodes properties for convenient retrieval of all the nodes within the model of these types. Changed some code in Model.beam_trace to use Model.optical_nodes rather than checking for node type now. Updated Cavity._update_ABCD method to perform minus sign on reflection for ABCD matrices in the tangential plane to take into account the axis inversion co-ordinate transformation. Split the Properties header of finesse.model documentation page up into separate topics for easier use.
-
Samuel Rowlinson authored
Model.beam_trace now has an optional order parameter which can be a sequence of cavity instances. Cavity traces are performed on the cavities within this container before any other cavity traces are carried out. Fixed a bug in Model.merge preventing attached_space instances of nodes from being added into the current model instance. Added docstrings for Node.type.
-
Daniel Brown authored
-
- 09 Jul, 2018 3 commits
-
-
Samuel Rowlinson authored
Model.chain was previously checking the length of a components' nodes container to decide which port to use in the chaining loop, but this was failing in some cases as the nodes property now returns all nodes of every NodeType. Now the length checking in this loop retrieves just the optical nodes of the component instances via the new Connector.optical_nodes property. Other similar properties have been added for electrical and mechanical nodes. The issue in Model.beam_trace was similar, here I have added a check for whether a node has node.type == NodeType.OPTICAL before none-checking the q-value of the node. There may be more issues like this throughout the code (probably in some of the tests) which will need to be fixed either with checks or using the new specific Connector node properties.
-
Samuel Rowlinson authored
-
Daniel Brown authored
Adding in ability for submatrices to have different sizes. This allows us to have NxN blocks of elements for HOM scattering and other NxM shapes for modelling couplings between mechanics and electronics. A resonable amount has changed so could be some errors in places
-
- 08 Jul, 2018 1 commit
-
-
Daniel Brown authored
-
- 04 Jul, 2018 1 commit
-
-
Samuel Rowlinson authored
-
- 03 Jul, 2018 3 commits
-
-
Samuel Rowlinson authored
-
Samuel Rowlinson authored
The class Node now stores qx and qy as 2-tuples of the q value and the set mode. By default, this mode is set to QSetMode.USER when a specific mode is not provided - such that a user still only needs to do node.q = q. QSetMode has two constants for the moment (USER and AUTO), the former to indicate a node q value has been set by the user and the latter to indicate that it has been computed and set automatically by the beam trace. More constants for different cases can be added to this enum.
-
Samuel Rowlinson authored
minor update - some API documentation improvements and fixes, removed links to page sources in documentation
-
- 02 Jul, 2018 1 commit
-
-
Samuel Rowlinson authored
- Cavity now just uses the path methods in Model rather than defining its own. These are called on the first call to Cavity.update and then paths are stored in Cavity.__path and Cavity.__full_path for convenience. - Model.path implementation improved by removing code for single via_node case and just setting via_node to a list of one if single value provided. - Added some missing documentation for BeamParam.
-
- 29 Jun, 2018 1 commit
-
-
Samuel Rowlinson authored
-
- 28 Jun, 2018 4 commits
-
-
Samuel Rowlinson authored
changed Model.full_path to set end to None rather than an instance of Nothing, fixed beam trace to set opposite direction qs to negative conjugate
-
Daniel Brown authored
-
Daniel Brown authored
Updating chain function so we can deal with multiple paths now. Added the start and port optional arguments which define which port and component to start the chain from.
-
Daniel Brown authored
-
- 27 Jun, 2018 2 commits
-
-
Samuel Rowlinson authored
The via_node argument can now be a sequence of nodes or just a single node. This enables fully custom paths with an appropriate choice of intermediate nodes, including an arbitrary number of cavity loops.
-
Samuel Rowlinson authored
- One can now specify an optional via_node for the method Model.path which forces it to return a path in which via_node is included. This enables functionality such as being able to loop over a cavity rather than just traversing directly to the end. - Model.beam_trace_path uses this new via_node option which will allow the user to perform a custom trace over a path that they want by specifying which node the trace should traverse via. - It may be possible to allow any custom path to be returned by Model.path which an arbitrary number of cavity-loops if we change the optional argument to accept a variable number of via nodes (will look into this).
-
- 26 Jun, 2018 4 commits
-
-
Samuel Rowlinson authored
minor update - allow setting of node q values with either BeamParam or complex types, restructured some tracing tests
-
Samuel Rowlinson authored
- Model.beam_trace now iterates through all cavity instances of the model first, setting the source node of the cavity to its eigenmode. - The eigenmode (including tangential, sagittal specific) properties of Cavity now returning BeamParam objects instead of just complex quantities.
-
Daniel Brown authored
-
Daniel Brown authored
-
- 25 Jun, 2018 1 commit
-
-
Samuel Rowlinson authored
-