9
1
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:
Anthony Scemama 2019-06-04 11:39:11 +02:00
commit a1c9ec2503
22 changed files with 21454 additions and 152 deletions

View File

@ -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
################# #################

View File

@ -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

View File

@ -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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

View File

@ -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

View File

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

View File

@ -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

View File

@ -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

View 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

View File

@ -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))'

View 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

View File

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

View File

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

View File

@ -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

View File

@ -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