diff --git a/src/atom_energy.F b/src/atom_energy.F index b2ed683e6b..a6c626b244 100644 --- a/src/atom_energy.F +++ b/src/atom_energy.F @@ -612,10 +612,10 @@ CONTAINS INTEGER, INTENT(IN) :: iw CHARACTER(LEN=default_string_length) :: string - INTEGER :: i, ibeta, j, k, l, lmax, nbeta, nr, & - nwfc, nwfn - LOGICAL :: up - REAL(KIND=dp) :: pf, rl, rmax + INTEGER :: i, ibeta, ii, j, k, kk, l, lmax, n0, & + nbeta, nr, nwfc, nwfn + LOGICAL :: soc, up + REAL(KIND=dp) :: pf, rl, rlp, rmax, vnlm, vnlp REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: beta, corden, dens, ef, locpot, rp REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: dij TYPE(atom_gthpot_type), POINTER :: pot @@ -624,6 +624,7 @@ CONTAINS IF (atom%potential%ppot_type /= gth_pseudo) RETURN pot => atom%potential%gth_pot CPASSERT(.NOT. pot%lsdpot) + soc = pot%soc WRITE (iw, '(A)') '' @@ -645,7 +646,11 @@ CONTAINS WRITE (iw, '(T8,A)') 'is_ultrasoft="F"' WRITE (iw, '(T8,A)') 'is_paw="F"' WRITE (iw, '(T8,A)') 'is_coulomb="F"' - WRITE (iw, '(T8,A)') 'has_so="F"' + IF (soc) THEN + WRITE (iw, '(T8,A)') 'has_so="T"' + ELSE + WRITE (iw, '(T8,A)') 'has_so="F"' + END IF WRITE (iw, '(T8,A)') 'has_wfc="F"' WRITE (iw, '(T8,A)') 'has_gipaw="F"' WRITE (iw, '(T8,A)') 'paw_as_gipaw="F"' @@ -675,7 +680,11 @@ CONTAINS nwfc = SUM(atom%state%maxn_occ) CALL compose(string, "number_of_wfc", ival=nwfc) WRITE (iw, '(T8,A)') TRIM(string) - nbeta = SUM(pot%nl) + IF (soc) THEN + nbeta = pot%nl(0) + 2*SUM(pot%nl(1:)) + ELSE + nbeta = SUM(pot%nl) + END IF CALL compose(string, "number_of_proj", ival=nbeta) WRITE (iw, '(T8,A)') TRIM(string)//'/>' @@ -760,6 +769,8 @@ CONTAINS j = l + 2*i - 1 pf = SQRT(2._dp)/(pf*SQRT(gamma1(j))) beta(:) = pf*rp**(l + 2*i - 2)*ef + beta(:) = beta*rp + ! ibeta = ibeta + 1 CALL compose(string, "' - beta(:) = beta*rp IF (up) THEN WRITE (iw, '(T12,4ES25.12E3)') (2._dp*beta(j), j=1, nr) ELSE @@ -777,18 +787,60 @@ CONTAINS END IF CALL compose(string, "' + IF (up) THEN + WRITE (iw, '(T12,4ES25.12E3)') (2._dp*beta(j), j=1, nr) + ELSE + WRITE (iw, '(T12,4ES25.12E3)') (2._dp*beta(j), j=nr, 1, -1) + END IF + CALL compose(string, "' WRITE (iw, '(T12,4ES25.12E3)') ((0.5_dp*dij(i, j), j=1, nbeta), i=1, nbeta) @@ -846,6 +898,48 @@ CONTAINS WRITE (iw, '(T4,A)') '' DEALLOCATE (dens) + ! PP SOC information + IF (soc) THEN + WRITE (iw, '(T4,A)') '' +! RELWFC not available +! + ibeta = 0 + DO l = 0, lmat + IF (pot%nl(l) == 0) CYCLE + DO i = 1, pot%nl(l) + ibeta = ibeta + 1 + CALL compose(string, "' + IF (l > 0) THEN + ibeta = ibeta + 1 + CALL compose(string, "' + END IF + END DO + END DO + WRITE (iw, '(T4,A)') '' + END IF + WRITE (iw, '(A)') '' END SUBROUTINE atom_write_upf diff --git a/src/atom_kind_orbitals.F b/src/atom_kind_orbitals.F index 9231df0a3e..1c7ad63e4f 100644 --- a/src/atom_kind_orbitals.F +++ b/src/atom_kind_orbitals.F @@ -1104,11 +1104,12 @@ CONTAINS nexp_nlcc INTEGER, DIMENSION(:), POINTER :: nct_lpot, nct_lsd, nct_nlcc, nppnl, & ppeconf - LOGICAL :: lpot_present, lsd_present, nlcc_present + LOGICAL :: lpot_present, lsd_present, nlcc_present, & + soc_present REAL(KIND=dp) :: ac, zeff REAL(KIND=dp), DIMENSION(:), POINTER :: alpha_lpot, alpha_lsd, alpha_nlcc, ap, ce REAL(KIND=dp), DIMENSION(:, :), POINTER :: cval_lpot, cval_lsd, cval_nlcc - REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: hp + REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: hp, kp CALL get_potential(gth_potential, & zeff=zeff, & @@ -1119,6 +1120,7 @@ CONTAINS lppnl=lm, & nprj_ppnl=nppnl, & alpha_ppnl=ap, & + kprj_ppnl=kp, & hprj_ppnl=hp) gth_atompot%zion = zeff @@ -1187,6 +1189,17 @@ CONTAINS gth_atompot%hnl(1:n, 1:n, l) = hp(1:n, 1:n, l) END DO + ! SOC + CALL get_potential(gth_potential, soc_present=soc_present) + gth_atompot%soc = soc_present + gth_atompot%knl = 0.0_dp + IF (soc_present) THEN + DO l = 1, lm + n = nppnl(l) + gth_atompot%knl(1:n, 1:n, l) = kp(1:n, 1:n, l) + END DO + END IF + IF (nlcc_present) THEN CALL get_potential(gth_potential, & nexp_nlcc=nexp_nlcc, & diff --git a/src/atom_operators.F b/src/atom_operators.F index b1b08d59f1..45d7d1309d 100644 --- a/src/atom_operators.F +++ b/src/atom_operators.F @@ -376,6 +376,9 @@ CONTAINS CALL sg_nuclear(integrals%core(1:n, 1:n, l), l, basis%am(1:n, l), basis%am(1:n, l)) END DO CASE (gth_pseudo) + IF (potential%gth_pot%soc) THEN + CPWARN("Atom code: GTH SOC is ignored") + END IF alpha = 1._dp/potential%gth_pot%rc/SQRT(2._dp) DO l = 0, lmat n = integrals%n(l) diff --git a/src/atom_output.F b/src/atom_output.F index 62c486e49f..bcf24846c1 100644 --- a/src/atom_output.F +++ b/src/atom_output.F @@ -688,6 +688,22 @@ CONTAINS END DO END IF END DO + IF (potential%gth_pot%soc) THEN + WRITE (iw, '(T10,A)') " Spin-orbit coupling parameters " + DO l = 1, lmat + IF (potential%gth_pot%nl(l) > 0) THEN + WRITE (iw, '(T10,A,T76,I5)') " Angular momentum ", l + WRITE (iw, '(T10,A,T66,F15.6)') " Rcnl ", potential%gth_pot%rcnl(l) + WRITE (iw, '(T10,A,T76,I5)') " Nl ", potential%gth_pot%nl(l) + WRITE (pline, '(5F12.6)') (potential%gth_pot%knl(1, j, l), j=1, potential%gth_pot%nl(l)) + WRITE (iw, '(T10,A,T21,A60)') " Hnl ", ADJUSTR(pline) + DO i = 2, potential%gth_pot%nl(l) + WRITE (pline, '(T21,5F12.6)') (potential%gth_pot%knl(i, j, l), j=i, potential%gth_pot%nl(l)) + WRITE (iw, '(T21,A60)') ADJUSTR(pline) + END DO + END IF + END DO + END IF CASE (upf_pseudo) WRITE (iw, '(/," ",29("*"),A,29("*"))') " UPF Pseudopotential " DO k = 1, potential%upf_pot%maxinfo @@ -803,6 +819,22 @@ CONTAINS END DO END SELECT END DO + IF (gthpot%soc) THEN + DO i = 1, n - 1 + WRITE (iw, '(T29,5F20.14)') (gthpot%hnl(1, k, i), k=1, gthpot%nl(i)) + SELECT CASE (gthpot%nl(i)) + CASE (2) + WRITE (iw, '(T49,F20.14)') gthpot%knl(2, 2, i) + CASE (3) + WRITE (iw, '(T49,2F20.14)') gthpot%knl(2, 2, i), gthpot%knl(2, 3, i) + WRITE (iw, '(T69,F20.14)') gthpot%knl(3, 3, i) + CASE DEFAULT + DO j = 2, gthpot%nl(i) + WRITE (iw, '(T29,5F20.14)') (gthpot%knl(j, k, i), k=j, gthpot%nl(i)) + END DO + END SELECT + END DO + END IF IF (.NOT. PRESENT(iunit)) CALL close_file(unit_number=iw) END SUBROUTINE atom_write_pseudo_param diff --git a/src/atom_types.F b/src/atom_types.F index c69fabf6ed..d83a43ac0b 100644 --- a/src/atom_types.F +++ b/src/atom_types.F @@ -106,6 +106,9 @@ MODULE atom_types INTEGER, DIMENSION(0:lmat) :: nl = 0 REAL(dp), DIMENSION(0:lmat) :: rcnl = 0.0_dp REAL(dp), DIMENSION(4, 4, 0:lmat) :: hnl = 0.0_dp + ! SOC + LOGICAL :: soc = .FALSE. + REAL(dp), DIMENSION(4, 4, 0:lmat) :: knl = 0.0_dp ! type extensions ! NLCC LOGICAL :: nlcc = .FALSE. @@ -2569,6 +2572,8 @@ CONTAINS potential%nl = 0 potential%rcnl = 0._dp potential%hnl = 0._dp + potential%soc = .FALSE. + potential%knl = 0._dp potential%lpotextended = .FALSE. potential%lsdpot = .FALSE. @@ -2675,6 +2680,7 @@ CONTAINS ! Read the parameters for the non-local part of the GTH pseudopotential (ppnl) READ (line_att, *) nlmax CALL remove_word(line_att) + IF (INDEX(line_att, "SOC") /= 0) potential%soc = .TRUE. IF (nlmax > 0) THEN ! Load the parameter for nlmax non-local projectors DO l = 0, nlmax - 1 @@ -2703,6 +2709,29 @@ CONTAINS CALL remove_word(line_att) END DO END DO + IF (potential%soc .AND. l /= 0) THEN + is_ok = cp_sll_val_next(list, val) + CPASSERT(is_ok) + CALL val_get(val, c_val=line_att) + DO i = 1, potential%nl(l) + IF (i == 1) THEN + READ (line_att, *) potential%knl(1, 1, l) + CALL remove_word(line_att) + ELSE + CPASSERT(LEN_TRIM(line_att) == 0) + is_ok = cp_sll_val_next(list, val) + CPASSERT(is_ok) + CALL val_get(val, c_val=line_att) + READ (line_att, *) potential%knl(i, i, l) + CALL remove_word(line_att) + END IF + DO j = i + 1, potential%nl(l) + READ (line_att, *) potential%knl(i, j, l) + potential%knl(j, i, l) = potential%knl(i, j, l) + CALL remove_word(line_att) + END DO + END DO + END IF CPASSERT(LEN_TRIM(line_att) == 0) END DO END IF @@ -2797,6 +2826,10 @@ CONTAINS ! Read the parameters for the non-local part of the GTH pseudopotential (ppnl) CALL parser_get_object(parser, nlmax) IF (nlmax > 0) THEN + IF (parser_test_next_token(parser) == "STR") THEN + CALL parser_get_object(parser, line) + IF (INDEX(LINE, "SOC") /= 0) potential%soc = .TRUE. + END IF ! Load the parameter for n non-local projectors DO l = 0, nlmax - 1 CALL parser_get_object(parser, potential%rcnl(l), newline=.TRUE.) @@ -2812,6 +2845,15 @@ CONTAINS potential%hnl(j, i, l) = potential%hnl(i, j, l) END DO END DO + IF (potential%soc .AND. l /= 0) THEN + DO i = 1, potential%nl(l) + CALL parser_get_object(parser, potential%knl(i, i, l), newline=.TRUE.) + DO j = i + 1, potential%nl(l) + CALL parser_get_object(parser, potential%knl(i, j, l)) + potential%knl(j, i, l) = potential%knl(i, j, l) + END DO + END DO + END IF END DO END IF EXIT search_loop diff --git a/src/sirius_interface.F b/src/sirius_interface.F index b495004e3e..120998477f 100644 --- a/src/sirius_interface.F +++ b/src/sirius_interface.F @@ -130,8 +130,8 @@ CONTAINS CHARACTER(len=2) :: element_symbol CHARACTER(len=default_string_length) :: label - INTEGER :: i, iatom, ibeta, ifun, ikind, iwf, j, l, & - n, natom, nbeta, nkind, nmesh, & + INTEGER :: i, ii, jj, iatom, ibeta, ifun, ikind, iwf, j, l, & + n, ns, natom, nbeta, nbs, nkind, nmesh, & num_mag_dims, sirius_mpi_comm, vdw_func, nu, lu, output_unit INTEGER, DIMENSION(:), POINTER :: mpi_grid_dims INTEGER(KIND=C_INT), DIMENSION(3) :: k_grid, k_shift @@ -143,7 +143,7 @@ CONTAINS REAL(KIND=C_DOUBLE), DIMENSION(3) :: a1, a2, a3, v1, v2 REAL(KIND=dp) :: al, angle1, angle2, cval, focc, & magnetization, mass, pf, rl, zeff, alpha_u, beta_u, & - J0_u, J_u, U_u, occ_u, u_minus_J + J0_u, J_u, U_u, occ_u, u_minus_J, vnlp, vnlm REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: beta, corden, ef, fe, locpot, rc, rp REAL(KIND=dp), DIMENSION(3) :: vr, vs, j_t REAL(KIND=dp), DIMENSION(:), POINTER :: density @@ -343,7 +343,7 @@ CONTAINS zn=NINT(zeff + 0.001d0), & symbol=element_symbol, & mass=REAL(mass/massunit, KIND=C_DOUBLE), & - spin_orbit=.FALSE.) + spin_orbit=gth_potential%soc) ! ALLOCATE (gth_atompot) CALL gth_potential_conversion(gth_potential, gth_atompot) @@ -351,6 +351,7 @@ CONTAINS fun(1:nmesh) = rp(1:nmesh) CALL sirius_set_atom_type_radial_grid(sctx, label, nmesh, fun(1)) ! set beta-projectors +! GTH SOC uses the same projectors, SIRIUS can use the same or different projectors for l+1/2, l-1/2 (l > 0 l+1/2 l < 0 l-/2 ) ALLOCATE (ef(nmesh), beta(nmesh)) ibeta = 0 DO l = 0, 3 @@ -367,21 +368,55 @@ CONTAINS fun(1:nmesh) = beta(1:nmesh)*rp(1:nmesh) CALL sirius_add_atom_type_radial_function(sctx, label, & "beta", fun(1), nmesh, l=l) + ! we double the number of beta projectors for SO and l>0 + IF (gth_atompot%soc .AND. l /= 0) THEN + CALL sirius_add_atom_type_radial_function(sctx, label, & + "beta", fun(1), nmesh, l=-l) + END IF END DO END DO DEALLOCATE (ef, beta) nbeta = ibeta ! nonlocal PP matrix elements - ALLOCATE (dion(nbeta, nbeta)) + IF (gth_atompot%soc) THEN + nbs = 2*nbeta - gth_atompot%nl(0) + ALLOCATE (dion(nbs, nbs)) + ELSE + ALLOCATE (dion(nbeta, nbeta)) + END IF dion = 0.0_dp - DO l = 0, 3 - IF (gth_atompot%nl(l) == 0) CYCLE - ibeta = SUM(gth_atompot%nl(0:l - 1)) + 1 - i = ibeta + gth_atompot%nl(l) - 1 - dion(ibeta:i, ibeta:i) = gth_atompot%hnl(1:gth_atompot%nl(l), 1:gth_atompot%nl(l), l) - END DO - CALL sirius_set_atom_type_dion(sctx, label, nbeta, dion(1, 1)) + IF (gth_atompot%soc) THEN + ns = gth_atompot%nl(0) + IF (ns /= 0) THEN + dion(1:ns, 1:ns) = gth_atompot%hnl(1:ns, 1:ns, 0) + END IF + DO l = 1, 3 + IF (gth_atompot%nl(l) == 0) CYCLE + DO i = 1, gth_atompot%nl(l) + ii = ns + 2*SUM(gth_atompot%nl(1:l - 1)) + ii = ii + 2*(i - 1) + 1 + DO j = 1, gth_atompot%nl(l) + jj = ns + 2*SUM(gth_atompot%nl(1:l - 1)) + jj = jj + 2*(j - 1) + 1 + vnlp = gth_atompot%hnl(i, j, l) + 0.5_dp*l*gth_atompot%knl(i, j, l) + vnlm = gth_atompot%hnl(i, j, l) - 0.5_dp*(l + 1)*gth_atompot%knl(i, j, l) + dion(ii, jj) = vnlp + dion(ii + 1, jj + 1) = vnlm + END DO + END DO + END DO + CALL sirius_set_atom_type_dion(sctx, label, nbs, dion(1, 1)) + ELSE + DO l = 0, 3 + IF (gth_atompot%nl(l) == 0) CYCLE + ibeta = SUM(gth_atompot%nl(0:l - 1)) + 1 + i = ibeta + gth_atompot%nl(l) - 1 + dion(ibeta:i, ibeta:i) = gth_atompot%hnl(1:gth_atompot%nl(l), 1:gth_atompot%nl(l), l) + END DO + CALL sirius_set_atom_type_dion(sctx, label, nbeta, dion(1, 1)) + END IF + DEALLOCATE (dion) ! set non-linear core correction diff --git a/src/subsys/external_potential_types.F b/src/subsys/external_potential_types.F index 8660fbfea0..83617bb5e0 100644 --- a/src/subsys/external_potential_types.F +++ b/src/subsys/external_potential_types.F @@ -682,6 +682,7 @@ CONTAINS !> \param zeff_correction ... !> \param ppl_present ... !> \param ppnl_present ... +!> \param soc_present ... !> \param alpha_ppnl ... !> \param cexp_ppl ... !> \param elec_conf ... @@ -716,7 +717,7 @@ CONTAINS core_charge_radius, ppl_radius, ppnl_radius, & lppnl, lprj_ppnl_max, nexp_ppl, nppnl, & nprj_ppnl_max, z, zeff, zeff_correction, & - ppl_present, ppnl_present, & + ppl_present, ppnl_present, soc_present, & alpha_ppnl, cexp_ppl, elec_conf, nprj_ppnl, cprj, & cprj_ppnl, vprj_ppnl, wprj_ppnl, hprj_ppnl, kprj_ppnl, & lpot_present, nexp_lpot, alpha_lpot, nct_lpot, cval_lpot, & @@ -733,7 +734,7 @@ CONTAINS INTEGER, INTENT(OUT), OPTIONAL :: lppnl, lprj_ppnl_max, nexp_ppl, nppnl, & nprj_ppnl_max, z REAL(KIND=dp), INTENT(OUT), OPTIONAL :: zeff, zeff_correction - LOGICAL, INTENT(OUT), OPTIONAL :: ppl_present, ppnl_present + LOGICAL, INTENT(OUT), OPTIONAL :: ppl_present, ppnl_present, soc_present REAL(KIND=dp), DIMENSION(:), OPTIONAL, POINTER :: alpha_ppnl, cexp_ppl INTEGER, DIMENSION(:), OPTIONAL, POINTER :: elec_conf, nprj_ppnl REAL(KIND=dp), DIMENSION(:, :), OPTIONAL, POINTER :: cprj, cprj_ppnl, vprj_ppnl, wprj_ppnl @@ -766,6 +767,7 @@ CONTAINS core_charge_radius = potential%core_charge_radius IF (PRESENT(ppl_radius)) ppl_radius = potential%ppl_radius IF (PRESENT(ppnl_radius)) ppnl_radius = potential%ppnl_radius + IF (PRESENT(soc_present)) soc_present = potential%soc IF (PRESENT(lppnl)) lppnl = potential%lppnl IF (PRESENT(lprj_ppnl_max)) lprj_ppnl_max = potential%lprj_ppnl_max IF (PRESENT(nexp_ppl)) nexp_ppl = potential%nexp_ppl diff --git a/tests/ATOM/regtest-pseudo/Au.inp b/tests/ATOM/regtest-pseudo/Au.inp new file mode 100644 index 0000000000..615a02a326 --- /dev/null +++ b/tests/ATOM/regtest-pseudo/Au.inp @@ -0,0 +1,44 @@ +&GLOBAL + PROGRAM_NAME ATOM +&END GLOBAL + +&ATOM + CORE [Kr] 4d10 4f14 + ELECTRON_CONFIGURATION CORE 5s2 5p6 5d9 6s2 + ELEMENT Au + MAX_ANGULAR_MOMENTUM 3 + RUN_TYPE ENERGY + &METHOD + METHOD_TYPE KOHN-SHAM + &XC + &XC_FUNCTIONAL PBE + &END XC_FUNCTIONAL + &END XC + &END METHOD + &POTENTIAL + PSEUDO_TYPE GTH + >H_POTENTIAL + 3 6 10 + 0.49000000 2 9.07322639 -0.34013367 + 3 SOC + 0.28803780 3 -5.90182040 26.42537412 -15.50837777 + -59.33938963 40.04245923 + -31.78271670 + 0.35586747 3 -7.08858659 8.19796427 0.00000000 + -9.69996213 0.00000000 + 0.00000000 + 0.62807493 1.81668773 -1.65141098 + -4.89888134 3.90795165 + -2.77740200 + 0.33386175 2 -8.82572349 9.56535285 + -10.84609065 + 0.18880114 0.03175114 + -0.03600240 + &END GTH_POTENTIAL + &END POTENTIAL + &PRINT + &UPF_FILE + FILENAME ./Au_HGH_q19 + &END UPF_FILE + &END PRINT +&END ATOM diff --git a/tests/ATOM/regtest-pseudo/TEST_FILES.toml b/tests/ATOM/regtest-pseudo/TEST_FILES.toml index f495a74153..cab59403de 100644 --- a/tests/ATOM/regtest-pseudo/TEST_FILES.toml +++ b/tests/ATOM/regtest-pseudo/TEST_FILES.toml @@ -22,4 +22,5 @@ "C_grb.inp" = [{matcher="M035", tol=1e-12, ref=-5.360945665362}] "C_grb2.inp" = [{matcher="M035", tol=1e-12, ref=-5.360945665362}] "Li_NLCC.inp" = [{matcher="M061", tol=1e-12, ref=0.5527955347}] +"Au.inp" = [{matcher="M035", tol=1e-10, ref=-136.583322713061}] #EOF diff --git a/tests/SIRIUS/regtest-1/Au_GTH_SOC.inp b/tests/SIRIUS/regtest-1/Au_GTH_SOC.inp new file mode 100644 index 0000000000..bf547a81ac --- /dev/null +++ b/tests/SIRIUS/regtest-1/Au_GTH_SOC.inp @@ -0,0 +1,66 @@ +&GLOBAL + PRINT_LEVEL MEDIUM + PROJECT Gold + RUN_TYPE ENERGY +&END GLOBAL + +&FORCE_EVAL + METHOD SIRIUS + &DFT + POTENTIAL_FILE_NAME GTH_SOC_POTENTIALS + &XC + &XC_FUNCTIONAL + &LDA_C_PZ + &END LDA_C_PZ + &LDA_X + &END LDA_X + &END XC_FUNCTIONAL + &END XC + &END DFT + &PW_DFT + &CONTROL + CYCLIC_BLOCK_SIZE 32 + GEN_EVP_SOLVER_NAME lapack + PROCESSING_UNIT cpu + STD_EVP_SOLVER_NAME lapack + VERBOSITY 1 + &END CONTROL + &ITERATIVE_SOLVER + CONVERGE_BY_ENERGY 1 + ENERGY_TOLERANCE 1e-5 + NUM_STEPS 20 + SUBSPACE_SIZE 4 + TYPE davidson + &END ITERATIVE_SOLVER + &MIXER + BETA 0.6 + MAX_HISTORY 8 + TYPE broyden2 + &END MIXER + &PARAMETERS + ELECTRONIC_STRUCTURE_METHOD pseudopotential + GK_CUTOFF 6.0 + NGRIDK 2 2 2 + NUM_DFT_ITER 100 + NUM_MAG_DIMS 3 + PW_CUTOFF 20.00 + SMEARING_WIDTH 0.01 + SO_CORRECTION true + USE_SYMMETRY false + &END PARAMETERS + &END PW_DFT + &SUBSYS + &CELL + A [bohr] -3.85500000000000000000 0.0 3.85500000000000000000 + B [bohr] 0.0 3.85500000000000000000 3.85500000000000000000 + C [bohr] -3.85500000000000000000 3.85500000000000000000 0.0 + &END CELL + &COORD + SCALED + Au 0.0 0.0 0.0 + &END COORD + &KIND Au + POTENTIAL GTH-PADE-q19 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/SIRIUS/regtest-1/TEST_FILES.toml b/tests/SIRIUS/regtest-1/TEST_FILES.toml index b447828763..0abc9b368b 100644 --- a/tests/SIRIUS/regtest-1/TEST_FILES.toml +++ b/tests/SIRIUS/regtest-1/TEST_FILES.toml @@ -17,4 +17,6 @@ "LiF.inp" = [{matcher="M085", tol=1.0E-5, ref=-36.658529490345153}] "N2.inp" = [{matcher="M085", tol=1.0E-9, ref=-16.572137677057988}] "Fe-upf.inp" = [{matcher="M085", tol=1.0E-5, ref=-322.37407840130044}] +"Au_GTH.inp" = [{matcher="M085", tol=1.0E-5, ref=-33.157343398225969}] +"Au_GTH_SOC.inp" = [{matcher="M085", tol=1.0E-5, ref=-135.58863815223782}] #EOF