Skip to content

Latest commit

 

History

History
194 lines (156 loc) · 10.4 KB

README.md

File metadata and controls

194 lines (156 loc) · 10.4 KB

Codes for the paper "Atomic effective potentials for starting molecular electronic structure calculations" [1]

Contents

Build

make q qap

Requirements:

  • GNU/Linux or Cygwin
  • gcc >= 4.7

Usage

1. Generate starting orbitals

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

Examples

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

Vectors file format

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.

2. Optimize caps' exponents

To optimize the values on a set of molecules, run

./qap <basis> <inputfile> [outputfile] [options]
command-line option description default value(s)
f:%s measure to use for optimization: S, E, S0, E0 S
check:%d if > 0, instead of optimization, compute the S and E measures on the molecules:
1 – use HF-based parameters and caps with the default or specified in the input file values of ; 2 – use HFS-based parameters
0
testgrad:%d if > 0, compare analytical and numerical derivatives of all the measures with respect to the values, and quit 0
save:%d if > 0, save guess vectors after optimization 0
np:%d number of threads 1
o:%d,%lf optimization parameters (maximum number of iterations and convergence criterion) 128,1e-5
o1:%d,%lf,%lf,%lf,%lf various 1D optimization parameters (maximum number of iterations, convergence criterion, default value of second derivative estimation, maximum step length, minimum value of second derivative estimation) 32,1e-6,3.0,0.125,1e-3

qap input file format

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.

Examples

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

Files

  • src/ – source directory
  • obj/ – build directory
  • mol/*.in – molecular geometry files
  • mol/*.vec – starting vectors computed with q
  • mol/*.outq output files
  • mol_opt/*/*.in – molecular geometry files
  • mol_opt/*/*.vec – corresponding SCF vectors computed with Priroda-19 (PBE/L1)
  • qap_ex/qap input and output files
  • basis/ – 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

References

[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)