Tsunami effects (1): Analytical gradients for semiempirical methods. Nuclear gradients

are since now on computed analytically. Also the value of the integral for the limiting
case of two atoms aligned in the z direction is computed EXACTLY without performing
the limit. The old situation can be restored disablign the keyword ANALYTICAL_GRADIENTS in the
SE section.
New regtests. Resetting few qm/mm SE because of the use of analytical expressions.
waiting for the next wave...


svn-origin-rev: 5930
This commit is contained in:
Teodoro Laino 2007-04-11 08:49:00 +00:00
parent 732a4af3c1
commit 2fde0d45ab
46 changed files with 2846 additions and 151 deletions

View file

@ -19,9 +19,9 @@
MODULE cp_control_types
USE cp_fm_types, ONLY: cp_fm_p_type,&
cp_fm_release
USE kinds, ONLY: dp,&
default_path_length,&
default_string_length
USE kinds, ONLY: default_path_length,&
default_string_length,&
dp
USE qs_loc_control, ONLY: localized_wfn_control_create,&
localized_wfn_control_release,&
localized_wfn_control_type
@ -57,7 +57,7 @@ MODULE cp_control_types
!------------------------------------------------------------------------------!
! Control parameters for semi empirical calculations
TYPE semi_empirical_control_type
LOGICAL :: orthogonal_basis
LOGICAL :: orthogonal_basis, analytical_gradients
REAL(KIND = dp) :: delta
REAL(KIND = dp) :: rc_interaction
REAL(KIND = dp) :: rc_coulomb
@ -444,7 +444,7 @@ END SUBROUTINE ddapc_control_retain
!! SOURCE
!!*** **********************************************************************
SUBROUTINE becke_control_create(becke_control,error)
TYPE(becke_constraint_type), POINTER :: becke_control
TYPE(becke_constraint_type), POINTER :: becke_control
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'becke_control_create', &
@ -470,7 +470,7 @@ SUBROUTINE becke_control_create(becke_control,error)
END SUBROUTINE becke_control_create
SUBROUTINE becke_control_release(becke_control,error)
TYPE(becke_constraint_type), POINTER :: becke_control
TYPE(becke_constraint_type), POINTER :: becke_control
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'becke_control_release', &
@ -494,7 +494,7 @@ SUBROUTINE becke_control_release(becke_control,error)
END SUBROUTINE becke_control_release
SUBROUTINE becke_control_retain(becke_control,error)
TYPE(becke_constraint_type), POINTER :: becke_control
TYPE(becke_constraint_type), POINTER :: becke_control
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'becke_control_retain', &
@ -792,10 +792,10 @@ SUBROUTINE dftb_control_create(dftb_control,error)
CHARACTER(len=*), PARAMETER :: routineN = 'dftb_control_create', &
routineP = moduleN//':'//routineN
INTEGER :: stat
LOGICAL :: failure
failure=.FALSE.
CPPrecondition(.NOT.ASSOCIATED(dftb_control),cp_failure_level,routineP,error,failure)
@ -809,13 +809,13 @@ END SUBROUTINE dftb_control_create
SUBROUTINE dftb_control_release(dftb_control,error)
TYPE(dftb_control_type), POINTER :: dftb_control
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'dftb_control_release', &
routineP = moduleN//':'//routineN
INTEGER :: stat
LOGICAL :: failure
failure=.FALSE.
IF (ASSOCIATED(dftb_control)) THEN
@ -832,15 +832,16 @@ END SUBROUTINE dftb_control_release
!***************************************************************************
SUBROUTINE se_control_create(se_control,error)
TYPE(semi_empirical_control_type), POINTER :: se_control
TYPE(cp_error_type), INTENT(inout) :: error
TYPE(semi_empirical_control_type), &
POINTER :: se_control
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'se_control_create', &
routineP = moduleN//':'//routineN
INTEGER :: stat
LOGICAL :: failure
failure=.FALSE.
CPPrecondition(.NOT.ASSOCIATED(se_control),cp_failure_level,routineP,error,failure)
@ -850,15 +851,16 @@ SUBROUTINE se_control_create(se_control,error)
END SUBROUTINE se_control_create
!------------------------------------------------------------------------------!
SUBROUTINE se_control_release(se_control,error)
TYPE(semi_empirical_control_type), POINTER :: se_control
TYPE(cp_error_type), INTENT(inout) :: error
TYPE(semi_empirical_control_type), &
POINTER :: se_control
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'se_control_release', &
routineP = moduleN//':'//routineN
INTEGER :: stat
LOGICAL :: failure
failure=.FALSE.
IF (ASSOCIATED(se_control)) THEN

View file

@ -23,7 +23,7 @@ MODULE cp_control_utils
USE input_constants, ONLY: &
bsse_run, do_band, do_ddapc_constraint, do_ddapc_restraint, &
do_loc_crazy, do_loc_direct, do_loc_jacobi, do_loc_none, &
do_method_dftb, do_method_am1, do_method_gapw, do_method_gapw_xc, &
do_method_am1, do_method_dftb, do_method_gapw, do_method_gapw_xc, &
do_method_gpw, do_method_kg_pol, do_method_mndo, do_method_pdg, &
do_method_pm3, do_pwgrid_ns_fullspace, do_pwgrid_ns_halfspace, &
do_pwgrid_spherical, do_s2_constraint, do_s2_restraint, &
@ -317,14 +317,15 @@ CONTAINS
CHARACTER(LEN=*), PARAMETER :: routine = "SUBROUTINE read_qs_section "
INTEGER :: j, jj, k, n_rep, n_var, istat
INTEGER, DIMENSION(:), POINTER :: tmplist
CHARACTER(len=default_string_length), &
DIMENSION(:), POINTER :: clist
INTEGER :: istat, j, jj, k, n_rep, n_var
INTEGER, DIMENSION(:), POINTER :: tmplist
LOGICAL :: failure, was_present
REAL(dp) :: tmpsqrt, value
TYPE(section_vals_type), POINTER :: ddapc_restraint_section, loc_section, &
mull_section, s2_restraint_section, se_section, dftb_section, dftb_parameter
TYPE(section_vals_type), POINTER :: ddapc_restraint_section, &
dftb_parameter, dftb_section, loc_section, mull_section, &
s2_restraint_section, se_section
! ---------------------------------------------------------------------------
@ -509,6 +510,8 @@ CONTAINS
! Semi-empirical code
CALL section_vals_val_get(se_section,"ANALYTICAL_GRADIENTS",&
l_val=qs_control%se_control%analytical_gradients,error=error)
CALL section_vals_val_get(se_section,"ORTHOGONAL_BASIS",&
l_val=qs_control%se_control%orthogonal_basis,error=error)
CALL section_vals_val_get(se_section,"DELTA",&
@ -523,7 +526,7 @@ CONTAINS
qs_control %method_id == do_method_am1 .OR. &
qs_control %method_id == do_method_pdg .OR. &
qs_control %method_id == do_method_pm3) THEN
qs_control%se_control%orthogonal_basis=.TRUE.
qs_control%se_control%orthogonal_basis=.TRUE.
END IF
! DFTB code
@ -1198,7 +1201,7 @@ SUBROUTINE read_ddapc_section(qs_control,ddapc_restraint_section,error)
INTEGER :: j, jj, k, n_rep
INTEGER, DIMENSION(:), POINTER :: tmplist
CALL section_vals_val_get(ddapc_restraint_section,"STRENGTH", &
r_val=qs_control%ddapc_restraint_control%strength,error=error)
CALL section_vals_val_get(ddapc_restraint_section,"TARGET", &

View file

@ -26,11 +26,11 @@ MODULE input_cp2k_dft
USE cp_output_handling, ONLY: cp_print_key_section_create
USE cp_units, ONLY: cp_unit_to_cp2k
USE input_constants
USE input_cp2k_poisson, ONLY: create_poisson_section
USE input_cp2k_resp, ONLY: create_resp_section
USE input_keyword_types, ONLY: keyword_create,&
keyword_release,&
keyword_type
USE input_cp2k_poisson, ONLY: create_poisson_section
USE input_cp2k_resp, ONLY: create_resp_section
USE input_section_types, ONLY: section_add_keyword,&
section_add_subsection,&
section_create,&
@ -1703,7 +1703,8 @@ CONTAINS
TYPE(section_type), POINTER :: section
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'create_dftb_parameter_section', &
CHARACTER(len=*), PARAMETER :: &
routineN = 'create_dftb_parameter_section', &
routineP = moduleN//':'//routineN
LOGICAL :: failure
@ -1777,6 +1778,12 @@ CONTAINS
CALL section_add_keyword(section,keyword,error=error)
CALL keyword_release(keyword,error=error)
CALL keyword_create(keyword, name="analytical_gradients",&
description="Nuclear Gradients are computed analytically or numerically",&
usage="ANALYTICAL_GRADIENTS",default_l_val=.TRUE., error=error)
CALL section_add_keyword(section,keyword,error=error)
CALL keyword_release(keyword,error=error)
CALL keyword_create(keyword, name="DELTA",&
description="Step size in finite difference force calculation",&
usage="DELTA {real} ",default_r_val=1.e-6_dp, error=error)
@ -5119,12 +5126,12 @@ CONTAINS
TYPE(section_type), POINTER :: section
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'create_field_section', &
CHARACTER(len=*), PARAMETER :: routineN = 'create_et_coupling_section', &
routineP = moduleN//':'//routineN
LOGICAL :: failure
TYPE(section_type), POINTER :: subsection, print_key
TYPE(keyword_type), POINTER :: keyword
TYPE(section_type), POINTER :: print_key, subsection
failure=.FALSE.
NULLIFY(keyword)
@ -5178,11 +5185,10 @@ CONTAINS
SUBROUTINE create_restraint_A(section,section_name,error)
TYPE(section_type), POINTER :: section
CHARACTER(len=*),INTENT(in) :: section_name
CHARACTER(len=*), INTENT(in) :: section_name
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: &
routineN = 'create_restraint_A', &
CHARACTER(len=*), PARAMETER :: routineN = 'create_restraint_A', &
routineP = moduleN//':'//routineN
LOGICAL :: failure

View file

@ -47,6 +47,8 @@ MODULE nddo_methods
get_neighbor_node, neighbor_list_set_p_type, neighbor_list_type, &
neighbor_node_type, next
USE qs_rho_types, ONLY: qs_rho_type
USE semi_empirical_int_ana, ONLY: rotint_ana,&
rotnuc_ana
USE semi_empirical_integrals, ONLY: drotint,&
drotnuc,&
rotint,&
@ -254,7 +256,7 @@ CONTAINS
ispin, istat, itype, jatom, jkind, natom, natorb_a, natorb_b, nkind, &
nlist, nnode, nspins
INTEGER, DIMENSION(:), POINTER :: atom_of_kind
LOGICAL :: defined, failure, switch
LOGICAL :: anag, defined, failure, switch
REAL(KIND=dp) :: delta, dr1, ecore2, ecoul, &
enuc, enuclear, range, rc
REAL(KIND=dp), DIMENSION(10) :: e1b, e2a, pvec
@ -300,6 +302,7 @@ CONTAINS
para_env=para_env,error=error)
! set values for tapering function
anag = dft_control%qs_control%se_control%analytical_gradients
rc = dft_control%qs_control%se_control%rc_coulomb
range = dft_control%qs_control%se_control%rc_range
CALL set_taper_fn (2._dp*rc,range)
@ -452,10 +455,18 @@ CONTAINS
SELECT CASE (dft_control%qs_control%method)
CASE ("MNDO","AM1","PM3","PDG")
IF ( .NOT. switch ) THEN
CALL rotnuc (se_kind_a,se_kind_b,rij,e1b,e2a,enuc,itype)
ELSE
CALL rotnuc (se_kind_b,se_kind_a,-rij,e2a,e1b,enuc,itype)
IF (anag) THEN
IF ( .NOT. switch ) THEN
CALL rotnuc_ana (se_kind_a,se_kind_b,rij,e1b=e1b,e2a=e2a,enuc=enuc,itype=itype)
ELSE
CALL rotnuc_ana (se_kind_b,se_kind_a,-rij,e1b=e2a,e2a=e1b,enuc=enuc,itype=itype)
END IF
ELSE
IF ( .NOT. switch ) THEN
CALL rotnuc (se_kind_a,se_kind_b,rij,e1b,e2a,enuc,itype)
ELSE
CALL rotnuc (se_kind_b,se_kind_a,-rij,e2a,e1b,enuc,itype)
END IF
END IF
enuclear = enuclear + enuc
! one-centre one-electron terms
@ -499,12 +510,22 @@ CONTAINS
IF(calculate_forces) THEN
atom_a = atom_of_kind(iatom)
atom_b = atom_of_kind(jatom)
IF ( .NOT. switch ) THEN
CALL drotnuc (se_kind_a,se_kind_b,rij,de1b,de2a,&
denuc,itype,delta)
IF (anag) THEN
IF ( .NOT. switch ) THEN
CALL rotnuc_ana (se_kind_a,se_kind_b,rij,de1b=de1b,de2a=de2a,&
denuc=denuc,itype=itype)
ELSE
CALL rotnuc_ana (se_kind_b,se_kind_a,-rij,de1b=de2a,de2a=de1b,&
denuc=denuc,itype=itype)
END IF
ELSE
CALL drotnuc (se_kind_b,se_kind_a,-rij,de2a,de1b,&
denuc,itype,delta)
IF ( .NOT. switch ) THEN
CALL drotnuc (se_kind_a,se_kind_b,rij,de1b,de2a,&
denuc,itype,delta)
ELSE
CALL drotnuc (se_kind_b,se_kind_a,-rij,de2a,de1b,&
denuc,itype,delta)
END IF
END IF
force_ab(1:3)=-denuc(1:3)
CPPrecondition(nspins<3,cp_failure_level,routineP,error,failure)
@ -559,22 +580,22 @@ CONTAINS
IF ( nspins == 1 ) THEN
IF ( .NOT. switch ) THEN
CALL fock2c(se_kind_a,se_kind_b,rij,pa_block_a,pb_block_a,&
ksa_block_a,ksb_block_a,error)
ksa_block_a,ksb_block_a,anag,error)
ELSE
CALL fock2c(se_kind_b,se_kind_a,-rij,pb_block_a,pa_block_a,&
ksb_block_a,ksa_block_a,error)
ksb_block_a,ksa_block_a,anag,error)
ENDIF
ELSE IF ( nspins == 2 ) THEN
IF ( .NOT. switch ) THEN
CALL fock2c(se_kind_a,se_kind_b,rij,pa_block_a,pb_block_a,&
ksa_block_a,ksb_block_a,&
pa_block_b,pb_block_b,&
ksa_block_b,ksb_block_b,error)
ksa_block_b,ksb_block_b,anag,error)
ELSE
CALL fock2c(se_kind_b,se_kind_a,-rij,pb_block_a,pa_block_a,&
ksb_block_a,ksa_block_a,&
pb_block_b,pa_block_b,&
ksb_block_b,ksa_block_b,error)
ksb_block_b,ksa_block_b,anag,error)
ENDIF
END IF
@ -584,18 +605,18 @@ CONTAINS
IF ( nspins == 1 ) THEN
IF ( .NOT. switch ) THEN
CALL dfock2c(se_kind_a,se_kind_b,rij,pa_block_a,&
pb_block_a,force_ab,delta,error)
pb_block_a,force_ab,delta,anag,error)
ELSE
CALL dfock2c(se_kind_b,se_kind_a,-rij,pb_block_a,&
pa_block_a,force_ab,delta,error)
pa_block_a,force_ab,delta,anag,error)
ENDIF
ELSE IF ( nspins == 2 ) THEN
IF ( .NOT. switch ) THEN
CALL dfock2c(se_kind_a,se_kind_b,rij,pa_block_a,&
pb_block_a,pa_block_b,pb_block_b,force_ab,delta,error)
pb_block_a,pa_block_b,pb_block_b,force_ab,delta,anag,error)
ELSE
CALL dfock2c(se_kind_b,se_kind_a,-rij,pb_block_a,&
pa_block_a,pb_block_b,pa_block_b,force_ab,delta,error)
pa_block_a,pb_block_b,pa_block_b,force_ab,delta,anag,error)
ENDIF
END IF
IF ( switch ) force_ab = -force_ab
@ -669,7 +690,7 @@ CONTAINS
irow, istat, jatom, jkind, natom, natorb_a, natorb_b, nkind, nlist, &
nnode, nspins
INTEGER, DIMENSION(:), POINTER :: atom_of_kind
LOGICAL :: defined, failure
LOGICAL :: anag, defined, failure
REAL(KIND=dp) :: delta, dr, gp2, gpp, gsp, &
gss, hsp, range, rc
REAL(KIND=dp), DIMENSION(3) :: force_ab, rij
@ -711,6 +732,7 @@ CONTAINS
para_env=para_env,error=error)
! set values for tapering function
anag = dft_control%qs_control%se_control%analytical_gradients
rc = dft_control%qs_control%se_control%rc_interaction
range = dft_control%qs_control%se_control%rc_range
CALL set_taper_fn (2._dp*rc,range)
@ -836,17 +858,17 @@ CONTAINS
CPPrecondition(nspins<3,cp_failure_level,routineP,error,failure)
IF ( nspins == 1 ) THEN
IF ( irow == iatom ) THEN
CALL fock2e(se_kind_a,se_kind_b,rij,p_block_a,ks_block_a,error)
CALL fock2e(se_kind_a,se_kind_b,rij,p_block_a,ks_block_a,anag,error)
ELSE
CALL fock2e(se_kind_b,se_kind_a,-rij,p_block_a,ks_block_a,error)
CALL fock2e(se_kind_b,se_kind_a,-rij,p_block_a,ks_block_a,anag,error)
ENDIF
ELSE IF ( nspins == 2 ) THEN
IF ( irow == iatom ) THEN
CALL fock2e(se_kind_a,se_kind_b,rij,p_block_a,ks_block_a,&
p_block_b,ks_block_b,error)
p_block_b,ks_block_b,anag,error)
ELSE
CALL fock2e(se_kind_b,se_kind_a,-rij,p_block_a,ks_block_a,&
p_block_b,ks_block_b,error)
p_block_b,ks_block_b,anag,error)
ENDIF
END IF
@ -855,17 +877,17 @@ CONTAINS
CPPrecondition(nspins<3,cp_failure_level,routineP,error,failure)
IF ( nspins == 1 ) THEN
IF ( irow == iatom ) THEN
CALL dfock2e(se_kind_a,se_kind_b,rij,p_block_a,force_ab,delta,error)
CALL dfock2e(se_kind_a,se_kind_b,rij,p_block_a,force_ab,delta,anag,error)
ELSE
CALL dfock2e(se_kind_b,se_kind_a,-rij,p_block_a,force_ab,delta,error)
CALL dfock2e(se_kind_b,se_kind_a,-rij,p_block_a,force_ab,delta,anag,error)
ENDIF
ELSE IF ( nspins == 2 ) THEN
IF ( irow == iatom ) THEN
CALL dfock2e(se_kind_a,se_kind_b,rij,&
p_block_a,p_block_b,force_ab,delta,error)
p_block_a,p_block_b,force_ab,delta,anag,error)
ELSE
CALL dfock2e(se_kind_b,se_kind_a,-rij,&
p_block_a,p_block_b,force_ab,delta,error)
p_block_a,p_block_b,force_ab,delta,anag,error)
ENDIF
END IF
atom_a = atom_of_kind(iatom)
@ -1032,11 +1054,12 @@ CONTAINS
! *****************************************************************************
SUBROUTINE rfock2c(sepa,sepb,rij,pa,pb,fa,fb,error)
SUBROUTINE rfock2c(sepa,sepb,rij,pa,pb,fa,fb,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pa, pb
REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: fa, fb
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'rfock2c', &
@ -1050,8 +1073,11 @@ CONTAINS
na = SIZE ( pa, 1 )
nb = SIZE ( pb, 1 )
CALL rotint (sepa,sepb,rij,wint)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,wint)
ELSE
CALL rotint (sepa,sepb,rij,wint)
END IF
IF ( na==1 .AND. nb==1 ) THEN
fa(1,1) = fa(1,1) + pb(1,1)*wint(1)
fb(1,1) = fb(1,1) + pa(1,1)*wint(1)
@ -1083,13 +1109,14 @@ CONTAINS
END SUBROUTINE rfock2c
SUBROUTINE ufock2c(sepa,sepb,rij,pa_a,pb_a,fa_a,fb_a,&
pa_b,pb_b,fa_b,fb_b,error)
pa_b,pb_b,fa_b,fb_b,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pa_a, pb_a
REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: fa_a, fb_a
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pa_b, pb_b
REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: fa_b, fb_b
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'ufock2c', &
@ -1105,7 +1132,11 @@ CONTAINS
na = SIZE ( pa_a, 1 )
nb = SIZE ( pb_a, 1 )
CALL rotint (sepa,sepb,rij,wint)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,wint)
ELSE
CALL rotint (sepa,sepb,rij,wint)
END IF
IF ( na==1 .AND. nb==1 ) THEN
fa_a(1,1) = fa_a(1,1) + (pb_a(1,1)+pb_b(1,1))*wint(1)
@ -1153,12 +1184,13 @@ CONTAINS
! *****************************************************************************
SUBROUTINE rdfock2c(sepa,sepb,rij,pa,pb,force,delta,error)
SUBROUTINE rdfock2c(sepa,sepb,rij,pa,pb,force,delta,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pa, pb
REAL(dp), DIMENSION(:), INTENT(INOUT) :: force
REAL(dp), INTENT(IN) :: delta
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'rdfock2c', &
@ -1172,7 +1204,11 @@ CONTAINS
na = SIZE ( pa, 1 )
nb = SIZE ( pb, 1 )
CALL drotint (sepa,sepb,rij,dwint,delta)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,dw=dwint)
ELSE
CALL drotint (sepa,sepb,rij,dwint,delta)
END IF
IF ( na==1 .AND. nb==1 ) THEN
force(:) = force(:) + pa(1,1)*pb(1,1)*dwint(1,:)
@ -1204,12 +1240,13 @@ CONTAINS
END SUBROUTINE rdfock2c
SUBROUTINE udfock2c(sepa,sepb,rij,pa_a,pb_a,pa_b,pb_b,&
force,delta,error)
force,delta,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pa_a, pb_a, pa_b, pb_b
REAL(dp), DIMENSION(:), INTENT(INOUT) :: force
REAL(dp), INTENT(IN) :: delta
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'udfock2c', &
@ -1224,7 +1261,11 @@ CONTAINS
na = SIZE ( pa_a, 1 )
nb = SIZE ( pb_a, 1 )
CALL drotint (sepa,sepb,rij,dwint,delta)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,dw=dwint)
ELSE
CALL drotint (sepa,sepb,rij,dwint,delta)
END IF
IF ( na==1 .AND. nb==1 ) THEN
pta = pa_a(1,1)+pa_b(1,1)
@ -1263,11 +1304,12 @@ CONTAINS
END SUBROUTINE udfock2c
SUBROUTINE rfock2e(sepa,sepb,rij,pab,fab,error)
SUBROUTINE rfock2e(sepa,sepb,rij,pab,fab,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pab
REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: fab
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'rfock2e', &
@ -1281,7 +1323,11 @@ CONTAINS
na = SIZE ( pab, 1 )
nb = SIZE ( pab, 2 )
CALL rotint (sepa,sepb,rij,wint)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,wint)
ELSE
CALL rotint (sepa,sepb,rij,wint)
END IF
IF ( na==1 .AND. nb==1 ) THEN
fab(1,1) = fab(1,1) - 0.5_dp * pab(1,1)*wint(1)
@ -1313,13 +1359,14 @@ CONTAINS
END SUBROUTINE rfock2e
SUBROUTINE ufock2e(sepa,sepb,rij,pab_a,fab_a,pab_b,fab_b,error)
SUBROUTINE ufock2e(sepa,sepb,rij,pab_a,fab_a,pab_b,fab_b,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pab_a
REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: fab_a
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pab_b
REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: fab_b
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'ufock2e', &
@ -1333,7 +1380,11 @@ CONTAINS
na = SIZE ( pab_a, 1 )
nb = SIZE ( pab_a, 2 )
CALL rotint (sepa,sepb,rij,wint)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,wint)
ELSE
CALL rotint (sepa,sepb,rij,wint)
END IF
IF ( na==1 .AND. nb==1 ) THEN
fab_a(1,1) = fab_a(1,1) - pab_a(1,1)*wint(1)
@ -1386,12 +1437,13 @@ CONTAINS
! *****************************************************************************
SUBROUTINE rdfock2e(sepa,sepb,rij,pab,force,delta,error)
SUBROUTINE rdfock2e(sepa,sepb,rij,pab,force,delta,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pab
REAL(dp), DIMENSION(:), INTENT(INOUT) :: force
REAL(dp), INTENT(IN) :: delta
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'rdfock2e', &
@ -1405,7 +1457,11 @@ CONTAINS
na = SIZE ( pab, 1 )
nb = SIZE ( pab, 2 )
CALL drotint (sepa,sepb,rij,dwint,delta)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,dw=dwint)
ELSE
CALL drotint (sepa,sepb,rij,dwint,delta)
END IF
IF ( na==1 .AND. nb==1 ) THEN
force(:) = force(:) - 0.5_dp*pab(1,1)*pab(1,1)*dwint(1,:)
@ -1439,12 +1495,13 @@ CONTAINS
END SUBROUTINE rdfock2e
SUBROUTINE udfock2e(sepa,sepb,rij,pab_a,pab_b,force,delta,error)
SUBROUTINE udfock2e(sepa,sepb,rij,pab_a,pab_b,force,delta,anag,error)
TYPE(semi_empirical_type), INTENT(IN) :: sepa, sepb
REAL(dp), DIMENSION(:), INTENT(IN) :: rij
REAL(dp), DIMENSION(:, :), INTENT(IN) :: pab_a, pab_b
REAL(dp), DIMENSION(:), INTENT(INOUT) :: force
REAL(dp), INTENT(IN) :: delta
LOGICAL, INTENT(IN) :: anag
TYPE(cp_error_type), INTENT(inout) :: error
CHARACTER(len=*), PARAMETER :: routineN = 'udfock2e', &
@ -1458,7 +1515,11 @@ CONTAINS
na = SIZE ( pab_a, 1 )
nb = SIZE ( pab_a, 2 )
CALL drotint (sepa,sepb,rij,dwint,delta)
IF (anag) THEN
CALL rotint_ana (sepa,sepb,rij,dw=dwint)
ELSE
CALL drotint (sepa,sepb,rij,dwint,delta)
END IF
IF ( na==1 .AND. nb==1 ) THEN
force(:) = force(:) - pab_a(1,1)*pab_a(1,1)*dwint(1,:)

File diff suppressed because it is too large Load diff

View file

@ -31,7 +31,7 @@ MODULE semi_empirical_integrals
CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'semi_empirical_integrals'
PUBLIC :: rotint, rotnuc, drotint, drotnuc, set_taper_fn, taper, nucint
PUBLIC :: rotint, rotnuc, drotint, drotnuc, set_taper_fn, taper, nucint, terep
REAL(KIND=dp), SAVE, PUBLIC :: r0, al
LOGICAL, SAVE, PUBLIC :: taper_fn_init = .FALSE.
@ -690,7 +690,7 @@ CONTAINS
e2a(9) = -cpps2*xx32-cppp2*zz32
e2a(10)= -cpps2*xx33-cppp2*zz33
END IF
alpi = sepi%alp
alpj = sepj%alp
scale = EXP(-alpi*rij)+EXP(-alpj*rij)

View file

@ -9,3 +9,7 @@ mol.inp
water_3.inp
#DFTB update
water_3.inp
# using analytical gradients as default.. numerics 10^-11
mol.inp
water_3_full.inp
water_3.inp

View file

@ -0,0 +1,33 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD MNDO
&SE
&END
&END QS
&SCF
EPS_SCF 1.0E-5
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 10.0 10.0 10.0
UNIT ANGSTROM
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
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
&END GLOBAL

View file

@ -0,0 +1,60 @@
&GLOBAL
PROJECT NO2
RUN_TYPE GEO_OPT
PRINT_LEVEL LOW
&END GLOBAL
&MOTION
&GEOOPT
OPTIMIZER BFGS
MAX_ITER 20
MAX_DR 0.001
RMS_DR 0.0005
MAX_FORCE 0.00015
RMS_FORCE 0.0001
&END GEOOPT
&END MOTION
&FORCE_EVAL
METHOD Quickstep
&DFT
ROKS
MULTIP 2
&QS
EXTRAPOLATION use_prev_p
METHOD PM3
&SE
&END
&END QS
&SCF
EPS_SCF 1.0E-5
SCF_GUESS atomic
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 10.0 10.0 10.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
N 0.000000 0.000000 0.000000
O 0.000000 0.000000 1.194550
O 0.861442 0.000000 -0.827567
&END COORD
&PRINT
&STRUCTURE_DATA
DISTANCE 1 2
DISTANCE 1 3
ANGLE 2 1 3
&END STRUCTURE_DATA
&KINDS
BASIS_SET
POTENTIAL
&END KINDS
&END PRINT
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,48 @@
&GLOBAL
PROJECT O
RUN_TYPE ENERGY
PRINT_LEVEL LOW
&END GLOBAL
&FORCE_EVAL
METHOD Quickstep
&DFT
ROKS
MULTIP 3
&PRINT
&MO
EIGENVALUES
EIGENVECTORS
OCCUPATION_NUMBERS
&END MO
&END PRINT
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
EPS_SCF 1.0E-6
SCF_GUESS CORE
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 10.0 10.0 10.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 0.000000
&END COORD
&PRINT
&KINDS
BASIS_SET
POTENTIAL
&END KINDS
&END PRINT
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,56 @@
&GLOBAL
PROJECT O2
RUN_TYPE GEO_OPT
PRINT_LEVEL LOW
&END GLOBAL
&MOTION
&GEOOPT
OPTIMIZER BFGS
MAX_ITER 30
MAX_DR 0.001
RMS_DR 0.0005
MAX_FORCE 0.00015
RMS_FORCE 0.0001
&END GEOOPT
&END MOTION
&FORCE_EVAL
METHOD Quickstep
&DFT
ROKS
MULTIP 3
&QS
METHOD MNDO
&SE
&END
&END QS
&SCF
EPS_SCF 1.0E-6
SCF_GUESS atomic
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 10.0 10.0 10.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O 0.000000 0.000000 -0.600000
O 0.000000 0.000000 0.600000
&END COORD
&PRINT
&STRUCTURE_DATA
DISTANCE 1 2
&END STRUCTURE_DATA
&KINDS
BASIS_SET
POTENTIAL
&END KINDS
&END PRINT
&END SUBSYS
&END FORCE_EVAL

View file

@ -0,0 +1,25 @@
# 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-MNDO.inp 3
c2h4.inp 3
ch2o.inp 3
ch4.inp 3
ch4-restart.inp 3
h2o.inp 3
h2o_lsd.inp 3
h2op.inp 3
hcn.inp 3
hf.inp 3
nh4.inp 3
st.inp 3
# test the initial adaptation to OT
ch4-ot.inp 3
h2o_lsd-ot.inp 3
# tests for high-spin ROKS
O-ROKS.inp 3
O2-ROKS.inp 3
NO2-ROKS.inp 3
hf_z.inp 3

View file

@ -0,0 +1 @@
#

View file

@ -0,0 +1,35 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD MNDO
&SE
&END
&END QS
&SCF
MAX_SCF 20
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
C .00000000 .00000000 .00000000
C 1.32976650 .00000000 .00000000
H 1.96696719 .89702095 .00000000
H 1.96696719 -.89702095 .00000000
H -.63720069 .89702095 .00000000
H -.63720069 -.89702095 .00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT C2H4
&END GLOBAL

View file

@ -0,0 +1,37 @@
&FORCE_EVAL
METHOD Quickstep
&PRINT
&GRID_INFORMATION
&END GRID_INFORMATION
&END PRINT
&DFT
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O 0.051368 0.000000 0.000000
C 1.278612 0.000000 0.000000
H 1.870460 0.939607 0.000000
H 1.870460 -0.939607 0.000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT CH2O
RUN_TYPE GEO_OPT
&END GLOBAL

View file

@ -0,0 +1,39 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD PM3
&SE
&END
&END QS
&SCF
EPS_SCF 1.0E-7
MAX_SCF 20
&OT ON
PRECONDITIONER NONE
&END OT
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
C .00000000 .00000000 .00000000
H 1.01578458 .00000000 .00000000
H -.33859486 .95769088 .00000000
H -.33859486 -.47884544 .82938463
H -.33859486 -.47884544 -.82938463
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT ch4
TRACE OFF
&END GLOBAL

View file

@ -0,0 +1,34 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD PM3
&SE
&END
&END QS
&SCF
MAX_SCF 20
SCF_GUESS RESTART
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
C .00000000 .00000000 .00000000
H 1.01578458 .00000000 .00000000
H -.33859486 .95769088 .00000000
H -.33859486 -.47884544 .82938463
H -.33859486 -.47884544 -.82938463
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT ch4
&END GLOBAL

View file

@ -0,0 +1,35 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD PM3
&SE
&END
&END QS
&SCF
MAX_SCF 20
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
C .00000000 .00000000 .00000000
H 1.01578458 .00000000 .00000000
H -.33859486 .95769088 .00000000
H -.33859486 -.47884544 .82938463
H -.33859486 -.47884544 -.82938463
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT ch4
&END GLOBAL

View file

@ -0,0 +1,33 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O .00000000 .00000000 .00000000
H 1.05000000 .00000000 .00000000
H -.26289900 1.01655502 .00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
RUN_TYPE GEO_OPT
&END GLOBAL

View file

@ -0,0 +1,38 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
LSD
&QS
EXTRAPOLATION use_guess
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&OT ON
PRECONDITIONER NONE
&END OT
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O .00000000 .00000000 .00000000
H 1.05000000 .00000000 .00000000
H -.26289900 1.01655502 .00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
RUN_TYPE GEO_OPT
&END GLOBAL

View file

@ -0,0 +1,34 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
LSD
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O .00000000 .00000000 .00000000
H 1.05000000 .00000000 .00000000
H -.26289900 1.01655502 .00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
RUN_TYPE GEO_OPT
&END GLOBAL

View file

@ -0,0 +1,34 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
CHARGE 1
LSD
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
O -.13219527 .00026095 .00000000
H .91780473 .00026095 .00000000
H 1.18066235 -.00440322 .00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
&END GLOBAL

View file

@ -0,0 +1,33 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD MNDO
&SE
&END
&END QS
&SCF
MAX_SCF 20
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
C -1.14407800 .00000000 .00000000
N .08275600 .00000000 .00000000
H 1.06132200 .00000000 .00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT HCN
&END GLOBAL

37
tests/SE/regtest-2/hf.inp Normal file
View file

@ -0,0 +1,37 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
F .00000000 .00000000 .00000000
H .40673664 -.11133319 -.90673603
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
RUN_TYPE GEO_OPT
&END GLOBAL
&MOTION
&GEOOPT
MAX_ITER 20
&END GEOOPT
&END MOTION

View file

@ -0,0 +1,31 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD AM1
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
F .00000000 .00000000 .00000000
H .00000000 .00000000 1.00000000
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT H2O
RUN_TYPE DEBUG
&END

View file

@ -0,0 +1,37 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
CHARGE 1
&QS
METHOD MNDO
&SE
&END
&END QS
&SCF
MAX_SCF 20
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 20.0 20.0 20.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
H -1.01578458 .00000000 .00000000
N .00000000 .00000000 .00000000
H .33859487 .95769088 .00000000
H .33859487 -.47884544 -.82938463
H .33859487 -.47884544 .82938463
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT nh4
RUN_TYPE GEO_OPT
&END GLOBAL

46
tests/SE/regtest-2/st.inp Normal file
View file

@ -0,0 +1,46 @@
&FORCE_EVAL
METHOD Quickstep
&DFT
&QS
METHOD MNDO
&SE
&END
&END QS
&SCF
SCF_GUESS ATOMIC
&END SCF
&END DFT
&SUBSYS
&CELL
ABC 30.0 30.0 30.0
UNIT ANGSTROM
PERIODIC NONE
&END CELL
&COORD
C .00000000 .00000000 .00000000
N 1.37642000 .00000000 .00000000
N 1.98737272 1.13162901 .00000000
C 1.23348027 2.28696635 .00006707
N -.14276973 2.28704585 .00009163
N -.75370186 1.15523527 .00004764
O -.51471948 -1.25226324 -.00009551
O 1.74818974 3.53921208 .00007025
C -1.92304628 -1.38167327 -.00006141
H -2.37921736 -.94831519 -.89666631
H -2.37897217 -.94903653 .89700422
H -2.04217722 -2.46893609 -.00049319
C 3.15650139 3.66867773 .00019783
H 3.61260692 3.23581116 -.89667781
H 3.61245200 3.23561092 .89705557
H 3.27563851 4.75595001 .00035950
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT ST
RUN_TYPE GEO_OPT
&END GLOBAL

18
tests/SE/regtest-2/tidy Normal file
View file

@ -0,0 +1,18 @@
#!/bin/tcsh
# Script to clean files after execution of a test
echo "This script will clean the directory" $PWD "from scratch files.."
echo
foreach file (`cvs update -A -P|grep '? '|awk '{print $2}'`)
if ( ${file:e} == 'inp' ) then
echo "This files could be a new input file you don't want to be deleted.. Do you really want it deleted?"
if ( $1 == "-int" ) then
echo "You requested to run the cleaning script interactively! Forget about complains!"
rm -f $file
else
rm -i $file
endif
else
rm -f $file
endif
end
rm -f *.bak

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD MNDO
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
EPS_SCF 1.0E-5

View file

@ -24,6 +24,10 @@
&QS
EXTRAPOLATION use_prev_p
METHOD PM3
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
EPS_SCF 1.0E-5

View file

@ -19,6 +19,10 @@
&END PRINT
&QS
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
EPS_SCF 1.0E-6

View file

@ -23,6 +23,10 @@
MULTIP 3
&QS
METHOD MNDO
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
EPS_SCF 1.0E-6

View file

@ -4,6 +4,9 @@
&DFT
&QS
METHOD MNDO
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
MAX_SCF 20

View file

@ -8,6 +8,9 @@
&DFT
&QS
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD PM3
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
EPS_SCF 1.0E-7

View file

@ -4,6 +4,9 @@
&DFT
&QS
METHOD PM3
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
MAX_SCF 20

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD PM3
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
MAX_SCF 20

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -6,6 +6,10 @@
&QS
EXTRAPOLATION use_guess
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -5,6 +5,10 @@
LSD
&QS
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -6,6 +6,10 @@
LSD
&QS
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD MNDO
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
MAX_SCF 20

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD AM1
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -5,6 +5,10 @@
CHARGE 1
&QS
METHOD MNDO
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
MAX_SCF 20

View file

@ -4,6 +4,10 @@
&DFT
&QS
METHOD MNDO
&SE
ANALYTICAL_GRADIENTS F
&END
&END QS
&SCF
SCF_GUESS ATOMIC

View file

@ -23,6 +23,7 @@ QMMM/QS/regtest-gapw
KG/regtest
MC/regtest
SE/regtest
SE/regtest-2
EP
Pimd
NEB/regtest-1