-
Notifications
You must be signed in to change notification settings - Fork 467
Description
Hi, all! I mentioned this issue yesterday at the Psi4 Dev meeting, and I wanted to post the issue here, with more collected information.
The crux of the issue, as I have determined, is that the COSX code, when using the ROBUST grid pruning scheme in conjunction with 146 spherical points on either of its grids (initial or final), simply breaks.
Consider the following input:
molecule mol {
0 1
O
H 1 0.96
H 1 0.96 2 104.5
symmetry c1
no_reorient
no_com
}
set {
scf_type cosx
df_scf_guess false
basis aug-cc-pVDZ
e_convergence 1.0e-10
incfock true
incfock_full_fock_every 4
ints_tolerance 1.0e-12
cosx_spherical_points_final 146
cosx_radial_points_final 50
cosx_pruning_scheme robust
}
energy = energy('scf')
A simple expansion of the final COSX grid compared to default. This calculation breaks upon entering the final SCF iteration (where the tight grid is used) with the following error:
!----------------------------------------------------------------------------------!
! !
! ADIIS minimization failed. File a bug, and include your entire input and output !
! files. !
! !
!----------------------------------------------------------------------------------!
The following input, an expansion of both the initial and final grids, also fails:
molecule mol {
0 1
O
H 1 0.96
H 1 0.96 2 104.5
symmetry c1
no_reorient
no_com
}
set {
scf_type cosx
df_scf_guess false
basis aug-cc-pVDZ
e_convergence 1.0e-10
incfock true
incfock_full_fock_every 4
ints_tolerance 1.0e-12
cosx_spherical_points_initial 146
cosx_radial_point_initial 50
cosx_spherical_points_final 302
cosx_radial_points_final 75
cosx_pruning_scheme robust
}
energy = energy('scf')
This one fails in the SAD-guess iteration, with the following error:
!----------------------------------------------------------------------------------!
! !
! Fatal Error: Matrix::diagonalize: DSYEV failed! !
! Error occurred in file: !
! /theoryfs2/ds/dpoole34/Documents/Codes/psi4/psi4/src/psi4/libmints/matrix.cc !
! on line: 1715 !
! The most recent 5 function calls were: !
! psi::PsiException::PsiException(std::__cxx11::basic_string<char, !
! std::char_traits<char>, std::allocator<char> >, char const*, int) !
! psi::Matrix::diagonalize(psi::Matrix&, psi::Vector&, psi::diagonalize_order) !
! !
!----------------------------------------------------------------------------------!
Various things can be switched, with equally varying effects:
- Switching the COSX_PRUNING_SCHEME from ROBUST to TREUTLER fixes these calculations.
- Switching from 146 spherical points to either 110 or 170 fixes these calculations.
- Switching from 50 radial points to either 55 or 45 does not fix these calculations.
- Switching from water to benzene does not fix these calculations.
Finally, from my observation, the problem seems to be localized specifically to COSX. Consider the following input:
molecule mol {
0 1
O
H 1 0.96
H 1 0.96 2 104.5
symmetry c1
no_reorient
no_com
}
set {
scf_type direct
df_scf_guess false
basis aug-cc-pVDZ
e_convergence 1.0e-10
incfock true
incfock_full_fock_every 4
ints_tolerance 1.0e-12
dft_spherical_points 146
dft_radial_points 50
dft_vv10_spherical_points 146
dft_vv10_radial_points 50
dft_pruning_scheme robust
mbis_spherical_points 146
mbis_radial_points 50
mbis_pruning_scheme robust
}
energy, wfn = energy('b3lyp-nl', return_wfn=True)
oeprop(wfn, "MBIS_CHARGES", "MBIS_VOLUME_RATIOS")
This calculation uses other components of Psi4 (DFT, VV10, MBIS) which enable specification of grid points and/or pruning schemes. This calculation, using 146 spherical points and a ROBUST pruning scheme where allowable, runs fine.
Given that this issue is localized to COSX seemingly, I will further explore this and see what I find.