DirectionalCouplerCircuitModel¶
- class photonforge.DirectionalCouplerCircuitModel(*, coupling_region_model=_coupler_model, arms_model=_arms_model, circuit_model=_circuit_model)[source]¶
Model for directional couplers based on circuit decomposition.
The coupler is subdivided into 5 parts: the 4 arms and the coupling region. Each is simulated separately, and the final S parameters are computed by a
CircuitModel.The component geometry is expected to be composed of at least 2 paths connecting 2 ports each. The paths must start far apart, come close together in the coupling region, and separate again. The distance between paths is used to determine the extents of the arms and coupling region.
- Parameters:
coupling_region_model (Model) – Model used to compute the S parameters in the coupling region.
arms_model (Model | dict[str, Model]) – Model used for the arms. A dictionary mapping port names to models can be used to set a specific models for each arm.
circuit_model (Model) – Model used to merge all component parts.
Methods
estimate_cost(*args, **kwargs)Estimate the cost for S matrix computation.
get_circuit(component[, classification])Build the circuit equivalent for a component.
s_matrix(component, frequencies[, ...])Compute the S matrix for a component using this model.
setup_time_stepper(component, time_step[, ...])Obtain a time stepper for a component using this model.
start(component, frequencies, **kwargs)Start computing the S matrix response from a component.
update(*args, **kwargs)Update this model.
Attributes
parametric_functionFunction used to update the model.
parametric_kwargsKeyword arguments used to update the model.
propertiesObject properties.
random_variablesRandom variables associated to the model's parameters.
time_stepperTime stepper associated with this model.
- get_circuit(component, classification='optical')[source]¶
Build the circuit equivalent for a component.
- start(component, frequencies, **kwargs)[source]¶
Start computing the S matrix response from a component.
- Parameters:
component (Component) – Component from which to compute the S matrix.
frequencies (Sequence[float]) – Sequence of frequencies at which to perform the computation.
**kwargs (Any) – Keyword arguments passed to sub-models.
- Returns:
Result object with attributes
statusands_matrix.