Active Space Interface: update to latest version (Max) (#2346)

* Active Space Routines: Updates from Max

* Updates for merging

* Set Nvirt >= 0

* reftests: intermediate adjustments

* Active space interface, adapt to new pointer-less types, update regtests

* Pretty

* Remove memory leaks and out-of-bounds access

* Pretty
This commit is contained in:
Juerg Hutter 2022-10-13 13:38:46 +02:00 committed by GitHub
parent e64daf41ce
commit 5c163be6b7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
22 changed files with 1823 additions and 195 deletions

View file

@ -83,14 +83,16 @@ CONTAINS
!> \param globenv ...
!> \param target_time ...
!> \param start_time ...
!> \param force_check ...
!> \author MI (10.03.2005)
! **************************************************************************************************
SUBROUTINE external_control(should_stop, flag, globenv, target_time, start_time)
SUBROUTINE external_control(should_stop, flag, globenv, target_time, start_time, force_check)
LOGICAL, INTENT(OUT) :: should_stop
CHARACTER(LEN=*), INTENT(IN) :: flag
TYPE(global_environment_type), OPTIONAL, POINTER :: globenv
REAL(dp), OPTIONAL :: target_time, start_time
LOGICAL, OPTIONAL :: force_check
CHARACTER(LEN=*), PARAMETER :: routineN = 'external_control'
@ -109,6 +111,12 @@ CONTAINS
logger => cp_get_default_logger()
should_stop = .FALSE.
IF (PRESENT(force_check)) THEN
IF (force_check) THEN
check_always = .TRUE.
END IF
END IF
exit_gname = "EXIT"
exit_gname_level = TRIM(exit_gname)//"_"//TRIM(flag)
exit_fname = TRIM(logger%iter_info%project_name)//"."//TRIM(exit_gname)

View file

@ -1171,7 +1171,8 @@ MODULE input_constants
! Active Space Section: orbital selection methods
INTEGER, PARAMETER, PUBLIC :: casci_canonical = 100, &
wannier_projection = 101, &
mao_projection = 102
mao_projection = 102, &
manual_selection = 103
INTEGER, PARAMETER, PUBLIC :: eri_method_full_gpw = 1, &
eri_method_gpw_ht = 2
INTEGER, PARAMETER, PUBLIC :: eri_operator_coulomb = 1, &

View file

@ -69,12 +69,12 @@ MODULE input_cp2k_dft
gto_spherical, hf_model, high_spin_roks, history_guess, jacobian_fd1, &
jacobian_fd1_backward, jacobian_fd1_central, jacobian_fd2, jacobian_fd2_backward, &
kg_color_dsatur, kg_color_greedy, kg_tnadd_atomic, kg_tnadd_embed, kg_tnadd_embed_ri, &
kg_tnadd_none, ls_2pnt, ls_3pnt, ls_gold, ls_none, mao_basis_ext, mao_basis_orb, &
mao_basis_prim, mao_projection, mopac_guess, no_excitations, no_guess, numerical, oe_gllb, &
oe_lb, oe_none, oe_saop, oe_sic, orb_dx2, orb_dxy, orb_dy2, orb_dyz, orb_dz2, orb_dzx, &
orb_px, orb_py, orb_pz, orb_s, ot_algo_irac, ot_algo_taylor_or_diag, ot_chol_irac, &
ot_lwdn_irac, ot_mini_broyden, ot_mini_cg, ot_mini_diis, ot_mini_sd, ot_poly_irac, &
ot_precond_full_all, ot_precond_full_kinetic, ot_precond_full_single, &
kg_tnadd_none, ls_2pnt, ls_3pnt, ls_gold, ls_none, manual_selection, mao_basis_ext, &
mao_basis_orb, mao_basis_prim, mao_projection, mopac_guess, no_excitations, no_guess, &
numerical, oe_gllb, oe_lb, oe_none, oe_saop, oe_sic, orb_dx2, orb_dxy, orb_dy2, orb_dyz, &
orb_dz2, orb_dzx, orb_px, orb_py, orb_pz, orb_s, ot_algo_irac, ot_algo_taylor_or_diag, &
ot_chol_irac, ot_lwdn_irac, ot_mini_broyden, ot_mini_cg, ot_mini_diis, ot_mini_sd, &
ot_poly_irac, ot_precond_full_all, ot_precond_full_kinetic, ot_precond_full_single, &
ot_precond_full_single_inverse, ot_precond_none, ot_precond_s_inverse, &
ot_precond_solver_default, ot_precond_solver_direct, ot_precond_solver_inv_chol, &
ot_precond_solver_update, outer_scf_basis_center_opt, outer_scf_becke_constraint, &
@ -8797,6 +8797,13 @@ CONTAINS
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="ACTIVE_ORBITAL_INDICES", &
description="The indices of the active orbitals. Requires ORBITAL_SELECTION MANUAL!", &
usage="ACTIVE_ORBITAL_INDICES 2 3 {...}", n_var=-1, default_i_vals=(/-1/), &
type_of_var=integer_t)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="ISOLATED_SYSTEM", &
description="System is treated without any periodic boundary conditions.", &
default_l_val=.FALSE., lone_keyword_l_val=.TRUE.)
@ -8813,11 +8820,13 @@ CONTAINS
description="Method used to select active space orbitals.", &
usage="ORBITAL_SELECTION CANONICAL", &
default_i_val=casci_canonical, &
enum_c_vals=s2a("CANONICAL", "WANNIER_PROJECTION", "MAO"), &
enum_i_vals=(/casci_canonical, wannier_projection, mao_projection/), &
enum_c_vals=s2a("CANONICAL", "WANNIER_PROJECTION", "MAO", "MANUAL"), &
enum_i_vals=(/casci_canonical, wannier_projection, mao_projection, manual_selection/), &
enum_desc=s2a("Select orbitals using energy ordering of canoncial orbitals", &
"Select orbitals from projected Wannier functions", &
"Select orbitals from modified atomic orbitals"))
"Select orbitals from modified atomic orbitals", &
"Select orbitals manually via ACTIVE_ORBITAL_INDICES"))
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
@ -8835,6 +8844,19 @@ CONTAINS
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="READ_P_ACTIVE", &
description="Active density matrix must be read", &
default_l_val=.FALSE., lone_keyword_l_val=.FALSE.)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="P_ACTIVE_FILE_NAME", &
description="Name of the active DM file, may include a path", &
usage="P_ACTIVE_FILE_NAME <FILENAME>", &
type_of_var=lchar_t, repeats=.FALSE.)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL create_print_orb_section(subsection)
CALL section_add_subsection(section, subsection)
CALL section_release(subsection)
@ -8898,6 +8920,12 @@ CONTAINS
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
CALL keyword_create(keyword, __LOCATION__, name="STOP_AFTER_CUBES", &
description="Whether to stop the computation after printing the cubes.", &
default_l_val=.FALSE., lone_keyword_l_val=.FALSE.)
CALL section_add_keyword(section, keyword)
CALL keyword_release(keyword)
END SUBROUTINE create_print_orb_section
! **************************************************************************************************

File diff suppressed because it is too large Load diff

View file

@ -19,7 +19,8 @@ MODULE qs_active_space_types
USE dbcsr_api, ONLY: dbcsr_csr_destroy,&
dbcsr_csr_p_type,&
dbcsr_p_type
USE kinds, ONLY: dp
USE kinds, ONLY: default_path_length,&
dp
USE qs_mo_types, ONLY: deallocate_mo_set,&
mo_set_p_type
#include "./base/base_uses.f90"
@ -72,6 +73,8 @@ MODULE qs_active_space_types
TYPE active_space_type
INTEGER :: nelec_active
INTEGER, POINTER, DIMENSION(:, :):: active_orbitals
INTEGER, POINTER, DIMENSION(:, :):: inactive_orbitals
INTEGER :: nelec_inactive
INTEGER, DIMENSION(2) :: nelec_inactive_spinwise
INTEGER, DIMENSION(2) :: nelec_total
@ -83,6 +86,8 @@ MODULE qs_active_space_types
REAL(KIND=dp) :: energy_ref
REAL(KIND=dp) :: energy_inactive
REAL(KIND=dp) :: energy_active
LOGICAL :: read_p_act
CHARACTER(LEN=default_path_length) :: p_act_filename
TYPE(mo_set_p_type), DIMENSION(:), POINTER :: mos_active
TYPE(mo_set_p_type), DIMENSION(:), POINTER :: mos_inactive
TYPE(eri_type) :: eri
@ -129,6 +134,7 @@ CONTAINS
END IF
ALLOCATE (active_space_env)
NULLIFY (active_space_env%active_orbitals, active_space_env%inactive_orbitals)
NULLIFY (active_space_env%mos_active, active_space_env%mos_inactive)
NULLIFY (active_space_env%ks_sub, active_space_env%p_active)
NULLIFY (active_space_env%vxc_sub, active_space_env%h_sub)
@ -147,6 +153,14 @@ CONTAINS
IF (ASSOCIATED(active_space_env)) THEN
IF (ASSOCIATED(active_space_env%active_orbitals)) THEN
DEALLOCATE (active_space_env%active_orbitals)
END IF
IF (ASSOCIATED(active_space_env%inactive_orbitals)) THEN
DEALLOCATE (active_space_env%inactive_orbitals)
END IF
IF (ASSOCIATED(active_space_env%mos_active)) THEN
DO imo = 1, SIZE(active_space_env%mos_active)
CALL deallocate_mo_set(active_space_env%mos_active(imo)%mo_set)
@ -323,29 +337,45 @@ CONTAINS
!> \brief Calls the provided function for each element in the ERI
!> \param this object reference
!> \param nspin The spin number
!> \param active_orbitals the active orbital indices
!> \param fobj The function object from which to call `func(i, j, k, l, val)`
!> \param spin1 the first spin value
!> \param spin2 the second spin value
!> \par History
!> 04.2016 created [JHU]
!> 06.2016 factored out from qs_a_s_methods:fcidump [TMU]
!> \note Calls MPI, must be executed on all ranks.
! **************************************************************************************************
SUBROUTINE eri_type_eri_foreach(this, nspin, fobj)
SUBROUTINE eri_type_eri_foreach(this, nspin, active_orbitals, fobj, spin1, spin2)
USE message_passing, ONLY: mp_sum, mp_sync
CLASS(eri_type), INTENT(in) :: this
CLASS(eri_type_eri_element_func) :: fobj
INTEGER :: i1, i12, i12l, i2, i3, i34, i34l, i4, &
irange(2), irptr, nspin, nindex
INTEGER, DIMENSION(:, :), INTENT(IN) :: active_orbitals
INTEGER, OPTIONAL :: spin1, spin2
INTEGER :: i1, i12, i12l, i2, i3, i34, i34l, i4, m1, m2, m3, m4, &
irange(2), irptr, nspin, nindex, nmo
INTEGER, ALLOCATABLE, DIMENSION(:) :: colind
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: erival
REAL(KIND=dp) :: erint
IF (.NOT. PRESENT(spin1)) THEN
spin1 = nspin
END IF
IF (.NOT. PRESENT(spin2)) THEN
spin2 = nspin
END IF
ASSOCIATE (eri => this%eri(nspin)%csr_mat, norb => this%norb)
nindex = (norb*(norb + 1))/2
irange = get_irange_csr(nindex, eri%mp_group)
ALLOCATE (erival(nindex), colind(nindex))
DO i1 = 1, norb
DO i2 = i1, norb
nmo = SIZE(active_orbitals, 1)
DO m1 = 1, nmo
i1 = active_orbitals(m1, spin1)
DO m2 = m1, nmo
i2 = active_orbitals(m2, spin1)
i12 = csr_idx_to_combined(i1, i2, norb)
IF (i12 >= irange(1) .AND. i12 <= irange(2)) THEN
@ -370,8 +400,20 @@ CONTAINS
erint = erival(i34l)
CALL csr_idx_from_combined(i34, norb, i3, i4)
DO m3 = 1, nmo
IF (active_orbitals(m3, spin2) == i3) THEN
EXIT
END IF
END DO
DO m4 = 1, nmo
IF (active_orbitals(m4, spin2) == i4) THEN
EXIT
END IF
END DO
! terminate the loop prematurely if the function returns false
IF (.NOT. fobj%func(i1, i2, i3, i4, erint)) RETURN
IF (.NOT. fobj%func(m1, m2, m3, m4, erint)) RETURN
END DO
END DO

View file

@ -542,6 +542,7 @@ CONTAINS
CALL read_mos_restart_low(mo_array, para_env=para_env, qs_kind_set=qs_kind_set, &
particle_set=particle_set, natom=natom, &
rst_unit=restart_unit, multiplicity=multiplicity, natom_mismatch=natom_mismatch)
IF (PRESENT(natom_mismatch)) THEN
! read_mos_restart_low only the io_node returns natom_mismatch, must broadcast it
CALL mp_bcast(natom_mismatch, source, group)
@ -1033,10 +1034,6 @@ CONTAINS
CALL section_vals_val_get(dft_section, "PRINT%MO%MO_INDEX_RANGE", i_vals=mo_index_range)
CALL section_vals_val_get(dft_section, "PRINT%MO%NDIGITS", i_val=after)
after = MIN(MAX(after, 1), 16)
should_output = BTEST(cp_print_key_should_output(logger%iter_info, dft_section, &
"PRINT%MO"), cp_p_file)
IF ((.NOT. should_output) .OR. (.NOT. (print_eigvals .OR. print_eigvecs .OR. print_occup))) RETURN
! Do we print the final MO information after SCF convergence is reached (default: no)
IF (PRESENT(final_mos)) THEN
@ -1044,6 +1041,12 @@ CONTAINS
ELSE
my_final = .FALSE.
END IF
should_output = BTEST(cp_print_key_should_output(logger%iter_info, dft_section, &
"PRINT%MO"), cp_p_file) .OR. my_final
IF ((.NOT. should_output) .OR. (.NOT. (print_eigvals .OR. print_eigvecs .OR. print_occup))) RETURN
scf_step = MAX(0, logger%iter_info%iteration(logger%iter_info%n_rlevel) - 1)
IF (PRESENT(solver_method)) THEN

View file

@ -417,7 +417,7 @@ CONTAINS
CHARACTER(len=*), PARAMETER :: routineN = 'subspace_eigenvalues_ks_fm'
INTEGER :: handle, i, j, ncol_global, nrow_global
INTEGER :: handle, i, j, n, ncol_global, nrow_global
LOGICAL :: compute_evecs, do_rotation_local
REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: evals
TYPE(cp_fm_struct_type), POINTER :: fm_struct_tmp
@ -494,7 +494,8 @@ CONTAINS
! give output
IF (PRESENT(evals_arg)) THEN
evals_arg(:) = evals(:)
n = MIN(SIZE(evals_arg), SIZE(evals))
evals_arg(1:n) = evals(1:n)
END IF
IF (PRESENT(ionode) .OR. PRESENT(scr)) THEN

View file

@ -106,7 +106,6 @@ CONTAINS
END IF
NULLIFY (matrix_c) ! fm->dbcsr
!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx
CALL cp_fm_get_info(matrix_c_fm, nrow_global=n, ncol_global=k) ! fm->dbcsr
ALLOCATE (matrix_c)
@ -248,7 +247,7 @@ CONTAINS
END IF
END IF
! *** Eigensolver loop ***
! *** Eigensolver loop ***
ieigensolver = 0
eigensolver_loop: DO

View file

@ -249,7 +249,7 @@ CONTAINS
READ (tmpstringlist(2), *) occup_stats_occ_threshold
logger => cp_get_default_logger()
print_mo_info = (cp_print_key_should_output(logger%iter_info, dft_section, "PRINT%MO") /= 0)
print_mo_info = (cp_print_key_should_output(logger%iter_info, dft_section, "PRINT%MO") /= 0) .OR. final_mos
IF ((.NOT. print_mo_info) .OR. (.NOT. (print_eigvals .OR. print_eigvecs .OR. print_occup .OR. print_occup_stats))) THEN
CALL timestop(handle)

View file

@ -622,7 +622,7 @@ CONTAINS
IF (buf_coords_len < 4*nze .OR. buf_values_len < nze) &
EXIT try
CALL active_space_env%eri%eri_foreach(1, eri2array(buf_coords, buf_values))
CALL active_space_env%eri%eri_foreach(1, active_space_env%active_orbitals, eri2array(buf_coords, buf_values))
nelem = INT(nze, KIND(nelem))
END ASSOCIATE

View file

@ -5,29 +5,29 @@
# for details see cp2k/tools/do_regtest
#
h2_gapw_2-2.inp 1 1e-12 -1.12703481947359
h2_gapw_2-2.inp 92 1e-8 4.08762365
h2_gapw_2-2.inp 92 1e-8 4.08762828
h2_gapw_2-3.inp 1 1e-12 -1.12703481947359
h2_gapw_2-3.inp 92 1e-8 6.34129968
h2_gapw_2-3.inp 92 1e-8 6.34130225
h2_gapw_2-4.inp 1 1e-12 -1.12703481947359
h2_gapw_2-4.inp 92 1e-8 10.57997133
h2_gapw_2-4.inp 92 1e-8 10.57997331
h2_gapw_pp_2-2.inp 1 1e-12 -1.12609343153655
h2_gapw_pp_2-2.inp 92 1e-8 4.08439200
h2_gapw_pp_2-2.inp 92 1e-8 4.08439624
h2_gapw_pp_2-3.inp 1 1e-12 -1.12609343153655
h2_gapw_pp_2-3.inp 92 1e-8 6.33490411
h2_gapw_pp_2-3.inp 92 1e-8 6.33490647
h2_gapw_pp_2-4.inp 1 1e-12 -1.12609343153655
h2_gapw_pp_2-4.inp 92 1e-8 10.58497448
h2_gapw_pp_2-4.inp 92 1e-8 10.58497633
h2_gpw_pp_2-2.inp 1 1e-12 -1.12622646044780
h2_gpw_pp_2-2.inp 92 1e-8 4.08480362
h2_gpw_pp_2-2.inp 92 1e-8 4.08480786
h2_gpw_pp_2-3.inp 1 1e-12 -1.12622646044780
h2_gpw_pp_2-3.inp 92 1e-8 6.33542725
h2_gpw_pp_2-3.inp 92 1e-8 6.33542961
h2_gpw_pp_2-4.inp 1 1e-12 -1.12622646044780
h2_gpw_pp_2-4.inp 92 1e-8 10.58532335
h2_gpw_pp_2-4.inp 92 1e-8 10.58532520
h2o_gapw_2-2.inp 1 1e-12 -76.011970410506123
h2o_gapw_2-2.inp 92 1e-8 77.48403361
h2o_gapw_2-2.inp 92 1e-8 77.48403223
ch2_gapw_2-3.inp 1 1e-12 -38.91914381184247
ch2_gapw_2-3.inp 92 1e-8 50.38752107
ch2_gapw_2-3.inp 92 1e-8 50.38752368
ch2_gapw_pp_2-3.inp 1 1e-12 -6.51646227467145
ch2_gapw_pp_2-3.inp 92 1e-8 17.95445655
ch2_gapw_pp_2-3.inp 92 1e-8 17.95445556
ch2_gpw_pp_2-3.inp 1 1e-12 -6.51682932586237
ch2_gpw_pp_2-3.inp 92 1e-8 17.95513412
ch2_gpw_pp_2-3.inp 92 1e-8 17.95513322
#EOF

View file

@ -0,0 +1,30 @@
# 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
#
#h2_2-2.inp 1 1e-12 -1.15195791735218
#h2_2-2.inp 92 1e-8 3.69431122
h2_2-2.inp 92 1e-8 3.69373843
#h2_manual_1+2.inp 1 1e-12 -1.15195791735218
#h2_manual_1+2.inp 92 1e-8 3.69431122
h2_manual_1+2.inp 92 1e-8 3.69373843
#h2_manual_1+3.inp 1 1e-12 -1.15195791735218
#h2_manual_1+3.inp 92 1e-8 3.69984673
h2_manual_1+3.inp 92 1e-8 3.69884091
#h2_manual_1+4.inp 1 1e-12 -1.15195791735218
#h2_manual_1+4.inp 92 1e-8 3.86919130
h2_manual_1+4.inp 92 1e-8 3.86984321
#h2_iterative_density.inp 1 1e-12 -1.15195791735218
#h2_iterative_density.inp 92 1e-8 3.69468254
#h2_manual_1+2_1+3.inp 1 1e-12 -1.15195791735218
#h2_manual_1+2_1+3.inp 92 1e-8 8.68780361
h2_manual_1+2_1+3.inp 92 1e-8 8.68621321
#h2_manual_1+3_1+2.inp 1 1e-12 -1.15195791735218
#h2_manual_1+3_1+2.inp 92 1e-8 8.68780361
h2_manual_1+3_1+2.inp 92 1e-8 8.68621321
#h2_manual_UKS_1+2.inp 1 1e-12 -1.15195791735218
#h2_manual_UKS_1+2.inp 92 1e-8 8.52511231
h2_manual_UKS_1+2.inp 92 1e-8 8.52386602
#EOF

View file

@ -0,0 +1,104 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2
ISOLATED_SYSTEM TRUE
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

Binary file not shown.

View file

@ -0,0 +1,106 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_iterative_density
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-001
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
READ_P_ACTIVE .TRUE.
P_ACTIVE_FILE_NAME h2_iterative_density.bin
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2
ISOLATED_SYSTEM TRUE
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -0,0 +1,106 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_manual
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2
ISOLATED_SYSTEM TRUE
ORBITAL_SELECTION MANUAL
ACTIVE_ORBITAL_INDICES 1 2
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -0,0 +1,109 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_manual
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
UKS TRUE
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2 2
INACTIVE_ELECTRONS 0 0
ISOLATED_SYSTEM TRUE
ORBITAL_SELECTION MANUAL
ACTIVE_ORBITAL_INDICES 1 2 1 3
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -0,0 +1,106 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_manual
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2
ISOLATED_SYSTEM TRUE
ORBITAL_SELECTION MANUAL
ACTIVE_ORBITAL_INDICES 1 3
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -0,0 +1,109 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_manual
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
UKS TRUE
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2 2
INACTIVE_ELECTRONS 0 0
ISOLATED_SYSTEM TRUE
ORBITAL_SELECTION MANUAL
ACTIVE_ORBITAL_INDICES 1 3 1 2
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -0,0 +1,106 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_manual
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2
ISOLATED_SYSTEM TRUE
ORBITAL_SELECTION MANUAL
ACTIVE_ORBITAL_INDICES 1 4
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -0,0 +1,109 @@
&GLOBAL
RUN_TYPE ENERGY
PRINT_LEVEL LOW
PROJECT h2_manual
&END GLOBAL
&FORCE_EVAL
METHOD QS
&SUBSYS
&CELL
ABC 6.0 6.0 6.0
PERIODIC NONE
&END CELL
&COORD
H 0.0 0.0 0.356
H 0.0 0.0 -0.356
&END COORD
&KIND H
BASIS_SET 6-31G*
POTENTIAL ALL
&END KIND
&PRINT
&INTERATOMIC_DISTANCES ON
&END INTERATOMIC_DISTANCES
&END PRINT
&END SUBSYS
&DFT
&QS
METHOD GAPW
&END QS
UKS TRUE
&XC
&XC_FUNCTIONAL
# LDA_X_ERF is the short-range part of the functional
&LDA_X_ERF
_OMEGA 1.0
SCALE 1.0
&END
&LDA_C_PMGB06
SCALE -1.0
_OMEGA 1.0
&END
&LDA_C_PW
&END
&END XC_FUNCTIONAL
&HF
FRACTION 1.0
&INTERACTION_POTENTIAL
POTENTIAL_TYPE LONGRANGE
OMEGA 1.0
&END INTERACTION_POTENTIAL
&END HF
&END XC
&POISSON
POISSON_SOLVER ANALYTIC
PERIODIC NONE
&END POISSON
&MGRID
CUTOFF 300
&END MGRID
&SCF
EPS_DIIS 1E-003
EPS_EIGVAL 1E-009
EPS_SCF 1E-009
ADDED_MOS 3
MAX_SCF 20
&PRINT
&RESTART OFF
&END RESTART
&END PRINT
&END SCF
&PRINT
&ACTIVE_SPACE
ACTIVE_ELECTRONS 2
ACTIVE_ORBITALS 2 2
INACTIVE_ELECTRONS 0 0
ISOLATED_SYSTEM TRUE
ORBITAL_SELECTION MANUAL
ACTIVE_ORBITAL_INDICES 1 2
&ERI
EPS_INTEGRAL 1E-10
METHOD FULL_GPW
OPERATOR <ERF(A*R)/R>
OPERATOR_PARAMETER 1.0
PERIODICITY 0 0 0
&END ERI
&ERI_GPW
CUTOFF 250
&END ERI_GPW
&FCIDUMP
FILENAME __STD_OUT__
&END FCIDUMP
&END ACTIVE_SPACE
&END PRINT
&END DFT
&END FORCE_EVAL

View file

@ -283,6 +283,7 @@ QS/regtest-nmr-3
QS/regtest-hybrid-1 libint
QS/regtest-rtp-1
QS/regtest-as libint
QS/regtest-as-dft libint
QS/regtest-sym-3
FARMING/regtest-1
QS/regtest-cdft-2