The XCURL program can be used to evaluate the extended curl equation from the output of non-adiabatic coupling term (NACT) calculations for a given set of electronic states. The program may first be used to produce the input files required for the quantum chemistry calculations, and then to evaluate the extended curl equation using the resulting output files. For a definition of the magnitude calculated (the gauge field tensor), see here. The components of the gauge field tensor may be used to determine whether the subset of electronic states considered constitute a Hilbert subspace.

To run the program type
xcurlXX input
or
xcurlXX input.inp
where XX is the version number, e.g. xcurl100 for package version 10.0, and where input (or input.inp) denotes the input file. The input format uses, like all the MCTDH package input files, keywords that are for the most part free format and case insensitive. See MCTDH input file structure

for further information on the general use of keywords, noting that there are no sections in the VCHAM input files. The input file ends with the keyword end-input


Creating the quantum chemistry input

The derivatives of the NACTs with respect to the nuclear coordinates must be evaluated numerically. The XCURL program does this using a three-point finite difference formula. The XCURL program may first be used to generate input files at the displaced geometries required for the numerical differentiation, as well as the input for the NACT calculation at the reference geometry. To do so, the following keywords need to be specified:

Point-creation input
Keyword Description
reference_geometry
end-reference_geometry
The reference geometry (in xyz format) is given between these two keywords
step=S S is the step size to be used in the calculation of the gradients of the NACTs
nact_step=S S is the step size to be used in a numerical calculation of the NACTs
run_type=points Specifies that the run-type is point creation
filestem=A A is the file stem for the input files to be created
qcinfo=S Information in file S is to be written to the point files.

This file has to be ended with the line end-file

The positions where the state numbers are to be inserted are marked using the strings $s1 and $s2.

The point at which the geometry is to be written is marked using the string $geom.

For numerical calculations of the NACTS by finite differences, the point at which the positively displaced geometry is to be inserted is marked using the string $geom_pos. The point at which the negatively displaced geometry is to be inserted is marked using the string $geom_neg.

nstates=N N is the number of states
formout = S format for point files:
Keyword Format
gaussian For the GAUSSIAN program
molpro For the Molpro program
ddr Flags that the molpro DDR procedure is to be used.
state_select = i,j,...,k Flags that only the elements of the gauge field tensor indexed by the state numbers i,j,...,k are to be calculated.


Calculating the gauge field tensor

Once the required NACT calculations have been performed using the input files obtained using the run_type=points option, the components of the gauge field tensor can be calculated. To do so, the following keywords need to be specified:

Point-creation input
Keyword Description
reference_geometry
end-reference_geometry
The reference geometry (in xyz format) is given between these two keywords
run_type=fcalc Specifies that the run-type is the calculation of the gauge field tensor
nstates=N N is the number of states
files=A The output files of the NACT calculations are listed in the file A.
This file must be ended by the line end-files
ddr Flags that the molpro DDR procedure has been used.
num_nact=f Flags that a numerical calulation of the NACTs has been made using an f-point formula, with f=2,3.
state_select = i,j,...,k Flags that only the elements of the gauge field tensor indexed by the state numbers i,j,...,k are to be calculated.


Examples

As an example of the usage of the XCURL program, we consider the first two states of the ammonia molecule at the Franck-Condon point.

Point Creation
The input file
nh3_points.inp is first used to create the quantum chemistry input files required to evaluate the gauge field tensor. The template for the quantum chemistry input files to be produced is contained in the file qc.dat. Note the use in this template of the strings $s1 and $s2 to mark where the state numbers are to be written by the program. Also note the use of the string $geom to mark where the displaced geometries are to be written. Running

xcurl101 nh3_points.inp

results in the creation of the files nh3_xcurl_a01x_s01_s02_neg.inp, nh3_xcurl_a01x_s01_s02_pos.inp,... which contain nuclear geometries at all the points required to evaluate the guage field tensor. The resulting NACT calculations produce the output files nh3_xcurl_a01x_s01_s02_neg.out, nh3_xcurl_a01x_s01_s02_pos.out,... which may then be used with the XCURL program to calculate the gauge field tensor.

Calculation of the gauge field tensor
After the quantum chemistry calculations prepared using the XCURL program have been completed, the input file nh3_calc.inp is used to calculate the gauge field tensor using the resulting output. The names of these files are contained in the file nh3.set. In this file, the keyword geom=2 is used to tell the XCURL program to read the 2nd geometry in each of the output files as in each calculation the wavefunction is first calculated at the reference geometry. Running the XCURL program using this input file results in the creation of the output file nh3_calc.dat. In this file are listed the unique elements of the calculated guage field tensor as well as the square roots of the absolute values of these elements. The latter values may be used as an estimate of the order of magnitude of NACTs coupling the states considered to their orthogonal complement.