mirror of
https://github.com/QuantumPackage/qp2.git
synced 2024-08-29 20:23:40 +02: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]
|
||||
FC : -traceback
|
||||
FCFLAGS : -xAVX -O2 -ip -ftz -g
|
||||
FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g
|
||||
|
||||
# Profiling flags
|
||||
#################
|
||||
|
@ -31,14 +31,14 @@ OPENMP : 1 ; Append OpenMP flags
|
||||
# -ftz : Flushes denormal results to zero
|
||||
#
|
||||
[OPT]
|
||||
FCFLAGS : -xAVX -O2 -ip -ftz -g -traceback
|
||||
FCFLAGS : -march=corei7-avx -O2 -ip -ftz -g -traceback
|
||||
|
||||
# Profiling flags
|
||||
#################
|
||||
#
|
||||
[PROFILE]
|
||||
FC : -p -g
|
||||
FCFLAGS : -xSSE4.2 -O2 -ip -ftz
|
||||
FCFLAGS : -march=corei7 -O2 -ip -ftz
|
||||
|
||||
|
||||
# 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
|
||||
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
|
||||
|
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
|
||||
3
|
||||
-10.851924053 2 21.7769665504
|
||||
1.0 1 21.2435950826
|
||||
21.2435950826 3 21.2435950826
|
||||
1.00000000000000 1 21.24359508259891
|
||||
21.24359508259891 3 21.24359508259891
|
||||
-10.85192405303825 2 21.77696655044365
|
||||
1
|
||||
0.0 2 1.0
|
||||
0.00000000000000 2 1.000000000000000
|
||||
|
||||
C GEN 2 1
|
||||
B GEN 2 1
|
||||
3
|
||||
4.0 1 14.43502
|
||||
57.74008 3 8.39889
|
||||
-25.81955 2 7.38188
|
||||
3.00000 1 31.49298
|
||||
94.47895 3 22.56509
|
||||
-9.74800 2 8.64669
|
||||
1
|
||||
52.13345 2 7.76079
|
||||
20.74800 2 4.06246
|
||||
|
||||
Cl GEN 10 2
|
||||
C GEN 2 1
|
||||
3
|
||||
7.0 1 22.71655173
|
||||
159.01586213 3 78.57185685
|
||||
-15.6531065 2 7.47352436
|
||||
2
|
||||
6.50888648 2 17.23708573
|
||||
46.763467 2 4.31148447
|
||||
2
|
||||
2.9946477 2 11.38275704
|
||||
28.0170341 2 3.83218762
|
||||
4.00000 1 14.43502
|
||||
57.74008 3 8.39889
|
||||
-25.81955 2 7.38188
|
||||
1
|
||||
52.13345 2 7.76079
|
||||
|
||||
Co GEN 10 2
|
||||
4
|
||||
17.0 1 24.7400138129
|
||||
420.580234819 3 23.5426031368
|
||||
-194.630579018 2 24.0406241364
|
||||
-2.94301943013 2 10.237411369
|
||||
N GEN 2 1
|
||||
6
|
||||
3.25000 1 12.91881
|
||||
1.75000 1 9.22825
|
||||
41.98612 3 12.96581
|
||||
16.14945 3 8.05477
|
||||
-26.09522 2 12.54876
|
||||
-10.32626 2 7.53360
|
||||
2
|
||||
270.86974114 2 23.0205711168
|
||||
54.1910212498 2 10.9219568474
|
||||
2
|
||||
200.63032558 2 25.3244045243
|
||||
38.9480947892 2 10.6533915029
|
||||
34.77692 2 9.41609
|
||||
15.20330 2 8.16694
|
||||
|
||||
Cr GEN 10 2
|
||||
4
|
||||
14.0 1 18.2809107439
|
||||
255.932750414 3 17.0980065531
|
||||
-132.018263171 2 16.7226727605
|
||||
-0.773887613451 2 5.02865105891
|
||||
2
|
||||
219.481462096 2 16.9007876081
|
||||
28.079331766 2 7.33662150761
|
||||
2
|
||||
139.983968717 2 17.3197451654
|
||||
19.5483578632 2 6.92409757503
|
||||
O GEN 2 1
|
||||
3
|
||||
6.000000 1 12.30997
|
||||
73.85984 3 14.76962
|
||||
-47.87600 2 13.71419
|
||||
1
|
||||
85.86406 2 13.65512
|
||||
|
||||
F GEN 2 1
|
||||
3
|
||||
@ -60,124 +50,214 @@ F GEN 2 1
|
||||
1
|
||||
51.3934743997 2 11.3903478843
|
||||
|
||||
Fe 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
|
||||
Na GEN 10 2
|
||||
3
|
||||
6.0 1 12.30997
|
||||
73.85984 3 14.76962
|
||||
-47.876 2 13.71419
|
||||
1
|
||||
85.86406 2 13.65512
|
||||
1.000000 1 4.311678
|
||||
4.311678 3 1.925689
|
||||
-2.083137 2 1.549498
|
||||
2
|
||||
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
|
||||
3
|
||||
14.00000000 1 17.46806994
|
||||
244.55297916 3 16.40396851
|
||||
-128.37752591 2 16.71429998
|
||||
14.000000 1 17.977612
|
||||
251.686565 3 20.435964
|
||||
-135.538891 2 19.796579
|
||||
2
|
||||
30.00006536 2 54.87912854
|
||||
125.50010056 2 31.32968867
|
||||
25.243283 2 111.936344
|
||||
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
|
||||
4
|
||||
11.0 1 16.0484863686
|
||||
176.533350054 3 14.07764439
|
||||
-83.673420518 2 11.993486653
|
||||
0.331064789149 2 3.75115298216
|
||||
11.00000000 1 16.02394388
|
||||
176.26338271 3 14.08647403
|
||||
-83.68149599 2 11.93985121
|
||||
0.43282764 2 3.69440111
|
||||
2
|
||||
153.959870288 2 11.4712713921
|
||||
14.9643185607 2 5.00756742752
|
||||
153.96530175 2 11.49466541
|
||||
14.93675657 2 5.01031394
|
||||
2
|
||||
97.2094454291 2 11.4449481137
|
||||
10.8162163087 2 4.78509457131
|
||||
97.21725690 2 11.45126730
|
||||
10.81704018 2 4.76798446
|
||||
|
||||
Ti GEN 10 2
|
||||
4
|
||||
12.0 1 18.4136620219
|
||||
220.963944263 3 15.9229241432
|
||||
-94.2902582468 2 13.6500062314
|
||||
0.0979114248227 2 5.0955521057
|
||||
12.00000000 1 18.41366202
|
||||
220.96394426 3 15.92292414
|
||||
-94.29025824 2 13.65000623
|
||||
0.09791142 2 5.09555210
|
||||
2
|
||||
173.946572359 2 12.7058061392
|
||||
18.8376833381 2 6.11178551988
|
||||
173.94657235 2 12.70580613
|
||||
18.83768333 2 6.11178551
|
||||
2
|
||||
111.45672882 2 12.6409192965
|
||||
11.1770268269 2 5.35437415684
|
||||
111.45672882 2 12.64091929
|
||||
11.17702682 2 5.35437415
|
||||
|
||||
V GEN 10 2
|
||||
4
|
||||
13.0 1 20.3216891426
|
||||
264.181958854 3 19.5969804012
|
||||
-115.292932083 2 17.3314734817
|
||||
-0.662887260057 2 5.12320657929
|
||||
13.00000000 1 20.32168914
|
||||
264.18195885 3 19.59698040
|
||||
-115.29293208 2 17.33147348
|
||||
-0.66288726 2 5.12320657
|
||||
2
|
||||
195.567138911 2 15.1250215054
|
||||
22.8864283476 2 6.2989891447
|
||||
195.56713891 2 15.12502150
|
||||
22.88642834 2 6.29898914
|
||||
2
|
||||
126.421195008 2 15.9385511327
|
||||
16.0359712766 2 5.74006266866
|
||||
126.42119500 2 15.93855113
|
||||
16.03597127 2 5.74006266
|
||||
|
||||
Zn GEN 10 2
|
||||
Cr GEN 10 2
|
||||
4
|
||||
20.0 1 35.8079761618
|
||||
716.159523235 3 34.536460837
|
||||
-204.683933235 2 28.6283017827
|
||||
0.760266144617 2 7.9623968256
|
||||
14.00000000 1 18.28091074
|
||||
255.93275041 3 17.09800655
|
||||
-132.01826317 2 16.72267276
|
||||
-0.77388761 2 5.02865105
|
||||
2
|
||||
95.8764043739 2 14.6349869153
|
||||
431.708043027 2 35.0214135667
|
||||
219.48146209 2 16.90078760
|
||||
28.07933176 2 7.33662150
|
||||
2
|
||||
74.0127004894 2 14.5742930415
|
||||
313.577705639 2 42.2297923499
|
||||
139.98396871 2 17.31974516
|
||||
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
|
||||
4
|
||||
19.0 1 31.5381126304
|
||||
599.224139977 3 31.0692553147
|
||||
-244.689154841 2 30.5903586806
|
||||
-1.2934952584 2 14.0514106386
|
||||
19.00000000 1 31.53811263
|
||||
599.22413997 3 31.06925531
|
||||
-244.68915484 2 30.59035868
|
||||
-1.29349525 2 14.05141063
|
||||
2
|
||||
66.2756081341 2 12.7723591969
|
||||
370.71371825 2 29.355622426
|
||||
370.71371824 2 29.35562242
|
||||
66.27560813 2 12.77235919
|
||||
2
|
||||
49.7626505709 2 12.5247148487
|
||||
271.662810283 2 33.5169454376
|
||||
271.66281028 2 33.51694543
|
||||
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
|
||||
integer :: iorder_p(3), iorder_q(3)
|
||||
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
|
||||
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
|
||||
|
||||
|
||||
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()
|
||||
implicit none
|
||||
integer (map_size_kind) :: get_ao_map_size
|
||||
|
@ -8,3 +8,9 @@ default: 2
|
||||
type: integer
|
||||
doc: Total number of grid points
|
||||
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)
|
||||
|
||||
! 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
|
||||
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
|
||||
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
|
||||
contrib_integration = derivative_knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)&
|
||||
*knowles_function(alpha_knowles(int(nucl_charge(j))),m_knowles,x)**2
|
||||
contrib_integration = derivative_knowles_function(alpha_knowles(grid_atomic_number(j)),m_knowles,x)&
|
||||
*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
|
||||
if(isnan(final_weight_at_r(k,i,j)))then
|
||||
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]
|
||||
implicit none
|
||||
BEGIN_DOC
|
||||
! Number of points which are non zero
|
||||
END_DOC
|
||||
@ -8,9 +9,9 @@ BEGIN_PROVIDER [integer, n_points_final_grid]
|
||||
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)) < 1.d-30)then
|
||||
! cycle
|
||||
! endif
|
||||
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
|
||||
cycle
|
||||
endif
|
||||
n_points_final_grid += 1
|
||||
enddo
|
||||
enddo
|
||||
@ -39,9 +40,9 @@ END_PROVIDER
|
||||
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)) < 1.d-30)then
|
||||
! cycle
|
||||
!endif
|
||||
if(dabs(final_weight_at_r(k,i,j)) < thresh_grid)then
|
||||
cycle
|
||||
endif
|
||||
i_count += 1
|
||||
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)
|
||||
|
@ -31,10 +31,6 @@ double precision function cell_function_becke(r,atom_number)
|
||||
double precision :: mu_ij,nu_ij
|
||||
double precision :: distance_i,distance_j,step_function_becke
|
||||
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(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))
|
||||
@ -42,7 +38,6 @@ double precision function cell_function_becke(r,atom_number)
|
||||
cell_function_becke = 1.d0
|
||||
do j = 1, nucl_num
|
||||
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(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))
|
||||
|
@ -121,3 +121,26 @@
|
||||
enddo
|
||||
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
|
||||
integer :: i
|
||||
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
|
||||
END_PROVIDER
|
||||
|
||||
@ -74,7 +74,7 @@ BEGIN_PROVIDER [double precision, slater_bragg_radii_per_atom_ua, (nucl_num)]
|
||||
implicit none
|
||||
integer :: i
|
||||
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
|
||||
END_PROVIDER
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user