Difference between revisions of "Grape liouv.m"
(→Syntax) |
(Sync syntax/arguments/outputs with current Spinach source) |
||
| Line 1: | Line 1: | ||
{{DISPLAYTITLE:grape_liouv.m}} __NOTOC__ | {{DISPLAYTITLE:grape_liouv.m}} __NOTOC__ | ||
| + | |||
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. | 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== | ==Syntax== | ||
| − | + | [traj_data,fidelity,grad,hess]=grape_liouv(spin_system,drifts,controls,waveform,rho_init,rho_targ,fidelity_type) %#ok<*PFBNS> | |
| − | |||
| − | |||
==Arguments== | ==Arguments== | ||
| − | + | spin_system - Spinach data object that has been through | |
| − | the | + | the optimcon.m problem setup function. |
| − | + | ||
| − | drift | + | drifts - the drift Liouvillians: a cell array con- |
| − | + | taining one matrix (for time-independent | |
| − | controls - control operators in Liouville space (cell | + | 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- | waveform - control coefficients for each control ope- | ||
| − | rator (in | + | rator (in vertical dimension) at each time |
| − | + | step (in horizonal dimension), rad/s | |
| + | |||
rho_init - initial state of the system as a vector in | rho_init - initial state of the system as a vector in | ||
Liouville space. | Liouville space. | ||
| − | + | ||
rho_targ - target state of the system as a vector in | rho_targ - target state of the system as a vector in | ||
Liouville space. | Liouville space. | ||
| − | + | ||
fidelity_type - 'real' (real part of the overlap) | fidelity_type - 'real' (real part of the overlap) | ||
'imag' (imaginary part of the overlap) | 'imag' (imaginary part of the overlap) | ||
'square' (absolute square of the overlap) | 'square' (absolute square of the overlap) | ||
| − | == | + | ==Outputs== |
| + | |||
| + | fidelity - fidelity of the control sequence | ||
| − | |||
| − | |||
grad - gradient of the fidelity with respect to | grad - gradient of the fidelity with respect to | ||
the control sequence | the control sequence | ||
| − | + | ||
| − | hess - Hessian of the fidelity with respect to the | + | hess - Hessian of the fidelity with respect to the |
control sequence | control sequence | ||
| − | + | ||
traj_data.forward - forward trajectory from the initial condi- | traj_data.forward - forward trajectory from the initial condi- | ||
tion(a stack of state vectors) | 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== | ==Notes== | ||
| + | |||
This is a low level function that is not designed to be called directly. Use [[grape_xy.m]] and [[grape_phase.m]] instead. | 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== | ==See also== | ||
| + | |||
[[dirdiff.m]], [[step.m]], [[optimcon.m]], [[grape_xy.m]], [[grape_phase.m]], [[penalty.m]] | [[dirdiff.m]], [[step.m]], [[optimcon.m]], [[grape_xy.m]], [[grape_phase.m]], [[penalty.m]] | ||
''Version 2.2, authors: [[Ilya Kuprov]], [[David Goodwin]]'' | ''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) | ||
Revision as of 15:03, 5 April 2026
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)