finesse.simulations.homsolver.HOMSolver

Overview

class finesse.simulations.homsolver.HOMSolver(unicode name, list nodes, FrequencyContainer optical_frequencies, dict signal_frequencies, bool is_signal_matrix, bool forced_refill, dict node_aliases, int num_optical_homs)

Bases: BaseSolver

This is class provides an interface for generic simulations that are solving for a vector of higher order modes at each node. This allows detectors and other calculation code to be able to perform the same calculations without being specified. This class should be inherited to provide specific implmentations. Considerations are:

  • HOM vector at each node should be contiguous in memory

  • Not all nodes will have a HOM vector if it isn’t being solved for

  • Signal nodes will have a single “HOM”

Methods

HOMSolver.__init__(*args, **kwargs)

HOMSolver.add_noise_matrix(self, key)

HOMSolver.component_edge_fill(self, comp, ...)

Returns a matrix for the submatrix an element has requested for different connections it needs. The key is::.

HOMSolver.component_edge_fill3(self, ...)

HOMSolver.construct(self)

HOMSolver.field(self, node, ...)

Returns simulation unique index of a field at a particular frequency index at this node.

HOMSolver.findex(self, node, Py_ssize_t freq)

HOMSolver.get_node_info(self, node)

For a given node (object or name) the key parameters for where this node is represented in the matrix of linear equations.

HOMSolver.get_out(self, node, ...)

HOMSolver.node_field_vector(signatures, ...)

Returns the higher order mode field vector of a given node at a specific frequency index.

HOMSolver.set_source(self, node, ...)

HOMSolver.setup_nodes(self, list all_nodes, ...)