# grape.m

(Redirected from Grape)

Gradient Ascent Pulse Engineering (GRAPE) fidelity, 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 operators in every time step of the shaped pulse.

## Syntax

    [traj_data,fidelity,grad,hess]=grape(spin_system,drift,controls,...
waveform,dt,rho_init,rho_targ,...
fidelity_type)


## Arguments

  spin_system         - Spinach data object that has been through
the optimcon.m problem setup function.

drift               - the drift Liouvillian (matrix).

controls            - control operators in Liouville space (cell
array of matrices).

waveform            - control coefficients for each control ope-
rator (in rows of a matrix), rad/s

rho_init            - initial state of the system as a vector in
Liouville space.

rho_targ            - target state of the system as a vector in
Liouville space.

fidelity_type       - 'real'   (real part of the overlap)
'imag'   (imaginary part of the overlap)
'square' (absolute square of the overlap)


## Returns

  fidelity            - fidelity of the control sequence

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 vectors)

traj_data.backward  - backward trajectory from the target state
(a stack of state vectors)


## Notes

This is a low level function that is not designed to be called directly. Use grape_xy.m and grape_phase.m instead.