mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-12-22 03:23:29 +01:00
Merge branch 'dev-lcpq' of github.com:QuantumPackage/qp2 into dev-lcpq
This commit is contained in:
commit
a1c9ec2503
@ -32,7 +32,7 @@ OPENMP : 1 ; Append OpenMP flags
|
|||||||
#
|
#
|
||||||
[OPT]
|
[OPT]
|
||||||
FC : -traceback
|
FC : -traceback
|
||||||
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g
|
||||||
|
|
||||||
# Profiling flags
|
# Profiling flags
|
||||||
#################
|
#################
|
||||||
|
@ -31,14 +31,14 @@ OPENMP : 1 ; Append OpenMP flags
|
|||||||
# -ftz : Flushes denormal results to zero
|
# -ftz : Flushes denormal results to zero
|
||||||
#
|
#
|
||||||
[OPT]
|
[OPT]
|
||||||
FCFLAGS : -xAVX -O2 -ip -ftz -g -traceback
|
FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g -traceback
|
||||||
|
|
||||||
# Profiling flags
|
# Profiling flags
|
||||||
#################
|
#################
|
||||||
#
|
#
|
||||||
[PROFILE]
|
[PROFILE]
|
||||||
FC : -p -g
|
FC : -p -g
|
||||||
FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
FCFLAGS : -march=corei7 -O2 -ip -ftz
|
||||||
|
|
||||||
|
|
||||||
# Debugging flags
|
# Debugging flags
|
||||||
|
@ -263,4 +263,16 @@ vtz_mclean-chandler 'McLean/Chandler VTZ' VTZ Vale
|
|||||||
vtzp_binning-curtiss 'Binning/Curtiss VTZP' VTZP Valence Triple Zeta + Polarization
|
vtzp_binning-curtiss 'Binning/Curtiss VTZP' VTZP Valence Triple Zeta + Polarization
|
||||||
wachters+f 'Wachters+f' VDZP Valence Double Zeta + Polarization on All Atoms
|
wachters+f 'Wachters+f' VDZP Valence Double Zeta + Polarization on All Atoms
|
||||||
|
|
||||||
|
aug-cc-pvdz_ecp_ncsu 'aug-cc-pvdz ecp ncsu' augmented cc-pvDz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
aug-cc-pvtz_ecp_ncsu 'aug-cc-pvtz ecp ncsu' augmented cc-pvTz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
aug-cc-pvqz_ecp_ncsu 'aug-cc-pvqz ecp ncsu' augmented cc-pvQz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
aug-cc-pv5z_ecp_ncsu 'aug-cc-pv5z ecp ncsu' augmented cc-pv5z basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
cc-pvdz_ecp_ncsu 'cc-pvdz ecp ncsu' cc-pvDz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
cc-pvtz_ecp_ncsu 'cc-pvtz ecp ncsu' cc-pvTz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
cc-pvqz_ecp_ncsu 'cc-pvqz ecp ncsu' cc-pvQz basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
cc-pv5z_ecp_ncsu 'cc-pv5z ecp ncsu' cc-pv5z basis set designed for the NCSU ECP found in https://pseudopotentiallibrary.org/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
# ; vim::nowrap
|
# ; vim::nowrap
|
||||||
|
3535
data/basis/aug-cc-pv5z_ecp_ncsu
Normal file
3535
data/basis/aug-cc-pv5z_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
1777
data/basis/aug-cc-pvdz_ecp_ncsu
Normal file
1777
data/basis/aug-cc-pvdz_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
2910
data/basis/aug-cc-pvqz_ecp_ncsu
Normal file
2910
data/basis/aug-cc-pvqz_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
2325
data/basis/aug-cc-pvtz_ecp_ncsu
Normal file
2325
data/basis/aug-cc-pvtz_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
3512
data/basis/cc-pv5z_ecp_ncsu
Normal file
3512
data/basis/cc-pv5z_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
1772
data/basis/cc-pvdz_ecp_ncsu
Normal file
1772
data/basis/cc-pvdz_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
2888
data/basis/cc-pvqz_ecp_ncsu
Normal file
2888
data/basis/cc-pvqz_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
2308
data/basis/cc-pvtz_ecp_ncsu
Normal file
2308
data/basis/cc-pvtz_ecp_ncsu
Normal file
File diff suppressed because it is too large
Load Diff
346
data/pseudo/ncsu
346
data/pseudo/ncsu
@ -1,56 +1,46 @@
|
|||||||
H GEN 0 1
|
H GEN 0 1
|
||||||
3
|
3
|
||||||
-10.851924053 2 21.7769665504
|
1.00000000000000 1 21.24359508259891
|
||||||
1.0 1 21.2435950826
|
21.24359508259891 3 21.24359508259891
|
||||||
21.2435950826 3 21.2435950826
|
-10.85192405303825 2 21.77696655044365
|
||||||
1
|
1
|
||||||
0.0 2 1.0
|
0.00000000000000 2 1.000000000000000
|
||||||
|
|
||||||
C GEN 2 1
|
B GEN 2 1
|
||||||
3
|
3
|
||||||
4.0 1 14.43502
|
3.00000 1 31.49298
|
||||||
57.74008 3 8.39889
|
94.47895 3 22.56509
|
||||||
-25.81955 2 7.38188
|
-9.74800 2 8.64669
|
||||||
1
|
1
|
||||||
52.13345 2 7.76079
|
20.74800 2 4.06246
|
||||||
|
|
||||||
Cl GEN 10 2
|
C GEN 2 1
|
||||||
3
|
3
|
||||||
7.0 1 22.71655173
|
4.00000 1 14.43502
|
||||||
159.01586213 3 78.57185685
|
57.74008 3 8.39889
|
||||||
-15.6531065 2 7.47352436
|
-25.81955 2 7.38188
|
||||||
2
|
1
|
||||||
6.50888648 2 17.23708573
|
52.13345 2 7.76079
|
||||||
46.763467 2 4.31148447
|
|
||||||
2
|
|
||||||
2.9946477 2 11.38275704
|
|
||||||
28.0170341 2 3.83218762
|
|
||||||
|
|
||||||
Co GEN 10 2
|
N GEN 2 1
|
||||||
4
|
6
|
||||||
17.0 1 24.7400138129
|
3.25000 1 12.91881
|
||||||
420.580234819 3 23.5426031368
|
1.75000 1 9.22825
|
||||||
-194.630579018 2 24.0406241364
|
41.98612 3 12.96581
|
||||||
-2.94301943013 2 10.237411369
|
16.14945 3 8.05477
|
||||||
|
-26.09522 2 12.54876
|
||||||
|
-10.32626 2 7.53360
|
||||||
2
|
2
|
||||||
270.86974114 2 23.0205711168
|
34.77692 2 9.41609
|
||||||
54.1910212498 2 10.9219568474
|
15.20330 2 8.16694
|
||||||
2
|
|
||||||
200.63032558 2 25.3244045243
|
|
||||||
38.9480947892 2 10.6533915029
|
|
||||||
|
|
||||||
Cr GEN 10 2
|
O GEN 2 1
|
||||||
4
|
3
|
||||||
14.0 1 18.2809107439
|
6.000000 1 12.30997
|
||||||
255.932750414 3 17.0980065531
|
73.85984 3 14.76962
|
||||||
-132.018263171 2 16.7226727605
|
-47.87600 2 13.71419
|
||||||
-0.773887613451 2 5.02865105891
|
1
|
||||||
2
|
85.86406 2 13.65512
|
||||||
219.481462096 2 16.9007876081
|
|
||||||
28.079331766 2 7.33662150761
|
|
||||||
2
|
|
||||||
139.983968717 2 17.3197451654
|
|
||||||
19.5483578632 2 6.92409757503
|
|
||||||
|
|
||||||
F GEN 2 1
|
F GEN 2 1
|
||||||
3
|
3
|
||||||
@ -60,124 +50,214 @@ F GEN 2 1
|
|||||||
1
|
1
|
||||||
51.3934743997 2 11.3903478843
|
51.3934743997 2 11.3903478843
|
||||||
|
|
||||||
Fe GEN 10 2
|
Na GEN 10 2
|
||||||
4
|
|
||||||
16.0 1 23.2209171361
|
|
||||||
371.534674178 3 23.5471467972
|
|
||||||
-181.226034452 2 23.4725634461
|
|
||||||
-2.3730523614 2 9.85238815041
|
|
||||||
2
|
|
||||||
277.500325475 2 22.2106269743
|
|
||||||
46.2049558527 2 9.51515800919
|
|
||||||
2
|
|
||||||
194.998750566 2 24.5700087185
|
|
||||||
31.6794513291 2 8.86648776669
|
|
||||||
|
|
||||||
Mn GEN 10 2
|
|
||||||
4
|
|
||||||
15.0 1 21.9061889166
|
|
||||||
328.592833748 3 21.3460106503
|
|
||||||
-162.049880237 2 21.2709151562
|
|
||||||
-1.85679609726 2 7.90771171833
|
|
||||||
2
|
|
||||||
244.669998154 2 18.9263045646
|
|
||||||
33.5399867643 2 8.31114792811
|
|
||||||
2
|
|
||||||
162.350195446 2 20.162449313
|
|
||||||
24.1593874179 2 7.79269955633
|
|
||||||
|
|
||||||
Ni GEN 10 2
|
|
||||||
4
|
|
||||||
18.0 1 37.839331506
|
|
||||||
681.107967108 3 23.875701156
|
|
||||||
-173.162219465 2 19.8803935987
|
|
||||||
0.34274858261 2 3.56565870195
|
|
||||||
2
|
|
||||||
91.6513902571 2 13.545098213
|
|
||||||
331.659352198 2 27.7907700999
|
|
||||||
2
|
|
||||||
7.5147228016 2 6.46792786898
|
|
||||||
265.586894944 2 23.6921476759
|
|
||||||
|
|
||||||
O GEN 2 1
|
|
||||||
3
|
3
|
||||||
6.0 1 12.30997
|
1.000000 1 4.311678
|
||||||
73.85984 3 14.76962
|
4.311678 3 1.925689
|
||||||
-47.876 2 13.71419
|
-2.083137 2 1.549498
|
||||||
1
|
2
|
||||||
85.86406 2 13.65512
|
6.234064 2 5.377666
|
||||||
|
9.075931 2 1.408414
|
||||||
|
2
|
||||||
|
3.232724 2 1.379949
|
||||||
|
2.494079 2 0.862453
|
||||||
|
|
||||||
|
Mg GEN 10 2
|
||||||
|
3
|
||||||
|
2.000000 1 6.048538
|
||||||
|
12.097075 3 2.796989
|
||||||
|
-17.108313 2 2.547408
|
||||||
|
2
|
||||||
|
6.428631 2 5.936017
|
||||||
|
14.195491 2 1.592891
|
||||||
|
2
|
||||||
|
3.315069 2 1.583969
|
||||||
|
4.403025 2 1.077297
|
||||||
|
|
||||||
|
Al GEN 2 1
|
||||||
|
3
|
||||||
|
11.000000 1 11.062056
|
||||||
|
121.682619 3 12.369778
|
||||||
|
-82.624567 2 11.965444
|
||||||
|
2
|
||||||
|
25.157259 2 81.815564
|
||||||
|
113.067525 2 24.522883
|
||||||
|
|
||||||
|
Si GEN 10 2
|
||||||
|
3
|
||||||
|
4.000000 1 5.168316
|
||||||
|
20.673264 3 8.861690
|
||||||
|
-14.818174 2 3.933474
|
||||||
|
2
|
||||||
|
14.832760 2 9.447023
|
||||||
|
26.349664 2 2.553812
|
||||||
|
2
|
||||||
|
7.621400 2 3.660001
|
||||||
|
10.331583 2 1.903653
|
||||||
|
|
||||||
|
P GEN 2 1
|
||||||
|
3
|
||||||
|
13.000000 1 15.073300
|
||||||
|
195.952906 3 18.113176
|
||||||
|
-117.611086 2 17.371539
|
||||||
|
2
|
||||||
|
25.197230 2 101.982019
|
||||||
|
189.426261 2 37.485881
|
||||||
|
|
||||||
S GEN 2 1
|
S GEN 2 1
|
||||||
3
|
3
|
||||||
14.00000000 1 17.46806994
|
14.000000 1 17.977612
|
||||||
244.55297916 3 16.40396851
|
251.686565 3 20.435964
|
||||||
-128.37752591 2 16.71429998
|
-135.538891 2 19.796579
|
||||||
2
|
2
|
||||||
30.00006536 2 54.87912854
|
25.243283 2 111.936344
|
||||||
125.50010056 2 31.32968867
|
227.060768 2 43.941844
|
||||||
|
|
||||||
|
Cl GEN 2 1
|
||||||
|
3
|
||||||
|
15.000000 1 22.196266
|
||||||
|
332.943994 3 26.145117
|
||||||
|
-161.999982 2 25.015118
|
||||||
|
2
|
||||||
|
26.837357 2 124.640433
|
||||||
|
277.296696 2 52.205433
|
||||||
|
|
||||||
|
Ar GEN 2 1
|
||||||
|
3
|
||||||
|
16.000000 1 23.431337
|
||||||
|
374.901386 3 26.735872
|
||||||
|
-178.039517 2 26.003325
|
||||||
|
2
|
||||||
|
25.069215 2 135.620522
|
||||||
|
332.151842 2 60.471053
|
||||||
|
|
||||||
Sc GEN 10 2
|
Sc GEN 10 2
|
||||||
4
|
4
|
||||||
11.0 1 16.0484863686
|
11.00000000 1 16.02394388
|
||||||
176.533350054 3 14.07764439
|
176.26338271 3 14.08647403
|
||||||
-83.673420518 2 11.993486653
|
-83.68149599 2 11.93985121
|
||||||
0.331064789149 2 3.75115298216
|
0.43282764 2 3.69440111
|
||||||
2
|
2
|
||||||
153.959870288 2 11.4712713921
|
153.96530175 2 11.49466541
|
||||||
14.9643185607 2 5.00756742752
|
14.93675657 2 5.01031394
|
||||||
2
|
2
|
||||||
97.2094454291 2 11.4449481137
|
97.21725690 2 11.45126730
|
||||||
10.8162163087 2 4.78509457131
|
10.81704018 2 4.76798446
|
||||||
|
|
||||||
Ti GEN 10 2
|
Ti GEN 10 2
|
||||||
4
|
4
|
||||||
12.0 1 18.4136620219
|
12.00000000 1 18.41366202
|
||||||
220.963944263 3 15.9229241432
|
220.96394426 3 15.92292414
|
||||||
-94.2902582468 2 13.6500062314
|
-94.29025824 2 13.65000623
|
||||||
0.0979114248227 2 5.0955521057
|
0.09791142 2 5.09555210
|
||||||
2
|
2
|
||||||
173.946572359 2 12.7058061392
|
173.94657235 2 12.70580613
|
||||||
18.8376833381 2 6.11178551988
|
18.83768333 2 6.11178551
|
||||||
2
|
2
|
||||||
111.45672882 2 12.6409192965
|
111.45672882 2 12.64091929
|
||||||
11.1770268269 2 5.35437415684
|
11.17702682 2 5.35437415
|
||||||
|
|
||||||
V GEN 10 2
|
V GEN 10 2
|
||||||
4
|
4
|
||||||
13.0 1 20.3216891426
|
13.00000000 1 20.32168914
|
||||||
264.181958854 3 19.5969804012
|
264.18195885 3 19.59698040
|
||||||
-115.292932083 2 17.3314734817
|
-115.29293208 2 17.33147348
|
||||||
-0.662887260057 2 5.12320657929
|
-0.66288726 2 5.12320657
|
||||||
2
|
2
|
||||||
195.567138911 2 15.1250215054
|
195.56713891 2 15.12502150
|
||||||
22.8864283476 2 6.2989891447
|
22.88642834 2 6.29898914
|
||||||
2
|
2
|
||||||
126.421195008 2 15.9385511327
|
126.42119500 2 15.93855113
|
||||||
16.0359712766 2 5.74006266866
|
16.03597127 2 5.74006266
|
||||||
|
|
||||||
Zn GEN 10 2
|
Cr GEN 10 2
|
||||||
4
|
4
|
||||||
20.0 1 35.8079761618
|
14.00000000 1 18.28091074
|
||||||
716.159523235 3 34.536460837
|
255.93275041 3 17.09800655
|
||||||
-204.683933235 2 28.6283017827
|
-132.01826317 2 16.72267276
|
||||||
0.760266144617 2 7.9623968256
|
-0.77388761 2 5.02865105
|
||||||
2
|
2
|
||||||
95.8764043739 2 14.6349869153
|
219.48146209 2 16.90078760
|
||||||
431.708043027 2 35.0214135667
|
28.07933176 2 7.33662150
|
||||||
2
|
2
|
||||||
74.0127004894 2 14.5742930415
|
139.98396871 2 17.31974516
|
||||||
313.577705639 2 42.2297923499
|
19.54835786 2 6.92409757
|
||||||
|
|
||||||
|
Mn GEN 10 2
|
||||||
|
4
|
||||||
|
15.00000000 1 21.91937433
|
||||||
|
328.79061500 3 21.35527127
|
||||||
|
-162.05172805 2 21.27162653
|
||||||
|
-1.82694272 2 7.93913962
|
||||||
|
2
|
||||||
|
244.66870492 2 18.92044965
|
||||||
|
33.54162717 2 8.32764757
|
||||||
|
2
|
||||||
|
162.35033685 2 20.17347020
|
||||||
|
24.17956695 2 7.80047874
|
||||||
|
|
||||||
|
Fe GEN 10 2
|
||||||
|
4
|
||||||
|
16.00000000 1 23.22091713
|
||||||
|
371.53467417 3 23.54714679
|
||||||
|
-181.22603445 2 23.47256344
|
||||||
|
-2.37305236 2 9.85238815
|
||||||
|
2
|
||||||
|
277.50032547 2 22.21062697
|
||||||
|
46.20495585 2 9.51515800
|
||||||
|
2
|
||||||
|
194.99875056 2 24.57000871
|
||||||
|
31.67945132 2 8.86648776
|
||||||
|
|
||||||
|
Co GEN 10 2
|
||||||
|
4
|
||||||
|
17.00000000 1 25.00124115
|
||||||
|
425.02109971 3 22.83490096
|
||||||
|
-195.48211282 2 23.47468155
|
||||||
|
-2.81572866 2 10.33794825
|
||||||
|
2
|
||||||
|
271.77708486 2 23.41427030
|
||||||
|
54.26461121 2 10.76931694
|
||||||
|
2
|
||||||
|
201.53430745 2 25.47446316
|
||||||
|
38.99231927 2 10.68404901
|
||||||
|
|
||||||
|
Ni GEN 10 2
|
||||||
|
4
|
||||||
|
18.000 1 2.82630001015327e+01
|
||||||
|
508.7340018275886 3 2.69360254587070e+01
|
||||||
|
-2.20099999296390e+02 2 2.70860075292970e+01
|
||||||
|
-2.13493270999809e+00 2 1.22130001295874e+01
|
||||||
|
2
|
||||||
|
3.21240002430625e+02 2 2.64320193944270e+01
|
||||||
|
6.03470084610628e+01 2 1.17489696842121e+01
|
||||||
|
2
|
||||||
|
2.36539998999428e+02 2 2.94929998193907e+01
|
||||||
|
4.43969887908906e+01 2 1.15569831458722e+01
|
||||||
|
|
||||||
Cu GEN 10 2
|
Cu GEN 10 2
|
||||||
4
|
4
|
||||||
19.0 1 31.5381126304
|
19.00000000 1 31.53811263
|
||||||
599.224139977 3 31.0692553147
|
599.22413997 3 31.06925531
|
||||||
-244.689154841 2 30.5903586806
|
-244.68915484 2 30.59035868
|
||||||
-1.2934952584 2 14.0514106386
|
-1.29349525 2 14.05141063
|
||||||
2
|
2
|
||||||
66.2756081341 2 12.7723591969
|
370.71371824 2 29.35562242
|
||||||
370.71371825 2 29.355622426
|
66.27560813 2 12.77235919
|
||||||
2
|
2
|
||||||
49.7626505709 2 12.5247148487
|
271.66281028 2 33.51694543
|
||||||
271.662810283 2 33.5169454376
|
49.76265057 2 12.52471484
|
||||||
|
|
||||||
|
Zn GEN 10 2
|
||||||
|
4
|
||||||
|
20.00000000 1 35.80797616
|
||||||
|
716.15952323 3 34.53646083
|
||||||
|
-204.68393323 2 28.62830178
|
||||||
|
0.76026614 2 7.96239682
|
||||||
|
2
|
||||||
|
431.70804302 2 35.02141356
|
||||||
|
95.87640437 2 14.63498691
|
||||||
|
2
|
||||||
|
313.57770563 2 42.22979234
|
||||||
|
74.01270048 2 14.57429304
|
||||||
|
|
||||||
|
@ -15,6 +15,8 @@ double precision function ao_two_e_integral_erf(i,j,k,l)
|
|||||||
double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq
|
double precision :: Q_new(0:max_dim,3),Q_center(3),fact_q,qq
|
||||||
integer :: iorder_p(3), iorder_q(3)
|
integer :: iorder_p(3), iorder_q(3)
|
||||||
double precision :: ao_two_e_integral_schwartz_accel_erf
|
double precision :: ao_two_e_integral_schwartz_accel_erf
|
||||||
|
|
||||||
|
provide mu_erf
|
||||||
|
|
||||||
if (ao_prim_num(i) * ao_prim_num(j) * ao_prim_num(k) * ao_prim_num(l) > 1024 ) then
|
if (ao_prim_num(i) * ao_prim_num(j) * ao_prim_num(k) * ao_prim_num(l) > 1024 ) then
|
||||||
ao_two_e_integral_erf = ao_two_e_integral_schwartz_accel_erf(i,j,k,l)
|
ao_two_e_integral_erf = ao_two_e_integral_schwartz_accel_erf(i,j,k,l)
|
||||||
|
@ -279,6 +279,100 @@ subroutine get_ao_two_e_integrals_non_zero(j,k,l,sze,out_val,out_val_index,non_z
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
subroutine get_ao_two_e_integrals_non_zero_jl(j,l,thresh,sze_max,sze,out_val,out_val_index,non_zero_int)
|
||||||
|
use map_module
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Gets multiple AO bi-electronic integral from the AO map .
|
||||||
|
! All non-zero i are retrieved for j,k,l fixed.
|
||||||
|
END_DOC
|
||||||
|
double precision, intent(in) :: thresh
|
||||||
|
integer, intent(in) :: j,l, sze,sze_max
|
||||||
|
real(integral_kind), intent(out) :: out_val(sze_max)
|
||||||
|
integer, intent(out) :: out_val_index(2,sze_max),non_zero_int
|
||||||
|
|
||||||
|
integer :: i,k
|
||||||
|
integer(key_kind) :: hash
|
||||||
|
double precision :: tmp
|
||||||
|
|
||||||
|
PROVIDE ao_two_e_integrals_in_map
|
||||||
|
non_zero_int = 0
|
||||||
|
if (ao_overlap_abs(j,l) < thresh) then
|
||||||
|
out_val = 0.d0
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
non_zero_int = 0
|
||||||
|
do k = 1, sze
|
||||||
|
do i = 1, sze
|
||||||
|
integer, external :: ao_l4
|
||||||
|
double precision, external :: ao_two_e_integral
|
||||||
|
!DIR$ FORCEINLINE
|
||||||
|
if (ao_two_e_integral_schwartz(i,k)*ao_two_e_integral_schwartz(j,l) < thresh) then
|
||||||
|
cycle
|
||||||
|
endif
|
||||||
|
call two_e_integrals_index(i,j,k,l,hash)
|
||||||
|
call map_get(ao_integrals_map, hash,tmp)
|
||||||
|
if (dabs(tmp) < thresh ) cycle
|
||||||
|
non_zero_int = non_zero_int+1
|
||||||
|
out_val_index(1,non_zero_int) = i
|
||||||
|
out_val_index(2,non_zero_int) = k
|
||||||
|
out_val(non_zero_int) = tmp
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
subroutine get_ao_two_e_integrals_non_zero_jl_from_list(j,l,thresh,list,n_list,sze_max,out_val,out_val_index,non_zero_int)
|
||||||
|
use map_module
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Gets multiple AO two-electron integrals from the AO map .
|
||||||
|
! All non-zero i are retrieved for j,k,l fixed.
|
||||||
|
END_DOC
|
||||||
|
double precision, intent(in) :: thresh
|
||||||
|
integer, intent(in) :: sze_max
|
||||||
|
integer, intent(in) :: j,l, n_list,list(2,sze_max)
|
||||||
|
real(integral_kind), intent(out) :: out_val(sze_max)
|
||||||
|
integer, intent(out) :: out_val_index(2,sze_max),non_zero_int
|
||||||
|
|
||||||
|
integer :: i,k
|
||||||
|
integer(key_kind) :: hash
|
||||||
|
double precision :: tmp
|
||||||
|
|
||||||
|
PROVIDE ao_two_e_integrals_in_map
|
||||||
|
non_zero_int = 0
|
||||||
|
if (ao_overlap_abs(j,l) < thresh) then
|
||||||
|
out_val = 0.d0
|
||||||
|
return
|
||||||
|
endif
|
||||||
|
|
||||||
|
non_zero_int = 0
|
||||||
|
integer :: kk
|
||||||
|
do kk = 1, n_list
|
||||||
|
k = list(1,kk)
|
||||||
|
i = list(2,kk)
|
||||||
|
integer, external :: ao_l4
|
||||||
|
double precision, external :: ao_two_e_integral
|
||||||
|
!DIR$ FORCEINLINE
|
||||||
|
if (ao_two_e_integral_schwartz(i,k)*ao_two_e_integral_schwartz(j,l) < thresh) then
|
||||||
|
cycle
|
||||||
|
endif
|
||||||
|
call two_e_integrals_index(i,j,k,l,hash)
|
||||||
|
call map_get(ao_integrals_map, hash,tmp)
|
||||||
|
if (dabs(tmp) < thresh ) cycle
|
||||||
|
non_zero_int = non_zero_int+1
|
||||||
|
out_val_index(1,non_zero_int) = i
|
||||||
|
out_val_index(2,non_zero_int) = k
|
||||||
|
out_val(non_zero_int) = tmp
|
||||||
|
enddo
|
||||||
|
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
function get_ao_map_size()
|
function get_ao_map_size()
|
||||||
implicit none
|
implicit none
|
||||||
integer (map_size_kind) :: get_ao_map_size
|
integer (map_size_kind) :: get_ao_map_size
|
||||||
|
@ -8,3 +8,9 @@ default: 2
|
|||||||
type: integer
|
type: integer
|
||||||
doc: Total number of grid points
|
doc: Total number of grid points
|
||||||
interface: ezfio
|
interface: ezfio
|
||||||
|
|
||||||
|
[thresh_grid]
|
||||||
|
type: double precision
|
||||||
|
doc: threshold on the weight of a given grid point
|
||||||
|
interface: ezfio,provider,ocaml
|
||||||
|
default: 1.e-20
|
||||||
|
9
src/becke_numerical_grid/atomic_number.irp.f
Normal file
9
src/becke_numerical_grid/atomic_number.irp.f
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
BEGIN_PROVIDER [ integer, grid_atomic_number, (nucl_num) ]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! Atomic number used to adjust the grid
|
||||||
|
END_DOC
|
||||||
|
grid_atomic_number(:) = max(1,int(nucl_charge(:)))
|
||||||
|
|
||||||
|
END_PROVIDER
|
||||||
|
|
@ -146,7 +146,7 @@ BEGIN_PROVIDER [double precision, grid_points_per_atom, (3,n_points_integration_
|
|||||||
x = grid_points_radial(j)
|
x = grid_points_radial(j)
|
||||||
|
|
||||||
! value of the radial coordinate for the integration
|
! value of the radial coordinate for the integration
|
||||||
r = knowles_function(alpha_knowles(int(nucl_charge(i))),m_knowles,x)
|
r = knowles_function(alpha_knowles(grid_atomic_number(i)),m_knowles,x)
|
||||||
|
|
||||||
! explicit values of the grid points centered around each atom
|
! explicit values of the grid points centered around each atom
|
||||||
do k = 1, n_points_integration_angular
|
do k = 1, n_points_integration_angular
|
||||||
@ -232,8 +232,8 @@ BEGIN_PROVIDER [double precision, final_weight_at_r, (n_points_integration_angul
|
|||||||
do i = 1, n_points_radial_grid -1 !for each radial grid attached to the "jth" atom
|
do i = 1, n_points_radial_grid -1 !for each radial grid attached to the "jth" atom
|
||||||
x = grid_points_radial(i) ! x value for the mapping of the [0, +\infty] to [0,1]
|
x = grid_points_radial(i) ! x value for the mapping of the [0, +\infty] to [0,1]
|
||||||
do k = 1, n_points_integration_angular ! for each angular point attached to the "jth" atom
|
do k = 1, n_points_integration_angular ! for each angular point attached to the "jth" atom
|
||||||
contrib_integration = derivative_knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)&
|
contrib_integration = derivative_knowles_function(alpha_knowles(grid_atomic_number(j)),m_knowles,x)&
|
||||||
*knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)**2
|
*knowles_function(alpha_knowles(grid_atomic_number(j)),m_knowles,x)**2
|
||||||
final_weight_at_r(k,i,j) = weights_angular_points(k) * weight_at_r(k,i,j) * contrib_integration * dr_radial_integral
|
final_weight_at_r(k,i,j) = weights_angular_points(k) * weight_at_r(k,i,j) * contrib_integration * dr_radial_integral
|
||||||
if(isnan(final_weight_at_r(k,i,j)))then
|
if(isnan(final_weight_at_r(k,i,j)))then
|
||||||
print*,'isnan(final_weight_at_r(k,i,j))'
|
print*,'isnan(final_weight_at_r(k,i,j))'
|
||||||
|
53
src/becke_numerical_grid/grid_becke_per_atom.irp.f
Normal file
53
src/becke_numerical_grid/grid_becke_per_atom.irp.f
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [integer, n_pts_per_atom, (nucl_num)]
|
||||||
|
&BEGIN_PROVIDER [integer, n_pts_max_per_atom]
|
||||||
|
BEGIN_DOC
|
||||||
|
! Number of points which are non zero
|
||||||
|
END_DOC
|
||||||
|
integer :: i,j,k,l
|
||||||
|
n_pts_per_atom = 0
|
||||||
|
do j = 1, nucl_num
|
||||||
|
do i = 1, n_points_radial_grid -1
|
||||||
|
do k = 1, n_points_integration_angular
|
||||||
|
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
|
||||||
|
cycle
|
||||||
|
endif
|
||||||
|
n_pts_per_atom(j) += 1
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
n_pts_max_per_atom = maxval(n_pts_per_atom)
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
BEGIN_PROVIDER [double precision, final_grid_points_per_atom, (3,n_pts_max_per_atom,nucl_num)]
|
||||||
|
&BEGIN_PROVIDER [double precision, final_weight_at_r_vector_per_atom, (n_pts_max_per_atom,nucl_num) ]
|
||||||
|
&BEGIN_PROVIDER [integer, index_final_points_per_atom, (3,n_pts_max_per_atom,nucl_num) ]
|
||||||
|
&BEGIN_PROVIDER [integer, index_final_points_per_atom_reverse, (n_points_integration_angular,n_points_radial_grid,nucl_num) ]
|
||||||
|
implicit none
|
||||||
|
integer :: i,j,k,l,i_count(nucl_num)
|
||||||
|
double precision :: r(3)
|
||||||
|
i_count = 0
|
||||||
|
do j = 1, nucl_num
|
||||||
|
do i = 1, n_points_radial_grid -1
|
||||||
|
do k = 1, n_points_integration_angular
|
||||||
|
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
|
||||||
|
cycle
|
||||||
|
endif
|
||||||
|
i_count(j) += 1
|
||||||
|
final_grid_points_per_atom(1,i_count(j),j) = grid_points_per_atom(1,k,i,j)
|
||||||
|
final_grid_points_per_atom(2,i_count(j),j) = grid_points_per_atom(2,k,i,j)
|
||||||
|
final_grid_points_per_atom(3,i_count(j),j) = grid_points_per_atom(3,k,i,j)
|
||||||
|
final_weight_at_r_vector_per_atom(i_count(j),j) = final_weight_at_r(k,i,j)
|
||||||
|
index_final_points_per_atom(1,i_count(j),j) = k
|
||||||
|
index_final_points_per_atom(2,i_count(j),j) = i
|
||||||
|
index_final_points_per_atom(3,i_count(j),j) = j
|
||||||
|
index_final_points_per_atom_reverse(k,i,j) = i_count(j)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
END_PROVIDER
|
@ -1,5 +1,6 @@
|
|||||||
|
|
||||||
BEGIN_PROVIDER [integer, n_points_final_grid]
|
BEGIN_PROVIDER [integer, n_points_final_grid]
|
||||||
|
implicit none
|
||||||
BEGIN_DOC
|
BEGIN_DOC
|
||||||
! Number of points which are non zero
|
! Number of points which are non zero
|
||||||
END_DOC
|
END_DOC
|
||||||
@ -8,9 +9,9 @@ BEGIN_PROVIDER [integer, n_points_final_grid]
|
|||||||
do j = 1, nucl_num
|
do j = 1, nucl_num
|
||||||
do i = 1, n_points_radial_grid -1
|
do i = 1, n_points_radial_grid -1
|
||||||
do k = 1, n_points_integration_angular
|
do k = 1, n_points_integration_angular
|
||||||
! if(dabs(final_weight_at_r(k,i,j)) < 1.d-30)then
|
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
|
||||||
! cycle
|
cycle
|
||||||
! endif
|
endif
|
||||||
n_points_final_grid += 1
|
n_points_final_grid += 1
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
@ -39,9 +40,9 @@ END_PROVIDER
|
|||||||
do j = 1, nucl_num
|
do j = 1, nucl_num
|
||||||
do i = 1, n_points_radial_grid -1
|
do i = 1, n_points_radial_grid -1
|
||||||
do k = 1, n_points_integration_angular
|
do k = 1, n_points_integration_angular
|
||||||
!if(dabs(final_weight_at_r(k,i,j)) < 1.d-30)then
|
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
|
||||||
! cycle
|
cycle
|
||||||
!endif
|
endif
|
||||||
i_count += 1
|
i_count += 1
|
||||||
final_grid_points(1,i_count) = grid_points_per_atom(1,k,i,j)
|
final_grid_points(1,i_count) = grid_points_per_atom(1,k,i,j)
|
||||||
final_grid_points(2,i_count) = grid_points_per_atom(2,k,i,j)
|
final_grid_points(2,i_count) = grid_points_per_atom(2,k,i,j)
|
||||||
|
@ -31,10 +31,6 @@ double precision function cell_function_becke(r,atom_number)
|
|||||||
double precision :: mu_ij,nu_ij
|
double precision :: mu_ij,nu_ij
|
||||||
double precision :: distance_i,distance_j,step_function_becke
|
double precision :: distance_i,distance_j,step_function_becke
|
||||||
integer :: j
|
integer :: j
|
||||||
if(int(nucl_charge(atom_number))==0)then
|
|
||||||
cell_function_becke = 0.d0
|
|
||||||
return
|
|
||||||
endif
|
|
||||||
distance_i = (r(1) - nucl_coord_transp(1,atom_number) ) * (r(1) - nucl_coord_transp(1,atom_number))
|
distance_i = (r(1) - nucl_coord_transp(1,atom_number) ) * (r(1) - nucl_coord_transp(1,atom_number))
|
||||||
distance_i += (r(2) - nucl_coord_transp(2,atom_number) ) * (r(2) - nucl_coord_transp(2,atom_number))
|
distance_i += (r(2) - nucl_coord_transp(2,atom_number) ) * (r(2) - nucl_coord_transp(2,atom_number))
|
||||||
distance_i += (r(3) - nucl_coord_transp(3,atom_number) ) * (r(3) - nucl_coord_transp(3,atom_number))
|
distance_i += (r(3) - nucl_coord_transp(3,atom_number) ) * (r(3) - nucl_coord_transp(3,atom_number))
|
||||||
@ -42,7 +38,6 @@ double precision function cell_function_becke(r,atom_number)
|
|||||||
cell_function_becke = 1.d0
|
cell_function_becke = 1.d0
|
||||||
do j = 1, nucl_num
|
do j = 1, nucl_num
|
||||||
if(j==atom_number)cycle
|
if(j==atom_number)cycle
|
||||||
if(int(nucl_charge(j))==0)cycle
|
|
||||||
distance_j = (r(1) - nucl_coord_transp(1,j) ) * (r(1) - nucl_coord_transp(1,j))
|
distance_j = (r(1) - nucl_coord_transp(1,j) ) * (r(1) - nucl_coord_transp(1,j))
|
||||||
distance_j+= (r(2) - nucl_coord_transp(2,j) ) * (r(2) - nucl_coord_transp(2,j))
|
distance_j+= (r(2) - nucl_coord_transp(2,j) ) * (r(2) - nucl_coord_transp(2,j))
|
||||||
distance_j+= (r(3) - nucl_coord_transp(3,j) ) * (r(3) - nucl_coord_transp(3,j))
|
distance_j+= (r(3) - nucl_coord_transp(3,j) ) * (r(3) - nucl_coord_transp(3,j))
|
||||||
|
@ -121,3 +121,26 @@
|
|||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
|
||||||
|
BEGIN_PROVIDER[double precision, aos_in_r_array_per_atom, (ao_num,n_pts_max_per_atom,nucl_num)]
|
||||||
|
&BEGIN_PROVIDER[double precision, aos_in_r_array_per_atom_transp, (n_pts_max_per_atom,ao_num,nucl_num)]
|
||||||
|
implicit none
|
||||||
|
BEGIN_DOC
|
||||||
|
! aos_in_r_array_per_atom(i,j,k) = value of the ith ao on the jth grid point attached on the kth atom
|
||||||
|
END_DOC
|
||||||
|
integer :: i,j,k
|
||||||
|
double precision :: aos_array(ao_num), r(3)
|
||||||
|
do k = 1, nucl_num
|
||||||
|
do i = 1, n_pts_per_atom(k)
|
||||||
|
r(1) = final_grid_points_per_atom(1,i,k)
|
||||||
|
r(2) = final_grid_points_per_atom(2,i,k)
|
||||||
|
r(3) = final_grid_points_per_atom(3,i,k)
|
||||||
|
call give_all_aos_at_r(r,aos_array)
|
||||||
|
do j = 1, ao_num
|
||||||
|
aos_in_r_array_per_atom(j,i,k) = aos_array(j)
|
||||||
|
aos_in_r_array_per_atom_transp(i,j,k) = aos_array(j)
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
enddo
|
||||||
|
END_PROVIDER
|
||||||
|
|
||||||
|
@ -66,7 +66,7 @@ BEGIN_PROVIDER [double precision, slater_bragg_radii_per_atom, (nucl_num)]
|
|||||||
implicit none
|
implicit none
|
||||||
integer :: i
|
integer :: i
|
||||||
do i = 1, nucl_num
|
do i = 1, nucl_num
|
||||||
slater_bragg_radii_per_atom(i) = slater_bragg_radii(int(nucl_charge(i)))
|
slater_bragg_radii_per_atom(i) = slater_bragg_radii(max(1,int(nucl_charge(i))))
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
@ -74,7 +74,7 @@ BEGIN_PROVIDER [double precision, slater_bragg_radii_per_atom_ua, (nucl_num)]
|
|||||||
implicit none
|
implicit none
|
||||||
integer :: i
|
integer :: i
|
||||||
do i = 1, nucl_num
|
do i = 1, nucl_num
|
||||||
slater_bragg_radii_per_atom_ua(i) = slater_bragg_radii_ua(int(nucl_charge(i)))
|
slater_bragg_radii_per_atom_ua(i) = slater_bragg_radii_ua(max(1,int(nucl_charge(i))))
|
||||||
enddo
|
enddo
|
||||||
END_PROVIDER
|
END_PROVIDER
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user