Copyright © 2004–2016 by A. Miyoshi
BEx1D reference manual - bx1HRsol
BEx1D reference manual - bx1HRsol
Synopsis
bx1HRsol basefilename
Description
bx1HRsol
solves one-dimensional time-independent
Schrödinger equation with the periodic boundary condition,
which is suitable for intramolecular hindered rotations.
For a potential energy curve given by a Fourier series,
the eigen states are calculated by expanding a wavefunction with a
free-rotor basis function set. Most of the input parameters
and output files are similar to those for bx1VIBsol
.
Using the base file name specified in command-line,
inputs are read from 'basefilename.inp'.
Similarly to the bx1VIBsol
program,
files 'basefilename_eigen_values.csv' and
'basefilename_part_funcs.csv' are created by default, and
optionally, 'basefilename_eigen_vectorsNN.csv' and
'basefilename_eigen_funcsNN.csv' are also generated.
Input
The following parameters can be specified in the input
'
basefilename.inp'.
| same as bx1VIBsol ? |
1) | * title, | yes |
2) | solver control, | NO |
3) | * nuclear spin statistics, | yes |
4) | * output option, | yes |
5) | * temperatures for part-func calc., | yes |
6) | potential function | NO |
Optional parts are marked by asterisks (*). These parts may appear
in any order and as many times as required. When duplicated,
the one-value parameter (parameters in solver control part)
is overwritten, while duplicated part is combined to the existing part
for multi-value parameters such as title or temperature input.
Below, only the input parts different from
bx1VIBsol
are described. Refer to the
Input section of the
bx1VIBsol
manual
for the other parts.
The following essential parameters must be specified in
bx1HRsol
input.
maxAbsQN
This parameter is used to set the size of basis-set by the
maximum absolute quantum number.
maxAbsQN maximum_absolute_quantum_number
The basis functions used by
bx1HRsol
are the free-rotor
eigen functions.
ψJ = exp(iJθ) / (2π)1/2,
J = 0, ±1, ±2, ...
The following example input tells the program to use basis functions from
J = −50 to +50 (101 basis functions in total).
maxAbsQN 50 ! maximum absolute J
rotConst
The keyword
'rotConst'
specifies the coefficient
2 / 2
I ( =
B) in
the one-dimensional Hamiltonian,
H = −(
2 / 2
I)(d
2 / d
x2)
+
V(
x) = −
B(d
2 / d
x2) +
V(
x)
rotConst hbar-square_over_2I
UNIT: The unit of rotConst
must be in
cm−1, where is used as a unit of energy.
Nuclear spin statistics
Output option
Temperatures for part-func calc.
A Fourier series potential function must be specified in the
following format.
potPars{
order-1 coefficient-1
order-2 coefficient-2
order-3 coefficient-3
...
}
A term of
order-i
> 0 is a cosine function,
cos[(
order-i
)
x], and one with negative order,
order-i
< 0, indicates a sine function,
sin(|
order-i
|
x).
order-i
= 0
is used to set a constant term.
Output
Similar to
bx1VIBsol
program, results of calculation
are stored in the following four types of files. The outputs marked
with '*' are optional.
| Output | File name |
1) | eigen values |
(basefilename_eigen_values.csv) |
2) | partition functions |
(basefilename_part_funcs.csv) |
3) | * eigen vectors |
(basefilename_eigen_vectorsNN.csv) | NN = 00, 01, 02, ... |
4) | * eigen functions |
(basefilename_eigen_funcsNN.csv) | NN = 00, 01, 02, ... |
The diagnostic messages printed to the console are also similar to
bx1VIBsol
.
estimated eigenvalue error is <= 1% at |q.n.| = 50.
estimated partition function error is 3.06022e-006 at 3000 K.
The contents of the each output files are also similar to those
for
bx1VIBsol
. One of the major differences arises
from the fact that
bx1HRsol
solves a complex-number
eigen problem.
Table r3-1. Hindered rotor eigen values
number | eigenValue | J | w | |
0 | 27.545063 | 0 | (1/4) | |
1 | 29.921654 | 1 | (3/4) | |
2 | 57.706454 | 1 | (3/4) | |
3 | 72.501562 | 2 | (1/4) | |
4 | 90.023541 | 2 | (1/4) | |
... | ... | ... | ... | |
99 | 26474.652 | 50 | (1/4) | |
100 | 26474.652 | 50 | (1/4) | (maximum ...) |
Eigen value output
An example output for -CH2 rotation of n-propyl
radical is shown in Table r3-1.
The fourth column, which is not present in the bx1VIBsol
output, indicates the rotational quantum numbers.
Similar to bx1VIBsol
, all the eigen values are
printed but the threshold quantum number is printed to the
console and marked by '(maximum reliable quantumNbr)'
in the eigen value output.
Partition function output
Same as bx1VIBsol
.
Table r3-2. Hindered rotor eigen vectors
eigen_values | 27.545063 | 29.921654 | 57.706454 | ... |
eigen_vectors | (real) | (imag) | (real) | (imag) | (real) | (imag) |
J(basis) | v0 | v1 | v1 |
... | ... | ... | ... |
c(−3) | 0 | 0 | 0.0812 | 0 | 0.1924 | 0 |
c(−2) | −0.2680 | 0 | 0 | 0 | 0 | 0 |
c(−1) | 0 | 0 | −0.7019 | 0 | −0.6797 | 0 |
c(0) | 0.9248 | 0 | 0 | 0 | 0 | 0 |
c(1) | 0 | 0 | 0.7019 | 0 | −0.6797 | 0 |
c(2) | −0.2680 | 0 | 0 | 0 | 0 | 0 |
c(3) | 0 | 0 | −0.0812 | 0 | 0.1924 | 0 |
... | ... | ... | ... |
Eigen vector output
Table r3-2 shows a part of eigen vector output.
The real and imaginary part of the complex eigen vectors are printed,
and each column shows the coefficients for the basis functions in the
order of the quantum number, −maxAbsQN
to
+maxAbsQN
.
The eigen vectors up to 'maximum reliable quantum number'
are printed in the output and the output is separated in multiple
CSV files when the number of eigen vectors exceeds 125 (250 columns).
Table r3-3. Hindered rotor eigen functions
eigen_functions | (real) | (imag) | (real) | (imag) | (real) | (imag) |
x | f0 | f1 | f1 |
0 | 0.1670 | 0 | 0 | 0.0000 | −0.4193 | 0 |
30 | 0.2471 | 0 | 0 | 0.2012 | −0.4416 | 0 |
60 | 0.4974 | 0 | 0 | 0.5115 | −0.4436 | 0 |
90 | 0.5587 | 0 | 0 | 0.5940 | 0.0000 | 0 |
120 | 0.4974 | 0 | 0 | 0.5115 | 0.4436 | 0 |
150 | 0.2471 | 0 | 0 | 0.2012 | 0.4416 | 0 |
180 | 0.1670 | 0 | 0 | 0.0000 | 0.4193 | 0 |
Eigen function output
An example output of eigen functions is shown in Table r3-3.
Only thinned-out values at x = 0, 30, 60, 90, 120, 150, and 180
degrees are shown here. Similarly to the eigen vector output,
each eigen function consists of real and imaginary parts.
The eigen functions
up to the 'maximum reliable quantum number' are printed.
The output is separated in multiple files when the
number of eigen functions exceeds 125.
Program limits
Internally,
bx1HRsol
calls ZHBEV routine (eigen
problem solver for complex Hermite band matrix) in
LAPACK
written by FORTRAN. Only limitations hard-wired in the source
codes are the declaration part of static arrays which are passed to
FORTRAN routines. These can be found in 'libbx1FS.h' file
at the beginning of
basisFreeRotor
class
declaration;
class basisFreeRotor {
public:
enum { MXNBAS = 2001, // maximum number of basis functions
SZRWLP = 6001, // size of ZHBEV rwork array: max(1, 3*MXNBAS-2)
MXRWAB = 51 }; // max nbr rows of ZHBEV ab mat: maxAbsOrder+1
that is, the maximum absolute quantum number of basis function is 1000 and
the maximum absolute order of the potential function polynomial is 50.
All the other working variables use dynamically allocated memory
and the system resource may limit the program execution.