GAPW increase accuracy for XC integration (#4779)

This commit is contained in:
Juerg Hutter 2026-02-04 17:51:19 +01:00 committed by GitHub
parent 3375d7e96a
commit dbde302009
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
127 changed files with 8139 additions and 1111 deletions

View file

@ -28,6 +28,7 @@ configure_file(base/base_uses.f90 base/base_uses.f90 @ONLY)
list(
APPEND
CP2K_SRCS_F
accint_weights_forces.F
ace_nlist.F
ace_wrapper.F
admm_dm_methods.F

415
src/accint_weights_forces.F Normal file
View file

@ -0,0 +1,415 @@
!--------------------------------------------------------------------------------------------------!
! CP2K: A general program to perform molecular dynamics simulations !
! Copyright 2000-2026 CP2K developers group <https://cp2k.org> !
! !
! SPDX-License-Identifier: GPL-2.0-or-later !
!--------------------------------------------------------------------------------------------------!
! **************************************************************************************************
!> \brief
!> \author JGH (01.2026)
! **************************************************************************************************
MODULE accint_weights_forces
USE ao_util, ONLY: exp_radius_very_extended
USE atomic_kind_types, ONLY: atomic_kind_type,&
get_atomic_kind
USE cell_types, ONLY: cell_type,&
pbc
USE cp_control_types, ONLY: dft_control_type
USE grid_api, ONLY: integrate_pgf_product
USE input_constants, ONLY: sic_none,&
xc_none
USE input_section_types, ONLY: section_vals_type,&
section_vals_val_get
USE kinds, ONLY: dp
USE memory_utilities, ONLY: reallocate
USE particle_types, ONLY: particle_type
USE pw_env_types, ONLY: pw_env_get,&
pw_env_type
USE pw_grids, ONLY: pw_grid_compare
USE pw_methods, ONLY: pw_axpy,&
pw_multiply_with,&
pw_scale,&
pw_zero
USE pw_pool_types, ONLY: pw_pool_type
USE pw_types, ONLY: pw_c1d_gs_type,&
pw_r3d_rs_type
USE qs_environment_types, ONLY: get_qs_env,&
qs_environment_type
USE qs_force_types, ONLY: qs_force_type
USE qs_fxc, ONLY: qs_fxc_analytic
USE qs_ks_types, ONLY: get_ks_env,&
qs_ks_env_type
USE qs_rho_types, ONLY: qs_rho_get,&
qs_rho_type
USE realspace_grid_types, ONLY: realspace_grid_type,&
transfer_pw2rs
USE virial_types, ONLY: virial_type
USE xc, ONLY: xc_exc_pw_create,&
xc_vxc_pw_create
#include "./base/base_uses.f90"
IMPLICIT NONE
PRIVATE
LOGICAL, PRIVATE, PARAMETER :: debug_this_module = .FALSE.
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'accint_weights_forces'
PUBLIC :: accint_weight_force
CONTAINS
! **************************************************************************************************
!> \brief ...
!> \param qs_env ...
!> \param rho ...
!> \param rho1 ...
!> \param order ...
!> \param xc_section ...
!> \param triplet ...
! **************************************************************************************************
SUBROUTINE accint_weight_force(qs_env, rho, rho1, order, xc_section, triplet)
TYPE(qs_environment_type), POINTER :: qs_env
TYPE(qs_rho_type), POINTER :: rho, rho1
INTEGER, INTENT(IN) :: order
TYPE(section_vals_type), POINTER :: xc_section
LOGICAL, INTENT(IN), OPTIONAL :: triplet
CHARACTER(len=*), PARAMETER :: routineN = 'accint_weight_force'
INTEGER :: atom_a, handle, iatom, ikind, natom, &
natom_of_kind, nkind
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: lr_triplet, use_virial
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: calpha, cvalue
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: aforce
REAL(KIND=dp), DIMENSION(3, 3) :: avirial
TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set
TYPE(dft_control_type), POINTER :: dft_control
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type) :: e_rspace
TYPE(qs_force_type), DIMENSION(:), POINTER :: force
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(virial_type), POINTER :: virial
CALL timeset(routineN, handle)
CALL get_qs_env(qs_env, dft_control=dft_control)
IF (dft_control%qs_control%gapw_control%accurate_xcint) THEN
CALL get_qs_env(qs_env=qs_env, force=force, virial=virial)
use_virial = virial%pv_availability .AND. (.NOT. virial%pv_numer)
CALL get_qs_env(qs_env, natom=natom, nkind=nkind)
ALLOCATE (aforce(3, natom))
ALLOCATE (calpha(nkind), cvalue(nkind))
cvalue = 1.0_dp
calpha(1:nkind) = dft_control%qs_control%gapw_control%aw(1:nkind)
CALL get_qs_env(qs_env, ks_env=ks_env, pw_env=pw_env)
CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
CALL auxbas_pw_pool%create_pw(e_rspace)
lr_triplet = .FALSE.
IF (PRESENT(triplet)) lr_triplet = triplet
CALL xc_density(ks_env, rho, rho1, order, xc_section, lr_triplet, e_rspace)
CALL pw_scale(e_rspace, e_rspace%pw_grid%dvol)
CALL gauss_grid_force(e_rspace, qs_env, calpha, cvalue, aforce, avirial)
CALL auxbas_pw_pool%give_back_pw(e_rspace)
CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set)
DO ikind = 1, nkind
CALL get_atomic_kind(atomic_kind_set(ikind), natom=natom_of_kind, atom_list=atom_list)
DO iatom = 1, natom_of_kind
atom_a = atom_list(iatom)
force(ikind)%rho_elec(1:3, iatom) = &
force(ikind)%rho_elec(1:3, iatom) + aforce(1:3, atom_a)
END DO
END DO
IF (use_virial) THEN
virial%pv_exc = virial%pv_exc + avirial
virial%pv_virial = virial%pv_virial + avirial
END IF
DEALLOCATE (aforce)
END IF
CALL timestop(handle)
END SUBROUTINE accint_weight_force
! **************************************************************************************************
!> \brief computes the forces/virial due to atomic centered Gaussian functions
!> \param e_rspace Energy density
!> \param qs_env ...
!> \param calpha ...
!> \param cvalue ...
!> \param aforce ...
!> \param avirial ...
! **************************************************************************************************
SUBROUTINE gauss_grid_force(e_rspace, qs_env, calpha, cvalue, aforce, avirial)
TYPE(pw_r3d_rs_type), INTENT(IN) :: e_rspace
TYPE(qs_environment_type), POINTER :: qs_env
REAL(KIND=dp), DIMENSION(:), INTENT(IN) :: calpha, cvalue
REAL(KIND=dp), DIMENSION(:, :), INTENT(OUT) :: aforce
REAL(KIND=dp), DIMENSION(3, 3), INTENT(OUT) :: avirial
CHARACTER(len=*), PARAMETER :: routineN = 'gauss_grid_force'
INTEGER :: atom_a, handle, iatom, ikind, j, &
natom_of_kind, npme
INTEGER, DIMENSION(:), POINTER :: atom_list, cores
LOGICAL :: use_virial
REAL(KIND=dp) :: alpha, eps_rho_rspace, radius
REAL(KIND=dp), DIMENSION(3) :: force_a, force_b, ra
REAL(KIND=dp), DIMENSION(3, 3) :: my_virial_a, my_virial_b
REAL(KIND=dp), DIMENSION(:, :), POINTER :: hab, pab
TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set
TYPE(cell_type), POINTER :: cell
TYPE(dft_control_type), POINTER :: dft_control
TYPE(particle_type), DIMENSION(:), POINTER :: particle_set
TYPE(pw_env_type), POINTER :: pw_env
TYPE(realspace_grid_type), POINTER :: rs_v
CALL timeset(routineN, handle)
ALLOCATE (cores(1))
ALLOCATE (hab(1, 1))
ALLOCATE (pab(1, 1))
CALL get_qs_env(qs_env, pw_env=pw_env)
CALL pw_env_get(pw_env, auxbas_rs_grid=rs_v)
CALL transfer_pw2rs(rs_v, e_rspace)
CALL get_qs_env(qs_env, &
atomic_kind_set=atomic_kind_set, &
cell=cell, &
dft_control=dft_control, &
particle_set=particle_set)
use_virial = .TRUE.
avirial = 0.0_dp
aforce = 0.0_dp
eps_rho_rspace = dft_control%qs_control%eps_rho_rspace
DO ikind = 1, SIZE(atomic_kind_set)
CALL get_atomic_kind(atomic_kind_set(ikind), natom=natom_of_kind, atom_list=atom_list)
alpha = calpha(ikind)
pab(1, 1) = -cvalue(ikind)
IF (alpha == 0.0_dp .OR. pab(1, 1) == 0.0_dp) CYCLE
CALL reallocate(cores, 1, natom_of_kind)
npme = 0
cores = 0
DO iatom = 1, natom_of_kind
atom_a = atom_list(iatom)
ra(:) = pbc(particle_set(atom_a)%r, cell)
IF (rs_v%desc%parallel .AND. .NOT. rs_v%desc%distributed) THEN
! replicated realspace grid, split the atoms up between procs
IF (MODULO(iatom, rs_v%desc%group_size) == rs_v%desc%my_pos) THEN
npme = npme + 1
cores(npme) = iatom
END IF
ELSE
npme = npme + 1
cores(npme) = iatom
END IF
END DO
DO j = 1, npme
iatom = cores(j)
atom_a = atom_list(iatom)
ra(:) = pbc(particle_set(atom_a)%r, cell)
hab(1, 1) = 0.0_dp
force_a(:) = 0.0_dp
force_b(:) = 0.0_dp
my_virial_a = 0.0_dp
my_virial_b = 0.0_dp
radius = exp_radius_very_extended(la_min=0, la_max=0, lb_min=0, lb_max=0, &
ra=ra, rb=ra, rp=ra, &
zetp=alpha, eps=eps_rho_rspace, &
pab=pab, o1=0, o2=0, &
prefactor=1.0_dp, cutoff=1.0_dp)
CALL integrate_pgf_product(0, alpha, 0, &
0, 0.0_dp, 0, ra, [0.0_dp, 0.0_dp, 0.0_dp], &
rs_v, hab, pab=pab, o1=0, o2=0, &
radius=radius, &
calculate_forces=.TRUE., force_a=force_a, &
force_b=force_b, use_virial=use_virial, my_virial_a=my_virial_a, &
my_virial_b=my_virial_b, use_subpatch=.TRUE., subpatch_pattern=0)
aforce(1:3, atom_a) = aforce(1:3, atom_a) + force_a(1:3)
avirial = avirial + my_virial_a
END DO
END DO
DEALLOCATE (hab, pab, cores)
CALL timestop(handle)
END SUBROUTINE gauss_grid_force
! **************************************************************************************************
!> \brief calculates the XC density:
!> order=0: exc will contain the xc energy density E_xc(r)
!> order=1: exc will contain V_xc(r) * rho1(r)
!> order=2: exc will contain F_xc(r) * rho1(r) * rho1(r)
!> \param ks_env to get all the needed things
!> \param rho_struct density
!> \param rho1_struct response density
!> \param order requested derivative order
!> \param xc_section ...
!> \param triplet ...
!> \param exc ...
!> \author JGH
! **************************************************************************************************
SUBROUTINE xc_density(ks_env, rho_struct, rho1_struct, order, xc_section, triplet, exc)
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho_struct, rho1_struct
INTEGER, INTENT(IN) :: order
TYPE(section_vals_type), POINTER :: xc_section
LOGICAL, INTENT(IN) :: triplet
TYPE(pw_r3d_rs_type) :: exc
CHARACTER(len=*), PARAMETER :: routineN = 'xc_density'
INTEGER :: handle, ispin, myfun, nspins
LOGICAL :: uf_grid
REAL(KIND=dp) :: excint, factor
REAL(KIND=dp), DIMENSION(3, 3) :: vdum
TYPE(cell_type), POINTER :: cell
TYPE(dft_control_type), POINTER :: dft_control
TYPE(pw_c1d_gs_type), DIMENSION(:), POINTER :: rho_g
TYPE(pw_c1d_gs_type), POINTER :: rho_nlcc_g
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool, xc_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, rho_r, tau1_r, tau_r, vxc_rho, &
vxc_tau
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc, weights
CALL timeset(routineN, handle)
! we always get true exc (not integration weighted)
NULLIFY (weights)
CALL get_ks_env(ks_env, &
dft_control=dft_control, &
pw_env=pw_env, &
cell=cell, &
rho_nlcc=rho_nlcc, &
rho_nlcc_g=rho_nlcc_g)
CALL qs_rho_get(rho_struct, rho_r=rho_r, rho_g=rho_g, tau_r=tau_r)
nspins = dft_control%nspins
CALL section_vals_val_get(xc_section, "XC_FUNCTIONAL%_SECTION_PARAMETERS_", i_val=myfun)
CALL pw_env_get(pw_env, xc_pw_pool=xc_pw_pool, auxbas_pw_pool=auxbas_pw_pool)
uf_grid = .NOT. pw_grid_compare(auxbas_pw_pool%pw_grid, xc_pw_pool%pw_grid)
IF (uf_grid) THEN
CALL cp_warn(__LOCATION__, "Fine grid option not possible with energy density")
CPABORT("Fine Grid in xc_density")
END IF
CALL pw_zero(exc)
IF (myfun /= xc_none) THEN
CPASSERT(ASSOCIATED(rho_struct))
CPASSERT(dft_control%sic_method_id == sic_none)
! add the nlcc densities
IF (ASSOCIATED(rho_nlcc) .AND. order <= 1) THEN
factor = 1.0_dp
DO ispin = 1, nspins
CALL pw_axpy(rho_nlcc, rho_r(ispin), factor)
CALL pw_axpy(rho_nlcc_g, rho_g(ispin), factor)
END DO
END IF
NULLIFY (vxc_rho, vxc_tau)
SELECT CASE (order)
CASE (0)
! we could reduce to energy only here
CALL xc_exc_pw_create(rho_r, rho_g, tau_r, xc_section, weights, xc_pw_pool, exc)
CASE (1)
CALL qs_rho_get(rho1_struct, rho_r=rho1_r, tau_r=tau1_r)
CALL xc_vxc_pw_create(vxc_rho=vxc_rho, vxc_tau=vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau_r, exc=excint, &
xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=vdum)
CASE (2)
CALL qs_rho_get(rho1_struct, rho_r=rho1_r, tau_r=tau1_r)
CALL qs_fxc_analytic(rho_struct, rho1_r, tau1_r, xc_section, weights, xc_pw_pool, &
triplet, vxc_rho, vxc_tau)
CASE DEFAULT
CPABORT("Derivative order not available in xc_density")
END SELECT
! remove the nlcc densities (keep stuff in original state)
IF (ASSOCIATED(rho_nlcc) .AND. order <= 1) THEN
factor = -1.0_dp
DO ispin = 1, dft_control%nspins
CALL pw_axpy(rho_nlcc, rho_r(ispin), factor)
CALL pw_axpy(rho_nlcc_g, rho_g(ispin), factor)
END DO
END IF
!
SELECT CASE (order)
CASE (0)
!
CASE (1, 2)
CALL pw_zero(exc)
IF (ASSOCIATED(vxc_rho)) THEN
DO ispin = 1, nspins
CALL pw_multiply_with(vxc_rho(ispin), rho1_r(ispin))
CALL pw_axpy(vxc_rho(ispin), exc, 1.0_dp)
CALL vxc_rho(ispin)%release()
END DO
DEALLOCATE (vxc_rho)
END IF
IF (ASSOCIATED(vxc_tau)) THEN
DO ispin = 1, nspins
CALL pw_multiply_with(vxc_tau(ispin), tau1_r(ispin))
CALL pw_axpy(vxc_tau(ispin), exc, 1.0_dp)
CALL vxc_tau(ispin)%release()
END DO
DEALLOCATE (vxc_tau)
END IF
CASE DEFAULT
CPABORT("Derivative order not available in xc_density")
END SELECT
IF (order == 2) THEN
CALL pw_scale(exc, 0.5_dp)
END IF
END IF
CALL timestop(handle)
END SUBROUTINE xc_density
END MODULE accint_weights_forces

View file

@ -510,7 +510,6 @@ CONTAINS
INTEGER, INTENT(IN) :: iw
CHARACTER(len=160) :: shortform
CHARACTER(LEN=20) :: tmpStr
CHARACTER(len=:), ALLOCATABLE :: reference
INTEGER :: ifun, il, meth, myfun, reltyp
LOGICAL :: lsd
@ -600,8 +599,6 @@ CONTAINS
lsd = (meth == do_uks_atom)
IF (myfun /= xc_none) THEN
CALL section_vals_val_get(xc_section, "FUNCTIONAL_ROUTINE", c_val=tmpStr)
IF (iw > 0) WRITE (iw, fmt="(' FUNCTIONAL| ROUTINE=',a)") TRIM(tmpStr)
CALL xc_functionals_expand(xc_fun_section, xc_section)
IF (iw > 0) THEN
ifun = 0

View file

@ -273,6 +273,9 @@ MODULE cp_control_types
lmax_rho0 = 0, &
lmax_sphere = 0, &
quadrature = 0
LOGICAL :: accurate_xcint = .FALSE.
REAL(KIND=dp) :: aweights = 0.0_dp
REAL(KIND=dp), DIMENSION(:), POINTER :: aw => NULL()
LOGICAL :: alpha0_hard_from_input = .FALSE., &
force_paw = .FALSE., &
non_paw_atoms = .FALSE., &
@ -964,6 +967,9 @@ CONTAINS
DEALLOCATE (qs_control%e_cutoff)
END IF
IF (ASSOCIATED(qs_control%gapw_control)) THEN
IF (ASSOCIATED(qs_control%gapw_control%aw)) THEN
DEALLOCATE (qs_control%gapw_control%aw)
END IF
DEALLOCATE (qs_control%gapw_control)
END IF
IF (ASSOCIATED(qs_control%ddapc_restraint_control)) THEN

View file

@ -986,6 +986,9 @@ CONTAINS
IF (qs_control%gapw_control%basis_1c /= gapw_1c_orb) THEN
qs_control%gapw_control%eps_svd = MAX(qs_control%gapw_control%eps_svd, 1.E-12_dp)
END IF
! GAPW accurate integration
CALL section_vals_val_get(qs_section, "GAPW_ACCURATE_XCINT", l_val=qs_control%gapw_control%accurate_xcint)
CALL section_vals_val_get(qs_section, "ALPHA_WEIGHTS", r_val=qs_control%gapw_control%aweights)
! Integers grids
CALL section_vals_val_get(qs_section, "PW_GRID", i_val=itmp)
@ -2447,6 +2450,12 @@ CONTAINS
"QS| eps_ppnl:", &
qs_control%eps_ppnl
IF (qs_control%gapw) THEN
IF (qs_control%gapw_control%accurate_xcint) THEN
WRITE (UNIT=output_unit, FMT="(T2,A,T69,F12.6)") &
"QS| GAPW| XC integration using accurate scheme: Ref. exponent =", &
qs_control%gapw_control%aweights
END IF
!
SELECT CASE (qs_control%gapw_control%basis_1c)
CASE (gapw_1c_orb)
WRITE (UNIT=output_unit, FMT="(T2,A)") &

View file

@ -106,6 +106,7 @@ CONTAINS
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r, tau_r
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(xc_derivative_set_type) :: deriv_set
TYPE(xc_rho_set_type) :: rho_set
@ -113,7 +114,7 @@ CONTAINS
NULLIFY (auxbas_pw_pool, pw_env, rho_r, vxc, vxc_tau)
CALL get_qs_env(qs_env, pw_env=pw_env)
CALL get_qs_env(qs_env, pw_env=pw_env, xcint_weights=weights)
CALL pw_env_get(pw_env=pw_env, auxbas_pw_pool=auxbas_pw_pool)
! Get density
CALL qs_rho_get(rho, rho_r=rho_r, tau_r=tau_r)
@ -123,6 +124,7 @@ CONTAINS
rho_r=rho_r, & ! place where derivative is evaluated
tau_r=tau_r, &
pw_pool=auxbas_pw_pool, & ! pool for grids
weights=weights, &
xc_section=xc_section)
! folding of second deriv with density in rho1_set
@ -134,6 +136,7 @@ CONTAINS
rho1_g=rho1_g, & ! density with which to fold
tau1_r=tau1_r, &
pw_pool=auxbas_pw_pool, & ! pool for grids
weights=weights, &
xc_section=xc_section, &
gapw=.FALSE., &
compute_virial=compute_virial, &

View file

@ -1153,6 +1153,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type) :: v_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, rho_r, tau1_r, v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_kpp1_env_type), POINTER :: kpp1_env
TYPE(qs_rho_type), POINTER :: rho, rho_aux
TYPE(section_vals_type), POINTER :: input, xc_section, xc_section_aux
@ -1183,6 +1184,9 @@ CONTAINS
CALL get_qs_env(qs_env, pw_env=pw_env)
CPASSERT(ASSOCIATED(pw_env))
NULLIFY (weights)
CALL get_qs_env(qs_env, xcint_weights=weights)
NULLIFY (auxbas_pw_pool, poisson_env, pw_pools)
! gets the tmp grids
CALL pw_env_get(pw_env=pw_env, &
@ -1230,7 +1234,7 @@ CONTAINS
CALL qs_rho_get(rho_aux, rho_r=rho_r)
ALLOCATE (kpp1_env%deriv_set_admm, kpp1_env%rho_set_admm)
CALL xc_prep_2nd_deriv(kpp1_env%deriv_set_admm, kpp1_env%rho_set_admm, &
rho_r, auxbas_pw_pool, &
rho_r, auxbas_pw_pool, weights, &
xc_section=xc_section_aux)
END IF
END IF

View file

@ -16,6 +16,7 @@
!> \author JGH
! **************************************************************************************************
MODULE energy_corrections
USE accint_weights_forces, ONLY: accint_weight_force
USE admm_dm_methods, ONLY: admm_dm_calc_rho_aux
USE admm_methods, ONLY: admm_mo_calc_rho_aux
USE admm_types, ONLY: admm_type
@ -875,7 +876,7 @@ CONTAINS
TYPE(qs_force_type), DIMENSION(:), POINTER :: force
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho, rho_struct, rho_xc
TYPE(qs_rho_type), POINTER :: rho, rho1, rho_struct, rho_xc
TYPE(section_vals_type), POINTER :: ec_hfx_sections
TYPE(task_list_type), POINTER :: task_list
TYPE(virial_type), POINTER :: virial
@ -1035,6 +1036,24 @@ CONTAINS
CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho_struct, xc_section=ec_env%xc_section, &
vxc_rho=v_rspace, vxc_tau=v_tau_rspace, exc=exc, just_energy=.FALSE.)
IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
IF (debug_stress .AND. use_virial) stdeb = virial%pv_virial
!
NULLIFY (rho1)
CALL accint_weight_force(qs_env, rho_struct, rho1, 0, ec_env%xc_section)
!
IF (debug_forces) THEN
fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
CALL para_env%sum(fodeb)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,3F16.8)") "DEBUG:: Fxc*dw ", fodeb
END IF
IF (debug_stress .AND. use_virial) THEN
stdeb = fconv*(virial%pv_virial - stdeb)
CALL para_env%sum(stdeb)
IF (iounit > 0) WRITE (UNIT=iounit, FMT="(T2,A,T41,2(1X,ES19.11))") &
'STRESS| INT Fxc*dw ', one_third_sum_diag(stdeb), det_3x3(stdeb)
END IF
IF (.NOT. ASSOCIATED(v_rspace)) THEN
ALLOCATE (v_rspace(nspins))
DO ispin = 1, nspins

View file

@ -237,6 +237,21 @@ CONTAINS
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create( &
keyword, __LOCATION__, name="GAPW_ACCURATE_XCINT", &
description="Use a more accurate integration scheme for the soft XC energy in GAPW.", &
usage="GAPW_ACCURATE_XCINT", &
default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create( &
keyword, __LOCATION__, name="ALPHA_WEIGHTS", &
description="Gaussian exponent reference (rc=1.2 Bohr) for accurate integration in GAPW.", &
usage="ALPHA_WEIGHTS 10.0", default_r_val=6.0_dp)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="MIN_PAIR_LIST_RADIUS", &
description="Set the minimum value [Bohr] for the overlap pair list radius."// &
" Default is 0.0 Bohr, negative values are changed to the cell size."// &

View file

@ -46,11 +46,10 @@ MODULE input_cp2k_xc
USE xc_input_constants, ONLY: &
c_pw92, c_pw92dmc, c_pw92vmc, c_pz, c_pzdmc, c_pzvmc, do_vwn3, do_vwn5, ke_lc, ke_llp, &
ke_ol1, ke_ol2, ke_pbe, ke_pw86, ke_pw91, ke_t92, pz_orig, xalpha, xc_b97_3c, &
xc_b97_grimme, xc_b97_mardirossian, xc_b97_orig, xc_debug_new_routine, &
xc_default_f_routine, xc_deriv_collocate, xc_deriv_nn10_smooth, xc_deriv_nn50_smooth, &
xc_deriv_pw, xc_deriv_spline2, xc_deriv_spline2_smooth, xc_deriv_spline3, &
xc_deriv_spline3_smooth, xc_pbe_orig, xc_pbe_rev, xc_pbe_sol, xc_rho_nn10, xc_rho_nn50, &
xc_rho_no_smooth, xc_rho_spline2_smooth, xc_rho_spline3_smooth, xc_test_lsd_f_routine, &
xc_b97_grimme, xc_b97_mardirossian, xc_b97_orig, xc_deriv_collocate, xc_deriv_nn10_smooth, &
xc_deriv_nn50_smooth, xc_deriv_pw, xc_deriv_spline2, xc_deriv_spline2_smooth, &
xc_deriv_spline3, xc_deriv_spline3_smooth, xc_pbe_orig, xc_pbe_rev, xc_pbe_sol, &
xc_rho_nn10, xc_rho_nn50, xc_rho_no_smooth, xc_rho_spline2_smooth, xc_rho_spline3_smooth, &
xgga_b88x, xgga_ev93, xgga_opt, xgga_pbex, xgga_pw86, xgga_pw91, xgga_revpbe
USE xc_libxc, ONLY: libxc_add_sections
#include "./base/base_uses.f90"
@ -1319,19 +1318,6 @@ CONTAINS
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create( &
keyword, __LOCATION__, name="FUNCTIONAL_ROUTINE", &
description="Select the code for xc calculation", &
usage="FUNCTIONAL_ROUTINE (DEFAULT|TEST_LSD|DEBUG)", &
default_i_val=xc_default_f_routine, &
enum_c_vals=s2a("DEFAULT", "TEST_LSD", "DEBUG"), &
enum_i_vals=[xc_default_f_routine, xc_test_lsd_f_routine, xc_debug_new_routine], &
enum_desc=s2a("Carry out exchange-correlation functional calculation", &
"Use test local-spin-density approximation code for exchange-correlation functional calculation", &
"Use debug new code for exchange-correlation functional calculation"))
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL section_create(subsection, __LOCATION__, name="xc_grid", & !FM to do
description="The xc parameters used when calculating the xc on the grid", &
n_keywords=5, n_subsections=0, repeats=.FALSE.)

View file

@ -285,6 +285,7 @@ CONTAINS
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_aux_r, tau1_aux_r, v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho_aux
TYPE(section_vals_type), POINTER :: xc_section
@ -315,7 +316,7 @@ CONTAINS
NULLIFY (v_xc)
! calculate the xc potential
lsd = (nspins == 2)
CALL get_qs_env(qs_env=qs_env, ks_env=ks_env, admm_env=admm_env)
CALL get_qs_env(qs_env=qs_env, ks_env=ks_env, admm_env=admm_env, xcint_weights=weights)
CALL get_admm_env(admm_env, task_list_aux_fit=task_list_aux_fit)
CALL qs_rho_get(p_env%rho1_admm, rho_r=rho1_aux_r, rho_g=rho1_aux_g, tau_r=tau1_aux_r)
@ -323,7 +324,9 @@ CONTAINS
CALL xc_calc_2nd_deriv(v_xc, v_xc_tau, p_env%kpp1_env%deriv_set_admm, &
p_env%kpp1_env%rho_set_admm, &
rho1_aux_r, rho1_aux_g, tau1_aux_r, auxbas_pw_pool, xc_section=xc_section, gapw=.FALSE., &
rho1_aux_r, rho1_aux_g, tau1_aux_r, auxbas_pw_pool, &
weights=weights, &
xc_section=xc_section, gapw=.FALSE., &
compute_virial=calc_virial, virial_xc=virial)
NULLIFY (work_hmat%matrix)

View file

@ -126,6 +126,7 @@ CONTAINS
TYPE(pw_r3d_rs_type) :: v_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, rho_r, tau1_r, v_rspace_new, &
v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_rho_type), POINTER :: perturbed_density, rho
TYPE(section_vals_type), POINTER :: input, xc_section
TYPE(xc_derivative_set_type) :: deriv_set
@ -215,6 +216,7 @@ CONTAINS
CALL get_qs_env(qs_env=qs_env, &
pw_env=pw_env, &
xcint_weights=weights, &
input=input)
! Create the temporary grids
@ -225,7 +227,7 @@ CONTAINS
xc_section => section_vals_get_subs_vals(input, "DFT%XC")
CALL xc_prep_2nd_deriv(deriv_set, rho_set, &
rho_r, auxbas_pw_pool, &
rho_r, auxbas_pw_pool, weights, &
xc_section=xc_section)
! Done with deriv_set and rho_set
@ -252,7 +254,8 @@ CONTAINS
! Calculate the second derivative of the exchange-correlation potential
CALL xc_calc_2nd_deriv(v_xc, v_xc_tau, deriv_set, rho_set, &
rho1_r, rho1_g_pw, tau1_r, auxbas_pw_pool, xc_section, gapw=.FALSE.)
rho1_r, rho1_g_pw, tau1_r, auxbas_pw_pool, &
weights, xc_section, gapw=.FALSE.)
DO ispin = 1, dcdr_env%nspins
v_rspace_new(ispin) = v_xc(ispin)
@ -444,6 +447,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type) :: drho_r_total, v_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: drho_r, dtau_r, rho_r, v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_rho_type), POINTER :: rho
TYPE(section_vals_type), POINTER :: input, xc_section
TYPE(xc_derivative_set_type) :: my_deriv_set
@ -454,6 +458,7 @@ CONTAINS
CALL get_qs_env(qs_env=qs_env, &
pw_env=pw_env, &
input=input, &
xcint_weights=weights, &
rho=rho)
CALL qs_rho_get(rho, rho_ao=rho_ao, rho_r=rho_r)
@ -502,12 +507,13 @@ CONTAINS
! Get the XC potential corresponding to the perturbed density
CALL xc_prep_2nd_deriv(my_deriv_set, my_rho_set, &
rho_r, auxbas_pw_pool, &
rho_r, auxbas_pw_pool, weights, &
xc_section=xc_section)
NULLIFY (dtau_r)
CALL xc_calc_2nd_deriv(v_xc, v_xc_tau, my_deriv_set, my_rho_set, &
drho_r, drho_g, dtau_r, auxbas_pw_pool, xc_section, gapw=.FALSE.)
drho_r, drho_g, dtau_r, auxbas_pw_pool, &
weights, xc_section, gapw=.FALSE.)
IF (ASSOCIATED(v_xc_tau)) CPABORT("Meta functionals are not supported!")
CALL xc_dset_release(my_deriv_set)

View file

@ -605,10 +605,10 @@ CONTAINS
INTEGER, DIMENSION(5) :: occ
LOGICAL :: all_potential_present, be_silent, cneo_potential_present, do_kpoints, do_ri_hfx, &
do_ri_mp2, do_ri_rpa, do_ri_sos_mp2, do_rpa_ri_exx, do_wfc_im_time, e1terms, &
has_unit_metric, lribas, mp2_present, orb_gradient
has_unit_metric, lribas, mp2_present, orb_gradient, paw_atom
REAL(KIND=dp) :: alpha, ccore, ewald_rcut, fxx, maxocc, &
rcut, total_zeff_corr, verlet_skin, &
zeff_correction
rc, rcut, total_zeff_corr, &
verlet_skin, zeff_correction
TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set
TYPE(cp_logger_type), POINTER :: logger
TYPE(dft_control_type), POINTER :: dft_control
@ -1145,6 +1145,7 @@ CONTAINS
IF (dft_control%qs_control%method_id == do_method_xtb) THEN
IF (.NOT. dft_control%qs_control%xtb_control%do_tblite) THEN
! cutoff radius
CALL get_qs_env(qs_env, nkind=nkind)
DO ikind = 1, nkind
qs_kind => qs_kind_set(ikind)
IF (qs_kind%xtb_parameter%defined) THEN
@ -1293,6 +1294,22 @@ CONTAINS
END IF
! NLCC
CALL init_gapw_nlcc(qs_kind_set)
! Accurate XC integration
IF (gapw_control%accurate_xcint) THEN
CPASSERT(.NOT. ASSOCIATED(gapw_control%aw))
CALL get_qs_env(qs_env, nkind=nkind)
ALLOCATE (gapw_control%aw(nkind))
alpha = gapw_control%aweights
DO ikind = 1, nkind
qs_kind => qs_kind_set(ikind)
CALL get_qs_kind(qs_kind, hard_radius=rc, paw_atom=paw_atom)
IF (paw_atom) THEN
gapw_control%aw(ikind) = alpha*(1.2_dp/rc)**2
ELSE
gapw_control%aw(ikind) = 0.0_dp
END IF
END DO
END IF
ELSE IF (dft_control%qs_control%method_id == do_method_lrigpw) THEN
! allocate local ri environment
! nothing to do here?

View file

@ -205,7 +205,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), POINTER :: embed_pot, external_vxc, rho_nlcc, &
spin_embed_pot, v_hartree_rspace, vee, &
vppl
vppl, xcint_weights
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(rho0_mpole_type), POINTER :: rho0_mpole
@ -215,7 +215,7 @@ CONTAINS
NULLIFY (dft_control, cell, ks_env, v_hartree_rspace, auxbas_pw_pool)
NULLIFY (rho0_mpole)
NULLIFY (ewald_env, ewald_pw, new_pw_env, external_vxc, rho_core, rho_nlcc, rho_nlcc_g, vee, vppl, &
embed_pot, spin_embed_pot)
embed_pot, spin_embed_pot, xcint_weights)
CALL get_qs_env(qs_env, ks_env=ks_env, pw_env=new_pw_env)
IF (.NOT. ASSOCIATED(new_pw_env)) THEN
@ -320,6 +320,23 @@ CONTAINS
CALL set_ks_env(ks_env, rho_nlcc_g=rho_nlcc_g)
END IF
! reallocate xcint_weights
IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc) THEN
IF (dft_control%qs_control%gapw_control%accurate_xcint) THEN
CALL set_ks_env(ks_env, exc_accint=.TRUE.)
NULLIFY (xcint_weights)
CALL get_qs_env(qs_env, pw_env=new_pw_env, xcint_weights=xcint_weights)
IF (ASSOCIATED(xcint_weights)) THEN
CALL xcint_weights%release()
ELSE
ALLOCATE (xcint_weights)
END IF
CALL pw_env_get(new_pw_env, auxbas_pw_pool=auxbas_pw_pool)
CALL auxbas_pw_pool%create_pw(xcint_weights)
CALL set_ks_env(ks_env, xcint_weights=xcint_weights)
END IF
END IF
! reallocate vee: external electrostatic potential
IF (dft_control%apply_external_potential .AND. .NOT. qs_env%mimic) THEN
NULLIFY (vee)

View file

@ -401,6 +401,7 @@ CONTAINS
!> \param kinetic ...
!> \param qs_charges ...
!> \param vppl ...
!> \param xcint_weights ...
!> \param rho_core ...
!> \param rho_nlcc ...
!> \param rho_nlcc_g ...
@ -508,7 +509,8 @@ CONTAINS
matrix_p_mp2, matrix_p_mp2_admm, rho, &
rho_xc, pw_env, ewald_env, ewald_pw, active_space, &
mpools, input, para_env, blacs_env, scf_control, rel_control, kinetic, qs_charges, &
vppl, rho_core, rho_nlcc, rho_nlcc_g, ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, &
ks_env, ks_qmmm_env, wf_history, scf_env, local_particles, &
local_molecules, distribution_2d, dbcsr_dist, molecule_kind_set, &
molecule_set, subsys, cp_subsys, oce, local_rho_set, rho_atom_set, &
task_list, task_list_soft, &
@ -572,7 +574,7 @@ CONTAINS
TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, &
POINTER :: kinetic
TYPE(qs_charges_type), OPTIONAL, POINTER :: qs_charges
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl, xcint_weights
TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_core
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: rho_nlcc
TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_nlcc_g
@ -816,6 +818,7 @@ CONTAINS
matrix_s_RI_aux_kp=matrix_s_RI_aux_kp, &
rho=rho, &
rho_xc=rho_xc, &
xcint_weights=xcint_weights, &
rho_core=rho_core, &
rho_nlcc=rho_nlcc, &
rho_nlcc_g=rho_nlcc_g, &

View file

@ -84,17 +84,20 @@ CONTAINS
!> \param rho1_r ...
!> \param tau1_r ...
!> \param xc_section ...
!> \param weights ...
!> \param auxbas_pw_pool ...
!> \param is_triplet ...
!> \param v_xc ...
!> \param v_xc_tau ...
!> \param spinflip ...
! **************************************************************************************************
SUBROUTINE qs_fxc_analytic(rho0, rho1_r, tau1_r, xc_section, auxbas_pw_pool, is_triplet, v_xc, v_xc_tau, spinflip)
SUBROUTINE qs_fxc_analytic(rho0, rho1_r, tau1_r, xc_section, weights, auxbas_pw_pool, &
is_triplet, v_xc, v_xc_tau, spinflip)
TYPE(qs_rho_type), POINTER :: rho0
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, tau1_r
TYPE(section_vals_type), POINTER :: xc_section
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
LOGICAL, INTENT(IN) :: is_triplet
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: v_xc, v_xc_tau
@ -133,11 +136,12 @@ CONTAINS
xc_fun_section => section_vals_get_subs_vals(xc_section, "XC_FUNCTIONAL")
needs = xc_functionals_get_needs(xc_fun_section, lsd, .TRUE.)
! calculate the arguments needed by the functionals and the values of the functional on the grid
CALL xc_prep_2nd_deriv(deriv_set, rho0_set, rho0_r, auxbas_pw_pool, xc_section=xc_section, tau_r=tau0_r)
CALL xc_prep_2nd_deriv(deriv_set, rho0_set, rho0_r, auxbas_pw_pool, weights, &
xc_section=xc_section, tau_r=tau0_r)
! Folds the density rho1 with the functional
CALL xc_calc_2nd_deriv(v_xc, v_xc_tau, deriv_set, rho0_set, rho1_r, rho1_g, tau1_r, &
auxbas_pw_pool, xc_section=xc_section, gapw=.FALSE., do_triplet=is_triplet, &
do_sf=do_sf)
auxbas_pw_pool, weights, xc_section=xc_section, &
gapw=.FALSE., do_triplet=is_triplet, do_sf=do_sf)
CALL xc_dset_release(deriv_set)
CALL xc_rho_set_release(rho0_set)
@ -156,8 +160,8 @@ CONTAINS
!> \param fxc_rho ...
!> \param fxc_tau ...
! **************************************************************************************************
SUBROUTINE qs_fxc_fdiff(ks_env, rho0_struct, rho1_struct, xc_section, accuracy, is_triplet, &
fxc_rho, fxc_tau)
SUBROUTINE qs_fxc_fdiff(ks_env, rho0_struct, rho1_struct, xc_section, accuracy, &
is_triplet, fxc_rho, fxc_tau)
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho0_struct, rho1_struct
@ -288,6 +292,7 @@ CONTAINS
!> \param rho0_struct Ground state density, n(r).
!> \param rho1_struct Density used to fold the functional derivatives, n^(1)(r).
!> \param xc_section ...
!> \param weights ...
!> \param pw_pool ...
!> \param fxc_rho Second functional derivative with respect to the density, n(r).
!> \param fxc_tau mGGA contribution to the second functional derivative with respect to the density.
@ -297,11 +302,12 @@ CONTAINS
!> \par History
!> * 07.2024 Created [LHS]
! **************************************************************************************************
SUBROUTINE qs_fgxc_analytic(rho0_struct, rho1_struct, xc_section, pw_pool, &
SUBROUTINE qs_fgxc_analytic(rho0_struct, rho1_struct, xc_section, weights, pw_pool, &
fxc_rho, fxc_tau, gxc_rho, gxc_tau, spinflip)
TYPE(qs_rho_type), POINTER :: rho0_struct, rho1_struct
TYPE(section_vals_type), POINTER :: xc_section
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(pw_pool_type), POINTER :: pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: fxc_rho, fxc_tau, gxc_rho, gxc_tau
LOGICAL, INTENT(IN), OPTIONAL :: spinflip
@ -387,8 +393,8 @@ CONTAINS
! pw_pool given by the calling subroutine
! xc_section given by the calling subroutine
! tau0_r pw_type calculated by qs_rho_get
CALL xc_prep_3rd_deriv(deriv_set, rho0_set, rho0_r, pw_pool, xc_section, tau_r=tau0_r, &
do_sf=do_sf)
CALL xc_prep_3rd_deriv(deriv_set, rho0_set, rho0_r, pw_pool, weights, &
xc_section, tau_r=tau0_r, do_sf=do_sf)
! Build rho1_set
! Get the values on the gridpoints of the rho1 density
@ -444,6 +450,7 @@ CONTAINS
!> \param accuracy ...
!> \param epsrho ...
!> \param is_triplet ...
!> \param weights ...
!> \param fxc_rho ...
!> \param fxc_tau ...
!> \param gxc_rho ...
@ -451,7 +458,7 @@ CONTAINS
!> \param spinflip ...
! **************************************************************************************************
SUBROUTINE qs_fgxc_gdiff(ks_env, rho0_struct, rho1_struct, xc_section, accuracy, epsrho, &
is_triplet, fxc_rho, fxc_tau, gxc_rho, gxc_tau, spinflip)
is_triplet, weights, fxc_rho, fxc_tau, gxc_rho, gxc_tau, spinflip)
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho0_struct, rho1_struct
@ -459,6 +466,7 @@ CONTAINS
INTEGER, INTENT(IN) :: accuracy
REAL(KIND=dp), INTENT(IN) :: epsrho
LOGICAL, INTENT(IN) :: is_triplet
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: fxc_rho, fxc_tau, gxc_rho, gxc_tau
LOGICAL, OPTIONAL :: spinflip
@ -510,7 +518,8 @@ CONTAINS
IF (do_sf) THEN
CALL qs_rho_get(rho1_struct, rho_r=rho1_r, tau_r=tau1_r)
CALL qs_fxc_analytic(rho0_struct, rho1_r, tau1_r, xc_section, &
auxbas_pw_pool, is_triplet, fxc_rho, fxc_tau, spinflip=do_sf)
weights, auxbas_pw_pool, is_triplet, &
fxc_rho, fxc_tau, spinflip=do_sf)
ELSE
CALL qs_fxc_fdiff(ks_env, rho0_struct, rho1_struct, xc_section, accuracy, is_triplet, &
fxc_rho, fxc_tau)
@ -530,13 +539,13 @@ CONTAINS
IF (do_sf) THEN
! variation in alpha density
CALL qs_fxc_analytic(rhoin, rho1_r, tau1_r, &
xc_section, auxbas_pw_pool, is_triplet, &
xc_section, weights, auxbas_pw_pool, is_triplet, &
vxc00, v_tau_rspace, spinflip=do_sf)
! variation in beta density
CALL qs_rho_copy(rho0_struct, rhoin, auxbas_pw_pool, nspins)
CALL qs_rho_scale_and_add_b(rhoin, rho1_struct, alpha, beta)
CALL qs_fxc_analytic(rhoin, rho1_r, tau1_r, &
xc_section, auxbas_pw_pool, is_triplet, &
xc_section, weights, auxbas_pw_pool, is_triplet, &
vxc00b, v_tau_rspace, spinflip=do_sf)
ELSE
CALL qs_fxc_fdiff(ks_env=ks_env, rho0_struct=rhoin, rho1_struct=rho1_struct, &

View file

@ -92,6 +92,7 @@ CONTAINS
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_ij_r, rho_ij_r2, tau_ij_r, tau_ij_r2
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(section_vals_type), POINTER :: xc_fun_section
CALL timeset(routineN, handle)
@ -102,6 +103,13 @@ CONTAINS
sab_orb => sub_env%sab_orb
nspins = SIZE(sub_env%mos_occ)
NULLIFY (weights)
weights => sub_env%xcint_weights
IF (sub_env%is_split .AND. ASSOCIATED(weights)) THEN
CPABORT("Split communicators and integration weights")
END IF
ELSE
CPASSERT(PRESENT(qs_env))
@ -111,6 +119,9 @@ CONTAINS
sab_orb=sab_orb, &
dft_control=dft_control)
NULLIFY (weights)
CALL get_qs_env(qs_env=qs_env, xcint_weights=weights)
nspins = dft_control%nspins
IF (.NOT. ASSOCIATED(rho_struct_sub)) THEN
@ -154,14 +165,14 @@ CONTAINS
END IF
CALL xc_prep_2nd_deriv(kernel_env%xc_deriv_set, kernel_env%xc_rho_set, rho_ij_r2, &
auxbas_pw_pool, xc_section=xc_section, tau_r=tau_ij_r2)
auxbas_pw_pool, weights, xc_section=xc_section, tau_r=tau_ij_r2)
IF (ASSOCIATED(tau_ij_r)) DEALLOCATE (tau_ij_r2)
DEALLOCATE (rho_ij_r2)
ELSE
CALL xc_prep_2nd_deriv(kernel_env%xc_deriv_set, kernel_env%xc_rho_set, rho_ij_r, &
auxbas_pw_pool, xc_section=xc_section, tau_r=tau_ij_r)
auxbas_pw_pool, weights, xc_section=xc_section, tau_r=tau_ij_r)
END IF
! ++ allocate structure for response density

View file

@ -148,6 +148,7 @@ CONTAINS
TYPE(pw_r3d_rs_type) :: v_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, rho1_r_pw, tau1_r, tau1_r_pw, &
v_rspace_new, v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_rho_type), POINTER :: rho
TYPE(rho_atom_type), DIMENSION(:), POINTER :: rho1_atom_set, rho_atom_set
TYPE(section_vals_type), POINTER :: input, scf_section
@ -273,9 +274,12 @@ CONTAINS
END IF
NULLIFY (weights)
CALL get_qs_env(qs_env, xcint_weights=weights)
CALL xc_calc_2nd_deriv(v_xc, v_xc_tau, p_env%kpp1_env%deriv_set, p_env%kpp1_env%rho_set, &
rho1_r_pw, rho1_g_pw, tau1_r_pw, auxbas_pw_pool, xc_section, .FALSE., &
do_excitations=.TRUE., do_triplet=do_triplet, &
rho1_r_pw, rho1_g_pw, tau1_r_pw, auxbas_pw_pool, weights, &
xc_section, .FALSE., do_excitations=.TRUE., do_triplet=do_triplet, &
compute_virial=calc_virial, virial_xc=virial)
DO ispin = 1, nspins
@ -496,6 +500,7 @@ CONTAINS
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: my_rho_r, my_tau_r, rho_r, tau_r
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_rho_type), POINTER :: rho
TYPE(section_vals_type), POINTER :: admm_xc_section, input, xc_section
@ -507,6 +512,9 @@ CONTAINS
matrix_s=matrix_s, rho=rho, input=input, &
admm_env=admm_env, dft_control=dft_control)
NULLIFY (weights)
CALL get_qs_env(qs_env, xcint_weights=weights)
CALL qs_rho_get(rho, rho_r=rho_r, tau_r=tau_r)
nspins = SIZE(rho_r)
@ -551,7 +559,7 @@ CONTAINS
ALLOCATE (kpp1_env%deriv_set, kpp1_env%rho_set)
CALL xc_prep_2nd_deriv(kpp1_env%deriv_set, kpp1_env%rho_set, &
my_rho_r, auxbas_pw_pool, &
my_rho_r, auxbas_pw_pool, weights, &
xc_section=xc_section, tau_r=my_tau_r)
IF (nspins == 1 .AND. do_triplet) THEN
@ -578,7 +586,7 @@ CONTAINS
CALL qs_rho_get(rho, rho_r=rho_r)
ALLOCATE (kpp1_env%deriv_set_admm, kpp1_env%rho_set_admm)
CALL xc_prep_2nd_deriv(kpp1_env%deriv_set_admm, kpp1_env%rho_set_admm, &
rho_r, auxbas_pw_pool, &
rho_r, auxbas_pw_pool, weights, &
xc_section=admm_xc_section)
END IF
END IF

View file

@ -20,6 +20,7 @@
!> - SCCS implementation (16.10.2013,MK)
! **************************************************************************************************
MODULE qs_ks_methods
USE accint_weights_forces, ONLY: accint_weight_force
USE admm_dm_methods, ONLY: admm_dm_calc_rho_aux,&
admm_dm_merge_ks_matrix
USE admm_methods, ONLY: admm_mo_calc_rho_aux,&
@ -220,7 +221,7 @@ CONTAINS
v_sccs_rspace, v_sic_rspace, v_spin_ddapc_rest_r, vee, vppl_rspace
TYPE(qs_energy_type), POINTER :: energy
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho, rho_struct, rho_xc
TYPE(qs_rho_type), POINTER :: rho, rho1, rho_struct, rho_xc
TYPE(section_vals_type), POINTER :: adiabatic_rescaling_section, &
hfx_sections, input, scf_section, &
xc_section
@ -716,6 +717,23 @@ CONTAINS
v_sic_rspace, v_spin_ddapc_rest_r, v_sccs_rspace, v_rspace_embed, &
cdft_control, calculate_forces)
IF (calculate_forces) THEN
IF (gapw_xc) THEN
CALL get_qs_env(qs_env=qs_env, rho_xc=rho_struct)
ELSE
CALL get_qs_env(qs_env=qs_env, rho=rho_struct)
END IF
NULLIFY (rho1)
CALL accint_weight_force(qs_env, rho_struct, rho1, 0, xc_section)
!
IF (dft_control%do_admm) THEN
CALL get_qs_env(qs_env, admm_env=admm_env)
xc_section => admm_env%xc_section_aux
CALL get_admm_env(admm_env, rho_aux_fit=rho_struct)
CALL accint_weight_force(qs_env, rho_struct, rho1, 0, xc_section)
END IF
END IF
IF (use_virial .AND. calculate_forces) THEN
virial%pv_ehartree = virial%pv_ehartree + (virial%pv_virial - pv_loc)
END IF

View file

@ -140,7 +140,8 @@ MODULE qs_ks_types
rho_changed = .TRUE., &
potential_changed = .TRUE., &
forces_up_to_date = .FALSE., &
complex_ks = .FALSE.
complex_ks = .FALSE., &
exc_accint = .FALSE.
INTEGER :: n_evals = 0
! hartree is supposed to contain the hartree potential (for cube output)
@ -167,6 +168,8 @@ MODULE qs_ks_types
rho_nlcc => Null()
TYPE(pw_c1d_gs_type), POINTER :: rho_nlcc_g => Null()
TYPE(pw_r3d_rs_type), POINTER :: xcint_weights => Null()
TYPE(pw_c1d_gs_type), POINTER :: rho_core => NULL()
TYPE(pw_r3d_rs_type), POINTER :: vee => NULL()
@ -228,6 +231,7 @@ CONTAINS
!> \param v_hartree_rspace ...
!> \param s_mstruct_changed ...
!> \param rho_changed ...
!> \param exc_accint ...
!> \param potential_changed ...
!> \param forces_up_to_date ...
!> \param complex_ks ...
@ -254,6 +258,7 @@ CONTAINS
!> \param rho ...
!> \param rho_xc ...
!> \param vppl ...
!> \param xcint_weights ...
!> \param rho_core ...
!> \param rho_nlcc ...
!> \param rho_nlcc_g ...
@ -313,7 +318,7 @@ CONTAINS
!> \param nelectron_spin ...
! **************************************************************************************************
SUBROUTINE get_ks_env(ks_env, v_hartree_rspace, &
s_mstruct_changed, rho_changed, &
s_mstruct_changed, rho_changed, exc_accint, &
potential_changed, forces_up_to_date, complex_ks, &
matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, &
kinetic, matrix_s, &
@ -321,7 +326,7 @@ CONTAINS
matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
matrix_s_RI_aux_kp, matrix_ks_im_kp, &
rho, rho_xc, &
vppl, rho_core, rho_nlcc, rho_nlcc_g, vee, &
vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, &
neighbor_list_id, &
sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, &
sab_se, sab_xtbe, sab_tbe, sab_core, sab_xb, sab_xtb_pp, sab_xtb_nonbond, &
@ -337,8 +342,8 @@ CONTAINS
TYPE(qs_ks_env_type), INTENT(IN) :: ks_env
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: v_hartree_rspace
LOGICAL, OPTIONAL :: s_mstruct_changed, rho_changed, &
potential_changed, forces_up_to_date, &
complex_ks
exc_accint, potential_changed, &
forces_up_to_date, complex_ks
TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, POINTER :: matrix_h, matrix_h_im, matrix_ks, &
matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_RI_aux, matrix_w, matrix_p_mp2, &
matrix_p_mp2_admm
@ -346,7 +351,7 @@ CONTAINS
matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_RI_aux_kp, &
matrix_ks_im_kp
TYPE(qs_rho_type), OPTIONAL, POINTER :: rho, rho_xc
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl, xcint_weights
TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_core
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: rho_nlcc
TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_nlcc_g
@ -397,6 +402,7 @@ CONTAINS
IF (PRESENT(potential_changed)) potential_changed = ks_env%potential_changed
IF (PRESENT(forces_up_to_date)) forces_up_to_date = ks_env%forces_up_to_date
IF (PRESENT(complex_ks)) complex_ks = ks_env%complex_ks
IF (PRESENT(exc_accint)) exc_accint = ks_env%exc_accint
IF (PRESENT(v_hartree_rspace)) v_hartree_rspace => ks_env%v_hartree_rspace
IF (PRESENT(matrix_ks)) matrix_ks => get_1d_pointer(ks_env%matrix_ks)
@ -423,6 +429,7 @@ CONTAINS
IF (PRESENT(matrix_p_mp2_admm)) matrix_p_mp2_admm => ks_env%matrix_p_mp2_admm
IF (PRESENT(rho)) rho => ks_env%rho
IF (PRESENT(rho_xc)) rho_xc => ks_env%rho_xc
IF (PRESENT(xcint_weights)) xcint_weights => ks_env%xcint_weights
IF (PRESENT(rho_core)) rho_core => ks_env%rho_core
IF (PRESENT(rho_nlcc)) rho_nlcc => ks_env%rho_nlcc
IF (PRESENT(rho_nlcc_g)) rho_nlcc_g => ks_env%rho_nlcc_g
@ -497,6 +504,7 @@ CONTAINS
!> \param v_hartree_rspace ...
!> \param s_mstruct_changed ...
!> \param rho_changed ...
!> \param exc_accint ...
!> \param potential_changed ...
!> \param forces_up_to_date ...
!> \param complex_ks ...
@ -521,6 +529,7 @@ CONTAINS
!> \param matrix_s_RI_aux_kp ...
!> \param matrix_ks_im_kp ...
!> \param vppl ...
!> \param xcint_weights ...
!> \param rho_core ...
!> \param rho_nlcc ...
!> \param rho_nlcc_g ...
@ -559,14 +568,14 @@ CONTAINS
!> \param blacs_env ...
! **************************************************************************************************
SUBROUTINE set_ks_env(ks_env, v_hartree_rspace, &
s_mstruct_changed, rho_changed, &
s_mstruct_changed, rho_changed, exc_accint, &
potential_changed, forces_up_to_date, complex_ks, &
matrix_h, matrix_h_im, matrix_ks, matrix_ks_im, matrix_vxc, &
kinetic, matrix_s, &
matrix_s_RI_aux, matrix_w, matrix_p_mp2, matrix_p_mp2_admm, &
matrix_h_kp, matrix_h_im_kp, matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, &
matrix_s_RI_aux_kp, matrix_ks_im_kp, &
vppl, rho_core, rho_nlcc, rho_nlcc_g, vee, &
vppl, xcint_weights, rho_core, rho_nlcc, rho_nlcc_g, vee, &
neighbor_list_id, &
kpoints, &
sab_orb, sab_all, sac_ae, sac_ppl, sac_lri, sap_ppnl, sap_oce, sab_lrc, &
@ -579,15 +588,15 @@ CONTAINS
TYPE(qs_ks_env_type), INTENT(INOUT) :: ks_env
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: v_hartree_rspace
LOGICAL, OPTIONAL :: s_mstruct_changed, rho_changed, &
potential_changed, forces_up_to_date, &
complex_ks
exc_accint, potential_changed, &
forces_up_to_date, complex_ks
TYPE(dbcsr_p_type), DIMENSION(:), OPTIONAL, POINTER :: matrix_h, matrix_h_im, matrix_ks, &
matrix_ks_im, matrix_vxc, kinetic, matrix_s, matrix_s_RI_aux, matrix_w, matrix_p_mp2, &
matrix_p_mp2_admm
TYPE(dbcsr_p_type), DIMENSION(:, :), OPTIONAL, POINTER :: matrix_h_kp, matrix_h_im_kp, &
matrix_ks_kp, matrix_vxc_kp, kinetic_kp, matrix_s_kp, matrix_w_kp, matrix_s_RI_aux_kp, &
matrix_ks_im_kp
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: vppl, xcint_weights
TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_core
TYPE(pw_r3d_rs_type), OPTIONAL, POINTER :: rho_nlcc
TYPE(pw_c1d_gs_type), OPTIONAL, POINTER :: rho_nlcc_g
@ -614,6 +623,7 @@ CONTAINS
IF (PRESENT(complex_ks)) ks_env%complex_ks = complex_ks
IF (ks_env%s_mstruct_changed .OR. ks_env%potential_changed .OR. ks_env%rho_changed) &
ks_env%forces_up_to_date = .FALSE.
IF (PRESENT(exc_accint)) ks_env%exc_accint = exc_accint
IF (PRESENT(v_hartree_rspace)) ks_env%v_hartree_rspace => v_hartree_rspace
IF (PRESENT(matrix_h)) CALL set_1d_pointer(ks_env%matrix_h, matrix_h)
@ -645,6 +655,7 @@ CONTAINS
IF (PRESENT(matrix_p_mp2)) ks_env%matrix_p_mp2 => matrix_p_mp2
IF (PRESENT(matrix_p_mp2_admm)) ks_env%matrix_p_mp2_admm => matrix_p_mp2_admm
IF (PRESENT(xcint_weights)) ks_env%xcint_weights => xcint_weights
IF (PRESENT(rho_core)) ks_env%rho_core => rho_core
IF (PRESENT(rho_nlcc)) ks_env%rho_nlcc => rho_nlcc
IF (PRESENT(rho_nlcc_g)) ks_env%rho_nlcc_g => rho_nlcc_g
@ -771,6 +782,10 @@ CONTAINS
IF (ASSOCIATED(ks_env%task_list_soft)) &
CALL deallocate_task_list(ks_env%task_list_soft)
IF (ASSOCIATED(ks_env%xcint_weights)) THEN
CALL ks_env%xcint_weights%release()
DEALLOCATE (ks_env%xcint_weights)
END IF
IF (ASSOCIATED(ks_env%rho_nlcc_g)) THEN
CALL ks_env%rho_nlcc_g%release()
DEALLOCATE (ks_env%rho_nlcc_g)
@ -871,6 +886,10 @@ CONTAINS
IF (ASSOCIATED(ks_env%task_list_soft)) &
CALL deallocate_task_list(ks_env%task_list_soft)
IF (ASSOCIATED(ks_env%xcint_weights)) THEN
CALL ks_env%xcint_weights%release()
DEALLOCATE (ks_env%xcint_weights)
END IF
IF (ASSOCIATED(ks_env%rho_nlcc_g)) THEN
CALL ks_env%rho_nlcc_g%release()
DEALLOCATE (ks_env%rho_nlcc_g)

View file

@ -119,7 +119,7 @@ MODULE qs_ks_utils
USE task_list_types, ONLY: task_list_type
USE virial_types, ONLY: virial_type
USE xc, ONLY: xc_exc_calc,&
xc_vxc_pw_create1
xc_vxc_pw_create
#include "./base/base_uses.f90"
IMPLICIT NONE
@ -179,6 +179,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: xc_pw_pool
TYPE(pw_r3d_rs_type) :: work_v_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r, tau, vxc, vxc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho
TYPE(section_vals_type), POINTER :: hfx_section, input, &
@ -215,6 +216,7 @@ CONTAINS
mos=mo_array, &
rho=rho, &
pw_env=pw_env, &
xcint_weights=weights, &
input=input, &
cell=cell, &
virial=virial)
@ -225,6 +227,10 @@ CONTAINS
xc_section => section_vals_get_subs_vals(input, "DFT%XC")
hfx_section => section_vals_get_subs_vals(input, "DFT%XC%HF")
! No accurate integration possible (as there is no GAPW)
IF (ASSOCIATED(weights)) THEN
CALL cp_abort(__LOCATION__, "No accurate xc integration possible.")
END IF
! some assumptions need to be checked
! we have two spins
CPASSERT(SIZE(mo_array, 1) == 2)
@ -350,12 +356,13 @@ CONTAINS
! compute the exchange energies / potential if needed
IF (just_energy) THEN
exc = xc_exc_calc(rho_r=rho_r, rho_g=rho_g, tau=tau, xc_section=xc_section, &
pw_pool=xc_pw_pool)
weights=weights, pw_pool=xc_pw_pool)
ELSE
CPASSERT(.NOT. compute_virial)
CALL xc_vxc_pw_create1(vxc_rho=vxc, rho_r=rho_r, &
rho_g=rho_g, tau=tau, vxc_tau=vxc_tau, exc=exc, xc_section=xc_section, &
pw_pool=xc_pw_pool, compute_virial=.FALSE., virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_rho=vxc, rho_r=rho_r, &
rho_g=rho_g, tau=tau, vxc_tau=vxc_tau, exc=exc, xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=.FALSE., virial_xc=virial_xc_tmp)
END IF
energy%exc = energy%exc + energy_scaling(iterm)*exc
@ -494,6 +501,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: xc_pw_pool
TYPE(pw_r3d_rs_type) :: work_v_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r, tau, vxc, vxc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(pw_r3d_rs_type), TARGET :: orb_rho_r, tmp_r
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho
@ -512,6 +520,7 @@ CONTAINS
mo_derivs=mo_derivs, &
mos=mo_array, &
rho=rho, &
xcint_weights=weights, &
pw_env=pw_env, &
input=input, &
cell=cell, &
@ -685,12 +694,13 @@ CONTAINS
IF (just_energy) THEN
exc = xc_exc_calc(rho_r=rho_r, rho_g=rho_g, tau=tau, xc_section=xc_section, &
pw_pool=xc_pw_pool)
weights=weights, pw_pool=xc_pw_pool)
ELSE
CPASSERT(.NOT. compute_virial)
CALL xc_vxc_pw_create1(vxc_rho=vxc, rho_r=rho_r, &
rho_g=rho_g, tau=tau, vxc_tau=vxc_tau, exc=exc, xc_section=xc_section, &
pw_pool=xc_pw_pool, compute_virial=compute_virial, virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_rho=vxc, rho_r=rho_r, &
rho_g=rho_g, tau=tau, vxc_tau=vxc_tau, exc=exc, xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=compute_virial, virial_xc=virial_xc_tmp)
! add to the existing work_v_rspace
CALL pw_axpy(vxc(1), work_v_rspace, -dft_control%sic_scaling_b*vxc(1)%pw_grid%dvol)
END IF

View file

@ -199,6 +199,7 @@ CONTAINS
TYPE(pw_r3d_rs_type) :: v_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, rho_r, tau1_r, v_rspace_new, &
v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_kpp1_env_type), POINTER :: kpp1_env
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho, rho0, rho1, rho1_xc, rho1a, &
@ -318,7 +319,9 @@ CONTAINS
NULLIFY (v_xc_tau)
IF (deriv2_analytic) THEN
CALL qs_rho_get(rho1a, rho_r=rho1_r, tau_r=tau1_r)
CALL qs_fxc_analytic(rho0, rho1_r, tau1_r, xc_section, auxbas_pw_pool, lr_triplet, v_xc, v_xc_tau)
CALL get_qs_env(qs_env, xcint_weights=weights)
CALL qs_fxc_analytic(rho0, rho1_r, tau1_r, xc_section, weights, auxbas_pw_pool, &
lr_triplet, v_xc, v_xc_tau)
IF (gapw .OR. gapw_xc) THEN
CALL get_qs_env(qs_env, rho_atom_set=rho_atom_set)
rho1_atom_set => p_env%local_rho_set%rho_atom_set
@ -344,12 +347,13 @@ CONTAINS
IF (admm_env%aux_exch_func /= do_admm_aux_exch_func_none) THEN
IF (.NOT. ASSOCIATED(kpp1_env%deriv_set_admm)) THEN
CPASSERT(.NOT. lr_triplet)
CALL get_qs_env(qs_env, xcint_weights=weights)
xc_section_aux => admm_env%xc_section_aux
CALL get_admm_env(qs_env%admm_env, rho_aux_fit=rho_aux)
CALL qs_rho_get(rho_aux, rho_r=rho_r)
ALLOCATE (kpp1_env%deriv_set_admm, kpp1_env%rho_set_admm)
CALL xc_prep_2nd_deriv(kpp1_env%deriv_set_admm, kpp1_env%rho_set_admm, &
rho_r, auxbas_pw_pool, &
rho_r, auxbas_pw_pool, weights, &
xc_section=xc_section_aux)
END IF
END IF
@ -848,6 +852,7 @@ CONTAINS
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_aux_r, tau_pw, v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(rho_atom_type), DIMENSION(:), POINTER :: rho1_atom_set, rho_atom_set
TYPE(section_vals_type), POINTER :: xc_fun_section, xc_section
TYPE(task_list_type), POINTER :: task_list
@ -882,6 +887,9 @@ CONTAINS
CALL get_qs_env(qs_env, admm_env=admm_env)
gapw = admm_env%do_gapw
NULLIFY (weights)
CALL get_qs_env(qs_env=qs_env, xcint_weights=weights)
CALL qs_rho_get(p_env%rho1_admm, rho_r=rho1_aux_r, rho_g=rho1_aux_g)
xc_section => admm_env%xc_section_aux
bo = rho1_aux_r(1)%pw_grid%bounds_local
@ -900,7 +908,7 @@ CONTAINS
section_get_ival(xc_section, "XC_GRID%XC_SMOOTH_RHO"), &
auxbas_pw_pool)
CALL xc_calc_2nd_deriv(v_xc, v_xc_tau, p_env%kpp1_env%deriv_set_admm, p_env%kpp1_env%rho_set_admm, &
rho1_aux_r, rho1_aux_g, tau_pw, auxbas_pw_pool, gapw=.FALSE., &
rho1_aux_r, rho1_aux_g, tau_pw, auxbas_pw_pool, weights, gapw=.FALSE., &
xc_section=xc_section)
IF (ASSOCIATED(v_xc_tau)) THEN
CPABORT("Meta-GGA ADMM functionals not yet supported!")

View file

@ -131,6 +131,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), ALLOCATABLE, DIMENSION(:) :: V_rspace_sub
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_ia_r, rho_ia_r_aux_fit
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(rho_atom_type), DIMENSION(:), POINTER :: rho1_atom_set, rho_atom_set
TYPE(task_list_type), POINTER :: task_list
@ -164,6 +165,9 @@ CONTAINS
rho_r=rho_ia_r_aux_fit)
END IF
NULLIFY (weights)
CALL get_qs_env(qs_env, xcint_weights=weights)
DO ivect = 1, nvects
! Transform TDDFT vectors to AO space and store them into rho_ia_ao
@ -252,6 +256,7 @@ CONTAINS
CALL tddfpt_apply_xc(A_ia_rspace=work_matrices%A_ia_rspace_sub, kernel_env=kernel_env, &
rho_ia_struct=work_matrices%rho_xc_struct_sub, &
is_rks_triplets=is_rks_triplets, pw_env=sub_env%pw_env, &
weights=weights, &
work_v_xc=work_matrices%wpw_rspace_sub, &
work_v_xc_tau=work_matrices%wpw_tau_rspace_sub, &
spinflip=spinflip)
@ -274,6 +279,7 @@ CONTAINS
CALL tddfpt_apply_xc(A_ia_rspace=work_matrices%A_ia_rspace_sub, kernel_env=kernel_env, &
rho_ia_struct=work_matrices%rho_orb_struct_sub, &
is_rks_triplets=is_rks_triplets, pw_env=sub_env%pw_env, &
weights=weights, &
work_v_xc=work_matrices%wpw_rspace_sub, &
work_v_xc_tau=work_matrices%wpw_tau_rspace_sub, &
spinflip=spinflip)
@ -332,6 +338,7 @@ CONTAINS
kernel_env=kernel_env_admm_aux, &
rho_ia_struct=work_matrices%rho_aux_fit_struct_sub, &
is_rks_triplets=is_rks_triplets, pw_env=sub_env%pw_env, &
weights=weights, &
work_v_xc=work_matrices%wpw_rspace_sub, &
work_v_xc_tau=work_matrices%wpw_tau_rspace_sub, &
spinflip=spinflip)
@ -392,6 +399,7 @@ CONTAINS
kernel_env=kernel_env_admm_aux, &
rho_ia_struct=work_matrices%rho_aux_fit_struct_sub, &
is_rks_triplets=is_rks_triplets, pw_env=sub_env%pw_env, &
weights=weights, &
work_v_xc=work_matrices%wpw_rspace_sub, &
work_v_xc_tau=work_matrices%wpw_tau_rspace_sub, &
spinflip=spinflip)

View file

@ -6,6 +6,7 @@
!--------------------------------------------------------------------------------------------------!
MODULE qs_tddfpt2_fhxc_forces
USE accint_weights_forces, ONLY: accint_weight_force
USE admm_methods, ONLY: admm_projection_derivative
USE admm_types, ONLY: admm_type,&
get_admm_env
@ -218,6 +219,7 @@ CONTAINS
TYPE(pw_r3d_rs_type) :: xv_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: fxc_rho, fxc_tau, gxc_rho, gxc_tau, &
rho_r_aux, rhox_r, rhox_r_aux, rhoxx_r
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_force_type), DIMENSION(:), POINTER :: force
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(qs_ks_env_type), POINTER :: ks_env
@ -282,6 +284,7 @@ CONTAINS
END DO
!
CALL get_qs_env(qs_env, ks_env=ks_env, pw_env=pw_env, para_env=para_env)
CALL get_qs_env(qs_env, xcint_weights=weights)
!
NULLIFY (hartree_local, local_rho_set, local_rho_set_admm)
IF (gapw .OR. gapw_xc) THEN
@ -554,13 +557,14 @@ CONTAINS
IF (.NOT. do_sf) THEN
CPABORT("Analytic 3rd EXC derivatives not available")
ELSE !TODO
CALL qs_fgxc_analytic(rho, rhox, xc_section, auxbas_pw_pool, &
CALL get_qs_env(qs_env, xcint_weights=weights)
CALL qs_fgxc_analytic(rho, rhox, xc_section, weights, auxbas_pw_pool, &
fxc_rho, fxc_tau, gxc_rho, gxc_tau, spinflip=do_sf)
END IF
ELSEIF (do_numeric) THEN
IF (do_analytic) THEN
CALL qs_fgxc_gdiff(ks_env, rho, rhox, xc_section, order, eps_delta, is_rks_triplets, &
fxc_rho, fxc_tau, gxc_rho, gxc_tau, spinflip=do_sf)
weights, fxc_rho, fxc_tau, gxc_rho, gxc_tau, spinflip=do_sf)
ELSE
CALL qs_fgxc_create(ks_env, rho, rhox, xc_section, order, is_rks_triplets, &
fxc_rho, fxc_tau, gxc_rho, gxc_tau)
@ -569,12 +573,6 @@ CONTAINS
CPABORT("FHXC forces analytic/numeric")
END IF
! Well, this is a hack :-(
! When qs_rho_set() was called on rhox it assumed ownership of the passed arrays.
! However, these arrays actually belong to ex_env. Hence, we can not call qs_rho_release()
! because this would release the arrays. Instead we're simply going to deallocate rhox.
DEALLOCATE (rhox)
IF (nspins == 2) THEN
DO ispin = 1, nspins
CALL pw_scale(gxc_rho(ispin), 0.5_dp)
@ -644,6 +642,21 @@ CONTAINS
END IF
CALL qs_fgxc_release(ks_env, fxc_rho, fxc_tau, gxc_rho, gxc_tau)
! grid weight contribution to forces
IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
CALL accint_weight_force(qs_env, rho, rhox, 2, xc_section, is_rks_triplets)
IF (debug_forces) THEN
fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
CALL para_env%sum(fodeb)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,3F16.8)") "DEBUG:: Dx*fxc[Dx]*dw", fodeb
END IF
! Well, this is a hack :-(
! When qs_rho_set() was called on rhox it assumed ownership of the passed arrays.
! However, these arrays actually belong to ex_env. Hence, we can not call qs_rho_release()
! because this would release the arrays. Instead we're simply going to deallocate rhox.
DEALLOCATE (rhox)
IF (gapw .OR. gapw_xc) THEN
IF (debug_forces) fodeb(1:3) = force(1)%Vhxc_atom(1:3, 1)
CALL update_ks_atom(qs_env, matrix_fx, matrix_px1, forces=.TRUE., tddft=.TRUE., &
@ -734,7 +747,7 @@ CONTAINS
ELSEIF (do_numeric) THEN
IF (do_analytic) THEN
CALL qs_fgxc_gdiff(ks_env, rho_aux_fit, rhox_aux, xc_section, order, eps_delta, &
is_rks_triplets, fxc_rho, fxc_tau, gxc_rho, gxc_tau)
is_rks_triplets, weights, fxc_rho, fxc_tau, gxc_rho, gxc_tau)
ELSE
CALL qs_fgxc_create(ks_env, rho_aux_fit, rhox_aux, xc_section, &
order, is_rks_triplets, fxc_rho, fxc_tau, gxc_rho, gxc_tau)
@ -743,6 +756,17 @@ CONTAINS
CPABORT("FHXC forces analytic/numeric")
END IF
! grid weight contribution to forces ADMM XC correction term
IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
!
CALL accint_weight_force(qs_env, rho_aux_fit, rhox_aux, 2, xc_section, is_rks_triplets)
!
IF (debug_forces) THEN
fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
CALL para_env%sum(fodeb)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,3F16.8)") "DEBUG:: Dx_admm*fxc[Dx_admm]*dw", fodeb
END IF
! Well, this is a hack :-(
! When qs_rho_set() was called on rhox_aux it assumed ownership of the passed arrays.
! However, these arrays actually belong to ex_env. Hence, we can not call qs_rho_release()

View file

@ -816,6 +816,7 @@ CONTAINS
TYPE(pw_r3d_rs_type) :: v_hartree_rspace
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r, rho_r_aux, rhoz_r_aux, tau_r, &
trho_r, trho_xc_r, v_xc, v_xc_tau
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho, rho_aux_fit, rho_xc, rhoz_aux, trho
@ -960,11 +961,14 @@ CONTAINS
deriv2_analytic = section_get_lval(xc_section, "2ND_DERIV_ANALYTICAL")
IF (deriv2_analytic) THEN
NULLIFY (v_xc, v_xc_tau, tau_r)
CALL get_qs_env(qs_env=qs_env, xcint_weights=weights)
IF (gapw_xc) THEN
CALL get_qs_env(qs_env=qs_env, rho_xc=rho_xc)
CALL qs_fxc_analytic(rho_xc, trho_xc_r, tau_r, xc_section, auxbas_pw_pool, .FALSE., v_xc, v_xc_tau)
CALL qs_fxc_analytic(rho_xc, trho_xc_r, tau_r, xc_section, weights, auxbas_pw_pool, &
.FALSE., v_xc, v_xc_tau)
ELSE
CALL qs_fxc_analytic(rho, trho_r, tau_r, xc_section, auxbas_pw_pool, .FALSE., v_xc, v_xc_tau)
CALL qs_fxc_analytic(rho, trho_r, tau_r, xc_section, weights, auxbas_pw_pool, &
.FALSE., v_xc, v_xc_tau)
END IF
IF (gapw .OR. gapw_xc) THEN
CALL get_qs_env(qs_env, rho_atom_set=rho_atom_set)
@ -1092,8 +1096,10 @@ CONTAINS
NULLIFY (v_xc)
deriv2_analytic = section_get_lval(xc_section, "2ND_DERIV_ANALYTICAL")
IF (deriv2_analytic) THEN
CALL get_qs_env(qs_env=qs_env, xcint_weights=weights)
NULLIFY (tau_r)
CALL qs_fxc_analytic(rho_aux_fit, rhoz_r_aux, tau_r, xc_section, auxbas_pw_pool, .FALSE., v_xc, v_xc_tau)
CALL qs_fxc_analytic(rho_aux_fit, rhoz_r_aux, tau_r, xc_section, weights, auxbas_pw_pool, &
.FALSE., v_xc, v_xc_tau)
ELSE
CPABORT("NYA 00007")
NULLIFY (rhoz_aux)

View file

@ -82,7 +82,8 @@ MODULE qs_tddfpt2_operators
INTEGER, PARAMETER, PRIVATE :: maxspins = 2
PUBLIC :: tddfpt_apply_energy_diff, tddfpt_apply_coulomb, tddfpt_apply_xc, tddfpt_apply_hfx, &
tddfpt_apply_xc_potential, tddfpt_apply_hfxlr_kernel, tddfpt_apply_hfxsr_kernel
tddfpt_apply_xc_potential, tddfpt_apply_hfxlr_kernel, tddfpt_apply_hfxsr_kernel, &
tddfpt_apply_xc_fd
! **************************************************************************************************
@ -282,19 +283,21 @@ CONTAINS
!> \param is_rks_triplets indicates that the triplet excited states calculation using
!> spin-unpolarised molecular orbitals has been requested
!> \param pw_env plain wave environment
!> \param weights ...
!> \param work_v_xc work real-space grid to store the gradient of the exchange-correlation
!> potential with respect to the response density (modified on exit)
!> \param work_v_xc_tau ...
!> \param spinflip ...
! **************************************************************************************************
SUBROUTINE tddfpt_apply_xc(A_ia_rspace, kernel_env, rho_ia_struct, is_rks_triplets, &
pw_env, work_v_xc, work_v_xc_tau, spinflip)
pw_env, weights, work_v_xc, work_v_xc_tau, spinflip)
TYPE(pw_r3d_rs_type), DIMENSION(:), INTENT(INOUT) :: A_ia_rspace
TYPE(full_kernel_env_type), INTENT(IN) :: kernel_env
TYPE(qs_rho_type), POINTER :: rho_ia_struct
LOGICAL, INTENT(in) :: is_rks_triplets
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: work_v_xc, work_v_xc_tau
INTEGER, INTENT(in), OPTIONAL :: spinflip
@ -308,8 +311,8 @@ CONTAINS
CALL tddfpt_apply_xc_analytic(kernel_env, rho_ia_struct, is_rks_triplets, my_spinflip, &
nspins, pw_env, work_v_xc, work_v_xc_tau)
ELSE
CALL tddfpt_apply_xc_fd(kernel_env, rho_ia_struct, is_rks_triplets, nspins, &
pw_env, work_v_xc, work_v_xc_tau)
CALL tddfpt_apply_xc_fd(kernel_env%xc_rho_set, rho_ia_struct, is_rks_triplets, nspins, &
pw_env, kernel_env%xc_section, weights, work_v_xc, work_v_xc_tau)
END IF
DO ispin = 1, nspins
@ -464,65 +467,52 @@ CONTAINS
! **************************************************************************************************
!> \brief Update A_ia_munu by adding exchange-correlation term using finite difference methods.
!> \param kernel_env kernel environment
!> \param rho_ia_struct response density for the given trial vector
!> \param rho_set electron density
!> \param rho1_struct response density for the given trial vector
!> \param is_rks_triplets indicates that the triplet excited states calculation using
!> spin-unpolarised molecular orbitals has been requested
!> \param nspins ...
!> \param pw_env plain wave environment
!> \param work_v_xc work real-space grid to store the gradient of the exchange-correlation
!> \param xc_section ...
!> \param weights ...
!> \param f_xc work real-space grid to store the gradient of the exchange-correlation
!> potential with respect to the response density (modified on exit)
!> \param work_v_xc_tau ...
!> \param f_xc_tau ...
! **************************************************************************************************
SUBROUTINE tddfpt_apply_xc_fd(kernel_env, rho_ia_struct, is_rks_triplets, nspins, &
pw_env, work_v_xc, work_v_xc_tau)
TYPE(full_kernel_env_type), INTENT(in) :: kernel_env
TYPE(qs_rho_type), POINTER :: rho_ia_struct
SUBROUTINE tddfpt_apply_xc_fd(rho_set, rho1_struct, is_rks_triplets, nspins, &
pw_env, xc_section, weights, f_xc, f_xc_tau)
TYPE(xc_rho_set_type), POINTER :: rho_set
TYPE(qs_rho_type), POINTER :: rho1_struct
LOGICAL, INTENT(in) :: is_rks_triplets
INTEGER, INTENT(in) :: nspins
TYPE(pw_env_type), POINTER :: pw_env
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: work_v_xc, work_v_xc_tau
TYPE(section_vals_type), POINTER :: xc_section
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: f_xc, f_xc_tau
CHARACTER(LEN=*), PARAMETER :: routineN = 'tddfpt_apply_xc_fd'
INTEGER :: handle, ispin
LOGICAL :: lsd, singlet, triplet
TYPE(pw_c1d_gs_type), DIMENSION(:), POINTER :: rho1_g
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho1_r, tau1_r
TYPE(xc_rho_set_type), POINTER :: rho_set
CALL timeset(routineN, handle)
CALL qs_rho_get(rho_ia_struct, rho_r=rho1_r, rho_g=rho1_g, tau_r=tau1_r)
CALL qs_rho_get(rho1_struct, rho_r=rho1_r, rho_g=rho1_g, tau_r=tau1_r)
CALL pw_env_get(pw_env, auxbas_pw_pool=auxbas_pw_pool)
DO ispin = 1, nspins
CALL pw_zero(work_v_xc(ispin))
CALL pw_zero(f_xc(ispin))
END DO
rho_set => kernel_env%xc_rho_set
singlet = .FALSE.
triplet = .FALSE.
lsd = .FALSE.
IF (nspins == 1 .AND. .NOT. is_rks_triplets) THEN
singlet = .TRUE.
ELSE IF (nspins == 1 .AND. is_rks_triplets) THEN
triplet = .TRUE.
ELSE IF (nspins == 2) THEN
lsd = .TRUE.
ELSE
CPABORT("illegal options")
END IF
IF (ASSOCIATED(tau1_r)) THEN
DO ispin = 1, nspins
CALL pw_zero(work_v_xc_tau(ispin))
CALL pw_zero(f_xc_tau(ispin))
END DO
END IF
CALL xc_calc_2nd_deriv_numerical(work_v_xc, work_v_xc_tau, rho_set, rho1_r, rho1_g, tau1_r, &
auxbas_pw_pool, kernel_env%xc_section, &
is_rks_triplets)
CALL xc_calc_2nd_deriv_numerical(f_xc, f_xc_tau, rho_set, rho1_r, rho1_g, tau1_r, &
auxbas_pw_pool, weights, xc_section, is_rks_triplets)
CALL timestop(handle)

View file

@ -59,6 +59,7 @@ MODULE qs_tddfpt2_subgroups
USE pw_env_types, ONLY: pw_env_release,&
pw_env_retain,&
pw_env_type
USE pw_types, ONLY: pw_r3d_rs_type
USE qs_environment_types, ONLY: get_qs_env,&
qs_environment_type
USE qs_kind_types, ONLY: get_qs_kind,&
@ -129,6 +130,8 @@ MODULE qs_tddfpt2_subgroups
TYPE(distribution_2d_type), POINTER :: dist_2d => NULL()
!> group-specific plane wave environment
TYPE(pw_env_type), POINTER :: pw_env => NULL()
!> integration weights
TYPE(pw_r3d_rs_type), POINTER :: xcint_weights => Null()
!> lists of neighbours in auxiliary and primary basis sets
TYPE(neighbor_list_set_p_type), &
DIMENSION(:), POINTER :: sab_aux_fit => NULL(), sab_orb => NULL()
@ -196,6 +199,7 @@ CONTAINS
TYPE(mgrid_saved_parameters) :: mgrid_saved
TYPE(mp_para_env_type), POINTER :: para_env_global
TYPE(pw_env_type), POINTER :: pw_env_global
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_control_type), POINTER :: qs_control
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(tddfpt2_control_type), POINTER :: tddfpt_control
@ -220,6 +224,12 @@ CONTAINS
ALLOCATE (sub_env%mos_active(nspins))
NULLIFY (sub_env%admm_A)
CALL get_qs_env(qs_env, xcint_weights=weights)
sub_env%xcint_weights => weights
IF (sub_env%is_split .AND. ASSOCIATED(weights)) THEN
CPABORT('subgroups and integration weights not compatible')
END IF
IF (sub_env%is_split) THEN
ALLOCATE (sub_env%group_distribution(0:para_env_global%num_pe - 1))
@ -295,6 +305,10 @@ CONTAINS
IF (tddfpt_control%mgrid_is_explicit) &
CALL init_tddfpt_mgrid(qs_control, tddfpt_control, mgrid_saved)
IF (ASSOCIATED(weights)) THEN
CPABORT('Redefining MGRID and integration weights not compatible')
END IF
NULLIFY (sub_env%pw_env)
CALL pw_env_create(sub_env%pw_env)

View file

@ -20,7 +20,8 @@ MODULE qs_update_s_mstruct
do_ppl_grid,&
kg_tnadd_embed,&
kg_tnadd_embed_ri
USE kinds, ONLY: default_string_length
USE kinds, ONLY: default_string_length,&
dp
USE pw_methods, ONLY: pw_transfer
USE pw_types, ONLY: pw_c1d_gs_type,&
pw_r3d_rs_type
@ -67,11 +68,13 @@ CONTAINS
CHARACTER(len=*), PARAMETER :: routineN = 'qs_env_update_s_mstruct'
INTEGER :: handle
INTEGER :: handle, nk
LOGICAL :: do_ppl
REAL(KIND=dp) :: wtot
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: cw
TYPE(dft_control_type), POINTER :: dft_control
TYPE(pw_c1d_gs_type), POINTER :: rho_core, rho_nlcc_g
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc, vppl
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc, vppl, xcint_weights
CALL timeset(routineN, handle)
@ -130,6 +133,19 @@ CONTAINS
CALL pw_transfer(rho_nlcc, rho_nlcc_g)
END IF
! compute the xcint_weights
IF (dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc) THEN
IF (dft_control%qs_control%gapw_control%accurate_xcint) THEN
CALL get_qs_env(qs_env, xcint_weights=xcint_weights, nkind=nk)
ALLOCATE (cw(nk))
cw = 1.0_dp
CALL calculate_rho_core(xcint_weights, wtot, qs_env, &
dft_control%qs_control%gapw_control%aw, cw)
xcint_weights%array = 1.0_dp + xcint_weights%array
DEALLOCATE (cw)
END IF
END IF
! allocates and creates the task_list
CALL qs_create_task_list(qs_env)

View file

@ -49,7 +49,7 @@ MODULE qs_vxc
USE virial_types, ONLY: virial_type
USE xc, ONLY: calc_xc_density,&
xc_exc_calc,&
xc_vxc_pw_create1
xc_vxc_pw_create
#include "./base/base_uses.f90"
IMPLICIT NONE
@ -126,7 +126,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool, vdw_pw_pool, xc_pw_pool
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: my_vxc_rho, my_vxc_tau, rho_m_rspace, &
rho_r, rho_struct_r, tau, tau_struct_r
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc, tmp_pw
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc, tmp_pw, weights
TYPE(virial_type), POINTER :: virial
CALL timeset(routineN, handle)
@ -151,6 +151,7 @@ CONTAINS
dft_control=dft_control, &
pw_env=pw_env, &
cell=cell, &
xcint_weights=weights, &
virial=virial, &
rho_nlcc=rho_nlcc, &
rho_nlcc_g=rho_nlcc_g)
@ -252,7 +253,10 @@ CONTAINS
END DO
IF (tau_r_valid) THEN
! tau with finer grids is not implemented (at least not correctly), which this asserts
CPABORT("tau with finer grids not implemented")
CPABORT("Tau (MGGA) with finer grids not implemented")
END IF
IF (ASSOCIATED(weights)) THEN
CPABORT("Accurate integration with finer grids not implemented")
END IF
END IF
@ -272,15 +276,15 @@ CONTAINS
IF (my_just_energy) THEN
exc = xc_exc_calc(rho_r=rho_r, tau=tau, &
rho_g=rho_g, xc_section=xc_section, &
pw_pool=xc_pw_pool)
weights=weights, pw_pool=xc_pw_pool)
ELSE
CALL xc_vxc_pw_create1(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau, exc=exc, &
xc_section=xc_section, &
pw_pool=xc_pw_pool, &
compute_virial=compute_virial, &
virial_xc=virial%pv_xc)
CALL xc_vxc_pw_create(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau, exc=exc, &
xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=compute_virial, &
virial_xc=virial%pv_xc)
END IF
! remove the nlcc densities (keep stuff in original state)
@ -377,16 +381,16 @@ CONTAINS
IF (my_just_energy) THEN
exc_m = xc_exc_calc(rho_r=rho_m_rspace, tau=tau, &
rho_g=rho_m_gspace, xc_section=xc_section, &
pw_pool=xc_pw_pool)
weights=weights, pw_pool=xc_pw_pool)
ELSE
! virial untested
CPASSERT(.NOT. compute_virial)
CALL xc_vxc_pw_create1(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_m_rspace, &
rho_g=rho_m_gspace, tau=tau, exc=exc_m, &
xc_section=xc_section, &
pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_m_rspace, &
rho_g=rho_m_gspace, tau=tau, exc=exc_m, &
xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=virial_xc_tmp)
END IF
exc = exc - dft_control%sic_scaling_b*exc_m
@ -438,16 +442,16 @@ CONTAINS
IF (my_just_energy) THEN
exc_m = xc_exc_calc(rho_r=rho_m_rspace, tau=tau, &
rho_g=rho_m_gspace, xc_section=xc_section, &
pw_pool=xc_pw_pool)
weights=weights, pw_pool=xc_pw_pool)
ELSE
! virial untested
CPASSERT(.NOT. compute_virial)
CALL xc_vxc_pw_create1(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_m_rspace, &
rho_g=rho_m_gspace, tau=tau, exc=exc_m, &
xc_section=xc_section, &
pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_m_rspace, &
rho_g=rho_m_gspace, tau=tau, exc=exc_m, &
xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=virial_xc_tmp)
END IF
exc = exc - dft_control%sic_scaling_b*nelec_spin(ispin)*exc_m
@ -484,16 +488,16 @@ CONTAINS
IF (my_just_energy) THEN
exc_m = xc_exc_calc(rho_r=rho_r, tau=tau, &
rho_g=rho_g, xc_section=xc_section, &
pw_pool=xc_pw_pool)
weights=weights, pw_pool=xc_pw_pool)
ELSE
! virial untested
CPASSERT(.NOT. compute_virial)
CALL xc_vxc_pw_create1(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau, exc=exc_m, &
xc_section=xc_section, &
pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_rho=my_vxc_rho, vxc_tau=my_vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau, exc=exc_m, &
xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=virial_xc_tmp)
END IF
exc = exc + dft_control%sic_scaling_b*exc_m
@ -564,25 +568,27 @@ CONTAINS
!> \param dispersion_env ...
!> \param xc_ener will contain the xc energy density E_xc(r) - V_xc(r)*rho(r)
!> \param xc_den will contain the xc energy density E_xc(r)/rho(r)
!> \param exc will contain the xc energy density E_xc(r)
!> \param vxc ...
!> \param vtau ...
!> \author JGH
! **************************************************************************************************
SUBROUTINE qs_xc_density(ks_env, rho_struct, xc_section, dispersion_env, &
xc_ener, xc_den, vxc, vtau)
xc_ener, xc_den, exc, vxc, vtau)
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho_struct
TYPE(section_vals_type), POINTER :: xc_section
TYPE(qs_dispersion_type), OPTIONAL, POINTER :: dispersion_env
TYPE(pw_r3d_rs_type), INTENT(INOUT), OPTIONAL :: xc_ener, xc_den
TYPE(pw_r3d_rs_type), OPTIONAL :: exc
TYPE(pw_r3d_rs_type), DIMENSION(:), OPTIONAL :: vxc, vtau
CHARACTER(len=*), PARAMETER :: routineN = 'qs_xc_density'
INTEGER :: handle, ispin, myfun, nspins, vdw
LOGICAL :: rho_g_valid, tau_r_valid, uf_grid, vdW_nl
REAL(KIND=dp) :: edisp, exc, factor, rho_cutoff
REAL(KIND=dp) :: edisp, excint, factor, rho_cutoff
REAL(KIND=dp), DIMENSION(3, 3) :: vdum
TYPE(cell_type), POINTER :: cell
TYPE(dft_control_type), POINTER :: dft_control
@ -593,7 +599,7 @@ CONTAINS
TYPE(pw_pool_type), POINTER :: auxbas_pw_pool, vdw_pw_pool, xc_pw_pool
TYPE(pw_r3d_rs_type) :: exc_r
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r, tau_r, vxc_rho, vxc_tau
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc
TYPE(pw_r3d_rs_type), POINTER :: rho_nlcc, weights
CALL timeset(routineN, handle)
@ -601,6 +607,7 @@ CONTAINS
dft_control=dft_control, &
pw_env=pw_env, &
cell=cell, &
xcint_weights=weights, &
rho_nlcc=rho_nlcc, &
rho_nlcc_g=rho_nlcc_g)
@ -637,6 +644,9 @@ CONTAINS
IF (PRESENT(xc_den)) THEN
CALL pw_zero(xc_den)
END IF
IF (PRESENT(exc)) THEN
CALL pw_zero(exc)
END IF
IF (PRESENT(vxc)) THEN
DO ispin = 1, nspins
CALL pw_zero(vxc(ispin))
@ -662,13 +672,13 @@ CONTAINS
END DO
END IF
NULLIFY (vxc_rho, vxc_tau)
CALL xc_vxc_pw_create1(vxc_rho=vxc_rho, vxc_tau=vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau_r, exc=exc, &
xc_section=xc_section, &
pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=vdum, &
exc_r=exc_r)
CALL xc_vxc_pw_create(vxc_rho=vxc_rho, vxc_tau=vxc_tau, rho_r=rho_r, &
rho_g=rho_g, tau=tau_r, exc=excint, &
xc_section=xc_section, &
weights=weights, pw_pool=xc_pw_pool, &
compute_virial=.FALSE., &
virial_xc=vdum, &
exc_r=exc_r)
! calclulate non-local vdW functional
! only if this XC_SECTION has it
! if yes, we use the dispersion_env from ks_env
@ -703,6 +713,9 @@ CONTAINS
CALL pw_multiply(xc_ener, vxc_rho(ispin), rho_r(ispin), alpha=-1.0_dp)
END DO
END IF
IF (PRESENT(exc)) THEN
CALL pw_copy(exc_r, exc)
END IF
IF (PRESENT(vxc)) THEN
DO ispin = 1, nspins
CALL pw_copy(vxc_rho(ispin), vxc(ispin))

View file

@ -100,13 +100,14 @@ CONTAINS
myfun, na, natom, nr, nspins, num_pe
INTEGER, DIMENSION(2, 3) :: bounds
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: donlcc, gradient_f, lsd, nlcc, paw_atom, &
tau_f
REAL(dp) :: density_cut, exc_h, exc_s, gradient_cut, &
LOGICAL :: accint, donlcc, gradient_f, lsd, nlcc, &
paw_atom, tau_f
REAL(dp) :: agr, alpha, density_cut, exc_h, exc_s, &
gradient_cut, &
my_adiabatic_rescale_factor, tau_cut
REAL(dp), DIMENSION(1, 1, 1) :: tau_d
REAL(dp), DIMENSION(1, 1, 1, 1) :: rho_d
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight_h, weight_s
REAL(dp), DIMENSION(:, :, :), POINTER :: rho_h, rho_s, tau_h, tau_s, vtau_h, &
vtau_s, vxc_h, vxc_s
REAL(dp), DIMENSION(:, :, :, :), POINTER :: drho_h, drho_s, vxg_h, vxg_s
@ -159,6 +160,7 @@ CONTAINS
IF (PRESENT(rho_atom_set_external)) my_rho_atom_set => rho_atom_set_external
nlcc = has_nlcc(my_kind_set)
accint = dft_control%qs_control%gapw_control%accurate_xcint
my_xc_section => section_vals_get_subs_vals(input, "DFT%XC")
@ -193,7 +195,7 @@ CONTAINS
exc1 = 0.0_dp
! Nullify some pointers for work-arrays
NULLIFY (rho_h, drho_h, rho_s, drho_s, weight)
NULLIFY (rho_h, drho_h, rho_s, drho_s, weight_h, weight_s)
NULLIFY (vxc_h, vxc_s, vxg_h, vxg_s)
NULLIFY (tau_h, tau_s)
NULLIFY (vtau_h, vtau_s)
@ -220,6 +222,20 @@ CONTAINS
bounds(2, 1) = na
bounds(2, 2) = nr
! set integration weights
IF (accint) THEN
weight_h => grid_atom%weight
ALLOCATE (weight_s(na, nr))
alpha = dft_control%qs_control%gapw_control%aw(ikind)
DO ir = 1, nr
agr = 1.0_dp - EXP(-alpha*grid_atom%rad2(ir))
weight_s(:, ir) = grid_atom%weight(:, ir)*agr
END DO
ELSE
weight_h => grid_atom%weight
weight_s => grid_atom%weight
END IF
! create a place where to put the derivatives
CALL xc_dset_create(deriv_set, local_bounds=bounds)
! create the place where to store the argument for the functionals
@ -234,7 +250,6 @@ CONTAINS
CALL reallocate(rho_h, 1, na, 1, nr, 1, nspins)
CALL reallocate(rho_s, 1, na, 1, nr, 1, nspins)
weight => grid_atom%weight
CALL reallocate(vxc_h, 1, na, 1, nr, 1, nspins)
CALL reallocate(vxc_s, 1, na, 1, nr, 1, nspins)
!
@ -320,7 +335,7 @@ CONTAINS
! hard atom density !
!-------------------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section, rho_set_h, deriv_set, 1, needs, weight, &
CALL vxc_of_r_new(xc_fun_section, rho_set_h, deriv_set, 1, needs, weight_h, &
lsd, na, nr, exc_h, vxc_h, vxg_h, vtau_h, energy_only=energy_only, &
adiabatic_rescale_factor=my_adiabatic_rescale_factor)
rho_atom%exc_h = rho_atom%exc_h + exc_h
@ -329,7 +344,7 @@ CONTAINS
! soft atom density !
!-------------------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section, rho_set_s, deriv_set, 1, needs, weight, &
CALL vxc_of_r_new(xc_fun_section, rho_set_s, deriv_set, 1, needs, weight_s, &
lsd, na, nr, exc_s, vxc_s, vxg_s, vtau_s, energy_only=energy_only, &
adiabatic_rescale_factor=my_adiabatic_rescale_factor)
rho_atom%exc_s = rho_atom%exc_s + exc_s
@ -364,6 +379,9 @@ CONTAINS
CALL xc_dset_release(deriv_set)
CALL xc_rho_set_release(rho_set_h)
CALL xc_rho_set_release(rho_set_s)
IF (accint) THEN
DEALLOCATE (weight_s)
END IF
END DO ! ikind
@ -413,13 +431,13 @@ CONTAINS
nr, nspins, num_pe
INTEGER, DIMENSION(2, 3) :: bounds
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: donlcc, gradient_f, lsd, nlcc, paw_atom, &
tau_f
REAL(dp) :: density_cut, exc_h, exc_s, gradient_cut, &
tau_cut
LOGICAL :: accint, donlcc, gradient_f, lsd, nlcc, &
paw_atom, tau_f
REAL(dp) :: agr, alpha, density_cut, exc_h, exc_s, &
gradient_cut, tau_cut
REAL(dp), DIMENSION(1, 1, 1) :: tau_d
REAL(dp), DIMENSION(1, 1, 1, 1) :: rho_d
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight_h, weight_s
REAL(dp), DIMENSION(:, :, :), POINTER :: rho_h, rho_s, tau_h, tau_s, vtau_h, &
vtau_s, vxc_h, vxc_s
REAL(dp), DIMENSION(:, :, :, :), POINTER :: drho_h, drho_s, vxg_h, vxg_s
@ -463,6 +481,7 @@ CONTAINS
rho_atom_set=my_rho_atom_set)
nlcc = has_nlcc(my_kind_set)
accint = dft_control%qs_control%gapw_control%accurate_xcint
my_xc_section => section_vals_get_subs_vals(input, &
"PROPERTIES%LINRES%EPR%PRINT%G_TENSOR%XC")
@ -498,7 +517,7 @@ CONTAINS
exc1 = 0.0_dp
! Nullify some pointers for work-arrays
NULLIFY (rho_h, drho_h, rho_s, drho_s, weight)
NULLIFY (rho_h, drho_h, rho_s, drho_s, weight_h, weight_s)
NULLIFY (vxc_h, vxc_s, vxg_h, vxg_s)
NULLIFY (tau_h, tau_s)
NULLIFY (vtau_h, vtau_s)
@ -525,6 +544,20 @@ CONTAINS
bounds(2, 1) = na
bounds(2, 2) = nr
! set integration weights
IF (accint) THEN
weight_h => grid_atom%weight
ALLOCATE (weight_s(na, nr))
alpha = dft_control%qs_control%gapw_control%aw(ikind)
DO ir = 1, nr
agr = 1.0_dp - EXP(-alpha*grid_atom%rad2(ir))
weight_s(:, ir) = grid_atom%weight(:, ir)*agr
END DO
ELSE
weight_h => grid_atom%weight
weight_s => grid_atom%weight
END IF
! create a place where to put the derivatives
CALL xc_dset_create(deriv_set, local_bounds=bounds)
! create the place where to store the argument for the functionals
@ -539,7 +572,6 @@ CONTAINS
CALL reallocate(rho_h, 1, na, 1, nr, 1, nspins)
CALL reallocate(rho_s, 1, na, 1, nr, 1, nspins)
weight => grid_atom%weight
CALL reallocate(vxc_h, 1, na, 1, nr, 1, nspins)
CALL reallocate(vxc_s, 1, na, 1, nr, 1, nspins)
!
@ -625,7 +657,7 @@ CONTAINS
! hard atom density !
!-------------------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_epr(xc_fun_section, rho_set_h, deriv_set, needs, weight, &
CALL vxc_of_r_epr(xc_fun_section, rho_set_h, deriv_set, needs, weight_h, &
lsd, na, nr, exc_h, vxc_h, vxg_h, vtau_h)
rho_atom%exc_h = rho_atom%exc_h + exc_h
@ -633,7 +665,7 @@ CONTAINS
! soft atom density !
!-------------------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_epr(xc_fun_section, rho_set_s, deriv_set, needs, weight, &
CALL vxc_of_r_epr(xc_fun_section, rho_set_s, deriv_set, needs, weight_s, &
lsd, na, nr, exc_s, vxc_s, vxg_s, vtau_s)
rho_atom%exc_s = rho_atom%exc_s + exc_s
@ -680,6 +712,9 @@ CONTAINS
CALL xc_dset_release(deriv_set)
CALL xc_rho_set_release(rho_set_h)
CALL xc_rho_set_release(rho_set_s)
IF (accint) THEN
DEALLOCATE (weight_s)
END IF
END DO ! ikind
@ -740,19 +775,21 @@ CONTAINS
INTEGER, DIMENSION(2) :: local_loop_limit
INTEGER, DIMENSION(2, 3) :: bounds
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: gradient_functional, lsd, my_do_sf, &
paw_atom, scale_rho, tau_f
REAL(KIND=dp) :: density_cut, gradient_cut, rtot, tau_cut
LOGICAL :: accint, gradient_functional, lsd, &
my_do_sf, paw_atom, scale_rho, tau_f
REAL(KIND=dp) :: agr, alpha, density_cut, gradient_cut, &
rtot, tau_cut
REAL(KIND=dp), CONTIGUOUS, DIMENSION(:, :, :), &
POINTER :: vxc_h, vxc_s
REAL(KIND=dp), DIMENSION(1, 1, 1) :: rtau
REAL(KIND=dp), DIMENSION(1, 1, 1, 1) :: rrho
REAL(KIND=dp), DIMENSION(:, :), POINTER :: weight
REAL(KIND=dp), DIMENSION(:, :), POINTER :: weight_h, weight_s
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: rho1_h, rho1_s, rho_h, rho_s, tau1_h, &
tau1_s, tau_h, tau_s
REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: drho1_h, drho1_s, drho_h, drho_s, vxg_h, &
vxg_s
TYPE(atomic_kind_type), DIMENSION(:), POINTER :: atomic_kind_set
TYPE(dft_control_type), POINTER :: dft_control
TYPE(grid_atom_type), POINTER :: grid_atom
TYPE(gto_basis_set_type), POINTER :: basis_1c
TYPE(harmonics_atom_type), POINTER :: harmonics
@ -772,13 +809,14 @@ CONTAINS
CALL timeset(routineN, handle)
NULLIFY (qs_kind_set)
NULLIFY (rho_h, rho_s, drho_h, drho_s, weight)
NULLIFY (rho_h, rho_s, drho_h, drho_s, weight_h, weight_s)
NULLIFY (rho1_h, rho1_s, drho1_h, drho1_s)
NULLIFY (vxc_h, vxc_s, vxg_h, vxg_s)
NULLIFY (tau_h, tau_s, tau1_h, tau1_s)
CALL get_qs_env(qs_env=qs_env, &
input=input, &
dft_control=dft_control, &
qs_kind_set=qs_kind_set, &
atomic_kind_set=atomic_kind_set)
@ -788,6 +826,8 @@ CONTAINS
my_kind_set => qs_kind_set
END IF
accint = dft_control%qs_control%gapw_control%accurate_xcint
CALL section_vals_val_get(input, "DFT%LSD", l_val=lsd)
CALL section_vals_val_get(xc_section, "DENSITY_CUTOFF", &
r_val=density_cut)
@ -840,6 +880,20 @@ CONTAINS
nr = grid_atom%nr
na = grid_atom%ng_sphere
! set integration weights
IF (accint) THEN
weight_h => grid_atom%weight
ALLOCATE (weight_s(na, nr))
alpha = dft_control%qs_control%gapw_control%aw(ikind)
DO ir = 1, nr
agr = 1.0_dp - EXP(-alpha*grid_atom%rad2(ir))
weight_s(:, ir) = grid_atom%weight(:, ir)*agr
END DO
ELSE
weight_h => grid_atom%weight
weight_s => grid_atom%weight
END IF
! Array dimension: here anly one dimensional arrays are used,
! i.e. only the first column of deriv_data is read.
! The other to dimensions are set to size equal 1.
@ -877,8 +931,6 @@ CONTAINS
vxc_h = 0.0_dp
vxc_s = 0.0_dp
weight => grid_atom%weight
IF (gradient_functional) THEN
ALLOCATE (drho_h(1:4, 1:na, 1:nr, 1:nspins), drho1_h(1:4, 1:na, 1:nr, 1:nspins), &
drho_s(1:4, 1:na, 1:nr, 1:nspins), drho1_s(1:4, 1:na, 1:nr, 1:nspins))
@ -970,12 +1022,12 @@ CONTAINS
CALL xc_2nd_deriv_of_r(xc_section=xc_section, &
rho_set=rho_set_h, rho1_set=rho1_set_h, &
deriv_set=deriv_set, &
w=weight, vxc=vxc_h, vxg=vxg_h, do_triplet=do_triplet, &
w=weight_h, vxc=vxc_h, vxg=vxg_h, do_triplet=do_triplet, &
do_sf=my_do_sf)
CALL xc_2nd_deriv_of_r(xc_section=xc_section, &
rho_set=rho_set_s, rho1_set=rho1_set_s, &
deriv_set=deriv_set, &
w=weight, vxc=vxc_s, vxg=vxg_s, do_triplet=do_triplet, &
w=weight_s, vxc=vxc_s, vxg=vxg_s, do_triplet=do_triplet, &
do_sf=my_do_sf)
CALL get_rho_atom(rho_atom=rho1_atom, ga_Vlocal_gb_h=int_hh, ga_Vlocal_gb_s=int_ss)
@ -992,7 +1044,6 @@ CONTAINS
END DO
! some cleanup
NULLIFY (weight)
DEALLOCATE (rho_h, rho_s, rho1_h, rho1_s, vxc_h, vxc_s)
DEALLOCATE (drho_h, drho_s, vxg_h, vxg_s)
DEALLOCATE (drho1_h, drho1_s)
@ -1002,6 +1053,9 @@ CONTAINS
CALL xc_rho_set_release(rho1_set_h)
CALL xc_rho_set_release(rho_set_s)
CALL xc_rho_set_release(rho1_set_s)
IF (accint) THEN
DEALLOCATE (weight_s)
END IF
END DO
@ -1039,13 +1093,14 @@ CONTAINS
nr, ns, nspins, nstep, num_pe
INTEGER, DIMENSION(2, 3) :: bounds
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: donlcc, gradient_f, lsd, nlcc, paw_atom, &
tau_f
REAL(dp) :: beta, density_cut, exc_h, exc_s, &
gradient_cut, oeps1, oeps2, tau_cut
LOGICAL :: accint, donlcc, gradient_f, lsd, nlcc, &
paw_atom, tau_f
REAL(dp) :: agr, alpha, beta, density_cut, exc_h, &
exc_s, gradient_cut, oeps1, oeps2, &
tau_cut
REAL(dp), DIMENSION(1, 1, 1) :: tau_d
REAL(dp), DIMENSION(1, 1, 1, 1) :: rho_d
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight_h, weight_s
REAL(dp), DIMENSION(:, :, :), POINTER :: rho0_h, rho0_s, rho1_h, rho1_s, rho_h, &
rho_s, tau0_h, tau0_s, tau1_h, tau1_s, &
tau_h, tau_s, vtau_h, vtau_s, vxc_h, &
@ -1099,6 +1154,8 @@ CONTAINS
xc_fun_section => section_vals_get_subs_vals(xc_section, "XC_FUNCTIONAL")
CALL section_vals_val_get(xc_fun_section, "_SECTION_PARAMETERS_", i_val=myfun)
accint = dft_control%qs_control%gapw_control%accurate_xcint
IF (myfun == xc_none) THEN
! no action needed?
ELSE
@ -1131,6 +1188,20 @@ CONTAINS
nr = grid_atom%nr
na = grid_atom%ng_sphere
! set integration weights
IF (accint) THEN
weight_h => grid_atom%weight
ALLOCATE (weight_s(na, nr))
alpha = dft_control%qs_control%gapw_control%aw(ikind)
DO ir = 1, nr
agr = 1.0_dp - EXP(-alpha*grid_atom%rad2(ikind))
weight_s(:, ir) = grid_atom%weight(:, ir)*agr
END DO
ELSE
weight_h => grid_atom%weight
weight_s => grid_atom%weight
END IF
! Prepare the structures needed to calculate and store the xc derivatives
! Array dimension: here anly one dimensional arrays are used,
@ -1152,8 +1223,6 @@ CONTAINS
CALL xc_rho_set_atom_update(rho_set_h, needs, mspins, bounds)
CALL xc_rho_set_atom_update(rho_set_s, needs, mspins, bounds)
weight => grid_atom%weight
ALLOCATE (rho_h(na, nr, mspins), rho_s(na, nr, mspins), &
rho0_h(na, nr, nspins), rho0_s(na, nr, nspins), &
rho1_h(na, nr, nspins), rho1_s(na, nr, nspins))
@ -1320,7 +1389,7 @@ CONTAINS
! hard atom density !
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section, rho_set_h, deriv_set, 1, needs, weight, &
CALL vxc_of_r_new(xc_fun_section, rho_set_h, deriv_set, 1, needs, weight_h, &
lsd, na, nr, exc_h, vxc_h, vxg_h, vtau_h)
IF (is_triplet) THEN
vxc_h(:, :, 1) = vxc_h(:, :, 1) - vxc_h(:, :, 2)
@ -1333,7 +1402,7 @@ CONTAINS
END IF
! soft atom density !
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section, rho_set_s, deriv_set, 1, needs, weight, &
CALL vxc_of_r_new(xc_fun_section, rho_set_s, deriv_set, 1, needs, weight_s, &
lsd, na, nr, exc_s, vxc_s, vxg_s, vtau_s)
IF (is_triplet) THEN
vxc_s(:, :, 1) = vxc_s(:, :, 1) - vxc_s(:, :, 2)
@ -1399,6 +1468,9 @@ CONTAINS
DEALLOCATE (tau_h, tau_s, tau0_h, tau0_s, tau1_h, tau1_s)
DEALLOCATE (vtau_h, vtau_s)
END IF
IF (accint) THEN
DEALLOCATE (weight_s)
END IF
END DO ! ikind
@ -1439,14 +1511,14 @@ CONTAINS
nr, ns, nspins, nstep, num_pe
INTEGER, DIMENSION(2, 3) :: bounds
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: donlcc, gradient_f, lsd, nlcc, paw_atom, &
tau_f
REAL(dp) :: beta, density_cut, gradient_cut, oeps1, &
tau_cut
LOGICAL :: accint, donlcc, gradient_f, lsd, nlcc, &
paw_atom, tau_f
REAL(dp) :: agr, alpha, beta, density_cut, &
gradient_cut, oeps1, tau_cut
REAL(dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: vxc_h, vxc_s
REAL(dp), DIMENSION(1, 1, 1) :: tau_d
REAL(dp), DIMENSION(1, 1, 1, 1) :: rho_d
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight
REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight_h, weight_s
REAL(dp), DIMENSION(:, :, :), POINTER :: rho0_h, rho0_s, rho1_h, rho1_s, rho_h, &
rho_s, tau0_h, tau0_s, tau1_h, tau1_s, &
tau_h, tau_s, vtau_h, vtau_s
@ -1494,6 +1566,8 @@ CONTAINS
xc_fun_section => section_vals_get_subs_vals(xc_section, "XC_FUNCTIONAL")
CALL section_vals_val_get(xc_fun_section, "_SECTION_PARAMETERS_", i_val=myfun)
accint = dft_control%qs_control%gapw_control%accurate_xcint
IF (myfun == xc_none) THEN
! no action needed?
ELSE
@ -1530,6 +1604,20 @@ CONTAINS
nr = grid_atom%nr
na = grid_atom%ng_sphere
! set integration weights
IF (accint) THEN
weight_h => grid_atom%weight
ALLOCATE (weight_s(na, nr))
alpha = dft_control%qs_control%gapw_control%aw(ikind)
DO ir = 1, nr
agr = 1.0_dp - EXP(-alpha*grid_atom%rad2(ir))
weight_s(:, ir) = grid_atom%weight(:, ir)*agr
END DO
ELSE
weight_h => grid_atom%weight
weight_s => grid_atom%weight
END IF
! Prepare the structures needed to calculate and store the xc derivatives
! Array dimension: here anly one dimensional arrays are used,
@ -1557,8 +1645,6 @@ CONTAINS
CALL xc_rho_set_atom_update(rho1_set_h, needs, mspins, bounds)
CALL xc_rho_set_atom_update(rho1_set_s, needs, mspins, bounds)
weight => grid_atom%weight
ALLOCATE (rho_h(na, nr, nspins), rho_s(na, nr, nspins), &
rho0_h(na, nr, nspins), rho0_s(na, nr, nspins), &
rho1_h(na, nr, nspins), rho1_s(na, nr, nspins))
@ -1717,13 +1803,13 @@ CONTAINS
CALL xc_2nd_deriv_of_r(xc_section=xc_section, &
rho_set=rho_set_h, rho1_set=rho1_set_h, &
deriv_set=deriv_set, &
w=weight, vxc=vxc_h, vxg=vxg_h, do_triplet=is_triplet)
w=weight_h, vxc=vxc_h, vxg=vxg_h, do_triplet=is_triplet)
! soft atom density !
CALL xc_dset_zero_all(deriv_set)
CALL xc_2nd_deriv_of_r(xc_section=xc_section, &
rho_set=rho_set_s, rho1_set=rho1_set_s, &
deriv_set=deriv_set, &
w=weight, vxc=vxc_s, vxg=vxg_s, do_triplet=is_triplet)
w=weight_s, vxc=vxc_s, vxg=vxg_s, do_triplet=is_triplet)
! potentials
DO ns = 1, nspins
fint_hh(ns)%r_coef(:, :) = 0.0_dp
@ -1774,6 +1860,9 @@ CONTAINS
DEALLOCATE (tau_h, tau_s, tau0_h, tau0_s, tau1_h, tau1_s)
DEALLOCATE (vtau_h, vtau_s)
END IF
IF (accint) THEN
DEALLOCATE (weight_s)
END IF
END DO ! ikind

View file

@ -15,6 +15,7 @@
!> \author JGH
! **************************************************************************************************
MODULE response_solver
USE accint_weights_forces, ONLY: accint_weight_force
USE admm_methods, ONLY: admm_projection_derivative
USE admm_types, ONLY: admm_type,&
get_admm_env
@ -136,7 +137,9 @@ MODULE response_solver
USE qs_rho0_methods, ONLY: init_rho0
USE qs_rho_atom_methods, ONLY: allocate_rho_atom_internals,&
calculate_rho_atom_coeff
USE qs_rho_types, ONLY: qs_rho_get,&
USE qs_rho_types, ONLY: qs_rho_create,&
qs_rho_get,&
qs_rho_set,&
qs_rho_type
USE qs_vxc_atom, ONLY: calculate_vxc_atom,&
calculate_xc_2nd_deriv_atom
@ -904,7 +907,7 @@ CONTAINS
TYPE(qs_force_type), DIMENSION(:), POINTER :: force
TYPE(qs_kind_type), DIMENSION(:), POINTER :: qs_kind_set
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho, rho_aux_fit, rho_xc
TYPE(qs_rho_type), POINTER :: rho, rho0, rho1, rho_aux_fit, rho_xc
TYPE(section_vals_type), POINTER :: hfx_section, xc_fun_section, xc_section
TYPE(task_list_type), POINTER :: task_list, task_list_aux_fit
TYPE(virial_type), POINTER :: virial
@ -1291,16 +1294,16 @@ CONTAINS
END IF
CALL auxbas_pw_pool%give_back_pw(rho_tot_gspace_gs)
IF (ASSOCIATED(rho_r_gs)) THEN
DO ispin = 1, nspins
CALL auxbas_pw_pool%give_back_pw(rho_r_gs(ispin))
END DO
DEALLOCATE (rho_r_gs)
DO ispin = 1, nspins
CALL auxbas_pw_pool%give_back_pw(rho_r_gs(ispin))
END DO
DEALLOCATE (rho_r_gs)
END IF
IF (ASSOCIATED(rho_g_gs)) THEN
DO ispin = 1, nspins
CALL auxbas_pw_pool%give_back_pw(rho_g_gs(ispin))
END DO
DEALLOCATE (rho_g_gs)
DO ispin = 1, nspins
CALL auxbas_pw_pool%give_back_pw(rho_g_gs(ispin))
END DO
DEALLOCATE (rho_g_gs)
END IF
END IF !gapw
@ -1439,6 +1442,40 @@ CONTAINS
END DO
END IF
IF (gapw_xc) THEN
CALL get_qs_env(qs_env=qs_env, rho_xc=rho_xc)
ELSE
CALL get_qs_env(qs_env=qs_env, rho=rho)
END IF
IF (dft_control%qs_control%gapw_control%accurate_xcint) THEN
! GAPW Accurate integration
IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
IF (debug_stress .AND. use_virial) stdeb = virial%pv_virial
ALLOCATE (rho1)
CALL qs_rho_create(rho1)
IF (gapw_xc) THEN
CALL get_qs_env(qs_env=qs_env, rho_xc=rho0)
CALL qs_rho_set(rho1, rho_r=rhoz_r_xc, rho_g=rhoz_g_xc)
ELSE
CALL get_qs_env(qs_env=qs_env, rho=rho0)
CALL qs_rho_set(rho1, rho_r=rhoz_r, rho_g=rhoz_g)
END IF
CALL accint_weight_force(qs_env, rho0, rho1, 1, xc_section)
DEALLOCATE (rho1)
IF (debug_forces) THEN
fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
CALL para_env%sum(fodeb)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,3F16.8)") "DEBUG:: Pz*Vxc*dw ", fodeb
END IF
IF (debug_stress .AND. use_virial) THEN
stdeb = fconv*(virial%pv_virial - stdeb)
CALL para_env%sum(stdeb)
IF (iounit > 0) WRITE (UNIT=iounit, FMT="(T2,A,T41,2(1X,ES19.11))") &
'STRESS| INT Pz*dVxc*dw ', one_third_sum_diag(stdeb), det_3x3(stdeb)
END IF
END IF
! Stress-tensor contribution second derivative
! Volume : int v_H[n^z]*n_in
! Volume : int epsilon_xc*n_z
@ -2090,6 +2127,31 @@ CONTAINS
IF (use_virial) THEN
virial%pv_ehartree = virial%pv_ehartree + (virial%pv_virial - pv_loc)
END IF
! GAPW ADMM XC correction integrate weight contribution to force
IF (admm_env%do_gapw) THEN
IF (debug_forces) fodeb(1:3) = force(1)%rho_elec(1:3, 1)
IF (debug_stress .AND. use_virial) stdeb = virial%pv_virial
ALLOCATE (rho1)
CALL qs_rho_create(rho1)
CALL qs_rho_set(rho1, rho_r=rhoz_r_aux, rho_g=rhoz_g_aux)
!
CALL accint_weight_force(qs_env, rho_aux_fit, rho1, 1, xc_section)
!
DEALLOCATE (rho1)
IF (debug_forces) THEN
fodeb(1:3) = force(1)%rho_elec(1:3, 1) - fodeb(1:3)
CALL para_env%sum(fodeb)
IF (iounit > 0) WRITE (iounit, "(T3,A,T33,3F16.8)") "DEBUG:: dKxc*rhoz_admm*dw ", fodeb
END IF
IF (debug_stress .AND. use_virial) THEN
stdeb = fconv*(virial%pv_virial - stdeb)
CALL para_env%sum(stdeb)
IF (iounit > 0) WRITE (UNIT=iounit, FMT="(T2,A,T41,2(1X,ES19.11))") &
'STRESS| dKxc*rhoz_admm*dw', one_third_sum_diag(stdeb), det_3x3(stdeb)
END IF
END IF
! return ADMM response densities and potentials
DO ispin = 1, nspins
CALL auxbas_pw_pool%give_back_pw(v_xc(ispin))
CALL auxbas_pw_pool%give_back_pw(rhoz_r_aux(ispin))

File diff suppressed because it is too large Load diff

View file

@ -76,8 +76,8 @@ CONTAINS
TYPE(xc_rho_set_type), INTENT(IN) :: rho_set
TYPE(xc_derivative_set_type), INTENT(IN) :: deriv_set
INTEGER, INTENT(in) :: deriv_order
TYPE(xc_rho_cflags_type), INTENT(in) :: needs
REAL(dp), DIMENSION(:, :), POINTER :: w
TYPE(xc_rho_cflags_type), INTENT(IN) :: needs
REAL(dp), DIMENSION(:, :), INTENT(IN) :: w
LOGICAL, INTENT(IN) :: lsd
INTEGER, INTENT(in) :: na, nr
REAL(dp) :: exc
@ -298,8 +298,8 @@ CONTAINS
TYPE(section_vals_type), POINTER :: xc_fun_section
TYPE(xc_rho_set_type), INTENT(IN) :: rho_set
TYPE(xc_derivative_set_type), INTENT(IN) :: deriv_set
TYPE(xc_rho_cflags_type), INTENT(in) :: needs
REAL(dp), DIMENSION(:, :), POINTER :: w
TYPE(xc_rho_cflags_type), INTENT(IN) :: needs
REAL(dp), DIMENSION(:, :), INTENT(IN) :: w
LOGICAL, INTENT(IN) :: lsd
INTEGER, INTENT(in) :: na, nr
REAL(dp) :: exc
@ -410,7 +410,7 @@ CONTAINS
TYPE(xc_rho_set_type), INTENT(IN) :: rho_set, rho1_set
TYPE(section_vals_type), POINTER :: xc_section
TYPE(xc_derivative_set_type), INTENT(INOUT) :: deriv_set
REAL(dp), DIMENSION(:, :), POINTER :: w
REAL(dp), DIMENSION(:, :), INTENT(IN) :: w
REAL(dp), CONTIGUOUS, DIMENSION(:, :, :), POINTER :: vxc
REAL(dp), DIMENSION(:, :, :, :), POINTER :: vxg
LOGICAL, INTENT(IN), OPTIONAL :: do_triplet, do_sf
@ -469,7 +469,8 @@ CONTAINS
NULLIFY (vxc_tau_pw)
CALL xc_calc_2nd_deriv_analytical(vxc_pw, vxc_tau_pw, deriv_set, rho_set, rho1_set, pw_pool, &
xc_section, gapw=.TRUE., vxg=vxg, tddfpt_fac=my_fac_triplet, spinflip=do_sf)
xc_section, gapw=.TRUE., vxg=vxg, &
tddfpt_fac=my_fac_triplet, spinflip=do_sf)
DEALLOCATE (vxc_pw)

View file

@ -34,10 +34,6 @@ MODULE xc_input_constants
xc_pbe_rev = 12, &
xc_pbe_sol = 13
INTEGER, PARAMETER, PUBLIC :: xc_default_f_routine = 1, &
xc_test_lsd_f_routine = 2, &
xc_debug_new_routine = 3
INTEGER, PARAMETER, PUBLIC :: xgga_b88 = 101, &
xgga_b88x = 102, &
xgga_pw86 = 103, &

View file

@ -79,7 +79,7 @@ MODULE xc_pot_saop
gaVxcgb_noGC
USE util, ONLY: get_limit
USE virial_types, ONLY: virial_type
USE xc, ONLY: xc_vxc_pw_create1
USE xc, ONLY: xc_vxc_pw_create
USE xc_atom, ONLY: fill_rho_set,&
vxc_of_r_new,&
xc_rho_set_atom_update
@ -152,6 +152,7 @@ CONTAINS
TYPE(pw_r3d_rs_type), ALLOCATABLE, DIMENSION(:) :: vxc_GLLB, vxc_SAOP
TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r, rho_struct_r, tau, vxc_LB, &
vxc_tau, vxc_tmp
TYPE(pw_r3d_rs_type), POINTER :: weights
TYPE(qs_ks_env_type), POINTER :: ks_env
TYPE(qs_rho_type), POINTER :: rho_struct
TYPE(section_vals_type), POINTER :: input, xc_fun_section_orig, &
@ -172,6 +173,7 @@ CONTAINS
CALL get_qs_env(qs_env, &
ks_env=ks_env, &
rho=rho_struct, &
xcint_weights=weights, &
pw_env=pw_env, &
input=input, &
virial=virial, &
@ -248,12 +250,9 @@ CONTAINS
xc_fun_section_tmp)
CPASSERT(.NOT. compute_virial)
! CALL xc_vxc_pw_create(vxc_tmp, vxc_tau, xc_energy, rho_r, rho_g, tau, &
! xc_section_tmp, auxbas_pw_pool, &
! compute_virial=.FALSE., virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create1(vxc_tmp, vxc_tau, rho_r, rho_g, tau, xc_energy, &
xc_section_tmp, auxbas_pw_pool, &
compute_virial=.FALSE., virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_tmp, vxc_tau, xc_energy, rho_r, rho_g, tau, &
xc_section_tmp, weights, auxbas_pw_pool, &
compute_virial=.FALSE., virial_xc=virial_xc_tmp)
CALL section_vals_val_set(xc_fun_section_tmp, "XALPHA%_SECTION_PARAMETERS_", &
l_val=.FALSE.)
@ -261,12 +260,9 @@ CONTAINS
l_val=.TRUE.)
CPASSERT(.NOT. compute_virial)
! CALL xc_vxc_pw_create(vxc_LB, vxc_tau, xc_energy, rho_r, rho_g, tau, &
! xc_section_tmp, auxbas_pw_pool, &
! compute_virial=.FALSE., virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create1(vxc_LB, vxc_tau, rho_r, rho_g, tau, xc_energy, &
xc_section_tmp, auxbas_pw_pool, &
compute_virial=.FALSE., virial_xc=virial_xc_tmp)
CALL xc_vxc_pw_create(vxc_LB, vxc_tau, xc_energy, rho_r, rho_g, tau, &
xc_section_tmp, weights, auxbas_pw_pool, &
compute_virial=.FALSE., virial_xc=virial_xc_tmp)
DO ispin = 1, nspins
CALL pw_axpy(vxc_tmp(ispin), vxc_LB(ispin), alpha)
@ -494,12 +490,11 @@ CONTAINS
INTEGER, DIMENSION(2) :: bo, homo, ncol, nrow
INTEGER, DIMENSION(2, 3) :: bounds
INTEGER, DIMENSION(:), POINTER :: atom_list
LOGICAL :: lsd, paw_atom
LOGICAL :: accint, lsd, paw_atom
REAL(dp), DIMENSION(:, :, :), POINTER :: tau
REAL(KIND=dp) :: density_cut, efac, exc, gradient_cut, &
tau_cut, we_GLLB, we_LB
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: coeff_col
REAL(KIND=dp), DIMENSION(:, :), POINTER :: weight
REAL(KIND=dp) :: agr, alpha, density_cut, efac, exc, &
gradient_cut, tau_cut, we_GLLB, we_LB
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: coeff_col, weight_h, weight_s
REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: dummy, e_uniform, rho_h, rho_s, vtau, &
vxc_GLLB_h, vxc_GLLB_s, vxc_LB_h, vxc_LB_s, vxc_SAOP_h, vxc_SAOP_s, vxc_tmp_h, vxc_tmp_s
REAL(KIND=dp), DIMENSION(:, :, :, :), POINTER :: drho_h, drho_s, vxg
@ -535,7 +530,7 @@ CONTAINS
TYPE(xc_rho_set_type) :: orb_rho_set_h, orb_rho_set_s, rho_set_h, &
rho_set_s
NULLIFY (weight, rho_h, rho_s, vxc_LB_h, vxc_LB_s, vxc_GLLB_h, vxc_GLLB_s, &
NULLIFY (rho_h, rho_s, vxc_LB_h, vxc_LB_s, vxc_GLLB_h, vxc_GLLB_s, &
vxc_tmp_h, vxc_tmp_s, vtau, dummy, e_uniform, drho_h, drho_s, vxg, atom_list, &
atomic_kind_set, qs_kind_set, deriv, atomic_grid, rho_struct_ao, &
harmonics, molecular_orbitals, rho_structure, r_h, r_s, dr_h, dr_s, &
@ -564,6 +559,8 @@ CONTAINS
CALL section_vals_retain(xc_section_orig)
CALL section_vals_duplicate(xc_section_orig, xc_section_tmp)
accint = dft_control%qs_control%gapw_control%accurate_xcint
! [SC] the following code can be traced back to SVN rev. 4296 (git:f97138b) that
! has removed the component 'nspins' from the derived type 'dft_control_type'.
! Is it worth to remove the code below in favour of 'dft_control%nspins'
@ -652,7 +649,7 @@ CONTAINS
CALL xc_rho_set_atom_update(orb_rho_set_s, needs, nspins, bounds)
ALLOCATE (rho_h(1:na, 1:nr, 1:nspins), rho_s(1:na, 1:nr, 1:nspins))
ALLOCATE (weight(1:na, 1:nr))
ALLOCATE (weight_h(1:na, 1:nr), weight_s(1:na, 1:nr))
ALLOCATE (vxc_LB_h(1:na, 1:nr, 1:nspins), vxc_LB_s(1:na, 1:nr, 1:nspins))
ALLOCATE (vxc_GLLB_h(1:na, 1:nr, 1:nspins), vxc_GLLB_s(1:na, 1:nr, 1:nspins))
ALLOCATE (vxc_tmp_h(1:na, 1:nr, 1:nspins), vxc_tmp_s(1:na, 1:nr, 1:nspins))
@ -662,6 +659,23 @@ CONTAINS
! Distribute the atoms of this kind
bo = get_limit(natom, para_env%num_pe, para_env%mepos)
DO ir = 1, nr
DO ia = 1, na
weight_h(ia, ir) = atomic_grid%wr(ir)*atomic_grid%wa(ia)
END DO
IF (accint) THEN
alpha = dft_control%qs_control%gapw_control%aw(ikind)
agr = 1.0_dp - EXP(-alpha*atomic_grid%rad2(ir))
DO ia = 1, na
weight_s(ia, ir) = atomic_grid%wr(ir)*atomic_grid%wa(ia)*agr
END DO
ELSE
DO ia = 1, na
weight_s(ia, ir) = atomic_grid%wr(ir)*atomic_grid%wa(ia)
END DO
END IF
END DO
DO iat = 1, natom !bo(1),bo(2)
iatom = atom_list(iat)
@ -684,11 +698,6 @@ CONTAINS
CALL fill_rho_set(rho_set_h, lsd, nspins, needs, rho_h, drho_h, tau, na, ir)
CALL fill_rho_set(rho_set_s, lsd, nspins, needs, rho_s, drho_s, tau, na, ir)
END DO
DO ir = 1, nr
DO ia = 1, na
weight(ia, ir) = atomic_grid%wr(ir)*atomic_grid%wa(ia)
END DO
END DO
!-----------------------------!
! 1. Slater exchange for LB94 !
@ -708,10 +717,10 @@ CONTAINS
!---------------------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section_tmp, rho_set_h, deriv_set, 1, needs, &
weight, lsd, na, nr, exc, vxc_tmp_h, vxg, vtau)
weight_h, lsd, na, nr, exc, vxc_tmp_h, vxg, vtau)
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section_tmp, rho_set_s, deriv_set, 1, needs, &
weight, lsd, na, nr, exc, vxc_tmp_s, vxg, vtau)
weight_s, lsd, na, nr, exc, vxc_tmp_s, vxg, vtau)
!-------------------------------------------!
! 2. PZ correlation for LB94 and ec_uniform !
@ -726,12 +735,12 @@ CONTAINS
!------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section_tmp, rho_set_h, deriv_set, 1, needs, &
weight, lsd, na, nr, exc, vxc_LB_h, vxg, vtau)
weight_h, lsd, na, nr, exc, vxc_LB_h, vxg, vtau)
vxc_LB_h = vxc_LB_h + alpha*vxc_tmp_h
DO ispin = 1, nspins
dummy => vxc_tmp_h(:, :, ispin:ispin)
CALL add_lb_pot(dummy, rho_set_h, lsd, ispin)
vxc_LB_h(:, :, ispin) = vxc_LB_h(:, :, ispin) - weight(:, :)*vxc_tmp_h(:, :, ispin)
vxc_LB_h(:, :, ispin) = vxc_LB_h(:, :, ispin) - weight_h(:, :)*vxc_tmp_h(:, :, ispin)
END DO
NULLIFY (dummy)
@ -742,7 +751,7 @@ CONTAINS
DO ispin = 1, nspins
dummy => vxc_GLLB_h(:, :, ispin:ispin)
CALL calc_2excpbe(dummy, rho_set_h, e_uniform, lsd)
vxc_GLLB_h(:, :, ispin) = vxc_GLLB_h(:, :, ispin)*weight(:, :)
vxc_GLLB_h(:, :, ispin) = vxc_GLLB_h(:, :, ispin)*weight_h(:, :)
END DO
NULLIFY (deriv, dummy, e_uniform)
@ -751,13 +760,13 @@ CONTAINS
!------!
CALL xc_dset_zero_all(deriv_set)
CALL vxc_of_r_new(xc_fun_section_tmp, rho_set_s, deriv_set, 1, needs, &
weight, lsd, na, nr, exc, vxc_LB_s, vxg, vtau)
weight_s, lsd, na, nr, exc, vxc_LB_s, vxg, vtau)
vxc_LB_s = vxc_LB_s + alpha*vxc_tmp_s
DO ispin = 1, nspins
dummy => vxc_tmp_s(:, :, ispin:ispin)
CALL add_lb_pot(dummy, rho_set_s, lsd, ispin)
vxc_LB_s(:, :, ispin) = vxc_LB_s(:, :, ispin) - weight(:, :)*vxc_tmp_s(:, :, ispin)
vxc_LB_s(:, :, ispin) = vxc_LB_s(:, :, ispin) - weight_s(:, :)*vxc_tmp_s(:, :, ispin)
END DO
NULLIFY (dummy)
@ -768,7 +777,7 @@ CONTAINS
DO ispin = 1, nspins
dummy => vxc_GLLB_s(:, :, ispin:ispin)
CALL calc_2excpbe(dummy, rho_set_s, e_uniform, lsd)
vxc_GLLB_s(:, :, ispin) = vxc_GLLB_s(:, :, ispin)*weight(:, :)
vxc_GLLB_s(:, :, ispin) = vxc_GLLB_s(:, :, ispin)*weight_s(:, :)
END DO
NULLIFY (deriv, dummy, e_uniform)
@ -848,16 +857,16 @@ CONTAINS
DO ia = 1, na
IF (rho_set_h%rhoa(ia, ir, 1) > rho_set_h%rho_cutoff) &
vxc_GLLB_h(ia, ir, 1) = vxc_GLLB_h(ia, ir, 1) + &
weight(ia, ir)*vxc_tmp_h(ia, ir, 1)/rho_set_h%rhoa(ia, ir, 1)
weight_h(ia, ir)*vxc_tmp_h(ia, ir, 1)/rho_set_h%rhoa(ia, ir, 1)
IF (rho_set_h%rhob(ia, ir, 1) > rho_set_h%rho_cutoff) &
vxc_GLLB_h(ia, ir, 2) = vxc_GLLB_h(ia, ir, 2) + &
weight(ia, ir)*vxc_tmp_h(ia, ir, 2)/rho_set_h%rhob(ia, ir, 1)
weight_h(ia, ir)*vxc_tmp_h(ia, ir, 2)/rho_set_h%rhob(ia, ir, 1)
IF (rho_set_s%rhoa(ia, ir, 1) > rho_set_s%rho_cutoff) &
vxc_GLLB_s(ia, ir, 1) = vxc_GLLB_s(ia, ir, 1) + &
weight(ia, ir)*vxc_tmp_s(ia, ir, 1)/rho_set_s%rhoa(ia, ir, 1)
weight_s(ia, ir)*vxc_tmp_s(ia, ir, 1)/rho_set_s%rhoa(ia, ir, 1)
IF (rho_set_s%rhob(ia, ir, 1) > rho_set_s%rho_cutoff) &
vxc_GLLB_s(ia, ir, 2) = vxc_GLLB_s(ia, ir, 2) + &
weight(ia, ir)*vxc_tmp_s(ia, ir, 2)/rho_set_s%rhob(ia, ir, 1)
weight_s(ia, ir)*vxc_tmp_s(ia, ir, 2)/rho_set_s%rhob(ia, ir, 1)
END DO
END DO
ELSE
@ -865,10 +874,10 @@ CONTAINS
DO ia = 1, na
IF (rho_set_h%rho(ia, ir, 1) > rho_set_h%rho_cutoff) &
vxc_GLLB_h(ia, ir, 1) = vxc_GLLB_h(ia, ir, 1) + &
weight(ia, ir)*vxc_tmp_h(ia, ir, 1)/rho_set_h%rho(ia, ir, 1)
weight_h(ia, ir)*vxc_tmp_h(ia, ir, 1)/rho_set_h%rho(ia, ir, 1)
IF (rho_set_s%rho(ia, ir, 1) > rho_set_s%rho_cutoff) &
vxc_GLLB_s(ia, ir, 1) = vxc_GLLB_s(ia, ir, 1) + &
weight(ia, ir)*vxc_tmp_s(ia, ir, 1)/rho_set_s%rho(ia, ir, 1)
weight_s(ia, ir)*vxc_tmp_s(ia, ir, 1)/rho_set_s%rho(ia, ir, 1)
END DO
END DO
END IF
@ -1009,7 +1018,7 @@ CONTAINS
END DO
DEALLOCATE (rho_h, rho_s, weight)
DEALLOCATE (rho_h, rho_s, weight_h, weight_s)
DEALLOCATE (vxc_LB_h, vxc_LB_s)
DEALLOCATE (vxc_GLLB_h, vxc_GLLB_s)
DEALLOCATE (vxc_tmp_h, vxc_tmp_s)

View file

@ -55,8 +55,6 @@ CONTAINS
CALL section_vals_val_get(xc_fun_section, "_SECTION_PARAMETERS_", i_val=myfun)
IF (myfun /= xc_none) THEN
!check if FUNCTIONAL_ROUTINE keyword present
CALL xc_functionals_expand(xc_fun_section, xc_section)
ifun = 0
DO

View file

@ -0,0 +1,46 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT "Ar"
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME "BASIS_SET"
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
REL_CUTOFF 40
&END MGRID
&PRINT
&DERIVATIVES
&END DERIVATIVES
&END PRINT
&QS
FORCE_PAW
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-8
SCF_GUESS atomic
&END SCF
&XC
&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
&END CELL
&COORD
Ar 0.100000 0.120000 0.110000
&END COORD
&KIND Ar
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q8
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,46 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT "Ar"
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
REL_CUTOFF 40
&END MGRID
&PRINT
&DERIVATIVES
&END DERIVATIVES
&END PRINT
&QS
FORCE_PAW
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-8
SCF_GUESS atomic
&END SCF
&XC
&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
&END CELL
&COORD
Ar 0.100000 0.120000 0.110000
&END COORD
&KIND Ar
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q8
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,46 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT "Ar"
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
REL_CUTOFF 40
&END MGRID
&PRINT
&DERIVATIVES
&END DERIVATIVES
&END PRINT
&QS
FORCE_PAW
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-8
SCF_GUESS atomic
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
&END CELL
&COORD
Ar 0.100000 0.120000 0.110000
&END COORD
&KIND Ar
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q8
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,46 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT "Ar"
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
REL_CUTOFF 40
&END MGRID
&PRINT
&DERIVATIVES
&END DERIVATIVES
&END PRINT
&QS
FORCE_PAW
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-8
SCF_GUESS atomic
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
&END CELL
&COORD
Ar 0.100000 0.120000 0.110000
&END COORD
&KIND Ar
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q8
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,61 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT F2
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
CHECK_ATOM_FORCE 2 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH F
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME "BASIS_SET"
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 240
REL_CUTOFF 50
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
F 0.000000 0.000000 0.530000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND F
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q7
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,67 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-12
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET TZVPP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET TZVPP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,67 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-12
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,70 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-12
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&XC_GRID
XC_DERIV NN50_SMOOTH
&END XC_GRID
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET TZVPP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET TZVPP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,61 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL TPSS
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,70 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_ae
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET ORB SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,81 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&EFIELD
&END EFIELD
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
ALPHA_WEIGHTS 6.0
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-12
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,74 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL TPSS
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,75 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 2 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-12
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,77 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_ae
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET ORB SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET ORB SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,82 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET ORB DZVP-MOLOPT-GGA-GTH-q1
BASIS_SET AUX_FIT pfit3
POTENTIAL GTH-GGA-q1
&END KIND
&KIND F
BASIS_SET ORB DZVP-MOLOPT-GGA-GTH-q7
BASIS_SET AUX_FIT pfit3
POTENTIAL GTH-GGA-q7
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,77 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_ae
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET ORB SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET ORB SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,22 @@
#
"Ar-1.inp" = [{matcher="E_total", tol=1e-12, ref=-21.04944198733016}]
"Ar-2.inp" = [{matcher="E_total", tol=1e-12, ref=-21.04944239056047}]
"Ar-3.inp" = [{matcher="E_total", tol=1e-12, ref=-21.13848179618906}]
"Ar-4.inp" = [{matcher="E_total", tol=1e-12, ref=-21.13848219953337}]
#
"HF-1.inp" = [{matcher="E_total", tol=1e-12, ref=-100.3509709548997}]
"HF-2.inp" = [{matcher="E_total", tol=1e-12, ref=-100.1363374234943}]
"HF-3.inp" = [{matcher="E_total", tol=1e-12, ref=-100.3509805804002}]
"HF-4.inp" = [{matcher="E_total", tol=1e-12, ref=-100.2328561104310}]
"HF-5.inp" = [{matcher="E_total", tol=1e-12, ref=-100.1323241157565}]
#
"HF-d1.inp" = []
"HF-d2.inp" = []
"HF-d3.inp" = []
"HF-d4.inp" = []
"HF-d5.inp" = []
"HF-d6.inp" = []
#
"F2.inp" = []
"h2o.inp" = [{matcher="E_total", tol=1e-12, ref=-17.26044915752584}]
#EOF

View file

@ -0,0 +1,55 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT h2o
RUN_TYPE ENERGY_FORCE
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME "BASIS_SET"
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&PRINT
&DERIVATIVES
&END DERIVATIVES
&END PRINT
&QS
ALPHA_WEIGHTS 6.5
EPS_DEFAULT 1.0E-10
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,77 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT
BASIS_SET_FILE_NAME BASIS_ADMM
POTENTIAL_FILE_NAME NLCC_POTENTIALS
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET ORB DZVP-MOLOPT-SR-GTH
BASIS_SET AUX_FIT pfit3
POTENTIAL GTH-NLCC-PBE-q1
&END KIND
&KIND F
BASIS_SET ORB DZVP-MOLOPT-SR-GTH
BASIS_SET AUX_FIT pfit3
POTENTIAL GTH-NLCC-PBE-q7
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,81 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.001
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&ENERGY_CORRECTION
ENERGY_FUNCTIONAL DCDFT
HARRIS_BASIS ORBITAL
&RESPONSE_SOLVER
EPS 1.E-8
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL TPSS
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,81 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&ENERGY_CORRECTION
ENERGY_FUNCTIONAL DCDFT
HARRIS_BASIS ORBITAL
&RESPONSE_SOLVER
EPS 1.E-8
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,77 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.001
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&ENERGY_CORRECTION
DEBUG_EXTERNAL_METHOD T
ENERGY_FUNCTIONAL EXTERNAL
&RESPONSE_SOLVER
EPS 1.E-8
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&END ENERGY_CORRECTION
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,87 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT N2
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DEBUG_FORCES T
DEBUG_STRESS_TENSOR F
DX 0.001
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&ENERGY_CORRECTION
DEBUG_FORCES
ENERGY_FUNCTIONAL DCDFT
&RESPONSE_SOLVER
EPS 1.0E-08
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL TPSS
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 200
REL_CUTOFF 50
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 100
SCF_GUESS ATOMIC
&OT
LINESEARCH ADAPT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&HF
&END HF
&XC_FUNCTIONAL NONE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.650000
N 0.000000 0.000000 -0.650000
&END COORD
&KIND N
BASIS_SET ORB DZVP-MOLOPT-GGA-GTH-q5
BASIS_SET AUX_FIT admm-dzp-q5
POTENTIAL GTH-GGA-q5
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,88 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT N2
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DEBUG_FORCES T
DEBUG_STRESS_TENSOR F
DX 0.001
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&ENERGY_CORRECTION
ADMM
DEBUG_FORCES
ENERGY_FUNCTIONAL DCDFT
&RESPONSE_SOLVER
EPS 1.0E-08
METHOD MO_SOLVER
PRECONDITIONER FULL_SINGLE_INVERSE
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL TPSS
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 200
REL_CUTOFF 50
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 100
SCF_GUESS ATOMIC
&OT
LINESEARCH ADAPT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&HF
&END HF
&XC_FUNCTIONAL NONE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.650000
N 0.000000 0.000000 -0.650000
&END COORD
&KIND N
BASIS_SET ORB DZVP-MOLOPT-GGA-GTH-q5
BASIS_SET AUX_FIT admm-dzp-q5
POTENTIAL GTH-GGA-q5
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,77 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT N2
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DEBUG_FORCES T
DEBUG_STRESS_TENSOR F
DX 0.0002
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_ADMM_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&ENERGY_CORRECTION
DEBUG_FORCES
ENERGY_FUNCTIONAL DCDFT
&RESPONSE_SOLVER
EPS 1.0E-08
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 300
REL_CUTOFF 60
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 100
SCF_GUESS ATOMIC
&OT
LINESEARCH ADAPT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.650000
N 0.000000 0.000000 -0.650000
&END COORD
&KIND N
BASIS_SET ORB admm-dzp-q5
POTENTIAL GTH-GGA-q5
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,79 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT N2
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DEBUG_FORCES T
DEBUG_STRESS_TENSOR F
DX 0.001
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_ADMM_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&ENERGY_CORRECTION
DEBUG_FORCES
ENERGY_FUNCTIONAL DCDFT
&RESPONSE_SOLVER
EPS 1.0E-08
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 200
REL_CUTOFF 50
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 100
SCF_GUESS ATOMIC
&OT
LINESEARCH ADAPT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&END SCF
&XC
&HF
&END HF
&XC_FUNCTIONAL NONE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES ON
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.650000
N 0.000000 0.000000 -0.650000
&END COORD
&KIND N
BASIS_SET ORB admm-dzp-q5
POTENTIAL GTH-GGA-q5
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,73 @@
&GLOBAL
PRINT_LEVEL MEDIUM
PROJECT HF-nlcc
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.0002
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT
POTENTIAL_FILE_NAME NLCC_POTENTIALS
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
ALPHA_WEIGHTS 6.0
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 8
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 8
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET ORB SZV-MOLOPT-SR-GTH
POTENTIAL GTH-NLCC-PBE-q1
&END KIND
&KIND F
BASIS_SET ORB SZV-MOLOPT-SR-GTH
POTENTIAL GTH-NLCC-PBE-q7
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,92 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT HF
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.001
DEBUG_FORCES .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
LSD
POTENTIAL_FILE_NAME POTENTIAL_UZH
&ENERGY_CORRECTION
ENERGY_FUNCTIONAL DCDFT
HARRIS_BASIS ORBITAL
&RESPONSE_SOLVER
EPS 1.E-8
METHOD MO_SOLVER
PRECONDITIONER FULL_ALL
&END RESPONSE_SOLVER
&XC
&XC_FUNCTIONAL
&MGGA_C_TPSS
&END MGGA_C_TPSS
&MGGA_X_TPSS
&END MGGA_X_TPSS
&END XC_FUNCTIONAL
&END XC
&END ENERGY_CORRECTION
&MGRID
CUTOFF 240
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 10
SCF_GUESS atomic
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
STEPSIZE 0.05
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PRINT
&FORCES
&END FORCES
&END PRINT
&SUBSYS
&CELL
ABC 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
H 0.000000 0.000000 0.470000
F 0.000000 0.000000 -0.510000
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND F
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,20 @@
#
"HF-nlcc.inp" = []
"HF-admm-nlcc.inp" = []
#
"h2o_p1.inp" = [{matcher="M087", tol=1e-05, ref=0.161404623690E+02}]
"h2o_p2.inp" = [{matcher="M087", tol=1e-05, ref=19.2915637877}]
"h2o_p3.inp" = [{matcher="M060", tol=1e-05, ref=0.73496007721}]
"h2o_p4.inp" = [{matcher="M060", tol=1e-05, ref=0.713322848135}]
"h2o_p5.inp" = [{matcher="M087", tol=1e-05, ref=0.210113376796E+02}]
#
"HF-ec1.inp" = []
"HF-ec2.inp" = []
"HF-ec3.inp" = []
"HF-ec4.inp" = []
"HF-ec5.inp" = []
"HF-ec6.inp" = []
"HF-ec7.inp" = []
#
"HF-uf1.inp" = []
#EOF

View file

@ -0,0 +1,88 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2Op
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
DE 0.002
DEBUG_DIPOLE .FALSE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
EPS_NO_ERROR_CHECK 5.e-5
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
&EFIELD
&END EFIELD
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.e-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&LINRES
EPS 1.e-10
PRECONDITIONER FULL_ALL
&POLAR
DO_RAMAN T
PERIODIC_DIPOLE_OPERATOR F
&END POLAR
&END LINRES
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZV-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,90 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2Op
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
DE 0.002
DEBUG_DIPOLE .FALSE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
EPS_NO_ERROR_CHECK 5.e-5
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&EFIELD
&END EFIELD
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.e-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&LINRES
EPS 1.e-8
PRECONDITIONER FULL_ALL
&POLAR
DO_RAMAN T
PERIODIC_DIPOLE_OPERATOR F
&END POLAR
&END LINRES
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,87 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2Op
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME ALL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL_UZH
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.e-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&HF
&MEMORY
MAX_MEMORY 256
&END MEMORY
&SCREENING
EPS_SCHWARZ 1.E-6
&END SCREENING
&END HF
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&LINRES
EPS 1.e-10
PRECONDITIONER FULL_ALL
&POLAR
DO_RAMAN T
PERIODIC_DIPOLE_OPERATOR F
&END POLAR
&END LINRES
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET SVP-MOLOPT-GGA-ae
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,89 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2Op
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_ae
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&EFIELD
&END EFIELD
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.e-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&LINRES
EPS 1.e-10
PRECONDITIONER FULL_ALL
&POLAR
DO_RAMAN T
PERIODIC_DIPOLE_OPERATOR F
&END POLAR
&END LINRES
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.5 4.5 4.5
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET SVP-MOLOPT-GGA-ae
BASIS_SET AUX_FIT admm-1
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,99 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2Op
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
DE 0.002
DEBUG_DIPOLE .FALSE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .TRUE.
DEBUG_STRESS_TENSOR .FALSE.
EPS_NO_ERROR_CHECK 5.e-5
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_MOLOPT_UZH
BASIS_SET_FILE_NAME BASIS_ADMM_UZH
POTENTIAL_FILE_NAME POTENTIAL_UZH
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC PBEX
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&EFIELD
&END EFIELD
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.e-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL Pade
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&LINRES
EPS 1.e-10
PRECONDITIONER FULL_ALL
&POLAR
DO_RAMAN T
PERIODIC_DIPOLE_OPERATOR F
&END POLAR
&END LINRES
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET TZVP-MOLOPT-GGA-GTH-q1
BASIS_SET AUX_FIT admm-dzp-q1
POTENTIAL GTH-GGA-q1
&END KIND
&KIND O
BASIS_SET TZVP-MOLOPT-GGA-GTH-q6
BASIS_SET AUX_FIT admm-dzp-q6
POTENTIAL GTH-GGA-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,92 @@
##REFERENCE##
# To get close to the reference you need a larger box, stricter convergence and
# better converged integrals
#
# PBE
# HF Energy -76.3600550759
#
# Excited State 1: Singlet-B1 7.0944 eV 174.76 nm f=0.0271 <S**2>=0.000
# 5 -> 6 0.70668
# Excited State 2: Singlet-A2 8.9854 eV 137.98 nm f=0.0000 <S**2>=0.000
# 5 -> 7 0.70699
# Excited State 3: Singlet-A1 9.3872 eV 132.08 nm f=0.0899 <S**2>=0.000
# 4 -> 6 0.70208
#
# PBE0
# HF Energy -76.3624232785
#
# Excited State 1: Singlet-B1 7.7365 eV 160.26 nm f=0.0285 <S**2>=0.000
# 5 -> 6 0.70657
# Excited State 2: Singlet-A2 9.6344 eV 128.69 nm f=0.0000 <S**2>=0.000
# 5 -> 7 0.70484
# Excited State 3: Singlet-A1 10.0954 eV 122.81 nm f=0.0955 <S**2>=0.000
# 4 -> 6 0.70276
#############
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 300
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,78 @@
#
# PBE ENERGY : -76.3600550759
# TDA Triplets
# Excited State 1: Triplet-B1 6.5020 eV 190.69 nm f=0.0000 <S**2>=2.000
# 5 -> 6 0.70683
# Excited State 2: Triplet-A1 8.5315 eV 145.32 nm f=0.0000 <S**2>=2.000
# 4 -> 6 0.70572
# Excited State 3: Triplet-A2 8.5956 eV 144.24 nm f=0.0000 <S**2>=2.000
# 5 -> 7 0.70664
#
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
RKS_TRIPLETS T
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 0.117226 H2O
H 0.000000 -0.757136 -0.468906 H2O
H 0.000000 0.757136 -0.468906 H2O
&END COORD
&KIND H
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,85 @@
##REFERENCE##
#
# PBE
# HF Energy -76.3600550759
#
# Excited State 1: Singlet-B1 7.0944 eV 174.76 nm f=0.0271 <S**2>=0.000
# 5 -> 6 0.70668
# Excited State 2: Singlet-A2 8.9854 eV 137.98 nm f=0.0000 <S**2>=0.000
# 5 -> 7 0.70699
# Excited State 3: Singlet-A1 9.3872 eV 132.08 nm f=0.0899 <S**2>=0.000
# 4 -> 6 0.70208
#
# PBE0
# HF Energy -76.3624232785
#
# Excited State 1: Singlet-B1 7.7365 eV 160.26 nm f=0.0285 <S**2>=0.000
# 5 -> 6 0.70657
# Excited State 2: Singlet-A2 9.6344 eV 128.69 nm f=0.0000 <S**2>=0.000
# 5 -> 7 0.70484
# Excited State 3: Singlet-A1 10.0954 eV 122.81 nm f=0.0955 <S**2>=0.000
# 4 -> 6 0.70276
#############
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,93 @@
##REFERENCE##
#
# PBE
# HF Energy -76.3600550759
#
# Excited State 1: Singlet-B1 7.0944 eV 174.76 nm f=0.0271 <S**2>=0.000
# 5 -> 6 0.70668
# Excited State 2: Singlet-A2 8.9854 eV 137.98 nm f=0.0000 <S**2>=0.000
# 5 -> 7 0.70699
# Excited State 3: Singlet-A1 9.3872 eV 132.08 nm f=0.0899 <S**2>=0.000
# 4 -> 6 0.70208
#
# PBE0
# HF Energy -76.3624232785
#
# Excited State 1: Singlet-B1 7.7365 eV 160.26 nm f=0.0285 <S**2>=0.000
# 5 -> 6 0.70657
# Excited State 2: Singlet-A2 9.6344 eV 128.69 nm f=0.0000 <S**2>=0.000
# 5 -> 7 0.70484
# Excited State 3: Singlet-A1 10.0954 eV 122.81 nm f=0.0955 <S**2>=0.000
# 4 -> 6 0.70276
#############
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
METHOD basis_projection
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
##ADMM_KERNEL_CORRECTION_SYMMETRIC
NSTATES 3
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB 6-311Gxx
BASIS_SET AUX_FIT 3-21Gx
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET ORB 6-311Gxx
BASIS_SET AUX_FIT 3-21Gx
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,80 @@
# References GPW
#
# 1 8.25275 eV
# 2 10.24447 eV
# 3 10.44004 eV
#
# References GAPW
# 1 8.27031 eV
# 2 10.28919 eV
# 3 10.46240 eV
#
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW_XC
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
NGRIDS 4
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,69 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
NGRIDS 4
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET ORB 6-311Gxx
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,72 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
METHOD basis_projection
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 200
NGRIDS 4
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB 6-311Gxx
BASIS_SET AUX_FIT 3-21Gx
POTENTIAL ALL
&END KIND
&KIND O
BASIS_SET ORB 6-311Gxx
BASIS_SET AUX_FIT 3-21Gx
POTENTIAL ALL
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,82 @@
# References GPW
# 1 8.25275 eV
# 2 10.24447 eV
# 3 10.44004 eV
#
# References GAPW
# 1 8.27031 eV
# 2 10.28919 eV
# 3 10.46240 eV
#
# References GAPW
# 1 8.27117 eV
# 2 10.29085 eV
# 3 10.46211 eV
#
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW_XC
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 400
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,73 @@
# References GAPW
# 1 11.27853 eV
# 2 13.39715 eV
# 3 13.46784 eV
#
#
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW_XC
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 400
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,79 @@
# References GAPW
# 1 11.71610 eV
# 2 13.74523 eV
# 3 13.81581 eV
#
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW_XC
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD none
EXCH_CORRECTION_FUNC NONE
METHOD basis_projection
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 320
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB DZVP-GTH-PADE
BASIS_SET AUX_FIT SZV-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET ORB DZVP-GTH-PADE
BASIS_SET AUX_FIT SZV-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,81 @@
# References GAPW
# 1 11.71610 eV
# 2 13.74523 eV
# 3 13.81581 eV
#
&GLOBAL
PRINT_LEVEL LOW
PROJECT H2O_GAPW_XC
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME POTENTIAL
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD none
EXCH_CORRECTION_FUNC NONE
METHOD basis_projection
&END AUXILIARY_DENSITY_MATRIX_METHOD
&MGRID
CUTOFF 200
NGRIDS 4
REL_CUTOFF 40
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&QS
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
MAX_SCF 40
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 10
NSTATES 3
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 5.0 5.0 5.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587 H2O
H 0.000000 -0.757136 0.520545 H2O
H 0.000000 0.757136 0.520545 H2O
&END COORD
&KIND H
BASIS_SET ORB DZVP-GTH-PADE
BASIS_SET AUX_FIT SZV-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET ORB DZVP-GTH-PADE
BASIS_SET AUX_FIT SZV-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,77 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT Ne
RUN_TYPE ENERGY
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME EMSL_BASIS_SETS
BASIS_SET_FILE_NAME basis
POTENTIAL_FILE_NAME POTENTIAL
&MGRID
CUTOFF 200
REL_CUTOFF 80
&END MGRID
&POISSON
PERIODIC NONE
PSOLVER MT
&END POISSON
&QS
EPS_DEFAULT 1.0E-17
EPS_PGF_ORB 1.0E-20
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS RESTART
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
2ND_DERIV_ANALYTICAL T
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE 1.0e-5
MAX_ITER 10
MAX_KV 60
NSTATES 1
RKS_TRIPLETS T
&DIPOLE_MOMENTS
DIPOLE_FORM LENGTH
&END DIPOLE_MOMENTS
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
2ND_DERIV_ANALYTICAL T
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
Ne 2.5 2.5 2.5
&END COORD
&KIND Ne
BASIS_SET Ahlrichs-def2-SVP
POTENTIAL ALL
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,19 @@
# runs are executed in the same order as in this file
# the second field tells which test should be run in order to compare with the last available output
# e.g. 0 means do not compare anything, running is enough
# 1 compares the last total energy in the file
# for details see cp2k/tools/do_regtest
#
"H2O_GAPW_1.inp" = [{matcher="M037", tol=4.0E-06, ref=0.549263E+00}]
"H2O_GAPW_2.inp" = [{matcher="M037", tol=4.0E-06, ref=0.591112E+00}]
"H2O_GAPW_3.inp" = [{matcher="M037", tol=4.0E-06, ref=0.609537E+00}]
"H2O_GAPW_4.inp" = [{matcher="M037", tol=4.0E-06, ref=0.619726E+00}]
"H2O_GAPW_5.inp" = [{matcher="M037", tol=4.0E-06, ref=0.549152E+00}]
"H2O_GAPW_6.inp" = [{matcher="M037", tol=4.0E-06, ref=0.609537E+00}]
"H2O_GAPW_XC_1.inp" = [{matcher="M037", tol=4.0E-06, ref=0.619753E+00}]
"H2O_GAPW_XC_2.inp" = [{matcher="M037", tol=4.0E-06, ref=0.812844E+00}]
"H2O_GAPW_XC_3.inp" = [{matcher="M037", tol=4.0E-06, ref=0.845355E+00}]
"H2O_GAPW_XC_4.inp" = [{matcher="M037", tol=4.0E-06, ref=0.845366E+00}]
"H2O_GAPW_1_triplet.inp" = [{matcher="M037", tol=4.0E-06, ref=0.509938E+00}]
"Ne_GAPW_triplet.inp" = [{matcher="M037", tol=4.0E-06, ref=0.166970E+01}]
#EOF

View file

@ -0,0 +1,15 @@
#
"h2o_dip40.inp" = []
"h2o_dip41.inp" = []
"h2o_dip42.inp" = []
"ch2o_dip45.inp" = []
"ch2o_dip46.inp" = []
"ch2o_dip47.inp" = []
"ch2o_dip48.inp" = []
"h2o_xc_dip40.inp" = []
"h2o_xc_dip41.inp" = []
"h2o_xc_dip42.inp" = []
"ch2o_xc_dip45.inp" = []
"ch2o_xc_dip46.inp" = []
"ch2o_xc_dip47.inp" = []
#EOF

View file

@ -0,0 +1,104 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-6
KERNEL FULL
MAX_ITER 50
NSTATES 1
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 0.895642
C 0.000000 0.000000 -0.307326
H 0.000000 0.947608 -0.895642
H 0.000000 -0.947608 -0.895562
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND C
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q4
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,100 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-6
KERNEL FULL
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 0.895642
C 0.000000 0.000000 -0.307326
H 0.000000 0.947608 -0.895642
H 0.000000 -0.947608 -0.895562
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND C
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q4
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,103 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
BASIS_SET_FILE_NAME BASIS_ADMM
POTENTIAL_FILE_NAME GTH_POTENTIALS
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
ADMM_KERNEL_CORRECTION_SYMMETRIC
CONVERGENCE [eV] 1.0E-8
KERNEL FULL
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,104 @@
&GLOBAL
PRINT_LEVEL low
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
BASIS_SET_FILE_NAME BASIS_ADMM
POTENTIAL_FILE_NAME GTH_POTENTIALS
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC DEFAULT_LIBXC
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
ADMM_KERNEL_CORRECTION_SYMMETRIC
ADMM_KERNEL_XC_CORRECTION F
CONVERGENCE [eV] 1.0E-8
KERNEL FULL
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,104 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-6
KERNEL FULL
MAX_ITER 50
NSTATES 1
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 0.895642
C 0.000000 0.000000 -0.307326
H 0.000000 0.947608 -0.895642
H 0.000000 -0.947608 -0.895562
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND C
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q4
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,100 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-6
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-6
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-6
KERNEL FULL
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 0.895642
C 0.000000 0.000000 -0.307326
H 0.000000 0.947608 -0.895642
H 0.000000 -0.947608 -0.895562
&END COORD
&KIND H
BASIS_SET DZV-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND C
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q4
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,103 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.0005
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
BASIS_SET_FILE_NAME BASIS_ADMM
POTENTIAL_FILE_NAME GTH_POTENTIALS
&AUXILIARY_DENSITY_MATRIX_METHOD
ADMM_PURIFICATION_METHOD NONE
EXCH_CORRECTION_FUNC NONE
EXCH_SCALING_MODEL NONE
METHOD BASIS_PROJECTION
&END AUXILIARY_DENSITY_MATRIX_METHOD
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 10
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 10
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE0
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
ADMM_KERNEL_CORRECTION_SYMMETRIC
CONVERGENCE [eV] 1.0E-8
KERNEL FULL
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
BASIS_SET AUX_FIT FIT3
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,94 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-7
KERNEL NONE
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,98 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-8
KERNEL FULL
MAX_ITER 50
NSTATES 1
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,99 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-7
KERNEL FULL
MAX_ITER 50
NSTATES 1
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.00000 0.00000 0.11779
H 0.00000 0.75545 -0.47116
H 0.00000 -0.75545 -0.47116
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,94 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-7
KERNEL NONE
MAX_ITER 50
NSTATES 1
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,98 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.002
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW_XC
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_ALL
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-7
KERNEL FULL
MAX_ITER 50
NSTATES 1
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.065587
H 0.000000 -0.757136 0.520545
H 0.000000 0.757136 0.520545
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,99 @@
&GLOBAL
PRINT_LEVEL medium
PROJECT td_dipole
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_DIPOLE_DIRS Z
DE 0.001
DEBUG_DIPOLE .TRUE.
DEBUG_FORCES .FALSE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
&END DEBUG
&FORCE_EVAL
METHOD Quickstep
&DFT
BASIS_SET_FILE_NAME BASIS_SET
POTENTIAL_FILE_NAME GTH_POTENTIALS
&EFIELD
&END EFIELD
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 200
&END MGRID
&POISSON
PERIODIC NONE
POISSON_SOLVER MT
&END POISSON
&PRINT
&MOMENTS ON
PERIODIC .FALSE.
REFERENCE COM
&END MOMENTS
&END PRINT
&QS
EPS_DEFAULT 1.0E-10
GAPW_ACCURATE_XCINT T
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
SCF_GUESS ATOMIC
&OT
MINIMIZER DIIS
PRECONDITIONER FULL_SINGLE_INVERSE
STEPSIZE 0.1
&END OT
&OUTER_SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&END OUTER_SCF
&END SCF
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0E-7
KERNEL FULL
MAX_ITER 50
NSTATES 1
&XC
&XC_FUNCTIONAL PBE
&END XC_FUNCTIONAL
&END XC
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC [angstrom] 4.0 4.0 4.0
PERIODIC NONE
&END CELL
&COORD
O 0.00000 0.00000 0.11779
H 0.00000 0.75545 -0.47116
H 0.00000 -0.75545 -0.47116
&END COORD
&KIND H
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q1
&END KIND
&KIND O
BASIS_SET DZVP-GTH-PADE
POTENTIAL GTH-PADE-q6
&END KIND
&TOPOLOGY
&CENTER_COORDINATES
&END CENTER_COORDINATES
&END TOPOLOGY
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,31 @@
# runs are executed in the same order as in this file
# the second field tells which test should be run in order to compare with the last available output
# e.g. 0 means do not compare anything, running is enough
# 1 compares the last total energy in the file
# for details see cp2k/tools/do_regtest
"h2o_f01.inp" = [{matcher="M037", tol=1.0E-4, ref=0.138486E+00}]
"h2o_f01_coulomb_only.inp" = [{matcher="M037", tol=1.0E-4, ref=1.012588E+00}]
"h2o_f01_pbe_gapwxc.inp" = [{matcher="M037", tol=1.0E-4, ref=0.138495E+00}]
"h2o_f01_pbe.inp" = [{matcher="M037", tol=1.0E-4, ref=0.141293E+00}]
"h2o_f02_coulomb_only.inp" = [{matcher="M037", tol=1.0E-4, ref=0.202091E+00}]
"h2o_t01.inp" = []
"h2o_t02.inp" = []
"h2o_t03.inp" = []
"h2o_t04.inp" = []
"h2o_t05.inp" = []
"h2o_t06.inp" = []
"h2o_t07.inp" = []
"h2o_t08.inp" = []
"h2o_t09.inp" = []
"h2o_t10.inp" = []
"h2o_t11.inp" = []
"h2o_t12.inp" = []
#
"bnt1.inp" = []
"bnt2.inp" = []
"bnt3.inp" = []
#
"ft1.inp" = []
"ft2.inp" = []
"ft3.inp" = []
#EOF

View file

@ -0,0 +1,83 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT bn_test
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.001
DEBUG_DIPOLE .FALSE.
DEBUG_FORCES .TRUE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD QS
&DFT
BASIS_SET_FILE_NAME GTH_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL_UZH
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 240
REL_CUTOFF 60
&END MGRID
&QS
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-10
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.E-6
MAX_SCF 30
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0e-8
KERNEL FULL
MAX_ITER 50
NSTATES 1
RKS_TRIPLETS F
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 5.00 5.00 5.00
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.737566
B 0.000000 0.000000 -0.567357
H 0.000000 1.056538 -1.163089
H -0.000000 -1.056538 -1.163089
&END COORD
&KIND H
BASIS_SET DZV-GTH
POTENTIAL GTH-GGA-q1
&END KIND
&KIND B
BASIS_SET DZVP-GTH
POTENTIAL GTH-GGA-q3
&END KIND
&KIND N
BASIS_SET DZVP-GTH
POTENTIAL GTH-GGA-q5
&END KIND
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,84 @@
&GLOBAL
PRINT_LEVEL LOW
PROJECT bn_test
RUN_TYPE DEBUG
&END GLOBAL
&DEBUG
CHECK_ATOM_FORCE 1 z
DE 0.001
DEBUG_DIPOLE .FALSE.
DEBUG_FORCES .TRUE.
DEBUG_POLARIZABILITY .FALSE.
DEBUG_STRESS_TENSOR .FALSE.
STOP_ON_MISMATCH T
&END DEBUG
&FORCE_EVAL
METHOD QS
&DFT
BASIS_SET_FILE_NAME GTH_BASIS_SETS
POTENTIAL_FILE_NAME POTENTIAL_UZH
&EXCITED_STATES T
DEBUG_FORCES T
STATE 1
&END EXCITED_STATES
&MGRID
CUTOFF 240
REL_CUTOFF 60
&END MGRID
&QS
EPSFIT 1.E-4
EPSISO 1.E-12
EPSRHO0 1.E-6
EPS_DEFAULT 1.E-10
FORCE_PAW
GAPW_1C_BASIS EXT_SMALL
GAPW_ACCURATE_XCINT T
LMAXN0 4
METHOD GAPW
&END QS
&SCF
EPS_SCF 1.E-6
MAX_SCF 30
SCF_GUESS ATOMIC
&END SCF
&XC
&XC_FUNCTIONAL PADE
&END XC_FUNCTIONAL
&END XC
&END DFT
&PROPERTIES
&TDDFPT
CONVERGENCE [eV] 1.0e-8
KERNEL FULL
MAX_ITER 50
NSTATES 1
RKS_TRIPLETS F
&END TDDFPT
&END PROPERTIES
&SUBSYS
&CELL
ABC 5.00 5.00 5.00
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.737566
B 0.000000 0.000000 -0.567357
H 0.000000 1.056538 -1.163089
H -0.000000 -1.056538 -1.163089
&END COORD
&KIND H
BASIS_SET DZV-GTH
POTENTIAL GTH-GGA-q1
&END KIND
&KIND B
BASIS_SET DZVP-GTH
POTENTIAL GTH-GGA-q3
&END KIND
&KIND N
BASIS_SET DZVP-GTH
POTENTIAL GTH-GGA-q5
&END KIND
&END SUBSYS
&END FORCE_EVAL

Some files were not shown because too many files have changed in this diff Show more