As an example, take a look at the input files allene_e.inp and allene_b.inp with common settings
in the include files allene_common1.inc and
allene_common2.inc.
These examples are also listed in the examples section below.
The order and placement of the keywords within a section is usually arbitrary. Exceptions are described below.
rd sin 36 3.800 5.60This input format is used in the PRIMITIVE-BASIS-SECTION and, similarly, in the INIT_WF-SECTION. In the operator-file (*.op) (see Hamiltonians) there may appear functions with arguments. Such a construct, as e.g.
CAP_rd = CAP [ 5.0 0.357 3 ]may appear in the OPERATOR-SECTION of the input-file when 'alter-labels/end-alter-labels' is used. Note that these latter inputs are not free-format, the order of the arguments matters! Moreover, the fixed-format inputs must have a line for their own; they must not be followed by another keyword.
Keyword | Description | Conversion factor |
---|---|---|
au | atomic units | 1 (may be omitted) |
mH | milli Hartree | 1000 |
ev | electron volts | 27.21138386 |
mev | milli electron volts | 27211.38386 |
cm-1 | wave number cm^-1 | 2.1947463137d+5 |
kcal/mol | kcal/mol | 627.503 |
kJ/mol | kJoule/mol | 2.6255d+3 |
Kelvin | Kelvin | 3.15777d+5 |
nmwl | wavelength in nanometer | 107/cm-1 |
aJ | atto Joule (10-18J) | 1.602177d-1*ev |
invev | (electron volts)^-1 | 0.036749325398 |
debye | unit of electrical dipole moment | 1 / 0.39343 |
AMU | atomic mass unit | 1 / 1822.88848325 |
p-mass | mass of proton | 1 / 1836.15267247 |
H-mass | mass of Hydrogen atom | 1 / 1837.15264409 |
D-mass | mass of Deuterium atom | 1 / 3671.482934845 |
Angst | Angstroem | 0.52917720859 |
pm | picometer | 52.917720859 |
nm | nanometer | 0.052917720859 |
deg | degree | 180.0/pi |
Angst-1 | Angstroem^-1 | 1/Angst |
pm-1 | picometer^-1 | 1/pm |
nm-1 | nanometer^-1 | 1/nm |
eV*AMU | sqrt(2mE) | |
fs | femtosecond | 1/41.34137333656 = 0.02418884326505 | ps | picosecond | 1/41341.37333656 = 2.418884326505d-5 |
invfs | femtosecond^-1 | 41.34137333656 |
The input sections reflect the structure of the program. The
RUN-SECTION defines what sort of calculation is desired.
Depending on what is requested here the remaining sections
provide the required information. The various sections are listed
below. There is no pre-defined order for the sections.
XXX | Description |
---|---|
RUN | Whether propagation, relaxation, or diagonalisation, whether to generate or read DVR information, propagation and output-times, etc. |
PRIMITIVE-BASIS | Definition of primitive basis, e.g. DVR / FFT. Note: PBASIS is a short form for PRIMITIVE-BASIS . |
SPF-BASIS | Definition of the single-particle function basis, e.g. whether to combine any degrees of freedom, how to treat an electronic degree of freedom, how many functions etc. Note: SBASIS is a short form for SPF-BASIS . |
SPDO-BASIS | This is a special feature of density operators of type I. The section corresponds to the SPF-BASIS section. It accounts for the special structure of this type of density operators. |
OPERATOR | Which operator to be used, any parameter changes to be made etc. |
INIT_WF | How to generate the initial wavefunction. |
INTEGRATOR | Which integrator to be used, and with what parameters. |
Below are tables of keywords for each input section. The
number and type of arguments is specified. The type is S for
character string, R for real number, and I for integer. e.g.
keyword = S, R
indicates that the keyword takes two arguments, the first is a
string, the second a real number. Default values for keywords and
arguments are also listed.
Keywords defining how output files will be treated | ||
---|---|---|
name = S | The name of the calculation. A directory with name S is required in which files related to the calculation, unless otherwise explicitely stated, will be written. | |
overwrite | Any files already in name-directory will be
overwritten. If this keyword is not given, and files already exist in name-directory, calculation will stop without these files being overwritten. It is recommended not to set overwrite but rather to use the option -w . |
|
title | If the keyword title appears in one line of the run-section, then the next line is supposed to contain a headline title of the run. This line will be written to output, timing and log files. Note the title line will be read regardless of special characters like '#' or '!' . Alternatively, when an equal sign, = , follows the keyword title, then everything that follows, from the equal sign till the end of the line, is regarded as title. |
The following keywords define the method used to describe the system | |
---|---|
Keyword | Description |
wavefunction | The system will be described by a wavefunction (default) |
density1 | The system will be described by a density operator, using the type I formalism |
density2 | The system will be described by a density operator, using the type II formalism |
The following keywords define the calculation to be made | ||
---|---|---|
Keyword | Level | Description |
gendvr | 1 | A DVR file will be generated. |
genoper | 2 | An operator file will be generated. |
genpes | 2 | A special operator file, called pes, will be generated, to be used by showsys to plot the PES. (See below). |
gengmat = I1,I2 | 2 | A special operator file, called pes, will be generated, to be used by showsys to plot the (I1,I2) element of the G-matrix of the kinetic energy. (See below). |
geninwf | 3 | An initial wavefunction will be generated. |
propagation | 4 | Propagation in real time. |
relaxation | 4 | The propagation will be in imaginary time i.e. the wavepacket will be relaxed to the ground state. |
relaxation = I(,S1(,S2(,S3))) relaxation = S(,S1(,S2(,S3))) |
4 | Improved relaxation. Requires CMF integration scheme. If an integer I is specified, the I-th eigenstate will be computed (I < 900). If I is replaced by the string follow then the eigenstate closest to the previous WF is computed. The strings full and ortho may be given as second or third arguments. If the Davidson integrator, DAV, is used, the inputs relaxation= I, relaxation=follow or relaxation=lock may be used. The strings full , quad , olsen , backrotate , quadphi , and cn (where n is an integer), may be given as additional arguments. See remarks below. |
continuation | 4 | A continuation of the run in the name-directory will be performed. |
diagonalisation = I | 4 | The Hamiltonian will be diagonalised using a Lanczos algorithm with I iterations. The SPF-BASIS-SECTION and the INTEGRATOR-SECTION are ignored for a (Lanczos) diagonalisation run. The WF is expanded in exact format. |
There are 4 levels of calculation types, reflecting the four
stages of a calculation. Only one run-type keyword of a
particular level is allowed. All lower level keywords are
automatically included. Thus
propagation
or
gendvr genoper geninwf propagation
are equivalent.
When relaxation=I is given, the I-th eigenstate
(counting from 0) is computed by taking the I-th eigenstate
(A-vector) of a Lanczos matrix, rather than propagating the
A-vector in imaginary time. (The single-particle functions are
still propagated in imaginary time.) This requires, that one uses
the CMF integrator in the fix or varphi mode and
employs the SIL integrator for the A-vector. (NB: The keyword
CMF is interpreted as CMF/varphi when the runtype
is improved relaxation. Otherwise CMF is always
interpreted as CMF/var, see INTEGRATOR-SECTION). It also requires, that the
Hamiltonian is hermitian such that the SIL-integrator and not the
Arnoldi-Lanczos (CSIL) integrator is taken. If I is replaced by
the string follow then the eigenvector with the largest
overlap with the restart vector is computed. (The restart WF may
be generated by build or taken from a file. See INIT_WF-SECTION).
The size of the Lanczos matrix used depends on the SIL order and
accuracy parameters. The Lanczos iteration is stopped when the
SIL order is reached or when the estimated error of the Lanczos
eigenvalue (in milli Hartree) is smaller than the SIL accuracy
parameter. When the keyword full is given, the very first
Lanczos space is build up to maximal order, irrespectively of the
accuracy. This feature is useful to ensure, that one starts with
an appropriate approximation of a desired excited state. When the
keyword ortho is given, a full re-orthonormalisation of
the Lanczos vectors (or Krylov vectors) is performed. In general
it is recommended to use ortho.
The keyword ortho must not be given when the Davidson
integrator DAV is used.
When the chosen integrator mode is CMF/varphi (or just
CMF ), then the output starts at t=tinit-tpsi. The initial
wavefunction is reported at this time. At t=tinit (i.e. usually
at t=0) we report the wavefunction obtained after diagonalising
the Hamiltonian in the basis of the single-particle functions
(without having relaxed these functions). The next steps include
first a relaxation of the single-particle functions followed by a
(Lanczos) diagonalisation of the Hamiltonian.
The calculation stops, when the final relaxation time is reached
or when the A-vector changes less than the SIL-accuracy. The
program then stops with the message stop by internal
check. Note, that "relaxation" to exited states may require
a rather large Lanczos order. See the steps file and in
particular the rlx_info file for details on the
computation.
When the calculation starts converging to the desired state but
after a few iterations jumps to another state, then the numbers
of single-particle functions are too small or the chosen
accuracies are to low. Increase the accuracy of CMF/varphi
(or decrease the step size of CMF/fix). It may also be
necessary to increase the Lanczos accuracy and/or order. Inspect
the rlx_info file to see what Lanczos orders are actually
taken. Also inspect the update file. If a "*" appears at
the beginning of a line, then the corresponding update time was
too large.
The inputs relaxation and relaxation=0 both
generate the ground-state wavefunction. However, different
algorithms are used and the latter calculation will in general be
considerably faster. NB: Only the simple relaxation works for
density operators, relaxation=I will not work for density
operators.
For an example see the input files co2_gs.inp and co2_asym.inp which generate the
ground state and the asymmetric stretch excited state,
respectively. See also the User's Guide, section 3.4 .
The recently introduced Davidson "integrator" DAV is much more powerful for improved relaxation than the SIL. For DAV one of the three inputs: relaxation= I or relaxation=follow or relaxation=lock may be used. For the first input, the program seeks the ground-state (I=0) or for the I-th excited state. However, the program takes the I-th state of the first diagonalisation, which may not be the I-th state of the Hamiltonian. With the option full the program tries to converge as many states as it can within the limited space supplied by the "integrator". full thus makes the counting safer, but the computation more costly. With follow the Davidson diagonalisation takes that eigenvector which is closest to the one of the previous diagonalisation. With lock the Davidson diagonalisation takes that eigenvector which is closest to the initial WF as defined in the Init_WF-Section. lock is hence the safer choice for finding excited states, but it is numerically more demanding than follow. lock requires that the keyword cross is given in the Run-Section.
There are three Davidson-routines implemented: DAV, RDAV, and
CDAV. (See INTEGRATOR-SECTION). The RDAV
routine allows to additionally use the keywords quad,
olsen, backrotate, quadphi, and cn,
(where n denotes an integer, e.g. c6) as arguments to
relaxation .
The keyword quad lets the program switch to use a
quadratic variational principle (i.e. (H-E)**2 is diagonalised
within the space of Davidson-vectors rather than H).
With the keyword olsen the program applies the Olsen
correction to the residual Davidson vector. This is only useful
when a preconditioner is used. (Keyword precon).
The keyword backrotate lets the program rotate the SPFs
after relaxation, such that they have maximal overlap with the
orbitals prior to the orbital relaxation step. This sometimes
improves the overlap with the previous A-vector.
The keyword quadphi lets the program use a different
propagation algorithm for orbital relaxation (experimental).
The keyword cn lets the program perform n orbital
relaxation steps, before a new diagonalisation step is
done.
The file rlx_info contains a lot of information on the relaxation process. If DAV / RDAV / CDAV is employed, use the script rdrlx to read it. With the aid of the keyword rlxunit one may set the energy-unit for the output to the rlx_info file. One also may apply an energy-shift (e.g. subtract the ground-state energy). See the table Keywords associated with a propagation or relaxation calculation below.
Keywords augmenting the calculation type | |
---|---|
exact | A numerically exact wavepacket calculation will be made. |
The exact keyword can be added to any run-type
keyword. For example,
propagation exact
will result in a numerically exact wavepacket propagation (i.e.
the wavefunction will be represented in the full product
primitive basis). Similarly,
geninwf exact
will set up a wavepacket for a numerically exact calculation.
The following keywords define calculations that generate files to help the analysis of calculations. | ||
---|---|---|
Keyword | Level | Description |
genoper=S | 2 | An operator file with the name S will be generated from the .op. This can be used together with the EXPECT program to calculate the time dependence of the expectation value of an operator. |
genpes | 2 | A pes file will be generated from the .op file. This file can be used together with the SHOWSYS program to plot the potential energy surface, or together with VMINMAX program to determine minima and maxima of the potential energy surface. |
gengmat = I1,I2 | 2 | A pes file will be generated from the .op file, containing the (I1,I2) element of the G-matrix defined by the kinetic energy part of the Hamiltonian. This file can be used together with the SHOWSYS program to plot a energy surface. This keyword, gengmat, is introduced for testing the kinetic energy operator for correctness. |
These keywords are equivalent to a run-type keyword of the level given.
Keywords defining how the read-write files will be handled. | ||
---|---|---|
readdvr = S | The DVR information will be taken from the DVR file in directory S. | |
readoper = S | The operator information will be taken from the OPER file
in directory S. |
|
readinwf = S | The initial wavefunction will be taken from the RESTART file in directory S. | |
deldvr | The DVR file will be deleted at the end of the calculation. | |
deloper | The OPER file will be deleted at the end of the calculation. |
The tfinal keyword must be given. All other keywords are optional. The following default values are used.
Keyword | Default |
---|---|
tinit | 0.0 |
tout | tfinal-tinit |
tpsi | tout |
The following keywords define the data calculated and saved. If keywords are omitted, data will not be calculated.
Keywords defining output-data files to be opened. | |
---|---|
Keyword | Description |
all | All the (optional) files discussed below will be opened. More precisely, a propagation/relatation run will open the files: auto, autoe, gridpop, output, pdensity, psi, speed, steps, stop, timing, and update. In a diagonalisation run, only the files output, timing, lanczvec, and eigvec are opened. |
auto = S (,S1) (,S2) | The auto-correlation function will be written to the file
auto. If S = twice, auto-correlation function is written twice in interval tout (only for CMF) . If S = once, auto-correlation function is written only once in interval tout. If S = no, no auto-file will be opened. This only makes sense, if the keyword all was given previously. If S, S1, or S2 = error, the autoe file will be opened, which contains the auto-correlation function computed with the least important natural orbital omitted. This information is useful for estimating the error. If S, S1 or S2 = order1, the file auto1 will be opened. If S, S1, or S2 = order2, the files auto1 and auto2 will be opened. These files contain the first and second order auto-correlation function, respectively, needed in the filter-diagonalisation method. Note that in a multi-packet run, i.e. when packets > 1, the files auto, auto1, and auto2 contain cross- rather than auto-correlation functions. |
auto | Synonymous for auto = once. |
cross (= S (,I)) | A cross-correlation
function will be calculated and written to the file "cross".
The reference wavefunction will be taken from the "restart"
file residing in the directory named S. If S=name, the restart file will be taken from the current name directory, which means that the auto-correlation function will be calculated (but without the t/2-trick). This is also the default (i.e. if no argument is given). If an integer I is given after the path S, then the cross-correlation will be evaluated for the electronic state I only. |
ctrace = D | The trace tr(D rho) is written to the file ctrace in a density operator propagation. If no operator is given, D = |s><t|, where s=left_state and t=right_state (see Init_wf-Section). |
eigvec | In a diagonalisation run, the eigenvectors of the tridiagonal Lanczos matrix are written to the eigvec file. |
expect = S (,S1, S2, ...) | The expectation value of the operator S,
<psi(t)|S|psi(t)> / <psi(t)|psi(t)>, is
evaluated and written to the file expectation. Up to maxham
operators may be specified. (If S=system then the expectation
value of the whole System-Hamiltonian is derived, i.e. the
total system-energy.) The norm (not norm**2) of Psi is
additionally written to the expectation file. For density operators the expectation value is tr(H rho)/tr(rho). There may be more than one expect line. I.e expect = S, S1, S2 is equivalent to expect = S expect = S1 expect = S2 When the first argument to expect, S, is real-only , then only the real parts of the expectation values will be output to file expectation. |
expect1 = S (,S1, S2, ...) | Same as expect, except that the data is written to
the file expect1. This second expectation file is useful for
a better organisation of the data if several expectation
values are computed. One file may store real, the other
complex expectation values. Important Note: The expect1 keyword(s) must appear in the input file after the expect keyword(s). There must not be an expect1 keyword without a previous expect keyword. |
gridpop | The grid populations will be written to the file gridpop. Note: The grid populations of the different states will be summed. |
gridpop=el | The grid populations will be written to the file gridpop. The grid populations of the different states of a multi-set run will be stored separately. |
lanczvec | In a diagonalisation run, the Lanczos vectors are written to the lanczvec file. |
orben | The orbital energies, i.e. the eigenvalues of the trace of the mean-field operators, are calculated and written to the orben file. Note: orben must be set, when the propagation is in energy orbitals (keyword energyorb, Integrator-Section) |
output | The output will be written to the file output rather than to the screen. (default). |
screen | The output will be written to the screen rather than to the file output. Alternatively to screen one may give the keyword no-output. |
pdensity (=I1,I2,I3,I4) | The one-particle density will be written to the file pdensity. If the pdensity keyword is followed by an equal sign and up to four integers, the one-particle density will be output only for the specified (contracted) modes. |
psi = S (, S1 or R) | The wavefunction will be written to a file every tpsi fs.
If no arguments are given, it is written single precision to
the file psi. If S or S1 = single, the wavefunction will be written single precision. If S or S1 = double, the wavefunction will be written double precision. If S or S1 = natur, the wavefunction will be written as natural orbitals. This option is automatically taken if natural orbitals are propagated. If S = compact, the wavefunction is written in natural orbital representation and compact form using the cutoff R. If S or S1 = no, no psi-file will be opened. This only makes sense, if the keyword all was given previously. |
psi | Synonymous for psi = single. |
speed | The CPU-time used within an output interval will be written to the file speed. (default). |
no-speed | The speed file is not opened. |
steps | Information on the integrator step sizes will be written to the file steps. |
stop | The file stop is created. It allows to stop the run in a controlled way by writing 'stop' or the desired stop time (real-time and/or CPU-time) to the stop file. (default). |
no-stop | The stop file is not opened. |
timing | Program timing information will be written to the file timing. (default). |
no-timing | The timing file is not opened. |
update | If the constant-mean-field integrator with adaptive step size is used, the update time for the mean-fields is written to the file update. (default). |
no-update | The update file is not opened. |
veigen | The eigenvectors and eigenvalues of a 1D operator, set up in the the INIT_WF section with the spf type eigenf, are written to the veigen file. |
quadpop | If set, the grid populations and state populations are calculated using rho^2 rather than rho. This keyword is needed, if a traceless density operator is propagated. Otherwise, all populations are zero. Only for Density Operators of Typ I. |
Keyword | Default |
---|---|
auto | S = once |
cross | S = name |
psi | S = single |
psi = compact | R = 1.0d-6 |
Keyword | Description |
---|---|
opname = S | The operator with name S.op will be used. |
oppath = S | The path S will be used to find the operator file. If oppath is not given, the program will first look in the startup directory and then the default operator path. |
closed | Density operators are propagated in a closed system, i.e. possible dissipative operators are ignored and the Hamiltonian is used only. This is the default. |
open | Density operators are propagated in an open system. |
projection | Modified equations of motion for the coefficients are
used if density operators of type II are propagated in an
open system. This ensures that the trace is conserved. To
switch off this feature use the key word
no_projection. Note: projection is the default. |
alter-parameters ..... end-alter-parameters |
The lines between the keywords define parameters to be used in building the Hamiltonian, using the same format as in the PARAMETER-SECTION of the .op file. |
parfile = S | The parameters to be used in building the Hamiltonian are
listed in the file S. The parameters are defined using the
same format as in the PARAMETER-SECTION of the .op file.
The file must end with the line end-parameter-file |
alter-labels ..... end-alter-labels |
The lines between the keywords redefine labels specified in the LABELS-SECTION of the operator file opname.op |
v < R | Energy cut-off used for potential energy surface in exact calculations. All potential energy values greater than R are set to R. |
v > R | Energy cut-off used for potential energy surface in exact calculations. All potential energy values less than R are set to R. |
analytic_pes | If the operator contains a non-separable potential this will not be stored explicitely on the primitive grid points, but in an analytic form which can be used to generate the potential on-the-fly at any point. This should be set if the CDVR method is to be used. |
cutoff = R, unit | All real diagonal Hamiltonian terms (except natpots) which are smaller than cutoff are removed. (Note, all non-diagonal Hamiltonian terms which are on all grid-points smaller than 1.d-12 au are removed as well). The default is cutoff=tiny (i.e. 1.d-9 au). For an improved relaxation run it may be useful to set cutoff to a lower value. The value of cutoff and the number of Hamiltonian terms removed are protocoled in the op.log file. NB cutoff is not applied to natural potentials. Use natpotcut for those. |
natpotcut {V1,V2,...} = R, unit | The real constant R sets the threshold for removing
natpot terms. This feature may reduce the number of natpot
terms while only marginally reducing the quality of the
potfit potential. The labels V1, V2, ... are the
labels assigned to a natpot in a Labels-Section of the
operator file. The keyword natpotcut may appear
multiple times in the input file, if different thresholds for
different natural potentials are used. If no potential label
is given, i.e. natpotcut = R, unit (the equivalent
form: natpotcut {all} = R, unit is also possible),
the program will use the same threshold for all natural
potentials. The keyword unit denotes the MCTDH
units. If unit is not given, au is
assumed. Information on the removed natpot terms is given in
the op.log file. The default value for the threshold R is R = tiny (i.e, 1.0d-9 au). I.e., even when the natpotcut keyword is not given, all terms which are smaller then 1.0d-9 au will be removed. In fact, this holds for all operators, not only for natural potentials. Using an increased value for the natpotcut threshold (e.g. R=1.d-6) may speed up the calculation, because several natpot terms have been removed. The accuracy of the potentials may decrease, but this effect is negligible, as long as R is sufficiently small. |
fast = V1,V2{n},... | An more efficient algorithm for H(natpot)*A operation is used. The A-vector is pre-multiplied with several natpot terms and the results are stored for further use. (Hence fast requires slightly more memory). The labels V1, V2, ... are the labels assigned to a natpot in a Labels-Section of the operator file. The (optional) specification of an order n is possible by attaching this number in curly brackets ({}) to the label. n denotes the number of modes used for pre-multiplication. The larger n is, the larger will be the speed-up. However, n is limited to min(4,nmode-2), where nmode denotes the number of (combined) modes (or MCTDH particles). The n orders are optional, i.e. if no order for the current label is given, n=min(4,nmode-2) will be used. If no potential label is given, i.e. only fast (or fast = all), the maximum order for all natpots will be set. Some information about using the "Fast" is written to op.log file. "Fast" works also for a multipackage but not for a multi-set propagation and not for S-MCTDH. |
If no OPERATOR-SECTION is included, the program looks for the operator information in the input file. This can be useful if a small model operator is studied. A full log of the operator is then automatically output.
The following lines define the single-particle function basis to be used in a wave function calculation or a calculation employing density operators of type II. The input defines firstly how many degrees of freedom are contained within a mode. Secondly, the number of spfs are given; a list being needed for a multi-set basis. The format is:
mode_label1 , mode_label2 , ... = nspf1 , nspf2 , ...where the degrees of freedom labelled mode_label1, mode_label2 etc. are contracted together in a single mode, and the number of single-particle functions for this mode are nspf1 in the first set, nspf2 in the second set etc. More than one mode definition can be written on a line.
For example for a 3-mode system, with labels X, Y and Z,
to define an spf basis of 3 functions per mode,
spf-basis-section X = 3 Y = 3 Z = 3 end-spf-basis-sectionor
spf-basis-section X = 3 Y = 3 Z = 3 end-spf-basisTo contract the degrees of freedom X and Y into a single mode,
spf-basis X, Y = 3 Z = 3 end-spf-basis-sectionIf a multi-set basis is used, then to have 3 functions in the first set and 2 in the second,
spf-basis-section multi-set X , Y = 3 , 2 Z = 3,2 end-spf-basis-section
Note: The electronic SPF-Basis is not to be specified in the spf-basis-section, as it is always complete. The electronic mode will always be the last mode in a single-set run.
If many electronic states are present, the definition of single-particle functions for a mode can be continued on a second line by using a continuation mark %, e.g.
spf-basis-section X = 5 , 5 , 5 , 5 , 6 , 10 , 5 , 2 , 2 , % 5 , 5 end-spf-basis-section
If for symmetry reasons one set of SPFs is always identical to another one, the latter set need not to be propagated numerically. In such a situation, e.g. H2O in valence coordinates and for a symmetric initial state, one may tell the program not to propagate the second identical set of SPFs. This is done by specifying with the id keyword the mode to which the present mode is identical. E.g.:
spf-basis-section R1 = 8 R2 = id,1 Theta = 9 end-spf-basis-sectionMode 2 is now identified with mode 1 and the calculation is faster, because the propagation of mode 2 is skipped.
The following keywords, if given, define multi-state or muti-packet runs. Note: A SPF-BASIS-SECTION does not need to exist for an exact calculation, except if packets is specified.
Keyword | Description | Default |
---|---|---|
multi-set | If an electronic basis is defined it is treated using the multi-set formalism, i.e. a set of single-particle functions per state. If this keyword is not present, the single-set formalism is used. | not set |
packets = I | I independent wavepackets will be simultaneously propagated. | I = 1 |
id,I | I denotes the mode-number (particle-number) with which the present mode is to be identified. See the note above for the correct use of the id keyword. | not set |
The SPDO-BASIS-SECTION is a special feature of a calculation using density operators of type I. It is organised almost as the SPF-BASIS-SECTION. For a single-set calculation these sections are in fact identical. In a multi-set calculation differences occur due to the special structure of density operators of type I.
The number of sets in a multi-set calculation using a density operator of type I is the squared number of sets used in the corresponding calculation emplyoing a wave function or a density operator of type II. This can be seen in the following example:
If the SPF-BASIS-SECTION reads (two sets for each DOF)
spf-basis-section multi-set X , Y = 3, 2 Z = 4, 2 end-spf-basis-section
the SPDO-BASIS-SECTION may be chosen as (four sets for each DOF)
spdo-basis-section multi-set X , Y = 2, 2, 2, 2 Z = 2, 2, 2, 2 end-spdo-basis-section
The ordering is here as
n(1,1), n(1,2), n(1,3), ..., n(2,1), n(2,2), n(3,2),
...
where n(s,t) is the number of SPDOs for the pair of
states (s,t).
mode_label basis_type basis_size parameters
mode_label is an alphanumeric string (case sensitive)
labelling the degree of freedom.
basis_type must be one of the following:
Parameter | Description |
---|---|
el | Electronic basis. |
elcont | Electronic basis including continuum states. |
HO | Harmonic oscillator (Hermite) DVR. |
rHO | Radial Harmonic oscillator (odd-Hermite) DVR. |
Leg | Rotator (Legendre) DVR. |
Leg/R | Rotator (Legendre) DVR for a restricted range on angles. |
Lagu1 | Laguerre DVR for boundary condition x1/2. |
Lagu2 | Laguerre DVR for boundary condition x1. |
Lagu3 | Laguerre DVR for boundary condition x3/2. |
Lagu4 | Laguerre DVR for boundary condition x2. |
sin | Sine (Chebyshev) DVR. |
FFT | Fast Fourier transform collocation. |
exp | Exponential DVR. Periodic boundary condition. |
cos | Cos DVR. "gerage" solutions with periodic boundary condition. |
sphFBR | Spherical harmonics FBR. |
KLeg | Extended Legendre DVR. |
K | K-quantum number appearing with KLeg-DVR. |
PLeg | Two-Dimensional Legendre DVR. |
Extern | External DVR. |
basis_size is an integer specifying the primitive basis
size, e.g. grid points or vector elements etc. Note that for an
FFT-representation basis_size (i.e. gdim in the
program) must have a prime factor decomposition with only 2's,
3's and 5's but should have a decomposition with only 2's and 3's
for optimal performance, i. e. basis_size = 2^m * 3^n
where m and n are positive integers. Note also
that basis_size must be odd for the exp-DVR.
For a sphFBR-representation, basis_size is not required in
input. The number of basis functions is calculated by the program
itself, according to the type of basis (see parameter
description).
For a K-DVR basis_size is not required in input. It will
be calculated from the kmin,kmax parameters given in this
section. NB: The basis_size is called gdim.
The parameters to be input depend on the basis type as follows:
Basis | Parameters | Parameter description |
---|---|---|
Elcont | Nstates: | Total no. of electronic states. |
Elbnd: | No. of bound electronic states. | |
HO | hoxeq: | Equilibrium position of harmonic oscillator basis functions. |
hofreq: | Frequency of harmonic oscillator basis functions. | |
homass: | Mass of harmonic oscillator basis functions. If no mass is given, then the mass is set to 1. | |
HO | S: | String S = xi-xf. This string serves as a switch between the two possible input formats. |
xi: | First grid point. | |
xf: | Last grid point. | |
rHO | hoxeq: | Equilibrium position of harmonic oscillator basis functions, which -- because only the positive half-axis is used -- is the left-hand boundary of the wavefunction. |
hofreq: | Frequency of harmonic oscillator basis functions. | |
homass: | Mass of harmonic oscillator basis functions. If no mass is given, then the mass is set to 1. | |
rHO | S: | String S = xi-xf or S = x0-xf. This string serves as a switch between the possible input formats. |
xi or x0: | First grid point, or left boundary (i.e. hoxeq). | |
xf: | Last grid point. | |
Leg | blz: | Magnetic rotational quantum number. Alternatively to a number one may input the string jbfXXX. blz will then be set to the value of the parameter jbfXXX. Here XXX stand for any characters. I.e. one may use jbf or jbf_1 etc. Note: jbfXXX must be defined in the parameter section of the input-file or via an option on the command line. (alter-parameter and operator file definitions come too late). |
string: | Controls whether symmetry to be used. all: no symmetry (use all l -values, l=m, m+1,...,m+N-1 ). odd: odd symmetry (i.e. l=odd ). even: even symmetry (i.e. l=even ). |
|
Leg/R | blz: | see Leg |
string: | see Leg | |
theta1 | Lowest value of theta (in rad) to be included in the restricted grid. | |
theta2 | Largest value of theta (in rad) to be included in the restricted grid. | |
Lagu1 | x0: | Sarting point of the radial interval (usually zero). |
b: | Length parameter. Chin(x) = 1/b * Sqrt((x-x0)/n) * exp(-(x-x0)/(2*b)) * L1n-1 ((x-x0)/b) | |
icut: | Cut parameter to avoid excessively large kinetic energy contributions. icut=0 leaves the second derivative matrix unmodified. See remarks below | |
Lagu1 | S: | String S = xi-xf. This string serves as a switch between the three possible input formats. |
xi: | First grid point. | |
xf: | Last grid point. | |
icut: | See icut above. See remarks below. | |
Lagu1 | S: | String S = x0-xf. This string serves as a switch between the three possible input formats. |
x0: | Sarting point of the radial interval (usually zero). | |
xf: | Last grid point. | |
icut: | See icut above. See remarks below. | |
Lagu2 | --- | Input identical to Lagu1 |
Lagu3 | --- | Input identical to Lagu1 |
Lagu4 | --- | Input identical to Lagu1 |
sin | xi: | First grid point. |
xf: | Last grid point. | |
string: | short , long (short is the default), and/or sdq , or spin . See note below. | |
sin | string: | 2pi or 2pi/m , where m is a positive
integer (its default is 1) denoting the multiplicity (e.g. of
the rotational axis). The wavefunction is assumed to be
periodic on the interval -2pi/m to 2pi/m. Because only ungerade (asymmetric) wavefunctions are computed, the grid is halved and only grid points for positive x appear. |
string: | sdq . If sdq is set, the symmetrized first derivative, (sin*d/dx+d/dx*sin)/2 is used rather than the simple first derivative. | |
fft or exp | xi: | First grid point. |
xf: | Last grid point. | |
string: | linear, periodic or s-periodic (linear is the default). | |
fft or exp | string: | 2pi , s-2pi , c-2pi or
2pi/m , s-2pi/m , c-2pi/m , where
m is a positive integer (its default is 1) denoting the
multiplicity (e.g. of the rotational axis). The grid is
assumed to be periodic, ranging from 0 to 2pi/m. (See note
below). For an exp-DVR which follows PLeg, the input k= kmin,kmax may follow. The default is kmax=-kmin=(N-1)/2. (See note below,PLeg). |
exp (If combined with PLeg) |
k=kmin,kmax (optional) |
The range of magnetic rotational quantum number of the PLeg. If kmax is omited (k=kmin), the range [-kmin,kmin] is chosen. Default is the full range [-(gdim-1)/2, (gdim-1)/2] (or [-jtot,jtot] if jtot is set). |
cos | xi: | First grid point. |
xf: | Last grid point. | |
string: | short or long (short is default). See note below. | |
cos | string: | 2pi or 2pi/m , where m is a positive
integer (its default is 1) denoting the multiplicity (e.g. of
the rotational axis). The wavefunction is assumed to be
periodic on the interval -2pi/m to 2pi/m. Because only gerade (symmetric) wavefunctions are computed, the grid is halved and only grid points for positive x appear. |
sphFBR | jmax: | Maximum value of quantum number j of the spherical harmonics basis functions. Note: jmax replaces N, the number of basis-functions/grid-points. N is computed from the input. See log file. |
string: | nosym: no symmetry (uses all values of j below
jmax, j=0,1,...jmax). sym : symmetry (uses values of j of the same parity as jmax, i.e. jmax-j = even). |
|
thrshld: | Threshold for convergence when the FBR integrals are performed. This input is optional, default: thrshld=1.d-10. | |
j_off: | Offset value used when the FBR integrals are performed. The first iteration uses j_max + j_off quadrature points. This input is optional, default: j_off=6. | |
phiFBR (Must follow sphFBR) |
mmax: (optional) |
Maximum value of quantum number m of the spherical harmonics basis functions. Uses only values of m, such as |m| < = mmax and |m| <= j. Default is mmax=jmax. |
mincr: (optional) |
Increment of m's, starting from mmax (must be given:
mmax mincr). Default is 1. |
|
KLeg | string: | Controls whether symmetry to be used. all: no symmetry (use all l-values). odd: odd symmetry (i.e. l = odd). even: even symmetry (i.e. l = even). |
K (Must follow KLeg) |
kmin: | Minimum value of body fixed magnetic quantum number of basis functions. |
kmax: | Maximum value of body fixed magnetic quantum number of basis functions. | |
dk: (optional) | Delta K. Increment in K-value. Default dk=1. | |
PLeg | string: | Controls whether symmetry to be used. all: no symmetry (use all l-values). odd: odd symmetry (i.e. l = odd). even: even symmetry (i.e. l = even). |
Extern | string: | Name of file containing grid points and DVR derivative matrices. The file may contain only grid points. Then the derivative matrices will be zeroed. (See remark below). |
string: | ascii: the file is read in ascii format
(default). binary: the file is read in binary format. |
|
unit: | The (optional) string unit is a length unit (e.g. angst, nm, pm, or deg) with which the input data is multiplied. |
Remarks on continuum electronic basis:
To define continuum electronic states two consecutive lines are required in the section. The first uses the elcont basis type to define the number of electronic states in the problem, while the second line defines the DVR used to discretise the continuum. Thus the linesel elcont 4 2 Elcont sin 101 0.0, ev 3.75, evdefine an electronic basis with 4 states, the first 2 of which are bound states while states 3 and 4 are coupled to a continuum. The continuum is then discretised using a sin DVR which sets 101 points between 0 and 3.75 eV. The single-particle functions for the continuum are then set up as for a normal mode using, e.g. a set of gaussian functions for the el mode in the SBASIS-SECTION, e.g.
el gauss 1.0, ev 0.0 0.3, ev
Remarks on harmonic oscillator DVR:
The HO-DVR depends only on the product
hofreq*homass. If the homass entry is missing,
the program sets homass to 1. Alternatively, one may specify the
first and last grid-point. The program then computes the
corresponding product hofreq*homass.
Example: The following lines are equivalent.
Y HO 32 0.00 0.10 1822.89 Y HO 32 0.00 2.721,eV 1822.89,au Y HO 32 0.00 0.1,au 1.0,AMU Y HO 32 0.00 21947.46,cm-1 1.0,AMU Y HO 32 xi-xf -0.528 0.528
Remarks on Laguerre DVR:
The Lagua-DVR is build from the basis functions:
phi(n,x) = Sqrt((n-1)!/(n+a-1)!) * x^(a/2) *
exp(-x/2) * L(n-1,a,x) ,
where a = 1,2,3 or 4 (Lagu1 - Lagu4). Hence, the boundary
condition for x -> 0 is phi(x) ~ x^(a/2). (With the aid of the
parameters x0 and b the coordinates may be shifted and scaled,
i.e. phi(x) <- phi((x-x0)/b)) ). The distribution of the grid
points is very uneven, being very dense for small x and widely
spaced for large x. The matrix of second derivatives may have
very large negative eigenvalues. These will slow down the
integrator. The integer parameter icut helps to fix this
problem. The matrix of second derivatives is diagonalized and the
first icut eigenvalues (these are the largest negative
eigenvalues) are replaced by the icut+1st one. The thus modified
eigenvalues and the eigenvectors are then used to build the
working matrix of second derivatives. Note that the FBR matrix
representation of { d^2/dx^2 - c/x^2) } is analytically evaluated
( c = -1/4, 0, 3/4, 2 for a = 1, 2, 3, 4). After this matrix is
transformed to the DVR representation, the centrifugal term c/x^2
is removed by substraction. The width parameter b has to
be chosen carefully. Its optimal numerical value will depend on
N, the number of grid points. Alternatively, one may use
the input formats xi-xf (not recommended in general) or
x0-xf. These formats compute b.
Remarks on sine DVR:
short: xi and xf denote, as
usual, the first and last grid point. short is default and need not to be given.
long : xi and xf denote the
boundaries of the sine basis functions (i.e. boundaries of the
'box') and not the first and last grid point.
Example: The following lines are equivalent.
x sin 19 1.00 19.0 short x sin 19 0.00 20.0 longFor the 2pi and sdq keywords see remarks on cosine DVR. (Note that cos-DVR always uses sdq, whereas for sin-DVR one must explicitly give the sdq keyword. Otherwise dq will be assumed.)
Remarks on cosine DVR:
The basis functions underlying the DVR are 1/sqrt(L),
(2/sqrt(L))*cos[(j*pi/L)*(x-x0)]. The symmetrized
derivative, sdq = 0.5*( sin[(pi/L)*(x-x0)] * d/dx +
d/dx * sin[(pi/L)*(x-x0)] ) is used as first
derivative. Because only gerade (symmetric) wavefunctions are
computed, we consider only the interval
[x0,x0+L], although the wavefunction is
periodic on the interval [x0-L,x0+L]. xi
and xf are the first and last grid-point, but when long is
given, the input is interpreted as x0 and
x0+L.
Example: The following lines are equivalent.
x cos 36 2pi/2 x cos 36 0.00 3.1415926535897 long x sin 36 0.0436332313 3.097959422 short x sin 36 0.0436332313 3.097959422
Remarks on FFT and exponential DVR:
FFT and exp-DVR have an identical set of input
parameters (if exp-DVR is not combined with
PLeg-DVR). These two methods are in fact largely
equivalent and produce identical results (for same parameters).
The numeric, however, is different and the exp-DVR will be
faster for small grids whereas FFT is faster for long
grids. Around 30 grid points both methods are of similar speed.
The use of the interaction-picture is possible for
exp-DVR.
FFT and exp-DVR enforce periodic boundary
conditions, but they are often used for ordinary coordinates. A
set of keywords adapts the input to the various situations:
linear: xi and xf are the coordinates of first and the last point of the grid. The grid-spacing is dx = (xf-xi)/(N-1). Due to the periodic boundary conditions the first grid point and the one following the last grid point are to be identified.
periodic: xi and xf are considered as identical due to the periodic boundary conditions. The grid-spacing is dx = (xf-xi)/N. The routine eingabe.f re-scales xf -> xf-dx.
s-periodic: xi and xf are considered as identical due to the periodic boundary conditions. The grid-spacing is dx = (xf-xi)/N. The grid points, however, are now placed symmetrically on the interval (xi,xf) and eingabe.f re-scales xi -> xi+dx/2, xf -> xf-dx/2.
2pi/mult or s-2pi/mult or
c-2pi/mult: The routine eingabe.f sets xi=0 and
xf=2*pi/mult and then performs according to the periodic
or s-periodic keyword. For c-2pi/mult the grid
is shifted such that xi=-xf.
Example: The following sets of lines are equivalent.
x fft 32 0.00 3.0434179 linear x fft 32 0.00 3.1415927 periodic x fft 32 2pi/2 or x fft 32 0.0981748 6.1850105 linear x fft 32 0.00 6.2831853 s-periodic x fft 32 s-2pi or x fft 32 -3.0434179 3.0434179 linear x fft 32 -3.1415927 3.1415927 s-periodic x fft 32 c-2pi
Example:
For a system with two degrees of freedom, labeled X and Y, the following would define for X an FFT grid of 32 points from -2 to 2, and for Y a DVR basis of 32 harmonic oscillator functions generated with the given parameters. To show the use of the el-keyword we assume that there are three electronic states.
primitive-basis-section el el 3 X FFT 32 -2.00 2.00 linear Y HO 32 0.00 5.2,eV 1.00 end-primitive-basis-section
Remarks on External DVR:
Extern-DVR is an external DVR, where grid points and
DVR derivative matrices are read from a file. The file can be
read in ascii or binary format:
in ascii format (default):
do i=1,gdim read(unit,*) ort(g) enddo do i=1,gdim read(unit,*) (dif2mat(j,i),j=1,gdim) enddo do i=1,gdim read(unit,*) (dif1mat(j,i),j=1,gdim) enddo
do i=1,gdim read(unit) ort(g) enddo do i=1,gdim read(unit) (dif2mat(j,i),j=1,gdim) enddo do i=1,gdim read(unit) (dif1mat(j,i),j=1,gdim) enddo
where gdim is the basis_size. The file can have absolute or relative path. If file containes only grid points (for example in POTFIT program, when only grid points are used), the DVR matrices will be zeroed. If only second derivative matrix dif2mat is given, dif1mat will be zeroed.
Example:
x extern 30 x_data y extern 50 y_data binary z extern 42 z_data binary angst theta extern 23 theta_data deg
Remarks on KLeg, PLeg and sphFBR:
KLeg, PLeg and sphFBR all define 2D single-particle functions, although the basis definition is for each degree of freedom individually. KLeg must hence be followed by K and PLeg by exp and sphFBR by phiFBR.
Example:
PRIMITIVE-BASIS-SECTION alpha sphFBR 30 sym beta phiFBR 5 theta1 PLeg 31 even phi exp 15 2pi k=-6,6 theta2 KLeg 31 even K_th K -5 5 end-primitive-basis-sectionThe exp line end with the keywords k=-6,6. These are optional. Without this statement, K would span the full range from -7 to 7 (yielding 15 points). The restriction of the K-range is mainly for tests.
The KLeg/K, PLeg/exp and sphFBR/phiFB combinations generate mode-operators. Hence the DOFs (theta2, K_th), (theta1,phi), and (alpha,beta) must be combined with each other and must not be combined with any other mode. This excludes the use of these DVR's when the WF is expanded in exact format, because the exact format combines all modes into one particle. Note that the exact format is used by a diagonalisation run.
The above restriction has been relaxed somewhat in recent versions of MCTDH. Since version 8.3.13, you can combine several KLeg/K into one mode, even along with other DOFs. This makes it also possible to use KLegs in exact calculations. However, since this feature is rather new, you are advised to check your results carefully if you use it.
Keyword | Description |
---|---|
file = S1 (,S2,S3) | The initial wavefunction will be read from the restart
file in directory S1. If S1 is not specified, the restart
file will be taken from the name-directory. For a density
operator II propagation, the restart file may contain a
wavefunction. It will then automatically be transformed to a
pure-state density operator of type II. S2 = orthopsi : The single-particle functions of the initial wavefunction are transformed to natural orbitals, Schmidt-orthogonalised and transformed back after being read from file (this is the default). S2 = noorthopsi : The initial wavefunction is not Schmidt-orthogonalised after being read. S2 = realpsi : The real part of the wavefunction will be Schmidt-orthogonalised as in the orthopsi-case and used for the initial wavefunction. S3 = ignore : Ignore that primitive bases are different. This is a very dangerous option, because when the grids do not match, your results will be wrong. However, it allows you to use a restart file which is, say, generated with sin-DVR, whereas you want to use FFT during the propagation. |
build ..... end-build |
The initial wavefunction will be build using the data specified between these keywords. See Building the initial wavepacket. |
read-inwf ..... end-read-inwf |
The initial wavefunction will be read from one or several restart files. The SPFs (and/or the coefficients) for different electronic states can be read from different restart files. See: Reading the initial wavepacket. |
After some initial WF is generated, either by file,or
build, or read-inwf, this WF may be modified by one
or several of the following procedures. The program will take
actions in the order:
A-coeff, meigenf,
operate, orthogonalisation,
correction,
irrespectively of the order in the input file.
The INIT_WF-SECTION is used also for generating an initial density operator (of type I and II). For the generation of a pure state the initial wave function ket is multiplied with the corresponding bra, i.e.
rho = | Psi > < Psi |
Hence, in this case it is necessary only to specify an initial wave function. To obtain a thermalised initial state the temperature key word (see below) has to be used. The initial wave function is then assumed to represent the ground state, and the parameter values are taken to generate the appropriate thermalised state.
The selection of configurations is controlled by the cut-off parameter which is given as an argument to the keyword s-mctdh. The method is described in G. A. Worth, J. Chem. Phys. 112, 8322 (2000). The default value for the selection parameter is 2.0. Smaller values may lead to rather inaccurate results and larger values may not lead to a speed-up. In general, S-MCTDH will only be useful, if there are several particles (5 or more) and if the propagation of the A-vector is much more costly than the propagation of the SPFs. S-MCTDH is incompatible with operate and cross, requires that the wavefunction is build and not read in from a file, and requires CMF propagation with natorb. Finally, several of the analyse routines are not able to handle S-MCTDH wavefunctions.
The information needed to generate the initial wavefunction is written one line per degree of freedom between the keywords build and end-build. The input is free format, with blanks dividing the various parameters. The format for each line is
modelabel type parameters
The modelabel is an alphanumeric string attached to the degree of freedom. This must match a label specified in the primitive-basis section.
If one uses an electronic basis (i.e. one degree of freedom has the primitive basis type el), then the electronic initial state can be specified by the init_state keyword,
init_state = s
where the integer s specifies the initial state. This statement must be the only one on a line. If the lowest electronic state is selected, this keyword is not required.
If one uses electronic states in a density operator propagation the keywords corresponding to init_state are left_state and right_state (for both types). The usage is
left_state = s
right_state = t
where the integers s,t specify the initial states of the density operator. In a ket-bra notation this means |s><<I>t|. Each statement must be the only one on a line. If s or t denotes the lowest electronic state, the corresponding keyword is not required.
To obtain a thermalised initial state for a density-operator propagation the keyword
temperature = T
has to be used where T is the temperature. For density operators of type I an analytical formula is applied to generate the thermalised initial state. Here the size of the primitive grid has to be chosen large enough to obtain an accurate representation. For density operators of type II the number of SPFs is crucial for an accurate representation.
To summarize:
Keyword | Description |
---|---|
A-coeff ..... end-A-coeff |
The lines between the keywords contain in free format one
integer (A-index) and one complex number (A-value) per line,
thus defining the initial A-vector. The default is A(1) =
(1.0,0.0) and zero for all other coefficients. For a multi-set run, the input line must contain two integers. The first is the A-index and the second the electronic state. A multi-set density-operator run requires three integers before the complex number (A-value), the A-index and the two electronic state indices s and t. E.g.: 518 (0.717,0.0) (single-set, wavefunction and densities) 518 1 (0.717,0.0) (multi-set, wavefunction) 518 1 1 (0.717,0.0) (multi-set, densities) There is also a long form of the A-coeff input, which however is only allowed for nmode < 33 (nmode < 17 for density type II). Here the number of the particle for each mode (and the electronic state(s) in case of a multi-set run) is input followed by the value of the A-coefficient. E.g.: 1 4 1 3 1 2 (0.5,0.0) would be a correct input for either a 6-mode single-set, or a 5-mode multi-set WF-calculation. In the latter case the 2 would specify the electronic state. For densities type I this would be a correct input for either a 6-mode single-set, or a or a 4-mode multi-set calculation. In the latter case the last two indices 1 2 would specify the electronic states. For densities type II this would be a correct input for either a 3-mode single-set (j1, j2,j3,k1,k2,k 3), or a or a 2-mode multi-set calculation (j1, j2,k1,k2,s,t). This re-definition of the A-vector is also possible, when the initial wavefunction is read in (file keyword, restart run). The A-vector is re-normalised before being used. The non-zero entries of the A-vector are protocolled in the log-file. |
meigenf = I,S, I1|S1(,S2,S3,S4,I2) | Generate the mode-eigenfunctions using operator S, where
S = XX is the name of an operator, defined in the
HAMILTONIAN-SECTION_XX. Only that uncorrelated part of the
operator S, which acts on the mode I, will be used. The
operator must be generated with the usediag keyword.
I1 denotes the number of the eigenstate (counting from zero),
which is taken as the first SPF. The ordering and the
eigenenergies are protocoled in the log file. The number I1
may be replaced by the string S1 = follow. In this
case the eigenstate with the largest overlap with the
starting vector (usually defined in a build block) is taken
as first SPF. If the optional number I2 is given, the maximal
Lanczos space is restricted to I2. Otherwise the maximal
Lanczos space size is equal to the length of the mode vector
(i.e. subdim). If the optional string S2=full is
given, the number of Lanczos iterations is limited by I2 (or
subdim) only. Otherwise the Lanczos iteration is stopped,
when the chosen vector (i.e. I1) is converged. If the
optional string S3=select or S3=noselect is
given, states with zero overlap (<10-13) will
be ignored/not ignored when mapping the eigenvectors to the
psi function. When S3 is not given, then noselect is
chosen by default when full is given and I2=subdim
(e.g. I2 not given). Otherwise the default is select.
If the optional string S4=write is given, the
eigenvectors will be written to the (ASCII) file
meigen_mode_ state. Examples: meigenf = 3,oper,0 meigenf = 3,oper,follow,full,125 meigenf = 3,oper,follow,full,select,write,125 |
operate = S(,S1(,S2,...)) | Operate on the initial wavefunction using operator S,
where S = XX is the name of an operator, defined in the
HAMILTONIAN-SECTION_XX. One may apply up to 15 operators to
the WF. operate = O1, O2, O3 will produce
O3*O2*O1*|psi>. The wavefunction is re-normalised after
each application of an operator. The normalisation factors
are protocoled in the log-file. For density operators it calculates the commutator -i [O1,rho0] . operate = O1,O2, ... ,On will produce (-i)n [On,...[O2,[O1,rho0]]...] . |
operate_iter = I | Maximum no. of iterations to be used in applying an operator to an MCTDH wavefunction. Default = 10. Only the A-vector but not the SPFs will be modified, if operate_iter=0 is given. This can be useful when generating an initial WF for improved relaxation. |
operate_tol = R | Convergence tolerance to be used in applying an operator to an MCTDH wavefunction. Default = 1.0d-8 |
operate_no-norm | The normalisation factor is removed from operator*psi, i.e. the initial wavefunction is no longer normalised. |
operate_no-direct | A non-iterative algorithm may be applied first before the iterative improvement the wavefunction. With the keyword operate_no-direct, the non-iterative part is skipped. (operate_no-direct is default.) |
operate_direct | With the keyword operate_direct, first the non-iterative algorithm is applied before the iterative procedure starts (only for nstate=1). |
orthogonalisation = S (,S1 (,S2 ..)) | S = path_to_foreign_restart_file_or_directory The initial WF is orthogonalised against the WF on the specified file. One may give several files in one orthogonalisation statement, or one may give more than one of such a statement, in order to orthogonalise against several wavefunctions. This feature is useful in particular for improved relaxation. If the path points to a directory, /psi is automatically appended. |
symorb = I1,I2 | I1 = Number of first set of SPFs (mode number),
I2 = Number of second set of SPFs. With this keyword one mixes two sets of SPFs. The new order (in both sets) is now: 1st SPF of 1st set, 1st SPF of 2nd set, 2nd SPF of 1st set, 2nd SPF of 2nd set, etc. The SPFs were orthonormalized and those which tend to be linearly dependent are removed. As the two sets of SPFs are now identical, one may define symmetric and anti-symmetric linear combinations with the aid of A-coeff. |
sym1d = I ((,S),I1(,S),..) asym1d = I ((,S),I1(,S),..) |
I = Number of DOF which is to be (a)symmetrized. S
= persist phi(i) = phi(gdim+1-i), i=1,...,gdim, for symmetrization and phi(i) = -phi(gdim+1-i) for asymmetrization. In order not to annihilate a function by (a)symmetrization one should use in the build block the types: HO odd, HO even, gauss odd, gauss even, or sym as argument to pop when the type eigenf is used. The (a)symmetrization is applied to the initial wavefunction only. However, if the keyword persist is given and when an improved relaxation run is performed, then the (a)symmetrization is done additionally after each orbital relaxation. |
parity = I ((,S),I1(,S),..) | I = Number DOF which is to be (a)symmetrized.
S = persist Similar to sym1d and asym1d. Functions which are predominantly symmetric are symmetrized, and those predominantly anti-symmetric are anti-symmetrized. The (a)symmetrization is applied to the initial wavefunction only. However, if the keyword persist is given and when an improved relaxation run is performed, then the (a)symmetrization is done additionally after each orbital relaxation. |
sym2d = I ((,S),I1(,S),..) asym2d = I ((,S),I1(,S),..) |
I = Number 2D-mode which is to be (a)symmetrized.
S = persist phi(x,y) = phi(y,x), for symmetrization and phi(x,y) = -phi(y,x) for asymmetrization. The mode(s) specified must be 2D combined modes and the primitive grids within these modes must be identical. The (a)symmetrization is applied to the initial wavefunction only. However, if the keyword persist is given and when an improved relaxation run is performed, then the (a)symmetrization is done additionally after each orbital relaxation. |
nsym2d = I ((,S),I1(,S),..) | I = Number of the 2D-mode for which the symmetric and
antisymmetric combinations of the spfs have to be made.
S = persist The mode(s) specified must be 2D combined modes and the primitive grids within these modes must be identical. NOTE: This also changes the A-vector! (see the example input "H2H2_nsym.inp" in the "Further Example input" section) |
sym2kleg = I (,I1,...) asym2kleg = I (,I1,...) |
I = Number of 4D-mode (2x KLeg/K) which is to be
(a)symmetrized. phi(θ1,k1,θ2,k2) = phi(θ2,k2,θ1,k1) for symmetrization and phi(θ1,k1,θ2,k2) = −phi(θ2,k2,θ1,k1) for asymmetrization. The mode(s) specified must be 4D combined modes of the form KLeg/K/KLeg/K, and the primitive grids for the two KLeg and K DOFs must be identical. |
sym3d = I ((,S),I1(,S),..) | I = Number 3D-mode which is to be symmetrized. S =
persist phi(x,y,z) = phi(y,z,x) = phi(z,x,y) = phi(y,x,z) = phi(x,z,y) = phi(z,y,x). The mode(s) specified must be 3D combined modes and the primitive grids within these modes must be identical. The symmetrization is applied to the initial wavefunction only. However, if the argument persist is given and when an improved relaxation run is performed, then the symmetrization is done additionally after each orbital relaxation. |
symcoeff ( = S) | S = persist The A-vector is symmetrised by summing all permutations of its indices. This makes only sense, if all modes are identical, i.e. if the id keyword (SPF-Basis-Section) is used. The symmetrization is applied to the initial wavefunction only. However, if the argument persist is given and when an improved relaxation run is performed, then the symmetrization is done additionally after each orbital relaxation. |
asymcoeff ( = S) | S = persist The A-vector is asymmetrised by summing sig(P)*A(P(j1,..,jp)), where P denotes a permutation. This makes only sense, if all modes are identical, i.e. if the id keyword (SPF-Basis-Section) is used. The symmetrization is applied to the initial wavefunction only. However, if the argument persist is given and when an improved relaxation run is performed, then the symmetrization is done additionally after each orbital relaxation. |
correction = S1,S2 | S1,S2 = edstr, dia, ad, hh2. edstr: compute the (uncorrected) energy distribution for the flux analysis. dia: compute the diabatically corrected energy distribution. ad: adiabatic correction. hh2: use the routines specially written for H+H2 reactive scattering using LSTH PES. hh2-bkmp2: use the routines specially written for H+H2 reactive scattering using BKMP2 PES. Note that the translational degree of freedom has to be specified by the trans keyword if it is not the first DOF. |
trans = I1(,I2) | I1,I2 = dof and state of the translational
mode. (Needed for correction). If the keyword trans is not given, dof=1, state=1 is assumed when computing the correction. |
tfac = R | R = partition factor for Jacobian coordinates. R = m1/(m1+m2) where m1 and m2 are the masses of the two atoms of the diatomic molecule. If not given, tfac=0.5 is assumed. |
s-mctdh = R | An S-MCTDH wavefunction will be generated with a cutoff for selecting the configurations of R. (see Eq.(21) of JCP 112, 8322 (2000)). See note below. |
Special keywords for build sub-section | |
Keyword | Description |
init_state = I | Initial electronic state of a wavefunction propagation. |
left_state = I | Initial electronic state for the ket part of a density operator. |
right_state = I | Initial electronic state for the bra part of a density operator. |
temperature=R | Initial temperature for a density operator propagation. |
Print some information to the log file on how multi-dimensional mode-functions are build from 1D-functions. NB Not for KLeg. |
When building the initial wavefunction, the type of the 1D functions can be chosen from one of the following:
Building the initial wavefunction | |
---|---|
Type | Description |
HO | Harmonic oscillator eigenfunction. |
HO odd | Odd harmonic oscillator eigenfunctions (n=1, 3, 5 ...). |
HO even | Even harmonic oscillator eigenfunctions (n=0, 2, 4, ....). |
gauss | Gaussian wavepacket. |
gauss odd | Gaussian wavepacket. Odd functions only |
gauss even | Gaussian wavepacket. Even functions only. |
Leg | Legendre polynomial. |
sphFBR | Spherical harmonics. |
phiFBR | Indicates second coordinate of sphFBR. |
eigenf | Specified potential eigenfunction. |
KLeg | Associated Legendre polynomial. Requires KLeg or Pleg in Primitive-Basis-Section. |
K | Body fixed magnetic quantum number for KLeg (or PLeg). |
map | Use the initial (1D) single-particle functions of another DOF. |
The parameters needed for each type of function are as follows:
Type | Parameters | Parameter Description |
---|---|---|
HO HO odd HO even |
centre | Centre of oscillator potential. |
momentum | Initial momentum of wavepacket. | |
frequency | Frequency of harmonic oscillator. The frequency may be complex. | |
mass | Mass of harmonic oscillator. | |
pop = p | The pth single-particle function will be populated initially. This parameter is optional, the default is p = 1. | |
pack = p | The Build-line is for the pth packet in a multi-packet run. This parameter is optional, the default is p = 1. | |
periodic | The grid is assumed to be periodic. This keyword is meaningful only if the primitive representation is FFT or exp-DVR and if the primitive grid is periodic (one of the keywords: periodic, s-periodic, 2pi or s-2pi must be given in the primitive basis section). If one places a gaussian at the origin of a 2pi grid, then only half of the gaussian is taken as single-particle function. With the aid of the keyword periodic also the region near 2pi gains intensity. | |
gauss gauss odd gauss even |
center | Center of initial Gaussian wavepacket. |
momentum | Initial momentum of wavepacket. | |
width | Denotes width of initial Gaussian wavepacket. The width here is defined as the standard deviation of the initial Gaussian, i.e. Sqrt(<x2>-<x>2). The width parameter may be complex. | |
pop = p | The pth single-particle function will be populated initially. This parameter is optional, the default is p = 1. | |
pack = p | The Build-line is for the pth packet in a multi-packet run. This parameter is optional, the default is p = 1. | |
periodic | Same as for HO. | |
Leg | m | Magnetic rotational quantum number. Alternatively to a number one may input the string jbfXXX or slzXXX or blz. m will then be set to the value of the parameter jbfXXX or slzXXX, or to the value of the magnetic rotational quantum number, blz, as defined in the primitive basis set. Here XXX stand for any characters. I.e. one may use slz or slz_1 etc. Note: if jbfXXX or slzXXX is used, they must be defined in the parameter section of the input-file or via an option on the command line. (operator file definitions come too late). |
l | The l-quantum number of the first single-particle function. Alternatively to a number one may input the string sl0XXX. l will then be set to the value of the parameter sl0XXX. Here XXX stand for any characters. I.e. one may use sl0 or sl0_1 etc. Note: if sl0XXX is used, it must be defined in the parameter section of the input-file or via an option on the command line. (operator file definitions come too late). Note: l >= m. | |
symmetry | Indicates symmetry. nosym: no symmetry (all l values are used). sym: symmetry used (gerade if l is gerade and vice versa). |
|
sphFBR | j | Quantum number j of the initial spherical harmonic. |
phiFBR | m | Quantum number m of the initial spherical harmonic. |
eigenf | potential | Name of one-dimensional potential curve, XX, defined in
the HAMILTONIAN-SECTION_XX. (See note below). |
pop = p (,S(,S1)) | The pth eigenfunction will be populated initially.
This parameter is optional, the default is the lowest,
p = 1. Note : p=1 -> ground state, p=2 -> first
excited state, etc. If additionally S=sym is given,
only every second eigenstate is taken. I.e. for a symmetric
potential pop=1,sym selects even, and pop=2,sym
odd states as initial single particle functions. If
additionally S1=check is given, the program tests for
the correct symmetry. This is useful if the symmetric
potential is a double well, such that the odd/even character
of the eigenfunctions do not follow a simple alternating
pattern. The selection of the eigenstates is protocoled in
the log-file. If you want the eigenvectors printed, specify "veigen" in the RUN-SECTION. |
|
KLeg | l | Initial rotational quantum number. Alternatively to a number one may input the string sl0XXX. l will then be set to the value of the parameter sl0XXX. Here XXX stand for any characters. I.e. one may use sl0 or sl0_1 etc. Note: if sl0XXX is used, it must be defined in the parameter section of the input-file or via an option on the command line. (operator file definitions come too late). |
symmetry | Indicates symmetry. nosym: no symmetry (all l values are used.) sym: symmetry used (gerade if l is gerade and vice versa). |
|
excite=s | Excitation algorithm for the generation of (unoccupied)
spf's. s=j: Excitation of j-states is preferred (default). s=m: Excitation of m-states is preferred (j goes down). s=m-old: Excitation of m-states is preferred (j goes up; old behaviour, deprecated). |
|
Optional. Prints (j,m) quantum numbers of the generated
spf's to the 'log'-file. (This option may tell you the
difference between the excite=s options.) |
||
nspf=I | Optional. Only used for multi-KLeg modes (i.e. modes with more than one KLeg). This sets the number of 1D SPFs which are initially generated; the real (multi-D) mode SPFs are later built from these 1D SPFs. If omitted, or set to zero, an automatic value is chosen. Use the print option to see how many (and which) 1D SPFs are generated. | |
K | k | Body fixed magnetic quantum number of initial wavefunction (note: |k| <= l). Alternatively to a number one may input the string slz or jbf. k will then be set to the value of the parameter slz or jbf, respectively. Note: if slz or jbf is used, it must be defined in the parameter section of the input-file or via an option on the command line. (operator file definitions come too late). |
kmin | Minimum value of the body fixed magnetic quantum number
for the initial wavefunction. Default is the corresponding value given in the primitive-basis-section. |
|
kmax | Maximum value of the body fixed magnetic quantum number
for the initial wavefunction. Default is the corresponding value given in the primitive-basis-section. |
|
dk | Step of the body fixed magnetic quantum number
k. Default is 1. |
|
map | label | Modelabel of the DOF from where to take the initial orbitals. (See note below). |
The initial single-particle functions are formed as follows:
y eigenf Hspf pop=2Then each of the following three Hamiltonians can be used equally well to generate the desired initial single-particle functions.
HAMILTONIAN-SECTION_Hspf modes | y 1.0 | KE omy | q^2 end-hamiltonian-section
HAMILTONIAN-SECTION_Hspf ------------------------------------ modes | x | y | z | el ------------------------------------ 1.0 | 1 | KE | 1 | 1 omy | 1 | q^2 | 1 | 1 ------------------------------------ end-hamiltonian-section
HAMILTONIAN-SECTION_Hspf ------------------------------ modes | x | y | z ------------------------------ 1.0 | KE | 1 | 1 omx | q^2 | 1 | 1 1.0 | 1 | KE | 1 omy | 1 | q^2 | 1 1.0 | 1 | 1 | KE omz | 1 | 1 | q^2 const | q^3 | sin | q ------------------------------ end-hamiltonian-sectionThe lines 1,2 and 5,6 of the tableau of the third Hamiltonian are ignored, as they refer to other degrees of freedom than the y one. The last line is ignored, as it represents a correlated Hamiltonian term.
PRIMITIVE-BASIS-SECTION --------------------------------------------------- # Mode DVR N xi xf --------------------------------------------------- z fft 96 -0.75 4.5000 linear x fft 24 0.00 5.3669 periodic y fft 24 0.00 5.3669 periodic theta PLeg 36 even phi exp 9 2pi --------------------------------------------------- END-PRIMITIVE-BASIS-SECTION INIT_WF-SECTION build ----------------------------------------------------------- # mode type center moment. freq. mass ----------------------------------------------------------- z HO 1.80 -24.d0 694.1683673,eV 1.d0 x HO 0.00 0.0 0.0 1.d0 # flat function y HO 0.00 0.0 0.0 1.d0 # flat function theta KLeg 2 sym # j of initial spherical harmonic phi K 1 # m of initial spherical harmonic ----------------------------------------------------------- end-build end-init_wf-section
PRIMITIVE-BASIS-SECTION . . R FFT 192 -0.6 3.0 R_dum sin 60 -0.5057591623 0.6062827225 end-primitive-basis-section INIT_WF-SECTION build . . R map R_dum R_dum eigenf operator pop=1 end-build end-init_wf-sectionSince the DOF R_dum (in our example) is not defined in the SPF-BASIS-SECTION it will be ignored, when the operator is build. To avoid this, one has to use the addmode keyword.
HAMILTONIAN-SECTION_operator addmode = R_dum ---------------------------------------- modes ...... | R_dum | .... ---------------------------------------- . .
For multi-set calculations, the initial functions can be defined differently for each state by using the state keyword:
modelabel type parameters state = sThe same function type must be used for each state, but the parameters can be different. It is however possible to choose between the different harmonic oscillator function sets HO, HO odd and Ho even. Thus even functions can be used on one state and odd functions on the other. If the state keyword is not used, the same function parameters are used to generate the spfs for each state.
For multi-packet calculations, i.e. when packets > 1, the initial function definition must be given for each packet as
modelabel type parameters pack = pwhere the integer number p defines to which initial packet the corresponding input line belongs. It is possible to specify more initial packets in this section than given by the packets argument. All data with p > packets is then ignored.
By default the 1st single particle function of each degree of freedom is used to form the initial Hartree product wavefunction. The initially populated single-particle function can be selected using the pop keyword:
modelabel type parameters pop = iwhich populates the i th function.
Reading the initial wavefunction | ||
---|---|---|
Keyword | Description | |
file = S | The string S is a path of a diretory which contains a restart file. Up to 8 restart files may be read. Each file statement must be followed by SPF and/or A line(s). | |
SPF | SPF i -> k : Write
the SPFs of electronic state i of the restart file
just read to the electronic state k of the system. SPF i -> k1,k2,k3,... : Write the SPFs to states k1,k2,k3,..., i.e. those states will have identical sets of SPFs. |
|
A | A i -> k : Write the A-vector block of electronic state i of the restart file just being read to the electronic state k of the system. | |
init_state = I | If an A-vector is not specified, a Hartree product is assumed and placed on the electronic state of number I. If init_state is not given, init_state=1 is assumed. | |
orthopsi | The SPFs are transformed to natural orbitals and then orthonormalized. orthopsi is the default. | |
noorthopsi | The SPFs remain untouched, they are not re-orthonormalized | |
realpsi | Only the real part of the wavefunction is used and Schmidt-orthonormalised as in the orthopsi-case. | |
ignore | The different primitive bases error will be ignored. |
Examples:
For a two state WF the following input is equivalent to a simple
file = <restart-directory> statement.
Read-Inwf orthopsi # This is default, opposite: noorthopsi file = <restart-directory> SPF 1 -> 1 SPF 2 -> 2 A 1 -> 1 A 2 -> 2 end-read-inwfThe following two inputs are equivalent. In both cases the SPFs of the first state of the gs-calculation (which may have only one state) is put on state 1, 2 and 3 of the initial WF. The A-vector of the first state of the gs-calculation is put on the second state of the initial WF. The A-vector for states 1 and 3 is zero.
Read-Inwf file = gs SPF 1 -> 1 SPF 1 -> 2 SPF 1 -> 3 A 1 -> 2 end-read-inwf Read-Inwf file = gs SPF 1 -> 1,2,3 A 1 -> 2 end-read-inwfOne may use more than one (up to eight) restart files to build the initial wavefunction.
Read-Inwf file = run1 SPF 1 -> 1 file = run2 SPF 1 -> 2 A 1 -> 1 file = run3 A 2 -> 2 end-read-inwfIn a multi-packet run the different packets are treated as different electronic states. The Read-Inwf statement does not know packets and one has to do the assignment by "hand" using the formula s1 = (p-1)*nstate + s, where p and s denote the actual packet and state and s1 is the effective state number, which one must enter in the Read-Inwf block.
Read-Inwf file = run1 SPF 1 -> 2 end-read-inwf
To control how often the mean field matrices are updated, one of the following keywords may be chosen. Default is VMF. | |
---|---|
Keyword | Description |
VMF | Variable mean fields: The mean fields are calculated at each integration step. |
CMF = R, R1 | Constant mean fields: The mean fields are kept constant
over a variable time interval. Equivalent to CMF/var for propagation and relaxation but equivalent to CMF/varphi for improved relaxation. R is the initial time interval (in fs). R1 is an accuracy parameter for the time-step control. |
CMF/fix = R | The mean fields are kept constant over a fixed time interval, specified by R (in fs). |
CMF/var = R, R1 | The mean fields are kept constant over a variable time
interval, determined by the errors of both the MCTDH
coefficients and the single-particle functions. var is default; CMF/var is equivalent to CMF, except for improved relaxation. R is the initial time interval (in fs). R1 is an accuracy parameter for the time-step control. |
CMF/varphi = R, R1 | The mean fields are kept constant over a variable time
interval, determined by the error of the single-particle
functions only. In case of improved relaxation varphi is default making CMF/varphi equivalent to CMF in this case. R is the initial time interval (in fs). R1 is an accuracy parameter for the time-step control. |
CMF/vara = R, R1 | The mean fields are kept constant over a variable time
interval, determined by the error of the MCTDH coefficients
(A-vector) only. R is the initial time interval (in fs). R1 is an accuracy parameter for the time-step control. |
The following keywords define the integrator to be used. | |
---|---|
Keyword | Description |
ABM/S = I, R, R1 | Adams-Bashforth-Moulton predictor-corrector integrator
used for S = all, spf, A. I = order R = accuracy R1 = initial stepsize |
BS/S = I, R, R1 | Bulirsch-Stoer extrapolation integrator used for S = all,
spf, A. I = maximal order R = accuracy R1 = initial stepsize |
RK5/S = R, R1 (,S) | Runge-Kutta integrator of order 5, used for S = all, spf,
A. R = accuracy R1 = initial stepsize (can be omitted or set to zero, then the integrator guesses a suitable value) S=imp-ortho (improved orthogonality of SPFs, see below) |
RK8/S = R, R1 (,S) | Runge-Kutta integrator of order 8, used for S = all, spf,
A. R = accuracy R1 = initial stepsize (can be omitted or set to zero, then the integrator guesses a suitable value) S=imp-ortho (improved orthogonality of SPFs, see below) |
SIL/S = I, R, S1 | SIL integrator used for S = all, spf, A. I = maximal order R = accuracy S1 = standard: The standard error estimate is used (default). S1 = novel: The improved error criterion is taken. See note below! |
CSIL/S = I, R, S1 | complex-SIL integrator used for S = all, spf, A. Same as SIL/S (see above), but the use of the (complex) Lanczos-Arnoldi integrator is enforced. (SIL tries to make the choice Lanczos/Lanczos-Arnoldi automatically). |
DAV = I, R rDAV = I, R rrDAV = I, R cDAV = I, R |
Davidson "integrator" allowed for improved relaxation
only. The keywords DAV and DAV/A are equivalent. See note below. I = maximal order, R = accuracy There are three routines: DAV is for hermitian Hamiltonians, rDAV and rrDav are for real Hamiltonians and real wavefunctions. Memory is saved as only real data is stored. rrDAV uses more real arithmetic and is hence faster, but not general.(See note below). cDAV is for non-hermitian Hamiltonians (resonances). |
The string S=all after the integrator name may be omitted, i.e. ABM is equivalent to ABM/ALL. For VMF calculations, only the BS, ABM or RK5/8 integrator may be used for the differential equations. Default is ABM. For VMF calculations the integrator must carry the extension S=all (or no extension at all), i.e. there is only one integrator within the VMF scheme. For CMF calculations, the following combinations of integrators are possible: ABM/spf + SIL/A, BS/spf + SIL/A, RKx/spf + SIL/A, BS/all, ABM/all, RKx/all. Default is BS/spf + SIL/A. For numerically exact calculations (i.e. the keyword exact has been specified in the RUN-SECTION), any of the integrators may be chosen, with S = all, or S = spf. Default is ABM, but more efficient is usually SIL (or CSIL).
The Davidson "integrator", DAV, (actually a diagonaliser, of course) is the optimal choice for the "A-propagation" of improved relaxation. The accuracy parameter is an upper limit (in au) for the error of the eigenvalue. Improved relaxation requires CMF/varphi or CMF/fix. (Simply use CMF). The routine DAV is for hermitian Hamiltonians and general wavefunctions. rDAV is for real Hamiltonians (i.e. H*psi = real for all real psi) and real (initial) WF. Memory is saved as the Davidson vectors are stored as real. Most of the arithmetic (in particular H*psi), however, is still complex. This problem is partly solved by rrDAV. rrDAV uses the same Davidson routine, but a simplified routine is employed to perform the matrix product H*A. This routine is faster, because it uses more real arithmetic, but works only for simple Hamiltonians (no electronic states, only real operators, e.g. no p. NB: The propagation of the SPFs is always done in complex arithmetic. cDAV is for non-hermitian Hamiltonians. This allows to compute resonances of CAP augmented Hamiltonians. The convergence, however, is slower. cDAV is chosen automatically, if CAPs are present.
NOTE: There are two Lanczos integrators, a real version for hermitian Hamiltonians and a complex version (Lanczos-Arnoldi) for non-hermitian ones. If one gives the keyword SIL, then the program tries to detect whether the Hamiltonian is hermitian or not and it makes the appropriate choice. This, however, works safely only for CAPs. When one knows that the Hamiltonian is non-hermitian, one should use CSIL. The use of SIL in case of a non-hermitian Hamiltonian may lead to wrong results.
The following keywords may be used to further define the method of propagation. | |
---|---|
Keyword | Description |
eps_inv = R | R is the value used to regularise the inverse of the reduced density matrices. (Default: 10-8. See eq.(82) review.) |
eps_no = R | R is the value used to regularise the "natural orbital Hamiltonians". (Default: 10-8) |
proj-h | One dimensional Hamiltonians are not extracted to be in front of the projector. (See eq.(45) review) |
h-proj | One dimensional Hamiltonians are extracted to be in front of the projector. (See eq.(44) review) |
natorb | Natural orbitals are propagated in place of spfs. When the CMF-integrator is employed, the spfs are propagated normally, but the whole wavefunction is transformed to natural orbital picture after each CMF step. In case of a relaxation run the orbitals are re-orthonormalised after each CMF step. |
energyorb | Energy orbitals are propagated in place of spfs. Only for CMF. The spfs are propagated normally, but the whole wavefunction is transformed to energy orbital picture after each output (out1). energyorb is default when the Davidson "integrator" is employed (improved relaxation). energyorb requires that the orben file is set (Run-Section). |
stdorb | Standard orbitals are propagated. This is default, except for improved relaxation using DAV. |
interpic | Spfs are propagated using the interaction picture. interpic is not allowed for CMF-integration. |
simple-proj | The simple projector is used rather than the improved one. The inversion of the spf-overlap-matrix is thus avoided. |
nohsym | The symmetry of the operators determined by the program is not used to calculate the operator matirx elements. |
CDVR | Multi-dimensional potential terms are evaluated using CDVR . The analytic_pes keyword needs to be set in the OPERATOR-SECTION |
TDDVR | Multi-dimensional potential terms are evaluated using TDDVR. The analytic_pes keyword needs to be set in the OPERATOR-SECTION |
direct-multi-d | Multi-dimensional potential terms are evaluated using a direct algorithm, i.e. the potential is not stored on the full grid but re-calculated each time it is needed. This is much slower, but needs minimal memory. The analytic_pes keyword needs to be set in the OPERATOR-SECTION |
update = R | For numerically exact calculations, if the SIL integrator has been chosen the update time (i.e. step size) is set to R. The default is R = tout. |
lmf | The equations of motion of the Linear mean-field approach are used to propagate density operators of type II (no effect for type I or wave functions). |
df | The equations of motion derived from the Dirac-Frenkel/McLachlan variational principle are used to propagate density operators of type II (no effect for type I or wave functions). This is the default. |
imp-ortho | Improve the orthonormality of the SPFs after each
integration step. The long form
improved-orthonormality is also possible. The keyword
may also be given as a third argument to the RK5/8
integrators. Note: currently works only with the RK5/8 integrators. |
Omitted integrator parameters default to:
Keyword | Default | ||
---|---|---|---|
CMF/fix | R = min(1.0,tout) | ||
CMF/var | R = min(1.0,tout) | R1 = 1.0e-6 | |
CMF/varphi | R = min(1.0,tout) | R1 = 1.0e-6 | |
ABM | I = 6 | R = 1.0e-5 | R1 = 1.0e-4 |
BS | I = 8 | R = 1.0e-6 | R1 = update-time/2 for CMF or R1 = 0.2 for VMF |
SIL | I = 30 | R = 1.0e-6 | S1 = standard |
RK5 | R = 1.0e-6 | R1 = 0 (i.e. auto-guess) | |
RK8 | R = 1.0e-6 | R1 = 0 (i.e. auto-guess) | |
proj-h / h-proj | in VMF mode: h-proj in CMF mode: proj-h |
||
eps_inv | R = 1.0e-8 | ||
eps_no | R = 1.0e-8 |