diff --git a/input/basis b/input/basis index e484073..69b24c8 100644 --- a/input/basis +++ b/input/basis @@ -1,38 +1,30 @@ 1 6 -S 8 - 1 1469.0000000 0.0007660 - 2 220.5000000 0.0058920 - 3 50.2600000 0.0296710 - 4 14.2400000 0.1091800 - 5 4.5810000 0.2827890 - 6 1.5800000 0.4531230 - 7 0.5640000 0.2747740 - 8 0.0734500 0.0097510 -S 8 - 1 1469.0000000 -0.0001200 - 2 220.5000000 -0.0009230 - 3 50.2600000 -0.0046890 - 4 14.2400000 -0.0176820 - 5 4.5810000 -0.0489020 - 6 1.5800000 -0.0960090 - 7 0.5640000 -0.1363800 - 8 0.0734500 0.5751020 -S 1 - 1 0.0280500 1.0000000 -P 3 - 1 1.5340000 0.0227840 - 2 0.2749000 0.1391070 - 3 0.0736200 0.5003750 -P 1 - 1 0.0240300 1.0000000 -D 1 - 1 0.1239000 1.0000000 -2 3 S 3 - 1 13.0100000 0.0196850 - 2 1.9620000 0.1379770 - 3 0.4446000 0.4781480 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 S 1 - 1 0.1220000 1.0000000 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 P 1 - 1 0.7270000 1.0000000 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +2 6 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +D 1 + 1 1.0570000 1.0000000 diff --git a/input/dft b/input/dft index c3760f9..317f566 100644 --- a/input/dft +++ b/input/dft @@ -15,10 +15,10 @@ # Hartree-Fock = 666 1 RVWN5 # quadrature grid SG-n - 2 + 1 # Number of states in ensemble (nEns) 2 # Ensemble weights: wEns(1),...,wEns(nEns-1) - 0.50000 0.00000 + 0.00000 0.00000 # GOK-DFT: maxSCF thresh DIIS n_diis guess_type ortho_type 32 0.00001 T 5 1 1 diff --git a/input/molecule b/input/molecule index e76247c..81c624a 100644 --- a/input/molecule +++ b/input/molecule @@ -1,5 +1,5 @@ # nAt nEla nElb nCore nRyd - 2 2 2 0 0 + 2 1 1 0 0 # Znuc x y z - Li 0. 0. 0. - H 0. 0. 3.099 + H 0. 0. 0. + H 0. 0. 1.4 diff --git a/input/molecule.xyz b/input/molecule.xyz index fb94244..6edc99d 100644 --- a/input/molecule.xyz +++ b/input/molecule.xyz @@ -1,4 +1,4 @@ 2 - Li 0.0000000000 0.0000000000 0.0000000000 - H 0.0000000000 0.0000000000 1.6399202947 + H 0.0000000000 0.0000000000 0.0000000000 + H 0.0000000000 0.0000000000 0.7408481486 diff --git a/input/weight b/input/weight index e484073..69b24c8 100644 --- a/input/weight +++ b/input/weight @@ -1,38 +1,30 @@ 1 6 -S 8 - 1 1469.0000000 0.0007660 - 2 220.5000000 0.0058920 - 3 50.2600000 0.0296710 - 4 14.2400000 0.1091800 - 5 4.5810000 0.2827890 - 6 1.5800000 0.4531230 - 7 0.5640000 0.2747740 - 8 0.0734500 0.0097510 -S 8 - 1 1469.0000000 -0.0001200 - 2 220.5000000 -0.0009230 - 3 50.2600000 -0.0046890 - 4 14.2400000 -0.0176820 - 5 4.5810000 -0.0489020 - 6 1.5800000 -0.0960090 - 7 0.5640000 -0.1363800 - 8 0.0734500 0.5751020 -S 1 - 1 0.0280500 1.0000000 -P 3 - 1 1.5340000 0.0227840 - 2 0.2749000 0.1391070 - 3 0.0736200 0.5003750 -P 1 - 1 0.0240300 1.0000000 -D 1 - 1 0.1239000 1.0000000 -2 3 S 3 - 1 13.0100000 0.0196850 - 2 1.9620000 0.1379770 - 3 0.4446000 0.4781480 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 S 1 - 1 0.1220000 1.0000000 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 P 1 - 1 0.7270000 1.0000000 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +D 1 + 1 1.0570000 1.0000000 +2 6 +S 3 + 1 33.8700000 0.0060680 + 2 5.0950000 0.0453080 + 3 1.1590000 0.2028220 +S 1 + 1 0.3258000 1.0000000 +S 1 + 1 0.1027000 1.0000000 +P 1 + 1 1.4070000 1.0000000 +P 1 + 1 0.3880000 1.0000000 +D 1 + 1 1.0570000 1.0000000 diff --git a/src/eDFT/build_grid.f90 b/src/eDFT/build_grid.f90 index de3b956..44622c6 100644 --- a/src/eDFT/build_grid.f90 +++ b/src/eDFT/build_grid.f90 @@ -24,7 +24,6 @@ subroutine build_grid(nNuc,ZNuc,rNuc,nShell,TotAngMomShell,ExpShell,max_ang_mom, double precision,intent(in) :: max_exponent(nNuc) double precision,intent(in) :: radial_precision - integer,intent(in) :: nRad integer,intent(in) :: nAng integer,intent(in) :: nGrid @@ -37,12 +36,14 @@ subroutine build_grid(nNuc,ZNuc,rNuc,nShell,TotAngMomShell,ExpShell,max_ang_mom, integer :: min_num_angular_points integer :: max_num_angular_points integer :: num_points + integer :: num_radial_points integer :: center_index type(c_ptr) :: context ! Output variables + integer,intent(out) :: nRad double precision,intent(out) :: root(ncart,nGrid) double precision,intent(out) :: weight(nGrid) @@ -56,6 +57,7 @@ subroutine build_grid(nNuc,ZNuc,rNuc,nShell,TotAngMomShell,ExpShell,max_ang_mom, !------------------------------------------------------------------------ iG = 0 + nRad = 0 do iNuc=1,nNuc @@ -65,12 +67,15 @@ subroutine build_grid(nNuc,ZNuc,rNuc,nShell,TotAngMomShell,ExpShell,max_ang_mom, center_index = iNuc - 1 num_points = numgrid_get_num_grid_points(context) + num_radial_points = numgrid_get_num_radial_grid_points(context) + call numgrid_get_grid(context,nNuc,center_index,rNuc(:,1),rNuc(:,2),rNuc(:,3),int(ZNuc(:)), & root(1,iG+1:iG+num_points),root(2,iG+1:iG+num_points),root(3,iG+1:iG+num_points), & weight(iG+1:iG+num_points)) iG = iG + num_points + nRad = nRad + num_radial_points call numgrid_free_atom_grid(context) @@ -82,11 +87,19 @@ subroutine build_grid(nNuc,ZNuc,rNuc,nShell,TotAngMomShell,ExpShell,max_ang_mom, ! Print grid + write(*,*) + write(*,'(A30,E10.1)') 'Radial precision = ',radial_precision + write(*,'(A30,I10)') 'Number of radial points = ',nRad + write(*,'(A30,I10)') 'Number of angular points = ',nAng + write(*,'(A30,I10)') 'Total number of points = ',nGrid + write(*,*) + if(dump_grid) then write(*,*) ' ***********************' write(*,*) ' *** QUADRATURE GRID ***' write(*,*) ' ***********************' + write(*,'(A10,3X,3A15)') 'Grid point','X','Y','Z' do iG=1,nGrid write(*,'(I10,3X,4F15.10)') iG,weight(iG),root(:,iG)