qutip_qtrl.propcomp
Propagator Computer Classes used to calculate the propagators, and also the propagator gradient when exact gradient methods are used
Note the methods in the _Diag class was inspired by: DYNAMO - Dynamic Framework for Quantum Optimal Control See Machnes et.al., arXiv.1011.4874
Classes
|
This subclass can be used when the propagator is calculated simply by expm of the dynamics generator, i.e. when gradients will be calculated using approximate methods. |
|
Augmented Matrix (deprecated - see _Frechet) |
|
Coumputes the propagator exponentiation using diagonalisation of of the dynamics generator |
|
Frechet method for calculating the propagator: exponentiating the combined dynamics generator and the propagator gradient. |
|
Base for all Propagator Computer classes that are used to calculate the propagators, and also the propagator gradient when exact gradient methods are used Note: they must be instantiated with a Dynamics object, that is the container for the data that the functions operate on This base class cannot be used directly. |
- class qutip_qtrl.propcomp.PropCompApproxGrad(dynamics, params=None)[source]
This subclass can be used when the propagator is calculated simply by expm of the dynamics generator, i.e. when gradients will be calculated using approximate methods.
- class qutip_qtrl.propcomp.PropCompAugMat(dynamics, params=None)[source]
Augmented Matrix (deprecated - see _Frechet)
It should work for all systems, e.g. open, symplectic There will be other PropagatorComputer subclasses that are more efficient The _Frechet class should provide exactly the same functionality more efficiently.
Note the propagator gradient calculation using the augmented matrix is taken from: ‘Robust quantum gates for open systems via optimal control: Markovian versus non-Markovian dynamics’ Frederik F Floether, Pierre de Fouquieres, and Sophie G Schirmer
- class qutip_qtrl.propcomp.PropCompDiag(dynamics, params=None)[source]
Coumputes the propagator exponentiation using diagonalisation of of the dynamics generator
- class qutip_qtrl.propcomp.PropCompFrechet(dynamics, params=None)[source]
Frechet method for calculating the propagator: exponentiating the combined dynamics generator and the propagator gradient. It should work for all systems, e.g. unitary, open, symplectic. There are other
PropagatorComputersubclasses that may be more efficient.
- class qutip_qtrl.propcomp.PropagatorComputer(dynamics, params=None)[source]
Base for all Propagator Computer classes that are used to calculate the propagators, and also the propagator gradient when exact gradient methods are used Note: they must be instantiated with a Dynamics object, that is the container for the data that the functions operate on This base class cannot be used directly. See subclass descriptions and choose the appropriate one for the application
- Attributes:
- log_levelinteger
level of messaging output from the logger. Options are attributes of qutip_utils.logging, in decreasing levels of messaging, are: DEBUG_INTENSE, DEBUG_VERBOSE, DEBUG, INFO, WARN, ERROR, CRITICAL Anything WARN or above is effectively ‘quiet’ execution, assuming everything runs as expected. The default NOTSET implies that the level will be taken from the QuTiP settings file, which by default is WARN
- grad_exactboolean
indicates whether the computer class instance is capable of computing propagator gradients. It is used to determine whether to create the Dynamics prop_grad array
- apply_params(params=None)[source]
Set object attributes based on the dictionary (if any) passed in the instantiation, or passed as a parameter This is called during the instantiation automatically. The key value pairs are the attribute name and value Note: attributes are created if they do not exist already, and are overwritten if they do.