qdyn_prop_traj

USAGE: qdyn_prop_traj [OPTIONS] RUNFOLDER [RUNFOLDERS ...]

This program is part of QDYN.

Look for CONFIGFILE inside RUNFOLDER (or file "config" if no CONFIGFILE
is given). Initialize a system (dynamical generator, pulses, grid,
initial state, eigensystem (optional)) from the specification in the
CONFIGFILE (using the default, empty, label). Propagate the initial
state over the time grid defined in the config file while writing out
any observables defined in the CONFIGFILE.

If additional RUNFOLDERS are given, propagate the system described by
each runfolder. By default, this is eqivalent to calling qdyn_prop_traj
once for each of the runfolders.

If the propagation is set up to use the Monte-Carlo-Wave-Function (MCWF,
"quantum jump" method, an arbitrary number of randomized trajectories
can be propagated (--n-trajs option). In this case, the observables
are averaged over all trajectories. If compiled with MPI support,
qdyn_prop_traj may be run in parallel (using mpirun or an equivalent
MPI runner) to significantly speed up the simulation of a large number
of trajectories.

OPTIONS

-h, --help           Print this help message and exit.
-v, --version        Print version information and exit
--n-trajs=N          Number of trajectories to propagate.
--rho                Propagate in Liouville space. Implies --n-trajs=1
                     The initial state is the pure-state density matrix
                     for the state defined in the CONFIGFILE.
--keep-all           Keep expectation values from all trajectories
--write-statistical-squares
                     For every expectation values output file, write
                     an additional file with extension .statsq that
                     contains the square root of the the average over
                     the squares of all expectation values, i.e.
                     sqrt(E(x^2)) for all expectation values x. Together
                     with the original averaged expectation values
                     E(x), the statistical variance can be calculated as
                     [sqrt(E(x^2))]^2 - E(x)^2. The variance should
                     converge to a constant value, and depend only
                     weakly on N. The statistical error of an observable
                     x is sqrt(var(x)/N) and thus go as 1/sqrt(N).
--write-all-states=STATESFILE
                     Write all propagated states to STATESFILE.<N>,
                     where <N> is the trajectory number
--write-final-state=STATESFILE
                     Write only the final state of each trajectory to
                     STATESFILE.<N>, where <N> is the trajectory number
--write-jump-record=JUMPRECORDFILE
                     Write a list of jump times and the index of the
                     Lindblad operator that was used in the jump to
                     JUMPRECORDFILE.<N>, where <N> is the trajectory
                     number
--states-file-format=FORMAT
                     The format in which to write states to file, via
                     --write-all-states, and --write-final-state.
                     Acceped values for FORMAT are "full", "vectorized",
                     and "indexed", see NOTES. Defaults to "indexed".
--lab-states         Write the states (--write-final-state,
                     --write-all-states) in the lab frame, using the
                     transformation defined in RWA_VECTORFILE
--rwa-vector=RWA_VECTORFILE
                     Enable the conversion of propagated states from
                     the rotating frame to the lab frame. This is
                     required for the --lab-states option, as well as
                     if any observable in the CONFIGFILE has
                     `in_lab_frame` set to True
--time-unit=UNIT     Physical unit for time column in JUMPRECORDFILE,
                     as well as for writing out states
--config=CONFIGFILE  Name of the config file inside RUNFOLDER. Defaults
                     to "config"
--seed=SEED          Seed for the random number generator
--backwards          Performs a backwards propagation
--propagate-series   If given in combination with multiple RUNFOLDERS,
                     ignore the initial state (--state-label) for all
                     but the first runfolder, and use the state
                     resulting from the propagation of the previous
                     runfolder as the initial state for the propagation
                     in the next runfolder.
--use-oct-pulses     For every pulse that defines an "oct_outfile" in
                     the config file, if that file exists, use it to
                     load the data for the pulse, instead of the
                     "normal" initialization. This allows to propagate
                     the pulses resulting from an optimization, instead
                     of the guess pulses.
--debug              Write para.debug, grid.debug, gen.debug,
                     state0.debug, prop_work.debug containing ascii
                     dumps of the config file data, the spatial grid,
                     the dynamical generator, the intial state, and the
                     propagation scratch data. The files are written in
                     the RUNFOLDER.
--internal-units=UNITS_FILE
                     Specify a file containing conversion factors
                     between internal units and physical units. See
                     "Notes on the Units Systems" in the QDYN
                     documentation for details. The file must be located
                     in the current working directory, in the directory
                     specficied by the QDYN_UNITS environment variable,
                     or the QDYN installation directory.
--state-label=STATELABEL
                     Label in the config file of the initial state. By
                     default, the state is initialized from the empty
                     label (same as the rest of the system). Specifying
                     a different label is useful for e.g. propgating
                     the different initial states of an optimization.

NOTES

The value for FORMAT in the --states-file-format results in the
the following output. If a Hilbert space states is propagated (--rho
not given), then the output file will contain three columns (index,
real part, imaginary part of the wave function amplitude) If FORMAT is
"indexed", zero amplitudes are omitted. If a density matrix is
propagate, then if FORMAT is "indexed", the output file will have four
columns (row, col, real part, imaginary part of density matrix entry);
if FORMAT is "full", then the density matrix of dimension n will be
written in n rows, and 2*n+1 columns, with the row index in the first
column, and all the real and imaginary part of all the density matrix
entries in that row; if the FORMAT is "vectorized", the output file will
have three columns (index, real and imaginary part of the density matrix
entries), where the index numbers all entries in column-major mode.
In the output for --write-all-states, the output for states at different
points in time is separated by two blank lines (plus two comment lines).

Most options may also be set in the config file as use-defined values.
The corresponding keyname replaces dashes with underscores. That is,
instead of specifying "--write-jump-record=jump_record.dat" as a command
line option, the value "write_jump_record = jump_record.dat" may be
added to the "user_strings" section of the CONFIGFILE. Any filenames
in this case are relative to the CONFIGFILE, not the current working
directory.