simulate_time_evolution

Model.simulate_time_evolution(n_shots=1, start=0.0, end=None, apply_noise=True, random_seed=None, simulation_method='single_sine_wave', n_eval=251, n_split=250, state_only=False, solver_method=None, verbose=False, test_convergence=False, _time_segment_sequence=None)

Simulate the time evolution of the model due to the driving fields under the effect of the noise.

Parameters:
  • n_shots (int) – Number of the shots.

  • start (float) – Start time of the simulation (in \(\mu\text{s}\), defaults to 0).

  • end (float | None) – End time of the simulation (in \(\mu\text{s}\), defaults to end of the last pulse).

  • apply_noise (bool) – Whether to include noise or not.

  • random_seed (int | None) – Seed of the random number generator for noise randomization.

  • simulation_method (str) – It must be 'basic' or 'single_sine_wave'. Latter simulates only a single sine wave in the case of a monochromatic excitation that could accelerate the simulation.

  • n_eval (int) – Number of evaluation points per time segments.

  • n_split (int) – Number of split points per time segments.

  • state_only (bool) – Whether to simulate the time evolution from an initial state or simulate the full propagators.

  • solver_method (str | None) – Method of the qiskit_dynamics solver that used to simulate the time evolution (defaults to 'jax_expm' in the case of using CPU and 'jax_expm_parallel' in the case of using GPU)

  • verbose (bool) – Whether to verbose the details of the simulation or not.

  • test_convergence (bool | int) – Whether to test the convergence of the final propagators by halving the time steps. If an int provided, it specifies the number of times the convergence test is repeated.

Return type:

SimulationResult

Returns:

Results of the simulation, which contains the propagators/states of the simulation, a copy of the simulated model, the timestamps of the simulation and the noise realizations corresponding to the different shots.