The Trasim Input File Format

Below sample contents of a Trasim input file are shown.

# -*- mode: ini -*-
# The above comment makes EMACS use the ini mode by Dr. Rafael Sepúlveda, if
# that is installed.

[trasim]
procedure = uniform-tracking # A comment
rcrd-file-name = dp0.2.rcrd  ; Another comment
# A comment on an otherwise blank line
misc-file-name = dp0.2.misc

[tracking]
E_state_0 = 0.707107 0.707107
E_state_1 = 0.707107 -0.707107
E_0 = 0.196349
E_1 = -0.196349
psi_init = (0.9042,0.3145) (0.1671,0.2359)

[uniform-tracking]
guess = constant
M = 262144
tau = 1.0

[constant-guess]
constant = 0.5

[measurement]
N = 2
M0 = 0.632456 0 0 0.774597
M1 = 0.774597 0 0 0.632456

The strings in brackets, e.g. "measurement", are called section names and serve the purpose of structuring the input file into sections. Each section contains lines that, aside from a comment, are either just blank or key-value pairs of the form "key = value". The value may optionally be enclosed in quotation marks. A comment is introduced by a # or a ;.

What follows is a list of keys and possible corresponding values, sorted by section names. But, first some terms and general conventions need to be explained. The expression "dim(x)" refers to the dimensions of the value of "x". The terms double, long, etc. correspond to the respective types used in the C++ programming language and can be specified as values of keys by using the same notation as in C++. Other types are a bit more complicated:

Complex number
A value of type complex can be specified as "(u,v)", where u is the real part and v is the imaginary part, or just in the form "x", where x is a real valued number.
Qubit state vector
A qubit's state vector z0|0>+z1|1> must be specified in the form "z0 z1", where z0 and z1 are complex numbers that are separated by spaces or tabulators.
Operator on qubit state vector
An operator A on qubit state space (e.g. a measurement operator) must be specified in the form "A00 A01 A10 A11", where Ajk=< j|A|k> are complex numbers separated by spaces or tabulators.

trasim
General parameters for Trasim.
procedure
The tracking procedure to be used. Possible values (see the documentation of the corresponding sections for further information):
  • frequency-tracking
  • uniform-tracking
misc-file-name
Name of the file where miscellaneous data (e.g. the duration of tracking) is stored.
rcrd-file-name
Name of the file where data recorded during tracking (e.g. the evolution of the guess) is stored.
random-seed
Seed for the random number generator. Possible values:
  • time: The number of seconds that have passed since the Epoch (00:00:00 UTC, January 1, 1970).
  • An unsigned long integer value.
Default value: 0.
tracking
Common parameters of all tracking procedures.
E_state_0
The first eigenvector of the qubit's Hamiltonian.
E_state_1
The second eigenvector of the qubit's Hamiltonian. It needs to be orthogonal to E_state_0.
E_0
The eigenvector corresponding to E_state_0. Its units are h_bar/dimt, where dimt are arbitrary time units.
E_1
Same as E_0, but corresponding to E_state_1. Together with E_0, |E_0>=E_state_0, , and |E_1>=E_state_1, the Hamiltonian of the qubit is H=E_0|E_0>< E_0|+E_1|E_1>< E_1|.
psi_init
The initial state vector of the tracked qubit.
frequency-tracking
Parameters of the frequency tracking procedure that is based on the determination of the qubit's oscillation frequency in real time. To get an idea how this is done, see the description of the CFT procedure in my (Felix E. Klee) diploma thesis and also 0310142307.
Delta_t
A positive double value that specifies the distance between "widely spaced" measurements (the distance between "narrowly spaced" measurements is Delta_t/2). Units: dim(E_0)*h_bar, where E_0 is the value of E_0 defined in section tracking.
N
2*N is the total number of measurements.
n_rec_points
Number of recording points per Delta_t/2. A recording point is a point where data about the time evolution of the qubit and the guess are recorded. Recording points are spaced equidistantly in time. The minimum value is also the default value, which is 1.
dont_record
Two integer values, dr0 and dr1, separated by white space. Data between (i.e. not including) the measurements number 2*dr0-1 and 2*dr1-1 is not recorded (the first measurement is measurement number 0). To exclude the first measurement, dr0 needs to be set to 0.
uniform-tracking
Parameters of uniform sequential tracking procedures (see 0403060027).
guess
The guess to be used. Possible values (see the sections corresponding to the individual guesses for further information):
  • constant
  • aks
  • minimum-deviation-n-series
  • minimum-deviation-xrot
  • minimum-deviation-projective
M
The number of measurements to perform. Needs to be greater or equal to zero.
tau
A positive double value that specifies the distance in time between measurements. Units: dim(E_0)*h_bar, where E_0 is the value of E_0 defined in section tracking.
n_rec_points
Number of recording points per time interval of duration tau. A recording point is a point where data about the time evolution of the qubit and the guess are recorded. Recording points are spaced equidistantly in time. The minimum value for this key is 1 which is also the default value.
start_delay
A non-negative integer value that specifies the delay after which tracking starts. Units: recording points. Default value: 0.
predefined-outcomes
Name of a file containing predefined measurement outcomes. If the name is an empty string (default), then no predefined outcomes are used. Otherwise, the specified file must contain a list of M measurement outcomes (values between 0 and N_measurement-1, where N_measurement is the number of measurement operators N specified in section measurement). The values must be separated by white space (spaces, newlines, etc.).
g_1_min
Double value specifying the lowest admissible value of the guess. If it drops below this value, then Trasim stops with an error message stating that the guess diverged. Default value: largest finite representable value of type double.
g_1_max
Same as g_1_min, but this is the lowest admissible value. Default value: smallest normalized, finite representable value of type double.
constant-guess
Parameters of the constant guess used that can be used with uniform tracking sequential procedures. This guess always has the same value. Because it doesn't use up much computing time it can be used as a dummy guess, for example if only the time evolution of |c1|2 is of interest.
constant
The result of the guess as value of type double.
aks-guess
Parameters of the AKS guess used that can be used with uniform tracking sequential procedures. The guess is explained in 0403060139. It is calculated roughly as follows: g1=(r-p0)/Delta_p, where r depends on the measurement results and p0 and Delta_p depend on the measurement operators.
N
Positive integer value that specifies the number of measurements that make up one N-series.
minimum-deviation-n-series-guess
Parameters of the minimum deviation N-series guess. This guess is described in 0305181811.
N
Positive integer value that specifies the number of measurements that make up one N-series.
minimum-deviation-xrot-guess
Parameters of the minimum postestimation deviation x-rot guess adapted to tracking. This guess is described in 0403060138.
precision
A positive integer value that specifies the minimum precision used for some calculations (a higher value may actually be used if that is e.g. more efficient). If the value is zero or negative, the default value is used instead. Among other things, this value may be system dependent. As a pretty good rule of thumb, in order to avoid divergence of the guess, the precision should be approximately equal to the number of measurements, M, that is defined in section tracking.
minimum-deviation-projective-guess
This guess, called minimum deviation projective guess, has no parameters. It minimizes postestimation deviation at points in time immediately after projective measurements. This guess is discussed in section "Uniform Tracking" in chapter "Estimation and Tracking with Projective Measurements" found in my (Felix E. Klee) diploma thesis.
measurement
Parameters for the measurement used by the frequency and uniform sequential tracking procedures.
N
The number of measurement operators
Mj, where j is an element of {0, 1, ..., N-1}
The measurement operator number j.