OpticalNoiseTimeStepper¶
- class photonforge.OpticalNoiseTimeStepper(*, noise, reflection=0, seed=None)[source]¶
Time-stepper for an optical white-noise source.
This model generates zero-mean, circularly symmetric complex Gaussian noise. It is a memoryless source, producing a new independent sample at each time step.
- Parameters:
noise (Annotated[float, minimum=0, units='√(W/Hz)']) – One-sided, amplitude spectral density (ASD) of noise.
reflection (complex) – Reflection coefficient for incident fields.
seed (Annotated[int, minimum=0] | None) – Random number generator seed to ensure reproducibility.
Methods
bind_native(step, keys[, state, cstate, context])Bind a compiled step function.
reset()Reset any internal state of the time stepper.
setup(component, time_step, *[, ...])Initialize the time stepper.
setup_state(*, component, time_step, **kwargs)Initialize internal state.
step([inputs, steps, time_step, show_progress])Compute the outputs of this time stepper, given inputs.
step_single(inputs, outputs, time_index, ...)Take a single time step on the given inputs.
update(*args, **kwargs)Update this time stepper.
write_verilog_a(path, *[, backend, ...])Write this configured time stepper as one Verilog-A module.
Attributes
parametric_functionFunction used to update the time stepper.
parametric_kwargsKeyword arguments used to update the time stepper.
path_delaysMinimum delay in time steps of each (input key, output key) signal path; missing pairs have no path and None means every input reaches every output within the time step.
propertiesObject properties.
random_variablesRandom variables associated to the time stepper's parameters.
- setup_state(*, component, time_step, **kwargs)[source]¶
Initialize internal state.
- Parameters:
component (Component) – Component representing the noise source.
time_step (Annotated[float, minimum=0, units='s']) – The interval between time steps (in seconds).
kwargs (object) – Unused.
- Return type:
None