From 6964239efd08d4cc292ef34491395385576eab63 Mon Sep 17 00:00:00 2001 From: Max Rossmannek Date: Fri, 18 Dec 2020 09:14:16 +0100 Subject: [PATCH] Bug-fixes and upgrades to the Active Space Module - bug fixes of some incorrect indices - extension to support UKS calculations - implementation of an FCIDump checksum to ease testing - addition of regression tests - minor documentation improvements After this PR, the active space module can be used in conjunction with HF-style calculations. This includes: - GAPW with the ALL electron potential - GAPW with the GTH-HF potential - GPW with the GTH-HF potential Regression tests for all of the above scenarios have been added in `tests/QS/regtest-as-1`. ``` % ../tools/regtesting/do_regtest -cp2kdir ../ -version sdbg -arch local -nobuild -restrictdir QS/regtest-as-1 <...> --------------------------------- Summary -------------------------------- Number of FAILED tests 0 Number of WRONG tests 0 Number of CORRECT tests 26 Total number of tests 26 GREPME 0 0 26 0 26 X Summary: correct: 26 / 26; 3min Status: OK ``` --- src/qs_active_space_methods.F | 605 ++++++++++++++++------ src/qs_active_space_types.F | 36 +- tests/QS/regtest-as-1/TEST_FILES | 33 ++ tests/QS/regtest-as-1/ch2_gapw_2-3.inp | 78 +++ tests/QS/regtest-as-1/ch2_gapw_pp_2-3.inp | 78 +++ tests/QS/regtest-as-1/ch2_gpw_pp_2-3.inp | 78 +++ tests/QS/regtest-as-1/h2_gapw_2-2.inp | 70 +++ tests/QS/regtest-as-1/h2_gapw_2-3.inp | 70 +++ tests/QS/regtest-as-1/h2_gapw_2-4.inp | 70 +++ tests/QS/regtest-as-1/h2_gapw_pp_2-2.inp | 70 +++ tests/QS/regtest-as-1/h2_gapw_pp_2-3.inp | 70 +++ tests/QS/regtest-as-1/h2_gapw_pp_2-4.inp | 70 +++ tests/QS/regtest-as-1/h2_gpw_pp_2-2.inp | 70 +++ tests/QS/regtest-as-1/h2_gpw_pp_2-3.inp | 70 +++ tests/QS/regtest-as-1/h2_gpw_pp_2-4.inp | 70 +++ tests/QS/regtest-as-1/h2o_gapw_2-2.inp | 75 +++ tests/TEST_DIRS | 1 + tests/TEST_TYPES | 3 +- 18 files changed, 1450 insertions(+), 167 deletions(-) create mode 100644 tests/QS/regtest-as-1/TEST_FILES create mode 100644 tests/QS/regtest-as-1/ch2_gapw_2-3.inp create mode 100644 tests/QS/regtest-as-1/ch2_gapw_pp_2-3.inp create mode 100644 tests/QS/regtest-as-1/ch2_gpw_pp_2-3.inp create mode 100644 tests/QS/regtest-as-1/h2_gapw_2-2.inp create mode 100644 tests/QS/regtest-as-1/h2_gapw_2-3.inp create mode 100644 tests/QS/regtest-as-1/h2_gapw_2-4.inp create mode 100644 tests/QS/regtest-as-1/h2_gapw_pp_2-2.inp create mode 100644 tests/QS/regtest-as-1/h2_gapw_pp_2-3.inp create mode 100644 tests/QS/regtest-as-1/h2_gapw_pp_2-4.inp create mode 100644 tests/QS/regtest-as-1/h2_gpw_pp_2-2.inp create mode 100644 tests/QS/regtest-as-1/h2_gpw_pp_2-3.inp create mode 100644 tests/QS/regtest-as-1/h2_gpw_pp_2-4.inp create mode 100644 tests/QS/regtest-as-1/h2o_gapw_2-2.inp diff --git a/src/qs_active_space_methods.F b/src/qs_active_space_methods.F index f01b32710d..55fc064fc3 100644 --- a/src/qs_active_space_methods.F +++ b/src/qs_active_space_methods.F @@ -140,17 +140,38 @@ MODULE qs_active_space_methods PUBLIC :: active_space_main TYPE, EXTENDS(eri_type_eri_element_func) :: eri_fcidump_print - INTEGER :: unit_nr + INTEGER :: unit_nr, bra_start, ket_start CONTAINS PROCEDURE :: func => eri_fcidump_print_func END TYPE + TYPE, EXTENDS(eri_type_eri_element_func) :: eri_fcidump_checksum + INTEGER :: bra_start = 0, ket_start = 0 + REAL(KIND=dp) :: checksum = 0.0_dp + CONTAINS + PROCEDURE, PASS :: set => eri_fcidump_set + PROCEDURE :: func => eri_fcidump_checksum_func + END TYPE eri_fcidump_checksum + ! ************************************************************************************************** CONTAINS ! ************************************************************************************************** -!> \brief ... +!> \brief Sets the starting indices of the bra and ket. +!> \param this object reference +!> \param bra_start starting index of the bra +!> \param ket_start starting index of the ket +! ************************************************************************************************** + SUBROUTINE eri_fcidump_set(this, bra_start, ket_start) + CLASS(eri_fcidump_checksum) :: this + INTEGER, INTENT(IN) :: bra_start, ket_start + this%bra_start = bra_start + this%ket_start = ket_start + END SUBROUTINE eri_fcidump_set + +! ************************************************************************************************** +!> \brief Main method for determining the active space Hamiltonian !> \param input ... !> \param logger ... !> \param qs_env ... @@ -164,8 +185,8 @@ CONTAINS CHARACTER(len=10) :: cshell, lnam(5) INTEGER :: eri_method, eri_operator, eri_print, handle, i, iatom, ishell, isp, ispin, iw, j, & - jm, m, mselect, n1, n2, nactive, nao, natom, ncol, nel, ninactive, ninactive_alpha, & - ninactive_beta, nmo, nn1, nn2, nspins, ntot, zval + jm, m, mselect, n1, n2, nao, natom, ncol, nel, nelec_active, nelec_inactive, & + nelec_inactive_alpha, nelec_inactive_beta, nelec_total, nmo, nn1, nn2, nspins, zval INTEGER, DIMENSION(2) :: nactive_orb, nepol, ninactive_orb INTEGER, DIMENSION(5) :: nshell INTEGER, DIMENSION(:), POINTER :: invals @@ -250,9 +271,9 @@ CONTAINS END IF END IF - CALL section_vals_val_get(as_input, "ACTIVE_ELECTRONS", i_val=nactive) - IF (nactive <= 0) CPABORT("Specify a positive number of active electrons.") - CALL get_qs_env(qs_env, nelectron_total=ntot, nelectron_spin=nepol) + CALL section_vals_val_get(as_input, "ACTIVE_ELECTRONS", i_val=nelec_active) + IF (nelec_active <= 0) CPABORT("Specify a positive number of active electrons.") + CALL get_qs_env(qs_env, nelectron_total=nelec_total, nelectron_spin=nepol) CALL get_qs_env(qs_env, dft_control=dft_control) nspins = dft_control%nspins CALL section_vals_val_get(as_input, "INACTIVE_ELECTRONS", explicit=explicit) @@ -262,51 +283,53 @@ CONTAINS CALL cp_abort(__LOCATION__, "Number of Inactive Electrons has to be specified"// & " in spin polarised case.") END IF - ninactive_alpha = invals(1) - ninactive_beta = invals(2) - ninactive = ninactive_alpha + ninactive_beta + nelec_inactive_alpha = invals(1) + nelec_inactive_beta = invals(2) + nelec_inactive = nelec_inactive_alpha + nelec_inactive_beta ELSE IF (explicit) THEN - ninactive = invals(1) + nelec_inactive = invals(1) ELSE - ninactive = ntot - nactive + nelec_inactive = nelec_total - nelec_active END IF - ninactive_alpha = ninactive - ninactive_beta = 0 - END IF - CPASSERT(ninactive >= 0) - CPASSERT(ninactive_alpha >= 0) - CPASSERT(ninactive_beta >= 0) - CPASSERT(ntot == ninactive + nactive) - IF (nspins > 1) THEN - CPASSERT(nepol(1) >= ninactive_alpha) - CPASSERT(nepol(2) >= ninactive_beta) + nelec_inactive_alpha = nelec_inactive + nelec_inactive_beta = 0 END IF IF (iw > 0) THEN IF (nspins < 2) THEN - WRITE (iw, '(T4,A,T69,I10)') "Total number of electrons", ntot - WRITE (iw, '(T4,A,T69,I10)') "Number of active electrons", nactive - WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons", ninactive + WRITE (iw, '(T4,A,T69,I10)') "Total number of electrons", nelec_total + WRITE (iw, '(T4,A,T69,I10)') "Number of active electrons", nelec_active + WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons", nelec_inactive ELSE - WRITE (iw, '(T4,A,T69,I10)') "Total number of electrons", ntot - WRITE (iw, '(T4,A,T69,I10)') "Number of active electrons", nactive - WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons", ninactive - WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons (alpha)", ninactive_alpha - WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons (beta)", ninactive_beta + WRITE (iw, '(T4,A,T69,I10)') "Total number of electrons", nelec_total + WRITE (iw, '(T4,A,T69,I10)') "Number of active electrons", nelec_active + WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons", nelec_inactive + WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons (alpha)", nelec_inactive_alpha + WRITE (iw, '(T4,A,T69,I10)') "Number of inactive electrons (beta)", nelec_inactive_beta END IF END IF - active_space_env%nactive = nactive - active_space_env%ninactive = ninactive - IF (nspins == 1) THEN - active_space_env%nelectrons(1) = ntot - active_space_env%nelectrons(2) = 0 - ELSE - active_space_env%nelectrons(1) = nepol(1) - active_space_env%nelectrons(2) = nepol(2) + + CPASSERT(nelec_inactive >= 0) + CPASSERT(nelec_inactive_alpha >= 0) + CPASSERT(nelec_inactive_beta >= 0) + CPASSERT(nelec_total == nelec_inactive + nelec_active) + IF (nspins > 1) THEN + CPASSERT(nepol(1) >= nelec_inactive_alpha) + CPASSERT(nepol(2) >= nelec_inactive_beta) END IF - active_space_env%ninspin(1) = ninactive_alpha - active_space_env%ninspin(2) = ninactive_beta + + active_space_env%nelec_active = nelec_active + active_space_env%nelec_inactive = nelec_inactive + IF (nspins == 1) THEN + active_space_env%nelec_total(1) = nelec_total + active_space_env%nelec_total(2) = 0 + ELSE + active_space_env%nelec_total(1) = nepol(1) + active_space_env%nelec_total(2) = nepol(2) + END IF + active_space_env%nelec_inactive_spinwise(1) = nelec_inactive_alpha + active_space_env%nelec_inactive_spinwise(2) = nelec_inactive_beta active_space_env%multiplicity = dft_control%multiplicity active_space_env%nspins = nspins @@ -325,10 +348,10 @@ CONTAINS CALL section_vals_val_get(as_input, "INACTIVE_ORBITALS", i_vals=invals) IF (.NOT. explicit) THEN IF (nspins == 1) THEN - ninactive_orb(1) = active_space_env%ninspin(1)/2 + ninactive_orb(1) = active_space_env%nelec_inactive_spinwise(1)/2 ELSE DO ispin = 1, nspins - ninactive_orb(ispin) = active_space_env%ninspin(ispin) + ninactive_orb(ispin) = active_space_env%nelec_inactive_spinwise(ispin) END DO END IF ELSE @@ -338,11 +361,11 @@ CONTAINS END DO END IF IF (nspins == 1) THEN - CPASSERT(MOD(ninactive, 2) == 0) - CPASSERT(ninactive_orb(1) >= ninactive/2) + CPASSERT(MOD(nelec_inactive, 2) == 0) + CPASSERT(ninactive_orb(1) >= nelec_inactive/2) ELSE - CPASSERT(ninactive_orb(1) >= ninactive_alpha) - CPASSERT(ninactive_orb(2) >= ninactive_beta) + CPASSERT(ninactive_orb(1) >= nelec_inactive_alpha) + CPASSERT(ninactive_orb(2) >= nelec_inactive_beta) END IF CALL get_qs_env(qs_env, mos=mos) @@ -363,7 +386,7 @@ CONTAINS active_space_env%mos_active(ispin)%mo_set => mo_set mo_set => active_space_env%mos_inactive(ispin)%mo_set nmo = ninactive_orb(ispin) - nel = active_space_env%ninspin(ispin) + nel = active_space_env%nelec_inactive_spinwise(ispin) NULLIFY (mo_set) CALL allocate_mo_set(mo_set, nao, nmo, nel, REAL(nel, KIND=dp), maxocc, 0.0_dp) CALL init_mo_set(mo_set, fm_ref=fm_ref, name="Inactive Space MO") @@ -474,11 +497,11 @@ CONTAINS "[atomic units]" DO i = 1, ninactive_orb(ispin), 4 jm = MIN(3, ninactive_orb(ispin) - i) - WRITE (iw, '(T3,4(F14.6,A5))') (eigenvalues(i + j, 1), " [I]", j=0, jm) + WRITE (iw, '(T3,4(F14.6,A5))') (eigenvalues(i + j, ispin), " [I]", j=0, jm) END DO DO i = ninactive_orb(ispin) + 1, ninactive_orb(ispin) + nactive_orb(ispin), 4 jm = MIN(3, ninactive_orb(ispin) + nactive_orb(ispin) - i) - WRITE (iw, '(T3,4(F14.6,A5))') (eigenvalues(i + j, 1), " [A]", j=0, jm) + WRITE (iw, '(T3,4(F14.6,A5))') (eigenvalues(i + j, ispin), " [A]", j=0, jm) END DO END DO END IF @@ -668,7 +691,7 @@ CONTAINS nn1 = (n1*(n1 + 1))/2 nn2 = (n2*(n2 + 1))/2 CALL dbcsr_csr_create(eri_mat, nn1, nn2, 0_int_8, 0, 0, para_env%group) - CALL get_mo_set(active_space_env%mos_active(i)%mo_set, nmo=active_space_env%eri%norb) + CALL get_mo_set(active_space_env%mos_active(1)%mo_set, nmo=active_space_env%eri%norb)! here replace i with 1, i can be > nspins END DO SELECT CASE (eri_method) @@ -708,12 +731,12 @@ CONTAINS ! set the reference active space density matrix nspins = active_space_env%nspins - ALLOCATE (active_space_env%p_ref(nspins)) + ALLOCATE (active_space_env%p_active(nspins)) DO isp = 1, nspins mo_set => active_space_env%mos_active(isp)%mo_set CALL get_mo_set(mo_set, mo_coeff=mo_coeff, nmo=nmo) - NULLIFY (active_space_env%p_ref(isp)%matrix) - CALL create_subspace_matrix(mo_coeff, active_space_env%p_ref(isp)%matrix, nmo) + NULLIFY (active_space_env%p_active(isp)%matrix) + CALL create_subspace_matrix(mo_coeff, active_space_env%p_active(isp)%matrix, nmo) END DO SELECT CASE (mselect) CASE DEFAULT @@ -722,9 +745,9 @@ CONTAINS focc = 2.0_dp IF (nspins == 2) focc = 1.0_dp DO isp = 1, nspins - fmat => active_space_env%p_ref(isp)%matrix + fmat => active_space_env%p_active(isp)%matrix CALL cp_fm_set_all(fmat, alpha=0.0_dp) - n1 = active_space_env%nelectrons(isp) - active_space_env%ninspin(isp) + n1 = active_space_env%nelec_total(isp) - active_space_env%nelec_inactive_spinwise(isp) DO i = 1, nactive_orb(isp) fel = MIN(focc, REAL(n1, KIND=dp)) CALL cp_fm_set_element(fmat, i, i, fel) @@ -757,7 +780,7 @@ CONTAINS ! ************************************************************************************************** !> \brief computes the one-electron operators in the subspace of the provided orbital set -!> \param mos ... +!> \param mos the molecular orbital set within the active subspace !> \param qs_env ... !> \param active_space_env ... !> \par History @@ -844,8 +867,8 @@ CONTAINS ! ************************************************************************************************** !> \brief computes a one-electron operator in the subspace of the provided orbital set -!> \param orbitals ... -!> \param nmo ... +!> \param orbitals the orbital coefficient matrix +!> \param nmo the number of orbitals !> \param op_matrix operator matrix in AO basis !> \param op_sub operator in orbital basis !> \par History @@ -890,9 +913,9 @@ CONTAINS ! ************************************************************************************************** !> \brief creates a matrix of subspace size -!> \param orbitals ... +!> \param orbitals the orbital coefficient matrix !> \param op_sub operator in orbital basis -!> \param n ... +!> \param n the number of orbitals !> \par History !> 04.2016 created [JGH] ! ************************************************************************************************** @@ -920,7 +943,7 @@ CONTAINS ! ************************************************************************************************** !> \brief computes a electron repulsion integrals using GPW technology -!> \param mos ... +!> \param mos the molecular orbital set within the active subspace !> \param eri_env ... !> \param qs_env ... !> \param iw ... @@ -1155,7 +1178,7 @@ CONTAINS END IF wfn_r%pw%cr3d = rho_r%pw%cr3d*wfn3%pw%cr3d*wfn4%pw%cr3d erint = pw_integrate_function(wfn_r%pw) - IF (erint > eri_env%eps_integral) THEN + IF (ABS(erint) > eri_env%eps_integral) THEN intcount = intcount + 1 IF (print2 .AND. iw > 0) THEN WRITE (iw, "(T4,'ERI_GPW|',T20,2I4,' [',I1,']',2I4,' [',I1,']',T58,G20.14)") & @@ -1475,6 +1498,7 @@ CONTAINS CALL pw_pool_give_back_pw(auxbas_pw_pool, wf_g%pw) END SUBROUTINE print_orbital_cubes + ! ************************************************************************************************** !> \brief Writes a FCIDUMP file !> \param active_space_env ... @@ -1488,10 +1512,12 @@ CONTAINS TYPE(section_vals_type), POINTER :: as_input INTEGER :: i, i1, i2, i3, i4, isym, iw, nspins - REAL(KIND=dp) :: esub, mval + REAL(KIND=dp) :: checksum, esub REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: fmat - TYPE(cp_fm_type), POINTER :: matrix TYPE(cp_logger_type), POINTER :: logger + TYPE(eri_fcidump_checksum) :: eri_checksum + + checksum = 0.0_dp logger => cp_get_default_logger() IF (BTEST(cp_print_key_should_output(logger%iter_info, & @@ -1503,7 +1529,7 @@ CONTAINS IF (nspins == 1) THEN ASSOCIATE (norb=>active_space_env%eri%norb, & ms2=>0, & ! active_space_env%multiplicity ? - nelec=>active_space_env%nactive) + nelec=>active_space_env%nelec_active) IF (iw > 0) THEN WRITE (iw, "(A,A,I4,A,I4,A,I2,A)") "&FCI", " NORB=", norb, ",NELEC=", nelec, ",MS2=", ms2, "," @@ -1515,23 +1541,19 @@ CONTAINS END IF ! ! Print integrals: ERI - CALL active_space_env%eri%eri_foreach(1, eri_fcidump_print(iw)) + CALL active_space_env%eri%eri_foreach(1, eri_fcidump_print(iw, 1, 1)) + CALL eri_checksum%set(1, 1) + CALL active_space_env%eri%eri_foreach(1, eri_checksum) + ! Print integrals: Fij ! replicate Fock matrix ALLOCATE (fmat(norb, norb)) - fmat = 0.0_dp - matrix => active_space_env%fock_sub(1)%matrix - DO i1 = 1, norb - DO i2 = i1, norb - CALL cp_fm_get_element(matrix, i1, i2, mval) - fmat(i1, i2) = mval - fmat(i2, i1) = mval - END DO - END DO + CALL replicate_and_symmetrize_matrix(norb, active_space_env%fock_sub(1)%matrix, fmat) IF (iw > 0) THEN i3 = 0; i4 = 0 DO i1 = 1, norb DO i2 = i1, norb + checksum = checksum + ABS(fmat(i1, i2)) WRITE (iw, "(ES23.16,4I4)") fmat(i1, i2), i1, i2, i3, i4 END DO END DO @@ -1540,16 +1562,108 @@ CONTAINS ! Print energy esub = active_space_env%energy_inactive i1 = 0; i2 = 0; i3 = 0; i4 = 0 + checksum = checksum + ABS(esub) IF (iw > 0) WRITE (iw, "(ES23.16,4I4)") esub, i1, i2, i3, i4 END ASSOCIATE ELSE - CPABORT("Option not yet available") + + ASSOCIATE (norb=>active_space_env%eri%norb, & + ms2=>0, & ! active_space_env%multiplicity ? + nelec=>active_space_env%nelec_active) + + IF (iw > 0) THEN + WRITE (iw, "(A,A,I4,A,I4,A,I2,A)") "&FCI", " NORB=", norb, ",NELEC=", nelec, ",MS2=", ms2, "," + isym = 1 + WRITE (iw, "(A,1000(I1,','))") " ORBSYM=", (isym, i=1, norb) + isym = 0 + WRITE (iw, "(A,I1,A)") " ISYM=", isym, "," + WRITE (iw, "(A,I1,A)") " UHF=", 1, "," + WRITE (iw, "(A)") " /" + END IF + ! + ! Print integrals: ERI + ! alpha-alpha + CALL active_space_env%eri%eri_foreach(1, eri_fcidump_print(iw, 1, 1)) + CALL eri_checksum%set(1, 1) + CALL active_space_env%eri%eri_foreach(1, eri_checksum) + ! alpha-beta + CALL active_space_env%eri%eri_foreach(2, eri_fcidump_print(iw, 1, norb + 1)) + CALL eri_checksum%set(1, norb + 1) + CALL active_space_env%eri%eri_foreach(2, eri_checksum) + ! beta-beta + CALL active_space_env%eri%eri_foreach(3, eri_fcidump_print(iw, norb + 1, norb + 1)) + CALL eri_checksum%set(norb + 1, norb + 1) + CALL active_space_env%eri%eri_foreach(3, eri_checksum) + ! Print integrals: Fij + ! alpha + ALLOCATE (fmat(norb, norb)) + CALL replicate_and_symmetrize_matrix(norb, active_space_env%fock_sub(1)%matrix, fmat) + IF (iw > 0) THEN + i3 = 0; i4 = 0 + DO i1 = 1, norb + DO i2 = i1, norb + checksum = checksum + ABS(fmat(i1, i2)) + WRITE (iw, "(ES23.16,4I4)") fmat(i1, i2), i1, i2, i3, i4 + END DO + END DO + END IF + DEALLOCATE (fmat) + ! beta + ALLOCATE (fmat(norb, norb)) + CALL replicate_and_symmetrize_matrix(norb, active_space_env%fock_sub(2)%matrix, fmat) + IF (iw > 0) THEN + i3 = 0; i4 = 0 + DO i1 = 1, norb + DO i2 = i1, norb + checksum = checksum + ABS(fmat(i1, i2)) + WRITE (iw, "(ES23.16,4I4)") fmat(i1, i2), i1 + norb, i2 + norb, i3, i4 + END DO + END DO + END IF + DEALLOCATE (fmat) + ! Print energy + esub = active_space_env%energy_inactive + i1 = 0; i2 = 0; i3 = 0; i4 = 0 + checksum = checksum + ABS(esub) + IF (iw > 0) WRITE (iw, "(ES23.16,4I4)") esub, i1, i2, i3, i4 + END ASSOCIATE END IF ! CALL cp_print_key_finished_output(iw, logger, as_input, "FCIDUMP") + + !>> + iw = cp_logger_get_default_io_unit(logger) + IF (iw > 0) WRITE (iw, '(T4,A,T66,F12.8)') "FCIDUMP| Checksum:", eri_checksum%checksum + checksum + !<< + END IF END SUBROUTINE fcidump + +! ************************************************************************************************** +!> \brief replicate and symmetrize a matrix +!> \param norb the number of orbitals +!> \param distributed_matrix ... +!> \param replicated_matrix ... +! ************************************************************************************************** + SUBROUTINE replicate_and_symmetrize_matrix(norb, distributed_matrix, replicated_matrix) + INTEGER, INTENT(IN) :: norb + TYPE(cp_fm_type), INTENT(IN), POINTER :: distributed_matrix + REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: replicated_matrix + + INTEGER :: i1, i2 + REAL(dp) :: mval + + replicated_matrix(:, :) = 0.0_dp + DO i1 = 1, norb + DO i2 = i1, norb + CALL cp_fm_get_element(distributed_matrix, i1, i2, mval) + replicated_matrix(i1, i2) = mval + replicated_matrix(i2, i1) = mval + END DO + END DO + END SUBROUTINE replicate_and_symmetrize_matrix + ! ************************************************************************************************** !> \brief Calculates active space Fock matrix and inactive energy !> \param active_space_env ... @@ -1560,89 +1674,36 @@ CONTAINS TYPE(active_space_type), POINTER :: active_space_env - INTEGER :: i1, i12, i12l, i2, i3, i34, i34l, i4, & - irange(2), irptr, is, nelec, nindex, & - norb, nspins - REAL(KIND=dp) :: eeri, eref, erint, esub, mval - REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: ks_mat, ks_ref, p_mat + CHARACTER(len=*), PARAMETER :: routineN = 'subspace_fock_matrix', & + routineP = moduleN//':'//routineN + + INTEGER :: i1, i2, is, norb, nspins + REAL(KIND=dp) :: eeri, eref, esub, mval + REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: ks_a_mat, ks_a_ref, ks_b_mat, ks_b_ref, & + ks_mat, ks_ref, p_a_mat, p_b_mat, p_mat TYPE(cp_fm_type), POINTER :: matrix - TYPE(dbcsr_csr_type), POINTER :: eri + TYPE(dbcsr_csr_type), POINTER :: eri, eri_aa, eri_ab, eri_bb eref = active_space_env%energy_ref nspins = active_space_env%nspins IF (nspins == 1) THEN - nelec = active_space_env%nactive CALL get_mo_set(active_space_env%mos_active(1)%mo_set, nmo=norb) ! ! Loop over ERI, calculate subspace HF energy and Fock matrix ! ! replicate KS, Core, and P matrices ALLOCATE (ks_mat(norb, norb), ks_ref(norb, norb), p_mat(norb, norb)) - ks_mat = 0.0_dp ks_ref = 0.0_dp - p_mat = 0.0_dp - DO i1 = 1, norb - DO i2 = i1, norb - matrix => active_space_env%p_ref(1)%matrix - CALL cp_fm_get_element(matrix, i1, i2, mval) - p_mat(i1, i2) = mval - p_mat(i2, i1) = mval - matrix => active_space_env%ks_sub(1)%matrix - CALL cp_fm_get_element(matrix, i1, i2, mval) - ks_mat(i1, i2) = mval - ks_mat(i2, i1) = mval - END DO - END DO + + CALL replicate_and_symmetrize_matrix(norb, active_space_env%p_active(1)%matrix, p_mat) + CALL replicate_and_symmetrize_matrix(norb, active_space_env%ks_sub(1)%matrix, ks_mat) + ! + ! + eri => active_space_env%eri%eri(1)%csr_mat + CALL build_subspace_fock_matrix(norb, eri, p_mat, ks_ref) + ! ! calculate energy eeri = 0.0_dp - eri => active_space_env%eri%eri(1)%csr_mat - nindex = (norb*(norb + 1))/2 - irange = get_irange_csr(nindex, eri%mp_group) - DO i1 = 1, norb - DO i2 = i1, norb - i12 = csr_idx_to_combined(i1, i2, norb) - IF (i12 >= irange(1) .AND. i12 <= irange(2)) THEN - i12l = i12 - irange(1) + 1 - irptr = eri%rowptr_local(i12l) - 1 - DO i34l = 1, eri%nzerow_local(i12l) - i34 = eri%colind_local(irptr + i34l) - CALL csr_idx_from_combined(i34, norb, i3, i4) - erint = eri%nzval_local%r_dp(irptr + i34l) - ! Coulomb - ks_ref(i1, i2) = ks_ref(i1, i2) + erint*p_mat(i3, i4) - IF (i3 /= i4) THEN - ks_ref(i1, i2) = ks_ref(i1, i2) + erint*p_mat(i3, i4) - END IF - IF (i12 /= i34) THEN - ks_ref(i3, i4) = ks_ref(i3, i4) + erint*p_mat(i1, i2) - IF (i1 /= i2) THEN - ks_ref(i3, i4) = ks_ref(i3, i4) + erint*p_mat(i1, i2) - END IF - END IF - ! Exchange - erint = -0.5_dp*erint - ks_ref(i1, i3) = ks_ref(i1, i3) + erint*p_mat(i2, i4) - IF (i1 /= i2) THEN - ks_ref(i2, i3) = ks_ref(i2, i3) + erint*p_mat(i1, i4) - END IF - IF (i3 /= i4) THEN - ks_ref(i1, i4) = ks_ref(i1, i4) + erint*p_mat(i2, i3) - END IF - IF (i1 /= i2 .AND. i3 /= i4) THEN - ks_ref(i2, i4) = ks_ref(i2, i4) + erint*p_mat(i1, i3) - END IF - END DO - END IF - END DO - END DO - ! - DO i1 = 1, norb - DO i2 = i1, norb - ks_ref(i1, i2) = ks_ref(i2, i1) - END DO - END DO - CALL mp_sum(ks_ref, eri%mp_group) - ! eeri = 0.5_dp*SUM(ks_ref*p_mat) esub = eref - SUM(ks_mat(1:norb, 1:norb)*p_mat(1:norb, 1:norb)) + eeri ks_mat(1:norb, 1:norb) = ks_mat(1:norb, 1:norb) - ks_ref(1:norb, 1:norb) @@ -1669,10 +1730,233 @@ CONTAINS END DO END DO ELSE - CPABORT("Spin option not yet available") + + CALL get_mo_set(active_space_env%mos_active(1)%mo_set, nmo=norb) + ! + ! Loop over ERI, calculate subspace HF energy and Fock matrix + ! + ! replicate KS, Core, and P matrices + ALLOCATE (ks_a_mat(norb, norb), ks_b_mat(norb, norb), & + & ks_a_ref(norb, norb), ks_b_ref(norb, norb), & + & p_a_mat(norb, norb), p_b_mat(norb, norb)) + ks_a_ref(:, :) = 0.0_dp; ks_b_ref(:, :) = 0.0_dp + + CALL replicate_and_symmetrize_matrix(norb, active_space_env%p_active(1)%matrix, p_a_mat) + CALL replicate_and_symmetrize_matrix(norb, active_space_env%p_active(2)%matrix, p_b_mat) + CALL replicate_and_symmetrize_matrix(norb, active_space_env%ks_sub(1)%matrix, ks_a_mat) + CALL replicate_and_symmetrize_matrix(norb, active_space_env%ks_sub(2)%matrix, ks_b_mat) + ! + ! + eri_aa => active_space_env%eri%eri(1)%csr_mat + eri_ab => active_space_env%eri%eri(2)%csr_mat + eri_bb => active_space_env%eri%eri(3)%csr_mat + CALL build_subspace_spin_fock_matrix(norb, eri_aa, eri_ab, p_a_mat, p_b_mat, ks_a_ref, tr_mixed_eri=.FALSE.) + CALL build_subspace_spin_fock_matrix(norb, eri_bb, eri_ab, p_b_mat, p_a_mat, ks_b_ref, tr_mixed_eri=.TRUE.) + ! + ! calculate energy + eeri = 0.0_dp + eeri = 0.5_dp*(SUM(ks_a_ref*p_a_mat) + SUM(ks_b_ref*p_b_mat)) + esub = eref - SUM(ks_a_mat*p_a_mat) - SUM(ks_b_mat*p_b_mat) + eeri + ks_a_mat(:, :) = ks_a_mat(:, :) - ks_a_ref(:, :) + ks_b_mat(:, :) = ks_b_mat(:, :) - ks_b_ref(:, :) + ! + active_space_env%energy_inactive = esub + ! + IF (ASSOCIATED(active_space_env%fock_sub)) THEN + DO is = 1, SIZE(active_space_env%fock_sub) + CALL cp_fm_release(active_space_env%fock_sub(is)%matrix) + END DO + DEALLOCATE (active_space_env%fock_sub) + END IF + ALLOCATE (active_space_env%fock_sub(nspins)) + DO is = 1, nspins + matrix => active_space_env%ks_sub(is)%matrix + CALL cp_fm_create(active_space_env%fock_sub(is)%matrix, matrix%matrix_struct, & + name="Active Fock operator") + END DO + + matrix => active_space_env%fock_sub(1)%matrix + DO i1 = 1, norb + DO i2 = 1, norb + mval = ks_a_mat(i1, i2) + CALL cp_fm_set_element(matrix, i1, i2, mval) + END DO + END DO + matrix => active_space_env%fock_sub(2)%matrix + DO i1 = 1, norb + DO i2 = 1, norb + mval = ks_b_mat(i1, i2) + CALL cp_fm_set_element(matrix, i1, i2, mval) + END DO + END DO + END IF END SUBROUTINE subspace_fock_matrix + +! ************************************************************************************************** +!> \brief build subspace fockian +!> \param norb number of orbitals +!> \param eri two electon integrals in MO +!> \param p_mat density matrix +!> \param ks_ref fockian matrix +! ************************************************************************************************** + SUBROUTINE build_subspace_fock_matrix(norb, eri, p_mat, ks_ref) + INTEGER, INTENT(IN) :: norb + TYPE(dbcsr_csr_type), INTENT(IN) :: eri + REAL(dp), DIMENSION(:, :), INTENT(IN) :: p_mat + REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: ks_ref + + INTEGER :: i1, i12, i12l, i2, i3, i34, i34l, i4, & + irptr, nindex + INTEGER, DIMENSION(2) :: irange + REAL(dp) :: erint + + nindex = (norb*(norb + 1))/2 + irange = get_irange_csr(nindex, eri%mp_group) + DO i1 = 1, norb + DO i2 = i1, norb + i12 = csr_idx_to_combined(i1, i2, norb) + IF (i12 >= irange(1) .AND. i12 <= irange(2)) THEN + i12l = i12 - irange(1) + 1 + irptr = eri%rowptr_local(i12l) - 1 + DO i34l = 1, eri%nzerow_local(i12l) + i34 = eri%colind_local(irptr + i34l) + CALL csr_idx_from_combined(i34, norb, i3, i4) + erint = eri%nzval_local%r_dp(irptr + i34l) + ! Coulomb + ks_ref(i1, i2) = ks_ref(i1, i2) + erint*p_mat(i3, i4) + IF (i3 /= i4) THEN + ks_ref(i1, i2) = ks_ref(i1, i2) + erint*p_mat(i3, i4) + END IF + IF (i12 /= i34) THEN + ks_ref(i3, i4) = ks_ref(i3, i4) + erint*p_mat(i1, i2) + IF (i1 /= i2) THEN + ks_ref(i3, i4) = ks_ref(i3, i4) + erint*p_mat(i1, i2) + END IF + END IF + ! Exchange + erint = -0.5_dp*erint + ks_ref(i1, i3) = ks_ref(i1, i3) + erint*p_mat(i2, i4) + IF (i1 /= i2) THEN + ks_ref(i2, i3) = ks_ref(i2, i3) + erint*p_mat(i1, i4) + END IF + IF (i3 /= i4) THEN + ks_ref(i1, i4) = ks_ref(i1, i4) + erint*p_mat(i2, i3) + END IF + IF (i1 /= i2 .AND. i3 /= i4) THEN + ks_ref(i2, i4) = ks_ref(i2, i4) + erint*p_mat(i1, i3) + END IF + END DO + END IF + END DO + END DO + ! + DO i1 = 1, norb + DO i2 = i1, norb + ks_ref(i2, i1) = ks_ref(i1, i2) + END DO + END DO + CALL mp_sum(ks_ref, eri%mp_group) + + END SUBROUTINE build_subspace_fock_matrix + +! ************************************************************************************************** +!> \brief build subspace fockian for unrestricted spins +!> \param norb number of orbitals +!> \param eri_aa two electon integrals in MO with parallel spins +!> \param eri_ab two electon integrals in MO with anti-parallel spins +!> \param p_a_mat density matrix for up-spin +!> \param p_b_mat density matrix for down-spin +!> \param ks_a_ref fockian matrix for up-spin +!> \param tr_mixed_eri boolean to indicate Coulomb interaction alignment +! ************************************************************************************************** + SUBROUTINE build_subspace_spin_fock_matrix(norb, eri_aa, eri_ab, p_a_mat, p_b_mat, ks_a_ref, tr_mixed_eri) + INTEGER, INTENT(IN) :: norb + TYPE(dbcsr_csr_type), INTENT(IN) :: eri_aa, eri_ab + REAL(dp), DIMENSION(:, :), INTENT(IN) :: p_a_mat, p_b_mat + REAL(dp), DIMENSION(:, :), INTENT(INOUT) :: ks_a_ref + LOGICAL, INTENT(IN) :: tr_mixed_eri + + INTEGER :: i1, i12, i12l, i2, i3, i34, i34l, i4, & + irptr, nindex + INTEGER, DIMENSION(2) :: irange + REAL(dp) :: erint + + nindex = (norb*(norb + 1))/2 + irange = get_irange_csr(nindex, eri_aa%mp_group) + DO i1 = 1, norb + DO i2 = i1, norb + i12 = csr_idx_to_combined(i1, i2, norb) + IF (i12 >= irange(1) .AND. i12 <= irange(2)) THEN + i12l = i12 - irange(1) + 1 + irptr = eri_aa%rowptr_local(i12l) - 1 + DO i34l = 1, eri_aa%nzerow_local(i12l) + i34 = eri_aa%colind_local(irptr + i34l) + CALL csr_idx_from_combined(i34, norb, i3, i4) + erint = eri_aa%nzval_local%r_dp(irptr + i34l) + ! Coulomb + !F_ij += (ij|kl)*d_kl + ks_a_ref(i1, i2) = ks_a_ref(i1, i2) + erint*p_a_mat(i3, i4) + IF (i12 /= i34) THEN + !F_kl += (ij|kl)*d_ij + ks_a_ref(i3, i4) = ks_a_ref(i3, i4) + erint*p_a_mat(i1, i2) + END IF + ! Exchange + erint = -1.0_dp*erint + !F_ik -= (ij|kl)*d_jl + ks_a_ref(i1, i3) = ks_a_ref(i1, i3) + erint*p_a_mat(i2, i4) + IF (i1 /= i2) THEN + !F_jk -= (ij|kl)*d_il + ks_a_ref(i2, i3) = ks_a_ref(i2, i3) + erint*p_a_mat(i1, i4) + END IF + IF (i3 /= i4) THEN + !F_il -= (ij|kl)*d_jk + ks_a_ref(i1, i4) = ks_a_ref(i1, i4) + erint*p_a_mat(i2, i3) + END IF + IF (i1 /= i2 .AND. i3 /= i4) THEN + !F_jl -= (ij|kl)*d_ik + ks_a_ref(i2, i4) = ks_a_ref(i2, i4) + erint*p_a_mat(i1, i3) + END IF + END DO + END IF + END DO + END DO + ! + + irange = get_irange_csr(nindex, eri_ab%mp_group) + DO i1 = 1, norb + DO i2 = i1, norb + i12 = csr_idx_to_combined(i1, i2, norb) + IF (i12 >= irange(1) .AND. i12 <= irange(2)) THEN + i12l = i12 - irange(1) + 1 + irptr = eri_ab%rowptr_local(i12l) - 1 + DO i34l = 1, eri_ab%nzerow_local(i12l) + i34 = eri_ab%colind_local(irptr + i34l) + CALL csr_idx_from_combined(i34, norb, i3, i4) + erint = eri_ab%nzval_local%r_dp(irptr + i34l) + ! Coulomb + IF (tr_mixed_eri) THEN + !F_kl += (kl beta|ij alpha )*d_alpha_ij + ks_a_ref(i3, i4) = ks_a_ref(i3, i4) + erint*p_b_mat(i1, i2) + ELSE + !F_ij += (ij alpha|kl beta )*d_beta_kl + ks_a_ref(i1, i2) = ks_a_ref(i1, i2) + erint*p_b_mat(i3, i4) + ENDIF + END DO + END IF + END DO + END DO + ! + DO i1 = 1, norb + DO i2 = i1, norb + ks_a_ref(i2, i1) = ks_a_ref(i1, i2) + END DO + END DO + CALL mp_sum(ks_a_ref, eri_aa%mp_group) + + END SUBROUTINE build_subspace_spin_fock_matrix + ! ************************************************************************************************** !> \brief Creates a local basis !> \param pro_basis_set ... @@ -1763,7 +2047,7 @@ CONTAINS CALL qs_rho_get(rho, rho_ao=rho_ao) nspins = active_space_env%nspins - p_ref => active_space_env%p_ref + p_ref => active_space_env%p_active mos => active_space_env%mos_active DO ispin = 1, nspins pinact => active_space_env%pmat_inactive(ispin)%matrix @@ -1856,10 +2140,35 @@ CONTAINS ! write to the actual file only on the master IF (this%unit_nr > 0) THEN - WRITE (this%unit_nr, "(ES23.16,4I4)") val, i, j, k, l + WRITE (this%unit_nr, "(ES23.16,4I4)") val, i + this%bra_start - 1, j + this%bra_start - 1, & + & k + this%ket_start - 1, l + this%ket_start - 1 END IF cont = .TRUE. END FUNCTION eri_fcidump_print_func +! ************************************************************************************************** +!> \brief checksum each value on the master node +!> \param this object reference +!> \param i i-index +!> \param j j-index +!> \param k k-index +!> \param l l-index +!> \param val value of the integral at (i,j,k.l) +!> \return always true to dump all integrals +! ************************************************************************************************** + LOGICAL FUNCTION eri_fcidump_checksum_func(this, i, j, k, l, val) RESULT(cont) + CLASS(eri_fcidump_checksum), INTENT(inout) :: this + INTEGER, INTENT(in) :: i, j, k, l + REAL(KIND=dp), INTENT(in) :: val + MARK_USED(i) + MARK_USED(j) + MARK_USED(k) + MARK_USED(l) + + this%checksum = this%checksum + ABS(val) + + cont = .TRUE. + END FUNCTION eri_fcidump_checksum_func + END MODULE qs_active_space_methods diff --git a/src/qs_active_space_types.F b/src/qs_active_space_types.F index 62b4292fdf..3b4c63aa67 100644 --- a/src/qs_active_space_types.F +++ b/src/qs_active_space_types.F @@ -71,10 +71,10 @@ MODULE qs_active_space_types END TYPE eri_type_eri_element_func TYPE active_space_type - INTEGER :: nactive - INTEGER :: ninactive - INTEGER, DIMENSION(2) :: ninspin - INTEGER, DIMENSION(2) :: nelectrons + INTEGER :: nelec_active + INTEGER :: nelec_inactive + INTEGER, DIMENSION(2) :: nelec_inactive_spinwise + INTEGER, DIMENSION(2) :: nelec_total INTEGER :: multiplicity INTEGER :: nspins LOGICAL :: molecule @@ -86,7 +86,7 @@ MODULE qs_active_space_types TYPE(mo_set_p_type), DIMENSION(:), POINTER :: mos_active TYPE(mo_set_p_type), DIMENSION(:), POINTER :: mos_inactive TYPE(eri_type) :: eri - TYPE(cp_fm_p_type), DIMENSION(:), POINTER :: p_ref + TYPE(cp_fm_p_type), DIMENSION(:), POINTER :: p_active TYPE(cp_fm_p_type), DIMENSION(:), POINTER :: ks_sub TYPE(cp_fm_p_type), DIMENSION(:), POINTER :: vxc_sub TYPE(cp_fm_p_type), DIMENSION(:), POINTER :: h_sub @@ -118,8 +118,8 @@ MODULE qs_active_space_types CONTAINS ! ************************************************************************************************** -!> \brief ... -!> \param active_space_env ... +!> \brief Creates an active space environment type, nullifying all quantities. +!> \param active_space_env the active space environment to be initialized ! ************************************************************************************************** SUBROUTINE create_active_space_type(active_space_env) TYPE(active_space_type), POINTER :: active_space_env @@ -130,15 +130,15 @@ CONTAINS ALLOCATE (active_space_env) NULLIFY (active_space_env%mos_active, active_space_env%mos_inactive) - NULLIFY (active_space_env%ks_sub, active_space_env%p_ref) + NULLIFY (active_space_env%ks_sub, active_space_env%p_active) NULLIFY (active_space_env%vxc_sub, active_space_env%h_sub) NULLIFY (active_space_env%fock_sub, active_space_env%pmat_inactive) END SUBROUTINE create_active_space_type ! ************************************************************************************************** -!> \brief ... -!> \param active_space_env ... +!> \brief Releases all quantities in the active space environment. +!> \param active_space_env the active space environment to be released ! ************************************************************************************************** SUBROUTINE release_active_space_type(active_space_env) TYPE(active_space_type), POINTER :: active_space_env @@ -163,11 +163,11 @@ CONTAINS CALL release_eri_type(active_space_env%eri) - IF (ASSOCIATED(active_space_env%p_ref)) THEN - DO isp = 1, SIZE(active_space_env%p_ref) - CALL cp_fm_release(active_space_env%p_ref(isp)%matrix) + IF (ASSOCIATED(active_space_env%p_active)) THEN + DO isp = 1, SIZE(active_space_env%p_active) + CALL cp_fm_release(active_space_env%p_active(isp)%matrix) END DO - DEALLOCATE (active_space_env%p_ref) + DEALLOCATE (active_space_env%p_active) END IF IF (ASSOCIATED(active_space_env%ks_sub)) THEN @@ -207,8 +207,8 @@ CONTAINS END SUBROUTINE release_active_space_type ! ************************************************************************************************** -!> \brief ... -!> \param eri_env ... +!> \brief Releases the ERI environment type. +!> \param eri_env the ERI environment to be released ! ************************************************************************************************** SUBROUTINE release_eri_type(eri_env) TYPE(eri_type) :: eri_env @@ -279,8 +279,8 @@ CONTAINS ! ************************************************************************************************** !> \brief calculates index range for processor in group mp_group -!> \param nindex ... -!> \param mp_group ... +!> \param nindex the number of indices +!> \param mp_group message-passing group ID !> \return a range tuple !> \par History !> 04.2016 created [JGH] diff --git a/tests/QS/regtest-as-1/TEST_FILES b/tests/QS/regtest-as-1/TEST_FILES new file mode 100644 index 0000000000..b942d4fcb2 --- /dev/null +++ b/tests/QS/regtest-as-1/TEST_FILES @@ -0,0 +1,33 @@ +# 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_gapw_2-2.inp 1 1e-12 -1.12703481947359 +h2_gapw_2-2.inp 92 1e-8 4.08762365 +h2_gapw_2-3.inp 1 1e-12 -1.12703481947359 +h2_gapw_2-3.inp 92 1e-8 6.34129968 +h2_gapw_2-4.inp 1 1e-12 -1.12703481947359 +h2_gapw_2-4.inp 92 1e-8 10.57997133 +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-3.inp 1 1e-12 -1.12609343153655 +h2_gapw_pp_2-3.inp 92 1e-8 6.33490411 +h2_gapw_pp_2-4.inp 1 1e-12 -1.12609343153655 +h2_gapw_pp_2-4.inp 92 1e-8 10.58497448 +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-3.inp 1 1e-12 -1.12622646044780 +h2_gpw_pp_2-3.inp 92 1e-8 6.33542725 +h2_gpw_pp_2-4.inp 1 1e-12 -1.12622646044780 +h2_gpw_pp_2-4.inp 92 1e-8 10.58532335 +h2o_gapw_2-2.inp 1 1e-12 -76.011970410506123 +h2o_gapw_2-2.inp 92 1e-8 77.48403361 +ch2_gapw_2-3.inp 1 1e-12 -38.91914381184247 +ch2_gapw_2-3.inp 92 1e-8 50.38752107 +ch2_gapw_pp_2-3.inp 1 1e-12 -6.51646227467145 +ch2_gapw_pp_2-3.inp 92 1e-8 17.95445655 +ch2_gpw_pp_2-3.inp 1 1e-12 -6.51682932586237 +ch2_gpw_pp_2-3.inp 92 1e-8 17.95513412 +#EOF diff --git a/tests/QS/regtest-as-1/ch2_gapw_2-3.inp b/tests/QS/regtest-as-1/ch2_gapw_2-3.inp new file mode 100644 index 0000000000..8ae849f0ad --- /dev/null +++ b/tests/QS/regtest-as-1/ch2_gapw_2-3.inp @@ -0,0 +1,78 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + UKS TRUE + MULTIPLICITY 3 + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 17 + MAX_SCF 20 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 3 3 + INACTIVE_ELECTRONS 3 3 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + C 0.000 0.000 0.112 + H 0.000 0.974 0.335 + H 0.000 -0.974 -0.335 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &KIND C + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT ch2_gapw +&END GLOBAL diff --git a/tests/QS/regtest-as-1/ch2_gapw_pp_2-3.inp b/tests/QS/regtest-as-1/ch2_gapw_pp_2-3.inp new file mode 100644 index 0000000000..9a84505bf9 --- /dev/null +++ b/tests/QS/regtest-as-1/ch2_gapw_pp_2-3.inp @@ -0,0 +1,78 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + UKS TRUE + MULTIPLICITY 3 + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 17 + MAX_SCF 20 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 3 3 + INACTIVE_ELECTRONS 2 2 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + C 0.000 0.000 0.112 + H 0.000 0.974 0.335 + H 0.000 -0.974 -0.335 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &KIND C + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT ch2_gapw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/ch2_gpw_pp_2-3.inp b/tests/QS/regtest-as-1/ch2_gpw_pp_2-3.inp new file mode 100644 index 0000000000..383fc81e5b --- /dev/null +++ b/tests/QS/regtest-as-1/ch2_gpw_pp_2-3.inp @@ -0,0 +1,78 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GPW + &END QS + UKS TRUE + MULTIPLICITY 3 + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 17 + MAX_SCF 20 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 3 3 + INACTIVE_ELECTRONS 2 2 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + C 0.000 0.000 0.112 + H 0.000 0.974 0.335 + H 0.000 -0.974 -0.335 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &KIND C + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT ch2_gpw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gapw_2-2.inp b/tests/QS/regtest-as-1/h2_gapw_2-2.inp new file mode 100644 index 0000000000..878d933473 --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gapw_2-2.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 2 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gapw_2-3.inp b/tests/QS/regtest-as-1/h2_gapw_2-3.inp new file mode 100644 index 0000000000..156bf7cc8e --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gapw_2-3.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 3 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gapw_2-4.inp b/tests/QS/regtest-as-1/h2_gapw_2-4.inp new file mode 100644 index 0000000000..dfeaea5774 --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gapw_2-4.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 4 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gapw_pp_2-2.inp b/tests/QS/regtest-as-1/h2_gapw_pp_2-2.inp new file mode 100644 index 0000000000..4b23fe89c6 --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gapw_pp_2-2.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 2 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gapw_pp_2-3.inp b/tests/QS/regtest-as-1/h2_gapw_pp_2-3.inp new file mode 100644 index 0000000000..26f3821f4b --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gapw_pp_2-3.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 3 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gapw_pp_2-4.inp b/tests/QS/regtest-as-1/h2_gapw_pp_2-4.inp new file mode 100644 index 0000000000..c846e33ec4 --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gapw_pp_2-4.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 4 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gpw_pp_2-2.inp b/tests/QS/regtest-as-1/h2_gpw_pp_2-2.inp new file mode 100644 index 0000000000..b205145eab --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gpw_pp_2-2.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 2 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gpw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gpw_pp_2-3.inp b/tests/QS/regtest-as-1/h2_gpw_pp_2-3.inp new file mode 100644 index 0000000000..2230ec9214 --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gpw_pp_2-3.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 3 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gpw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2_gpw_pp_2-4.inp b/tests/QS/regtest-as-1/h2_gpw_pp_2-4.inp new file mode 100644 index 0000000000..9f599f5f6a --- /dev/null +++ b/tests/QS/regtest-as-1/h2_gpw_pp_2-4.inp @@ -0,0 +1,70 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 3 + MAX_SCF 10 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 4 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 0.000 0.000 0.356 + H 0.000 0.000 -0.356 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL GTH-HF + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gpw_pp +&END GLOBAL diff --git a/tests/QS/regtest-as-1/h2o_gapw_2-2.inp b/tests/QS/regtest-as-1/h2o_gapw_2-2.inp new file mode 100644 index 0000000000..ab59b1ad2e --- /dev/null +++ b/tests/QS/regtest-as-1/h2o_gapw_2-2.inp @@ -0,0 +1,75 @@ +&FORCE_EVAL + METHOD Quickstep + &DFT + &QS + METHOD GAPW + &END QS + &XC + &XC_FUNCTIONAL NONE + &END XC_FUNCTIONAL + &HF 1.0 + &END HF + &END XC + &POISSON + POISSON_SOLVER ANALYTIC + PERIODIC NONE + &END POISSON + &MGRID + CUTOFF 500 + &END MGRID + &SCF + ADDED_MOS 17 + MAX_SCF 20 + &PRINT + &RESTART OFF + &END RESTART + &END PRINT + &END SCF + &PRINT + &AO_MATRICES + CORE_HAMILTONIAN TRUE + KINETIC_ENERGY TRUE + POTENTIAL_ENERGY TRUE + &END AO_MATRICES + &ACTIVE_SPACE + ACTIVE_ELECTRONS 2 + ACTIVE_ORBITALS 2 + ISOLATED_SYSTEM TRUE + &ERI + METHOD FULL_GPW + PERIODICITY 0 0 0 + &END ERI + &ERI_GPW + CUTOFF 500 + &END ERI_GPW + &FCIDUMP + FILENAME __STD_OUT__ + &END FCIDUMP + &END ACTIVE_SPACE + &END PRINT + &END DFT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + O 0.000 0.000 0.115 + H 0.000 0.754 -0.459 + H 0.000 -0.754 -0.459 + &END COORD + &KIND H + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &KIND O + BASIS_SET 6-31G* + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL +&GLOBAL + RUN_TYPE ENERGY + PRINT_LEVEL LOW + PROJECT h2_gapw +&END GLOBAL diff --git a/tests/TEST_DIRS b/tests/TEST_DIRS index 84edbaacac..f3034c7c7d 100644 --- a/tests/TEST_DIRS +++ b/tests/TEST_DIRS @@ -272,3 +272,4 @@ QS/regtest-nlmo QS/regtest-hfx-ri libint Fist/regtest-gal19 NNP/regtest-1 +QS/regtest-as-1 libint diff --git a/tests/TEST_TYPES b/tests/TEST_TYPES index 4a6b21a896..2c8dfe632b 100644 --- a/tests/TEST_TYPES +++ b/tests/TEST_TYPES @@ -1,4 +1,4 @@ -91 +92 Total energy:!3 MD| Potential energy!5 Total energy \[eV\]:!4 @@ -90,6 +90,7 @@ XAS excitation energy (eV): !7 Electronic density on regular grids:!7 Final localization: !3 Ionization potentials for XPS !8 +FCIDUMP| Checksum: !3 # # these are the tests the can be selected for regtesting. # do regtest will grep for test_grep (first column) and look if the numeric value