Menu

Reference.Programs.qm_abncd

Burkhard Schmidt
Attachments
Control.gif (12806 bytes)

qm_abncd: Provide input for bilinear control problems

This Matlab function provides the matrices A, B, N and C, D and vectors x0, xe for use in the following bilinear (optimal) control problem, see also qm_control also qm_optimal

\begin{matrix}{\dot x}(t)&=&\left(A+i\sum_{k=1}^mu_k(t)N_k)x(t)+i\sum_{k=1}^mu_k(t)b_kklzzwxh:0006y_j(t)&=&c_j^Tx(t)+c_j^Tx_e,\,j=1,\ldots,p\quad\mathrm{or}klzzwxh:0007y_j(t)&=&x^T(t)D_jx(t)+x_e^TD_jx_e+2\Re(x_e^TD_jx(t)),\,j=1,\ldots,p\end{matrix}

where the evolution of a state vector x(t) is subject to an input defined in terms of control field(s) u(t) and where the output is defined in terms of observable(s) y(t). The state vector has to be understood as x(t) → x(t) − xe where xe stands for equilibrium state with A xe=0 and where we have set bk ≡ Nk xe. In the absence of control fields u(t), the dynamics of x(t) is governed by matrix A the spectrum of which should be in the left half of the complex number plane to ensure stability. The initial value is given by x(t=0)=x0. The linear or quadratic output observables are represented by vectors cj or by (Hermitian!) matrices Dj. For details of the control problem in quantum mechanics, see also the corresponding page in the WavePacket central Wiki .

The function qm_abncd serves as bridge between WavePacket's quantum mechanics functions such as qm_bound and WavePacket's (optimal) control theory functions such as qm_control and qm_optimal and the associated functions for dimension reduction, e.g. qm_balance, qm_truncate and qm_H2model.

If the (global) variable state is an object of class rho, then we treat the (quantum-mechanical) Liouville-von Neumann equation (LvNE) for an open quantum system (so far, only Lindblad superoperators have been implemented). If the (global) variable state is an object of class ket, then we treat the (quantum-mechanical) time-dependent Schroedinger equation (TDSE) for a closed quantum system. In both cases the evolution of the unperturbed system is expressed in terms of matrix A. Coupling of electrical control fields through the system's dipole moments is expressed in terms of matrices B, N. Linear or quadratic output of the control problem (expectation values of certain quantum observables) is expressed in terms of C (LvNE) or matrices D (TDSE), respectively. For details of the control problem in quantum mechanics, see also the corresponding page in the WavePacket central Wiki.

Source code

The MATLAB function qm_abncd.m can be found here

Note that qm_abncd.m works only with objects of the main classes given in the following table:

class name description
ket state vecors, in eigen/energy representation
rho density matrices, in eigen/energy representation

File I/O

As input, this function requires matrix elements of important operators (energy, dipole, system-bath coupling) which are read from input data file named wave_0.mat. Typically, these data are provided by previously running qm_matrix. For electron dynamics in atomic/molecular physics, these data could also come from other programs used for electronic structure calculations.

The resulting matrices A,B,N,C,D along with vectors xi, xe etc are written to output data file ket_0.mat or rho_0.mat for TDSE (state being an object of class 'ket') or LvNE (state being an object of class 'rho') simulations, depending on the input argument for qm_setup run before. Subsequently, these data can be used to numerically solve the bilinear (optimal) control problem by running qm_propa, qm_optimal and/or for dimension reduction by running qm_balance and qm_truncate or qm_H2model.

Algorithms

Variables

Note that function qm_init.m should be run previously in order to initialize all variables in use. Of particular interest are the following structures:

References

  1. B. Schäfer-Bung, C. Hartmann, B. Schmidt, and Ch. Schütte: J. Chem. Phys. 135, 014112 (2011)

Related

Blog: 2019/02/version-530-released-30-may-2017
Wiki: Reference.Classes.ket_rho
Wiki: Reference.Classes.wave
Wiki: Reference.Files.Main
Wiki: Reference.Programs.Main
Wiki: Reference.Programs.qm_H2model
Wiki: Reference.Programs.qm_balance
Wiki: Reference.Programs.qm_bound
Wiki: Reference.Programs.qm_init
Wiki: Reference.Programs.qm_matrix
Wiki: Reference.Programs.qm_optimal
Wiki: Reference.Programs.qm_propa
Wiki: Reference.Programs.qm_setup
Wiki: Reference.Programs.qm_truncate
Wiki: Reference.Variables.control
Wiki: Reference.Variables.state

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.