grape_liouv.m

From Spinach Documentation Wiki
Revision as of 15:03, 5 April 2026 by Kuprov (talk | contribs) (Sync syntax/arguments/outputs with current Spinach source)
Jump to: navigation, search


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_liouv(spin_system,drifts,controls,waveform,rho_init,rho_targ,fidelity_type) %#ok<*PFBNS>

Arguments

spin_system - Spinach data object that has been through

                        the optimcon.m problem setup function.
  drifts              - the drift Liouvillians: a cell array con-
                        taining one matrix (for time-independent
                        drift) or multiple matrices (for time-de-
                        pendent drift).
  controls            - control operators in Liouville 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 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)

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 vectors)
Note: this is a low level function that is not designed to be called
      directly. Use grape_xy.m and grape_phase.m instead.
david.goodwin@inano.au.dk
u.rasulov@soton.ac.uk
ilya.kuprov@weizmann.ac.il
m.keitel@soton.ac.uk
TODO (Keitel): add logic to avoid computing backward trajectory
               when the gradient is not requested

Notes

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

See also

dirdiff.m, step.m, optimcon.m, grape_xy.m, grape_phase.m, penalty.m


Version 2.2, authors: Ilya Kuprov, David Goodwin

Returns

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

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