Skip to content

COSX Grid Issues with 146 Spherical Grid Points + ROBUST Grid Pruning Scheme #2890

@davpoolechem

Description

@davpoolechem

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions