grape_hilb.m
Gradient Ascent Pulse Engineering (GRAPE) objective function, gradient and Hessian. Propagates the system through a user-supplied shaped pulse from a given initial state and projects the result onto the given final state. The fidelity is returned, along with its gradient and Hessian with respect to amplitudes of all control operators at every time step of the shaped pulse. Uses Hilbert-space formalism.
Syntax
[traj_data,fidelity,grad,hess]=grape_hilb(spin_system,drifts,controls,...
waveform,rho_init,rho_targ,...
fidelity_type)
Parameters
spin_system - Spinach data object that has been through
the optimcon.m problem setup function.
drifts - the drift Hamiltonians: a cell array con-
taining one matrix (for time-independent
drift) or multiple matrices (for time-de-
pendent drift).
controls - control operators in Hilbert space (cell
array of matrices).
waveform - control coefficients for each control ope-
rator (in vertical dimension) at each time
step (in horizonal dimension), rad/s
rho_init - initial state of the system as a density
matrix in Hilbert space.
rho_targ - target state of the system as a density
matrix in Hilbert space.
fidelity_type - 'real' (real part of the overlap)
'imag' (imaginary part of the overlap)
'square' (absolute square of the overlap)
Outputs
fidelity - fidelity of the control sequence
grad - gradient of the fidelity with respect to
the control sequence
hess - Hessian of the fidelity with respect to the
control sequence
traj_data.forward - forward trajectory from the initial condi-
tion(a stack of state matrices)
Notes
This is a low level function that is not designed to be called directly. Use grape_xy.m and grape_phase.m instead.
Trajectory cost terms are read from spin_system.control: when fid_type is 'average', the fidelity is averaged over the pulse nodes 1..N instead of being taken at the last node; traj_pen operators are summed, their expectation value is averaged over the same nodes and subtracted from the fidelity. Both terms use costates that ride on the backward sweep, the trajectory never leaves the worker. Hessians are not available with these terms.
See also
grape_xy.m, grape_phase.m, grape_coop.m, grape_curv.m, grape_liouv.m, tgrape.m, Optimal control module
Version 2.11, authors: Ilya Kuprov, Maxi Keitel