Upon balancing transformation, the obtained Hankel singular values (HSVs) simultaneously(!) indicate controllability and observability, and the resulting modes are ordered accordingly. To reduce dimensionality, there are two methods currently implemented:
(simple) Truncatation:
In simple tuncation one simply eliminates the low HSV modes because they are weakly controllable and weakly observable at the same time.
Singular perturbation theory:
The idea of confinement truncation is based on the analogy between large HSV-modes with slow dof's and low HSV-modes with fast dof's. Then an averaging principle ( based on singular perturbation theory) can be used to derive equations of motion for the former one, where the latter one is confined to its average, or rather, the t → ∞ limit.
A = A11 - A12 A22 \ A21
N = A11 - N12 A22 \ A21
C = C1 - C2 A22 \ A21
see work by Carsten Hartmann et al. ... add references ...
The MATLAB function qm_truncate.m can be found here
Note that qm_truncate.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 |
The following input parameters are required when calling the function qm_truncate.m
parameter | description |
---|---|
method | 't': truncation 's': singular perturbation theory |
dim | dimensionality of truncated / reduced model equations |
As input this function requires matrices A,B,N,C,D along with vectors xi, xe etc in balanced representation which are read from input data file ket_bal_0.mat or rho_bal_0.mat, for TDSE or LvNE simulations, respectively, typically generated using our function qm_balance.
As output this function produces truncated matrices A,B,N,C,D along with vectors xi, xe etc which is written to output data file tdse_xn_0.mat or lvne_xn_0.mat for TDSE or LvNE simulations, respectively, where n indicates the reduced dimension after truncation and where x will be t or s for truncation or singular perturbation theory, respectively. This can subsequently be used as input for the bilinear control problem in reduced dimensionality by running qm_propa and/or its optimal control variant implemented in qm_optimal .
For more details on the balancing transformation and subsequent truncation, see this page of our WavePacket central wiki. In particular, there are two options for performing the dimension reduction:
Simple truncation of low HSV modes
Averaging principle (based on singular perturbation theory)
Note that function qm_init should be run previously in order to initialize all variables in use. Of particular interest are the following structures:
Wiki: Reference.Classes.Main
Wiki: Reference.Classes.ket_rho
Wiki: Reference.Files.Main
Wiki: Reference.Programs.Main
Wiki: Reference.Programs.qm_abncd
Wiki: Reference.Programs.qm_balance
Wiki: Reference.Programs.qm_init
Wiki: Reference.Programs.qm_optimal
Wiki: Reference.Programs.qm_propa
Wiki: Reference.Variables.reduce