项目作者: briling

项目描述 :
Codes for the paper "Atomic effective potentials for starting molecular electronic structure calculations"
高级语言: C
项目地址: git://github.com/briling/aepm.git
创建时间: 2019-11-19T14:36:48Z
项目社区:https://github.com/briling/aepm

开源协议:MIT License

下载


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

Contents

Build

  1. make q qap

Requirements:

  • GNU/Linux or Cygwin
  • gcc >= 4.7

Usage

1. Generate starting orbitals

To generate starting orbitals for a molecule, run

  1. ./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/:

  1. ./q basis/L1_b2.in mol/H5C5FeC5H5.{in,out} print:2
  2. ./q basis/L1_b2.in mol/Cr2N2O2C8O8.{in,out} print:2
  3. ./q basis/L1_b2.in mol/H6C4FeC3O3.{in,out} print:2
  4. ./q basis/L1_b2u.in mol/H8C8ThC8H8.{in,out} print:2
  5. ./q basis/L1_b2.in mol/TEMPO.{in,out} print:2
  6. ./q basis/L1_b2.in mol/HCCCONH2.{in,out} print:4

Vectors file format

  1. The binary file contains:
  2. 1 int32_t --- number of basis functions M
  3. M doubles --- orbital energies (alpha)
  4. M*M doubles --- orbital vectors (alpha)
  5. M doubles --- orbital energies (beta)
  6. M*M doubles --- orbital vectors (beta)
  7. Thus its size is sizeof(int32_t)+2*M*(M+1)*sizeof(double) bytes.
  8. Spherical basis functions are used and their order is as follows:
  9. P: P0, P+1, P-1
  10. D: D0, D+1, D-1, D+2, D-2
  11. F: F0, F+1, F-1, F+2, F-2, F+3, F-3
  12. etc.
  13. However, when the density matrix or the effective Hamiltonian matrix are printed,
  14. the order of basis functions is as follows:
  15. P: P-1, P0, P+1
  16. D: D-2, D-1, D0, D+1, D+2
  17. F: F-3, F-2, F-1, F0, F+1, F+2
  18. etc.

2. Optimize caps’ exponents

To optimize the

values on a set of molecules, run

  1. ./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:

  1. value1 element number(s)
  2. value2 element number(s)
  3. ...
  4. valueK element number(s)

For example,

  1. 0.333 1-2
  2. 0.0625 3
  3. 0.0625 4
  4. 0.333 5-10
  5. fix 0.333 13
  6. 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,

  1. H2.in
  2. H2O.in # water
  3. /directory/with/molecules/NH3.in
  4. # try later:
  5. # Se8.in
  6. 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/:

  1. ./qap basis/L1_b2.in qap_ex/light.{in,opt.out} np:4 # optimize cap exponents (run on 4 processors)
  2. ./qap basis/L1_b2.in qap_ex/light.{in,f.out} check:1 # compute S and E measures
  3. ./qap basis/L1_b2u.in qap_ex/SeTePo.{in,out} np:4 # optimize cap exponents for Se,Te,Po
  4. # 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)