Dipole moments (non periodic) for Harris functionals (#1720)

* Harris Functional bug fix for dipole moments and regtests

* Update regtest (speed)
This commit is contained in:
Juerg Hutter 2021-11-02 11:45:26 +01:00 committed by GitHub
parent 14356eb374
commit e840aa2a81
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 70 additions and 30 deletions

View file

@ -221,7 +221,6 @@ CONTAINS
IF (ec_env%should_update) THEN
ec_env%efield_nuclear = -SUM(ci(:)*fieldpol(:))
! Update KS matrix
matrix_ks => ec_env%matrix_h(:, 1)
dipmat => efield%dipmat
@ -304,11 +303,11 @@ CONTAINS
! density matrix
NULLIFY (p_block_a)
CALL dbcsr_get_block_p(ec_env%matrix_p(1, 1)%matrix, irow, icol, p_block_a, found)
!deb IF (.NOT. found) CYCLE
IF (.NOT. found) CYCLE
IF (SIZE(ec_env%matrix_p, 1) > 1) THEN
NULLIFY (p_block_b)
CALL dbcsr_get_block_p(ec_env%matrix_p(2, 1)%matrix, irow, icol, p_block_b, found)
!deb CPASSERT(found)
CPASSERT(found)
END IF
forcea = 0.0_dp
forceb = 0.0_dp

View file

@ -51,6 +51,9 @@ MODULE energy_corrections
cp_print_key_should_output,&
cp_print_key_unit_nr
USE cp_para_types, ONLY: cp_para_env_type
USE cp_result_methods, ONLY: cp_results_erase,&
put_results
USE cp_result_types, ONLY: cp_result_type
USE dbcsr_api, ONLY: &
dbcsr_add, dbcsr_copy, dbcsr_create, dbcsr_desymmetrize, dbcsr_distribution_type, &
dbcsr_dot, dbcsr_filter, dbcsr_get_info, dbcsr_init_p, dbcsr_multiply, dbcsr_p_type, &
@ -1982,6 +1985,7 @@ CONTAINS
CHARACTER(LEN=8), DIMENSION(3) :: rlab
CHARACTER(LEN=default_path_length) :: filename
CHARACTER(LEN=default_string_length) :: description
INTEGER :: akind, handle, i, ia, iatom, idir, &
ikind, iounit, ispin, maxmom, nspins, &
reference, unit_nr
@ -1993,6 +1997,7 @@ CONTAINS
TYPE(cell_type), POINTER :: cell
TYPE(cp_logger_type), POINTER :: logger
TYPE(cp_para_env_type), POINTER :: para_env
TYPE(cp_result_type), POINTER :: results
TYPE(dbcsr_p_type), DIMENSION(:), POINTER :: matrix_s, moments
TYPE(distribution_1d_type), POINTER :: local_particles
TYPE(particle_type), DIMENSION(:), POINTER :: particle_set
@ -2104,8 +2109,8 @@ CONTAINS
END DO
CALL dbcsr_deallocate_matrix_set(moments)
!
tdip = -(rdip + pdip + cdip)
IF (unit_nr > 0) THEN
tdip = -(rdip + pdip + cdip)
WRITE (unit_nr, "(T3,A)") "Dipoles are based on the traditional operator."
dd = SQRT(SUM(tdip(1:3)**2))*debye
WRITE (unit_nr, "(T3,A)") "Dipole moment [Debye]"
@ -2117,6 +2122,10 @@ CONTAINS
CALL cp_print_key_finished_output(unit_nr=unit_nr, logger=logger, &
basis_section=qs_env%input, print_key_path="DFT%PRINT%MOMENTS")
CALL get_qs_env(qs_env=qs_env, results=results)
description = "[DIPOLE]"
CALL cp_results_erase(results=results, description=description)
CALL put_results(results=results, description=description, values=tdip(1:3))
END IF
CALL timestop(handle)

View file

@ -21,17 +21,17 @@ h2o_dip22.inp 86 1e-08
h2o_dip23.inp 86 1e-08 0.292668779126E+00
h2o_dip24.inp 86 1e-04 0.143426397582E+00
h2o_dip25.inp 86 1e-08 0.149038318612E+00
#h2o_dip26.inp 86 1e-05 0.000000000000E+00 EC - PADE - PADE HARRIS Basis
#h2o_dip27.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip28.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip29.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip30.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip31.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip32.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip33.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
#h2o_dip34.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PADE HARRIS Basis
h2o_dip26.inp 86 1e-05 0.857182943913E+00
h2o_dip27.inp 86 1e-05 0.853584233090E+00
h2o_dip28.inp 86 1e-05 0.844810630096E+00
#h2o_dip29.inp 86 1e-05 0.000000000000E+00 *EC - PBE0 - PADE HARRIS Basis
#h2o_dip30.inp 86 1e-05 0.000000000000E+00 *EC - PADE - PBE HARRIS Basis
#h2o_dip31.inp 86 1e-05 0.000000000000E+00 *EC - HF - PADE HARRIS Basis
h2o_dip32.inp 86 1e-05 0.748223258169E+00
#h2o_dip33.inp 86 1e-05 0.000000000000E+00 *EC - PBE0 - PBE HARRIS Basis
#h2o_dip34.inp 86 1e-05 0.000000000000E+00 *EC - PBE0/ADMM - PBE HARRIS Basis
h2o_dip35.inp 86 1e-05 0.159623722231E+00
h2o_dip36.inp 86 1e-05 0.159624169779E+00
h2o_dip37.inp 86 1e-05 0.145842142590E+00
#h2o_dip38.inp 86 1e-05 0.000000000000E+00 ADMM/DEFAULT
h2o_dip38.inp 86 1e-05 -0.156087402361E+00
#EOF

View file

@ -7,6 +7,9 @@
&END QS
&EFIELD
&END
&MGRID
CUTOFF 200
&END MGRID
&ENERGY_CORRECTION
ENERGY_FUNCTIONAL HARRIS
HARRIS_BASIS ORBITAL
@ -25,10 +28,10 @@
&END
&OUTER_SCF
MAX_SCF 10
EPS_SCF 1.0E-8
EPS_SCF 1.0E-7
&END
MAX_SCF 10
EPS_SCF 1.0E-8
EPS_SCF 1.0E-7
&END SCF
&XC
&XC_FUNCTIONAL PBE
@ -43,7 +46,7 @@
&END DFT
&SUBSYS
&CELL
ABC [angstrom] 6.0 6.0 6.0
ABC [angstrom] 5.0 5.0 5.0
PERIODIC NONE
&END
&COORD

View file

@ -16,6 +16,12 @@
&END
&END
&END XC
&RESPONSE_SOLVER
METHOD MO_SOLVER
PRECONDITIONER FULL_SINGLE_INVERSE
EPS 1.E-5
EPS_FILTER 1.E-6
&END
&END ENERGY_CORRECTION
&SCF
SCF_GUESS ATOMIC
@ -58,13 +64,11 @@
&KIND H
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&END SUBSYS

View file

@ -16,6 +16,12 @@
&END
&END
&END XC
&RESPONSE_SOLVER
METHOD MO_SOLVER
PRECONDITIONER FULL_SINGLE_INVERSE
EPS 1.E-5
EPS_FILTER 1.E-6
&END
&END ENERGY_CORRECTION
&SCF
SCF_GUESS ATOMIC
@ -58,13 +64,11 @@
&KIND H
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&END SUBSYS

View file

@ -16,6 +16,12 @@
&END
&END
&END XC
&RESPONSE_SOLVER
METHOD MO_SOLVER
PRECONDITIONER FULL_SINGLE_INVERSE
EPS 1.E-5
EPS_FILTER 1.E-6
&END
&END ENERGY_CORRECTION
&SCF
SCF_GUESS ATOMIC
@ -63,13 +69,11 @@
&KIND H
BASIS_SET DZV-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&END SUBSYS

View file

@ -7,6 +7,9 @@
&END QS
&EFIELD
&END
&MGRID
CUTOFF 200
&END MGRID
&ENERGY_CORRECTION
ENERGY_FUNCTIONAL HARRIS
HARRIS_BASIS HARRIS
@ -25,10 +28,10 @@
&END
&OUTER_SCF
MAX_SCF 10
EPS_SCF 1.0E-8
EPS_SCF 1.0E-7
&END
MAX_SCF 10
EPS_SCF 1.0E-8
EPS_SCF 1.0E-7
&END SCF
&XC
&XC_FUNCTIONAL PBE
@ -43,7 +46,7 @@
&END DFT
&SUBSYS
&CELL
ABC [angstrom] 6.0 6.0 6.0
ABC [angstrom] 5.0 5.0 5.0
PERIODIC NONE
&END
&COORD

View file

@ -16,6 +16,12 @@
&END
&END
&END XC
&RESPONSE_SOLVER
METHOD MO_SOLVER
PRECONDITIONER FULL_SINGLE_INVERSE
EPS 1.E-5
EPS_FILTER 1.E-6
&END
&END ENERGY_CORRECTION
&SCF
SCF_GUESS ATOMIC
@ -58,13 +64,11 @@
&KIND H
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET HARRIS DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&END SUBSYS

View file

@ -24,6 +24,12 @@
&END
&END
&END XC
&RESPONSE_SOLVER
METHOD MO_SOLVER
PRECONDITIONER FULL_SINGLE_INVERSE
EPS 1.E-5
EPS_FILTER 1.E-6
&END
&END ENERGY_CORRECTION
&SCF
SCF_GUESS ATOMIC

View file

@ -3,6 +3,7 @@
&PROPERTIES
&TDDFPT
KERNEL FULL
ADMM_KERNEL_CORRECTION_SYMMETRIC
NSTATES 1
MAX_ITER 50
CONVERGENCE [eV] 1.0e-7
@ -12,6 +13,9 @@
BASIS_SET_FILE_NAME BASIS_SET
BASIS_SET_FILE_NAME BASIS_ADMM
POTENTIAL_FILE_NAME GTH_POTENTIALS
&MGRID
CUTOFF 200
&END MGRID
&QS
METHOD GPW
&END QS
@ -34,10 +38,10 @@
&END
&OUTER_SCF
MAX_SCF 10
EPS_SCF 1.0E-7
EPS_SCF 1.0E-6
&END
MAX_SCF 10
EPS_SCF 1.0E-7
EPS_SCF 1.0E-6
&END SCF
&XC
&XC_FUNCTIONAL PBE0