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 theqiskit_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 anint
provided, it specifies the number of times the convergence test is repeated.
- Return type:
- 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.