Codes for the paper "Atomic effective potentials for starting molecular electronic structure calculations" [1]
make q qap
GNU/Linux
orCygwin
gcc >= 4.7
To generate starting orbitals for a molecule, run
./q <basis-set-file> <molecule>.{in,out} [options]
For basis set file format, see basis/README.md.
command-line option | description | default value |
---|---|---|
vectors:%s |
file to save the vectors in | <molecule>.vec |
print:%d |
1 : print the density matrix;2 : print the density matrix in the lower-triangular form;3 : print the orbital coefficients (vectors) in the column-major order;4 : print the vectors in MOLDEN format;11 : print the effective Hamiltonian matrix;12 : print the effective Hamiltonian matrix in the lower-triangular form |
0 |
aaar:%d |
if > 0, use the two-component scalar-relativistic approximation [3], the parameters have to be specified in the basis set file | 1 if the basis set file contains the parameters (e.g. basis/L1_b2.in ); 0 otherwise (e.g. basis/L1_b2u.in ) |
finite_nuclei:%d |
if > 0, use the finite Gaussian nucleus model [4] | 1 if the scalar-relativistic approximation is enabled; 0 otherwise |
to be found in mol/:
./q basis/L1_b2.in mol/H5C5FeC5H5.{in,out} print:2
./q basis/L1_b2.in mol/Cr2N2O2C8O8.{in,out} print:2
./q basis/L1_b2.in mol/H6C4FeC3O3.{in,out} print:2
./q basis/L1_b2u.in mol/H8C8ThC8H8.{in,out} print:2
./q basis/L1_b2.in mol/TEMPO.{in,out} print:2
./q basis/L1_b2.in mol/HCCCONH2.{in,out} print:4
The binary file contains:
1 int32_t --- number of basis functions M
M doubles --- orbital energies (alpha)
M*M doubles --- orbital vectors (alpha)
M doubles --- orbital energies (beta)
M*M doubles --- orbital vectors (beta)
Thus its size is sizeof(int32_t)+2*M*(M+1)*sizeof(double) bytes.
Spherical basis functions are used and their order is as follows:
P: P0, P+1, P-1
D: D0, D+1, D-1, D+2, D-2
F: F0, F+1, F-1, F+2, F-2, F+3, F-3
etc.
However, when the density matrix or the effective Hamiltonian matrix are printed,
the order of basis functions is as follows:
P: P-1, P0, P+1
D: D-2, D-1, D0, D+1, D+2
F: F-3, F-2, F-1, F0, F+1, F+2
etc.
To optimize the values on a set of molecules, run
./qap <basis> <inputfile> [outputfile] [options]
See qap_ex/ for examples.
First, the initial values of can be specified:
value1 element number(s)
value2 element number(s)
...
valueK element number(s)
For example,
0.333 1-2
0.0625 3
0.0625 4
0.333 5-10
fix 0.333 13
0.125 14-18
sets
for Hydrogen, Helium, and Boron through Neon;
for Lithium and Berillium;
for Aluminum through Argon; and the default value of
for all other elements.
During the optimization, the parameters within the groups (in this case, 1-2
, 5-10
, 11-12
, 14-18
, and 19-102
)
are considered to be equal.
One can freeze some of the parameters by starting lines with the fix
keyword.
Next, molecular geometry files are listed (comments starting with #
are allowed).
For example,
H2.in
H2O.in # water
/directory/with/molecules/NH3.in
# try later:
# Se8.in
S8.in
File names should correspond the mask %.in
and for each one a vector file called %.vec
should exist.
to be found in mol_opt/ and qap_ex/:
./qap basis/L1_b2.in qap_ex/light.{in,opt.out} np:4 # optimize cap exponents (run on 4 processors)
./qap basis/L1_b2.in qap_ex/light.{in,f.out} check:1 # compute S and E measures
./qap basis/L1_b2u.in qap_ex/SeTePo.{in,out} np:4 # optimize cap exponents for Se,Te,Po
# with fixed exponents for H,O,S
src/
– source directoryobj/
– build directorymol/*.in
– molecular geometry filesmol/*.vec
– starting vectors computed withq
mol/*.out
–q
output filesmol_opt/*/*.in
– molecular geometry filesmol_opt/*/*.vec
– corresponding SCF vectors computed with Priroda-19 (PBE/L1)qap_ex/
–qap
input and output filesbasis/
– basis sets taken from [2] and [3] (see basis/README.md)data/
– parameters (HF-based and HFS-based) as in the Supplementary material for the article
[1] D. N. Laikov and K. R. Briling, Theor. Chem. Acc. 139, 17 (2020).
[2] D. N. Laikov, Theor. Chem. Acc. 138, 40 (2019).
[3] D. N. Laikov, J. Chem. Phys. 150, 061103 (2019).
[4] L. Visscher and K. G. Dyall, At. Data Nucl. Data Tables 67, 207 (1997)