Skip to content
/ aepm Public

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

License

Notifications You must be signed in to change notification settings

briling/aepm

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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)

About

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published