rydiqule.timesolvers.solve_eom_stack¶
- rydiqule.timesolvers.solve_eom_stack(eoms_base: ndarray, const: ndarray, eom_time_r: ndarray, const_r: ndarray, eom_time_i: ndarray, const_i: ndarray, time_inputs: List[Callable[[float], complex]], t_eval: ndarray, init_cond: ndarray, solver, **kwargs) ndarray[source]¶
Solve a stack of equations of motion with shape
(*l, n, n)in the time domain.Companion function to
solve_time(), but can be invoked on its for equations already formatted.- Parameters:
eoms_base (numpy.ndarray) – Array of shape
(*l, n, n)representing the part of equations of motion of the system which do not respond to external fields.const (numpy.ndarray) – constant term of shape (n,) added in differential equations. Typically generated by
generate_eom().eoms_time_r (list[numpy.ndarray]) – list of arrays of shape
(basis_size^2-1, basis_size^2-1)representing the parts of the OBEs with a real-valued time-dependence. In the solver, this array will be multiplied by a time-dependent rabi frequency. Typically a matrix of mostly zeros, with non-zero terms corresponding to a particular time-dependent couplingconst_r (numpy.ndarray) – Constant term of shape (n,) added in a real time-dependent portion of differential equations. Typically generated by
generate_eom_time().eoms_time_i (numpy.ndarray) – list of arrays of shape
(basis_size^2-1, basis_size^2-1)representing the parts of the OBEs with an imaginary-valued time-dependence. In the solver, this array will be multiplied by a time-dependent rabi frequency.const_i (numpy.ndarray) – constant term of shape (n,) added in an imaginary time-dependent portion of differential equations. Typically generated by
generate_eom_time().t_eval (numpy.ndarray) – 1-D array of times, in microseconds, at which to evaluate the solution. Does not affect evaluations in the solve.
time_inputs (list[function float->float]) – List of functions which represent the rabi frequency of a field as a function of time. list length should be identical to the length of obes_time. In the solver, the i th time input will be evaluated at time t and multiplied by the i th entry of obes_time.
tuple(float) (time_range) – Pair of values represent the start and end time, in microseconds, of the simulation.
init_cond (numpy.ndarray or
None, optional) – Density matrix representing the initial state of the system. If specified, the shape should be either(n)in the case of a single initial condition for all parameter values, or should be of shape(*l, n)matching the output shape of a steady state solve if the initial condition may be different for different combinations of parameters. IfNone, will solve the problem in the steady state with all time-dependent fields “off” and use the solution as the initial condition for the time behavior. Other possible manual options might include a matrix populated by zeros representing the entire population in the ground state. Defaults toNone.
- Returns:
Flattened solution array corresponding to time points.
- Return type: