The input file consists of a list of entries, where an entry is an expression of the form keyword = parameter. Entries can be separated by commas and/or newlines. Blanks and empty lines are ignored. The input is not case-sensitive. For instance,
key1 = par1, key2=par2and
KEY1=par1,and
keY2=par2
key1 = par1all are equivalent. The input entries may appear in arbitrary order. An entry that starts with an exclamation mark "!" is ignored. This allows one to disable single entries. A "#" defines the beginning of a comment, i.e. everything between "#" and the end of the line is ignored. For example, if an input file reads
key2 = par2
# This is a comment.only the entries one and three will be considered. A few entries are compulsory, but most are optional. If an optional entry is not given in the input file, a default parameter is used. All entries are listed below. For more information on the input syntax see Example Input Files.
key1=par1, ! key2=par2, key3=par3
!key4=par4, # key5=par5, key6=par6
It is also possible to pass arguments to the program via the command line. This is done by specifying a string which contains the desired input entries. The syntax is the same as for the input file. Any parameter given in the command line overrides the corresponding entry in the input file (if present). For example, one may start the program by typing
or
filter "prop_usepackets = 4" input
where input denotes the input file. (The keyword prop_usepackets is defined below.) Command line arguments are particularly useful for performing a series of calculations which differ by a few parameters only. For instance, the shell script
fdc "prop_usepackets = 4" input
for t in 100 200 400; do filter "filter_timeinterval=${t}.0d0, file_outputname=out_t$t" input donestarts three runs using a time interval of 100.0d0, 200.0d0, and 400.0d0 and writes the results to the output files out_t100.*, out_t200.*, and out_t400.*, respectively. All other parameters are taken from the file input.
The following input entries are compulsory. A missing compulsory entry raises an error message.
Keyword | Description |
---|---|
prop_outputinterval | The period with which the autocorrelation function has
been computed, i.e. the autocorrelation function is known
at t = i*prop_outputinterval, i =
0,1,2,... Note that this entry is optional for file_autoformat = mctdh or for prop_sodintegrator = yes. (In fact, this entry is ignored in these cases.) |
window_minimumenergy | The minimum or left boundary of the energy window to be "filtered". |
window_energywidth | The width of the energy window to be "filtered". |
window_energypoints | The size of the FD-Hamiltonian. If only a single packet is used, this is also the number of (equidistant) energy points in the window. If a cross-correlation function with P packets is employed, the number of energy points is given by window_energypoints / P. |
The unit system being used depends on the settings in the input file (see below).
A variety of optional entries may be given in the input file. The table below shows all keywords, together with the corresponding default. Note that some input entries are only relevant in conjunction with certain other parameters.
Keyword | Default | Description |
---|---|---|
prop_timeconversion | 41.3414 | Conversion factor from the desired time unit to atomic units, i.e. all times in the input file are multiplied with that number. The default is the conversion factor from fs to au. |
prop_energyshift | 0.0 | The energy S by which the Hamiltonian has been shifted during the propagation, i.e. the autocorrelation functions have been evolved using H-S rather than H. |
prop_sodintegrator | no |
Specifies the type of propagation.
|
prop_skipauto | 1 | Only every prop_skipautoth value of the auto- or cross-correlation files is employed. The default of 1 hence means that all values are used. |
prop_wavepackets | 1 | The number of wavepackets that have been used in the computation of the cross-correlation functions. This entry is ignored if file_autoformat = mctdh. |
prop_usepackets | 0 = all | Specifies the number of packets to be used from the cross-correlation function. A value of zero (the default) means that all packets will be employed. |
prop_initialtime (fdc only) |
0.0 | Specifies the initial time of the autocorrelation functions, i.e. the first part of the autocorrelation files up to time = prop_initialtime is ignored. |
file_autopath | . (current) | Denotes the directory containing all input and output files. |
file_autoformat | mctdh |
Specifies the format of the autocorrelation files. See
also Autocorrelation and Wave Functions.
|
file_exactname | (blank) | Path and name of the file containing comparison (e.g. exact or experimental) results. A blank means none. See also The Comparison File. |
file_outputname | filter | Stem of the file names the results are written to. |
file_fourier | no |
Defines whether the Fourier transform of the
autocorrelation function is written to file. See also
The Fourier File.
|
file_fourierresolution | 512 | The number of energy points used for computing the Fourier transform of the autocorrelation function. This entry is not considered unless file_fourier = yes. |
window_energyconversion | 0.0367493 | Conversion factor from the desired energy unit to atomic units, i.e. all energies in the input file are multiplied with that number. The default is the conversion factor from eV to au. |
window_imaginaryshift (fdc only) |
0.0 | Shift s for the imaginary part of the Hamiltonian, i.e. H is replaced by H + i s/2. This is done by correspondingly transforming the autocorrelation functions. The shift is subtracted from the widths before the results are output. |
window_intensitypacket | 1 | The number of the wavepacket for which the intensity will be computed. |
window_referenceenergy | 0.0 | Energy the energy parameters are refered to, i.e. this energy is added on input to the parameters window_minimumenergy, vp_energyshift, and error_energyshift and subtracted on output from the computed energies. Serves, for instance, to specify and output energies with respect to the vibrational ground state. |
filter_timeinterval | (maximum) | Specifies the length in time to be used of the autocorrelation functions. The default is to use the full available autocorrelation functions. |
filter_function | cos |
Selects the damping function the autocorrelation
functions are convoluted with.
|
filter_gausswidth | 0.3 | The width of the Gaussian filter function g, defined such that g(t) = e-2 for t = 1/2 filter_gausswidth*filter_timeinterval. This entry is ignored unless filter_function = gauss. |
filter_autoorder | two |
Defines which autocorrelation functions to be used.
|
filter_cutoff | 10-10 | Relative cut-off for the eigenvalues of the overlap matrix, i.e. all eigenvalues smaller than filter-cutoff times the largest eigenvalue are ignored in the computation of the truncated matrices. |
vp_principle | 1/H |
Specifies the variational principle to be employed.
|
vp_energyshift | (middle) | The energy shift s used in the variational principles vp_principle = H^2 and vp_principle = 1/H. Default is the middle of the energy window. This entry is ignored if vp_principle = H. |
error_estimate | variation |
Defines how the error is estimated.
|
error_spurious | 0.1 | A relative criterion for identifying spurious eigenenergies, i.e. all energies with an error greater than error_spurious times the middle of the energy window are ignored. Used only if error_estimate = stddeviation. |
error_principle | H or 1/H |
Specifies the variational principle to be employed for
estimating the error.
|
error_energyshift | (middle) | The energy shift s for the variational principles error_principle = H^2 and error_principle = 1/H used to estimate the error. Default is the middle of the energy window. This entry is ignored if error_principle = H. |
Note that the default for error_principle depends on the choice for vp_principle: if vp_principle = 1/H, then error_principle = H is the default, otherwise it is error_principle = 1/H.
The older keywords file_psilength, vp_accuracy, vp_iterative, and error_iterative are now obsolete and will be ignored on input. They should not be used anymore as they might not be supported in future versions.
A few example input files can be found here:
If an SOD integrator has been employed in the propagation of the wave packet (i.e. for prop_sodintegrator = yes), the parameters for prop_outputinterval and prop_energyshift are read from the data file instead of the input file. This ASCII file consists of three lines, each containing one real number, for example
0.103405000000000E+006The first number defines the time interval for which the autocorrelation functions are known. The second and third number is the value for prop_outputinterval and prop_energyshift, respectively. All parameters must be given in atomic units. The values in the data file override the corresponding entries in the input file.
0.484139803825175E+001
0.652324924114329E-001
Autocorrelation and Wave Functions
The auto- or cross- correlation functions of order zero, one and two are assumed to be stored in the files auto, auto1, and auto2, respectively, in the directory specified by file_autopath. Depending on the input flag file_autoformat, these files can be given in ASCII, binary, or MCTDH format. If file_autoformat = binary , then real and imaginary part (reauto and imauto) are read separately from each file (The index i runs over the time-dependent values of the autocorrelation functions.):
read(1) reauto(i)From ASCII files the autocorrelation functions are read by
read(1) imauto(i)
Finally, from MCTDH files the autocorrelation functions are read byread(1,*) reauto(i),imauto(i)
Note that the absolute value absauto(i) of the autocorrelation function is not used in the filter program. A line that starts with "#" is ignored if file_autoformat = mctdh.read(1,*) time(i),reauto(i),imauto(i),absauto(i)
A cross-correlation matrix cab(n)(t) = <psia(0)|Hn|psib(t)>, where a and b enumerate the wavepackets, is assumed to be stored columnwise in the corresponding files, e.g. c11, c21, c12, c22 if there are two packets, with one matrix element per line.
It is possible to specify a file containing a spectrum the computed results are compared with, by setting the file_exactname parameter appropriately. This comparison data can for example be an exact or experimental spectrum. By using the eigenenergy file it is also possible to compare with the results of a different filter calculation. The file must have ASCII format and consist of a series of lines, one for each state, containing the corresponding energy and intensity, for instance:
-6.5925694172562 0.0103374736668
-6.5619225175745 0.0124474270552
-6.5344266837777 0.0146345138770
-6.5100539138258 0.0172692110073
-6.4991166546213 0.0002512088973
-6.4888302869456 0.0203425006274
-6.4707960225204 0.0219697860398
-6.4689083682758 0.0002263517929
-6.4547552415270 0.0168010368034
-6.4422828378994 0.0003465083987
When the complex symmetric program version, fdc, is employed, the comparison file must also contain the widths as second argument, e.g.
-6.5925694172562 0.0884319056222 0.0103374736668
-6.5619225175745 0.0973643982186 0.0124474270552
-6.5344266837777 0.0349695940229 0.0146345138770
-6.5100539138258 0.0509832159486 0.0172692110073
-6.4991166546213 0.0254670742054 0.0002512088973
-6.4888302869456 0.0643632404813 0.0203425006274
-6.4707960225204 0.0664963330887 0.0219697860398
-6.4689083682758 0.0044885778973 0.0002263517929
-6.4547552415270 0.0935165419140 0.0168010368034
-6.4422828378994 0.0701926188810 0.0003465083987
The energies and widths must have the same unit as the energies in the input file (which can be defined with the aid of the keyword window_energyconversion). The energies must be given in ascending order.