solve_time_segment_single_sine_wave
- solve_time_segment_single_sine_wave(solver, y0s, noise_coeffs, time_segment, method, batch_size, rng=None)
Solve a constant-envelope single-sine segment.
The method simulates one sine period on identity initial conditions, then reconstructs the full segment from powers of the single-cycle propagator.
Note
This method applies to segments with a single nonzero driving frequency and a constant envelope. Instead of simulating the full segment directly, it simulates only one sine period and uses that result to reconstruct the full propagator.
If \(T = 1 / f\) is the period of the drive, then the full evolution is reconstructed from the single-cycle propagator according to
\[U(nT + \tau) = U(\tau) [U(T)]^n, \qquad 0 \leq \tau < T.\]In practice, Simphony projects the requested evaluation times into a single period, solves the dynamics there once on identity initial conditions, and then reconstructs the full-segment evolution by taking matrix powers of the single-cycle propagator. This can reduce both memory usage and runtime substantially for long constant-envelope pulses.
- Parameters:
solver (
Solver) – Solver instance used to propagate the segment.y0s (
List[ndarray|Array]) – Initial states or operators, one per simulated shot.noise_coeffs (
List[Sequence[float]]) – Shot-dependent noise strengths aligned withy0s.time_segment – Prepared time segment containing the projected single-cycle simulation data.
method (
str) – Low-level integration method passed through toSolver.solve_batch().batch_size (
int|None) – Optional shot-batch size for batched simulation.rng – Optional simulation-local random number generator used for jittered time-grid construction.
- Return type:
- Returns:
Solver result on
time_segment.simulation.t_evalreconstructed from the simulated single-cycle propagator.