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
M
j, where j is an element of
{0, 1, ..., N-1}
- The measurement operator number j.