diff --git a/src/accint_weights_forces.F b/src/accint_weights_forces.F index e03c506191..b5d9376e9b 100644 --- a/src/accint_weights_forces.F +++ b/src/accint_weights_forces.F @@ -16,6 +16,7 @@ MODULE accint_weights_forces USE cell_types, ONLY: cell_type,& pbc USE cp_control_types, ONLY: dft_control_type + USE cp_log_handling, ONLY: cp_logger_get_default_io_unit USE grid_api, ONLY: integrate_pgf_product USE input_constants, ONLY: sic_none,& xc_none @@ -48,6 +49,8 @@ MODULE accint_weights_forces qs_rho_type USE realspace_grid_types, ONLY: realspace_grid_type,& transfer_pw2rs + USE skala_gpw_functional, ONLY: skala_gpw_exc_density,& + xc_section_uses_native_skala_grid USE virial_types, ONLY: virial_type USE xc, ONLY: xc_exc_pw_create,& xc_vxc_pw_create @@ -86,9 +89,10 @@ CONTAINS CHARACTER(len=*), PARAMETER :: routineN = 'accint_weight_force' INTEGER :: atom_a, handle, iatom, ikind, natom, & - natom_of_kind, nkind + natom_of_kind, nkind, output_unit INTEGER, DIMENSION(:), POINTER :: atom_list - LOGICAL :: lr_triplet, uf_grid, use_virial + LOGICAL :: lr_triplet, native_grid_diagnostics, & + native_skala_grid, uf_grid, use_virial REAL(KIND=dp) :: my_force_scale REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: calpha, cvalue REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: aforce @@ -160,10 +164,23 @@ CONTAINS END IF CALL get_qs_env(qs_env, atomic_kind_set=atomic_kind_set) + native_skala_grid = xc_section_uses_native_skala_grid(xc_section) + native_grid_diagnostics = .FALSE. + IF (native_skala_grid) THEN + CALL section_vals_val_get(xc_section, "XC_FUNCTIONAL%GAUXC%NATIVE_GRID_DIAGNOSTICS", & + l_val=native_grid_diagnostics) + END IF DO ikind = 1, nkind CALL get_atomic_kind(atomic_kind_set(ikind), natom=natom_of_kind, atom_list=atom_list) DO iatom = 1, natom_of_kind atom_a = atom_list(iatom) + IF (native_grid_diagnostics) THEN + output_unit = cp_logger_get_default_io_unit() + IF (output_unit > 0) THEN + WRITE (UNIT=output_unit, FMT="(T2,A,1X,I0,3(1X,ES20.12))") & + "SKALA_GPW| Accurate-XCINT atom force", atom_a, my_force_scale*aforce(:, atom_a) + END IF + END IF force(ikind)%rho_elec(1:3, iatom) = & force(ikind)%rho_elec(1:3, iatom) + my_force_scale*aforce(1:3, atom_a) END DO @@ -341,13 +358,13 @@ CONTAINS CHARACTER(len=*), PARAMETER :: routineN = 'xc_density' INTEGER :: handle, ispin, myfun, nspins - LOGICAL :: rho1_g_valid, rho1_tau_g_valid, & - rho1_tau_valid, rho_g_valid, & - rho_tau_g_valid, rho_tau_valid, uf_grid + LOGICAL :: native_skala_grid, rho1_g_valid, rho1_tau_g_valid, rho1_tau_valid, rho_g_valid, & + rho_tau_g_valid, rho_tau_valid, uf_grid REAL(KIND=dp) :: excint, factor REAL(KIND=dp), DIMENSION(3, 3) :: vdum TYPE(cell_type), POINTER :: cell TYPE(dft_control_type), POINTER :: dft_control + TYPE(particle_type), DIMENSION(:), POINTER :: particle_set TYPE(pw_c1d_gs_type), DIMENSION(:), POINTER :: rho1_g, rho1_g_base, rho_g, rho_g_base, & tau1_g, tau1_g_base, tau_g, tau_g_base TYPE(pw_c1d_gs_type), POINTER :: rho_nlcc_g, rho_nlcc_g_use, rho_nlcc_g_xc @@ -366,12 +383,13 @@ CONTAINS NULLIFY (rho1_g, rho1_g_base, rho1_r, rho1_r_base, rho_fxc, tau1_g, tau1_g_base) NULLIFY (rho_g, rho_g_base, rho_r, rho_r_base, tau_g, tau_g_base, tau_r, tau_r_base, & tau1_r, tau1_r_base) - NULLIFY (rho_nlcc_use, rho_nlcc_xc, rho_nlcc_g_use, rho_nlcc_g_xc, weights) + NULLIFY (particle_set, rho_nlcc_use, rho_nlcc_xc, rho_nlcc_g_use, rho_nlcc_g_xc, weights) CALL get_ks_env(ks_env, & dft_control=dft_control, & pw_env=pw_env, & cell=cell, & + particle_set=particle_set, & rho_nlcc=rho_nlcc, & rho_nlcc_g=rho_nlcc_g) @@ -386,6 +404,7 @@ CONTAINS nspins = dft_control%nspins CALL section_vals_val_get(xc_section, "XC_FUNCTIONAL%_SECTION_PARAMETERS_", i_val=myfun) + native_skala_grid = xc_section_uses_native_skala_grid(xc_section) CALL pw_env_get(pw_env, xc_pw_pool=xc_pw_pool, auxbas_pw_pool=auxbas_pw_pool) uf_grid = .NOT. pw_grid_compare(auxbas_pw_pool%pw_grid, xc_pw_pool%pw_grid) @@ -441,9 +460,18 @@ CONTAINS NULLIFY (vxc_rho, vxc_tau) SELECT CASE (order) CASE (0) - ! we could reduce to energy only here - CALL xc_exc_pw_create(rho_r, rho_g, tau_r, xc_section, weights, xc_pw_pool, exc) + IF (native_skala_grid) THEN + CALL skala_gpw_exc_density(exc, rho_r, rho_g, tau_r, xc_section, weights, & + xc_pw_pool, particle_set, cell) + ELSE + ! we could reduce to energy only here + CALL xc_exc_pw_create(rho_r, rho_g, tau_r, xc_section, weights, xc_pw_pool, exc) + END IF CASE (1) + IF (native_skala_grid) THEN + CALL cp_abort(__LOCATION__, & + "Native SKALA GAPW accurate-XCINT response forces are not implemented.") + END IF CALL qs_rho_get(rho1_struct, rho_r=rho1_r_base, rho_g=rho1_g_base, tau_r=tau1_r_base, & tau_g=tau1_g_base, rho_g_valid=rho1_g_valid, & tau_g_valid=rho1_tau_g_valid, tau_r_valid=rho1_tau_valid) @@ -476,6 +504,10 @@ CONTAINS compute_virial=.FALSE., & virial_xc=vdum) CASE (2) + IF (native_skala_grid) THEN + CALL cp_abort(__LOCATION__, & + "Native SKALA GAPW accurate-XCINT response forces are not implemented.") + END IF CALL qs_rho_get(rho1_struct, rho_r=rho1_r_base, rho_g=rho1_g_base, tau_r=tau1_r_base, & tau_g=tau1_g_base, rho_g_valid=rho1_g_valid, & tau_g_valid=rho1_tau_g_valid, tau_r_valid=rho1_tau_valid) diff --git a/src/force_env_methods.F b/src/force_env_methods.F index f97de0e125..b9bc561f35 100644 --- a/src/force_env_methods.F +++ b/src/force_env_methods.F @@ -618,6 +618,12 @@ CONTAINS (.NOT. use_full_grid) dynamic_symmetry = kpoint_symmetry .AND. .NOT. use_full_grid .AND. & .NOT. use_inversion_symmetry_only + IF (run_type_id == debug_run .AND. .NOT. fd_energy .AND. .NOT. dynamic_symmetry .AND. & + (full_grid .EQV. use_full_grid) .AND. & + (inversion_symmetry_only .EQV. use_inversion_symmetry_only)) THEN + CALL qs_basis_rotation(force_env%qs_env, kpoints) + RETURN + END IF IF (moving_geometry .AND. .NOT. dynamic_symmetry) RETURN IF (moving_geometry .AND. .NOT. kpoint_has_nontrivial_atomic_symmetry(kpoints)) RETURN CALL set_kpoint_info(kpoints, full_grid=use_full_grid, & diff --git a/src/input_cp2k_xc.F b/src/input_cp2k_xc.F index ca33dfbb01..9f4b6adbfb 100644 --- a/src/input_cp2k_xc.F +++ b/src/input_cp2k_xc.F @@ -1331,9 +1331,10 @@ CONTAINS CALL keyword_create(keyword, __LOCATION__, name="MODEL", & description="GauXC OneDFT model name or path. Use NONE for conventional GauXC. "// & - "MODEL SKALA uses GAUXC_SKALA_MODEL, or GAUXC_SKALA_CUDA_MODEL when "// & - "NATIVE_GRID_USE_CUDA is enabled and that override is set; "// & - "other OneDFT models are supplied as .fun files or model names.", & + "MODEL SKALA selects the installed Skala-1.1 model when available; "// & + "other OneDFT models are supplied as .fun files or model names. "// & + "NLCC pseudopotentials are rejected in the molecular GauXC OneDFT/SKALA "// & + "path; use the CP2K-native SKALA grid path for NLCC calculations.", & usage="MODEL SKALA", & default_c_val="NONE") CALL section_add_keyword(section, keyword) @@ -1420,24 +1421,22 @@ CONTAINS CALL keyword_create(keyword, __LOCATION__, name="NATIVE_GRID", & description="Experimental CP2K-native GPW real-space-grid path for SKALA "// & "TorchScript models. This bypasses GauXC molecular quadrature and supports "// & - "isolated, partially periodic, and fully periodic METHOD GPW/GTH and METHOD "// & - "GAPW cells, including Gamma-only and k-point density matrices. GAPW with "// & - "GTH/ECP pseudopotentials is limited to KIND%GPW_TYPE regular-grid features; "// & - "GAPW all-electron uses the all-electron regular-grid density. "// & - "The current implementation "// & - "is limited to energy, VXC, and experimental nuclear-gradient/stress "// & - "evaluations with a single GAUXC functional. Full-grid, inversion-only, "// & - "and symmetry-reduced k-point runs are supported. "// & - "K-point runs currently require NATIVE_GRID_USE_CUDA T; the CPU "// & - "TorchScript path is limited to non-k-point runs. CUDA k-point runs "// & - "should not preload CPU-only Torch libraries such as libtorch_cpu.so. "// & + "isolated, partially periodic, and fully periodic METHOD GPW cells with "// & + "GTH/ECP pseudopotentials and METHOD GAPW/GAPW_XC cells. GAPW with "// & + "GTH/ECP pseudopotentials can use KIND%GPW_TYPE regular-grid features or "// & + "the GAPW one-center XC correction; GAPW all-electron uses the "// & + "all-electron regular-grid density. The current implementation is limited "// & + "to a single GAUXC functional and provides energy, VXC, and experimental "// & + "analytical nuclear-gradient/stress evaluations. K-point runs use CP2K's "// & + "standard k-point and symmetry-reduction infrastructure; the CPU "// & + "TorchScript path may require preloading libtorch_cpu.so before OpenBLAS, "// & + "whereas CUDA k-point runs should not preload CPU-only Torch libraries. "// & "MPI runs collect a global atom-partitioned feature block by default; "// & "NATIVE_GRID_ATOM_CHUNKS can split the Torch evaluation by atom block. "// & - "Analytical stress is supported for the regular-grid path. NLCC "// & - "pseudopotentials use CP2K's standard frozen-core density contribution "// & - "on the XC grid. "// & - "METHOD GAPW_XC, PAW/one-center GAPW+GTH/ECP, ROKS, ADMM, "// & - "and non-k-point multiple-image calculations are not implemented.", & + "PAW/one-center GAPW+GTH/ECP and METHOD GAPW_XC use CP2K's GAPW hard/soft "// & + "one-center XC correction with a selectable "// & + "NATIVE_GRID_GAPW_DENSITY_PARTITION. ROKS, ADMM, and non-k-point "// & + "multiple-image calculations are not implemented.", & usage="NATIVE_GRID T", & default_l_val=.FALSE., lone_keyword_l_val=.TRUE.) CALL section_add_keyword(section, keyword) @@ -1469,15 +1468,36 @@ CONTAINS CALL keyword_create(keyword, __LOCATION__, name="NATIVE_GRID_ATOM_PARTITION", & description="Atom partition used to build the experimental CP2K-native "// & "SKALA regular-grid feature block. HARD assigns each native grid point to "// & - "the nearest periodic atom and is the default. SMOOTH uses a Becke-like "// & - "fuzzy-cell partition on the native grid and creates weighted atom rows; "// & - "analytical force and stress contributions include the corresponding "// & - "partition-weight derivatives.", & - usage="NATIVE_GRID_ATOM_PARTITION HARD", & + "the nearest periodic atom and is intended for legacy energy/VXC-only runs. "// & + "SMOOTH uses a Becke-like fuzzy-cell partition on the native grid and creates "// & + "weighted atom rows. Analytical atom forces and stress use the differentiable "// & + "SMOOTH partition internally because the corresponding partition-weight "// & + "derivatives enter the SKALA feature response.", & + usage="NATIVE_GRID_ATOM_PARTITION SMOOTH", & enum_c_vals=s2a("HARD", "SMOOTH"), & enum_i_vals=[1, 2], & enum_desc=s2a("Assign each grid point to the nearest atom", & "Use a smooth Becke-like native-grid atom partition"), & + default_i_val=2) + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="NATIVE_GRID_GAPW_DENSITY_PARTITION", & + description="Hard/soft one-center density contribution used by METHOD "// & + "GAPW and METHOD GAPW_XC in OneDFT/SKALA atomic-grid corrections. "// & + "HARD_MINUS_SOFT evaluates the SKALA model on hard and soft atomic "// & + "densities separately and adds the GAPW hard-minus-soft correction; this "// & + "is the default because it follows CP2K's GAPW XC expression. For "// & + "pseudopotential PAW/one-center GAPW this is distinct from KIND%GPW_TYPE, "// & + "which uses the regular-grid valence-density approximation. "// & + "HARD_ONLY, SOFT_ONLY, and NONE are diagnostic variants.", & + usage="NATIVE_GRID_GAPW_DENSITY_PARTITION HARD_MINUS_SOFT", & + enum_c_vals=s2a("HARD_MINUS_SOFT", "HARD_ONLY", "SOFT_ONLY", "NONE"), & + enum_i_vals=[1, 2, 3, 4], & + enum_desc=s2a("Use the hard-minus-soft GAPW one-center correction", & + "Use only the hard one-center density", & + "Use only the soft one-center density with the GAPW sign", & + "Disable the GAPW one-center SKALA correction"), & default_i_val=1) CALL section_add_keyword(section, keyword) CALL keyword_release(keyword) @@ -1487,7 +1507,8 @@ CONTAINS "evaluation into contiguous atom blocks. MPI runs evaluate one atom block per "// & "rank, while single-rank runs can still use atom subchunks to reduce peak CUDA "// & "memory. Dynamic feature rows and VXC gradients are routed between their "// & - "local grid and atom-block owner ranks.", & + "local grid and atom-block owner ranks. Analytical force and stress runs use "// & + "the full differentiable tensor graph instead of routed atom chunks.", & usage="NATIVE_GRID_ATOM_CHUNKS T", & default_l_val=.FALSE., lone_keyword_l_val=.TRUE.) CALL section_add_keyword(section, keyword) diff --git a/src/qs_ks_methods.F b/src/qs_ks_methods.F index fa9662ad62..652655dae1 100644 --- a/src/qs_ks_methods.F +++ b/src/qs_ks_methods.F @@ -146,7 +146,8 @@ MODULE qs_ks_methods USE surface_dipole, ONLY: calc_dipsurf_potential USE tblite_ks_matrix, ONLY: build_tblite_ks_matrix USE virial_types, ONLY: virial_type - USE xc_gauxc_functional, ONLY: apply_gauxc + USE xc_gauxc_functional, ONLY: apply_gauxc,& + gauxc_gapw_has_paw_pseudopotentials USE xtb_ks_matrix, ONLY: build_xtb_ks_matrix #include "./base/base_uses.f90" @@ -197,18 +198,16 @@ CONTAINS TYPE(section_vals_type), OPTIONAL, POINTER :: ext_xc_section CHARACTER(LEN=*), PARAMETER :: routineN = 'qs_ks_build_kohn_sham_matrix' + CHARACTER(len=default_string_length) :: name INTEGER :: ace_rebuild_frequency, atom_a, handle, & iatom, ikind, img, ispin, natom, & - nimages, nspins + nimages, nspins, output_unit INTEGER, ALLOCATABLE, DIMENSION(:) :: atom_of_kind, kind_of LOGICAL :: ace_active, do_adiabatic_rescaling, do_ddapc, do_hfx, do_kpoints, do_ppl, dokp, & - gapw, gapw_xc, just_energy_xc, lrigpw, my_print, native_grid_use_cuda, & - native_skala_restore_exc, rigpw, use_gauxc_matrix, use_virial - CHARACTER(LEN=*), PARAMETER :: native_skala_gapw_xc_msg = & - "Native SKALA grid does not support METHOD GAPW_XC; "// & - "the GAPW_XC one-center XC correction needs a dedicated SKALA design." - + gapw, gapw_xc, just_energy_xc, lrigpw, my_print, native_grid_diagnostics, & + native_grid_use_cuda, native_skala_restore_exc, rigpw, use_gauxc_matrix, use_virial + LOGICAL, SAVE :: native_grid_cpu_kpoints_warned = .FALSE. REAL(KIND=dp) :: ecore_ppl, edisp, ee_ener, ekin_mol, & mulliken_order_p, & native_skala_exc_scf, & @@ -602,7 +601,8 @@ CONTAINS CALL calculate_vxc_atom(qs_env, energy_only=just_energy_xc, exc1=energy%exc1_aux_fit, & kind_set_external=admm_env%admm_gapw_env%admm_kind_set, & xc_section_external=xc_section, & - rho_atom_set_external=admm_env%admm_gapw_env%local_rho_set%rho_atom_set) + rho_atom_set_external=admm_env%admm_gapw_env%local_rho_set%rho_atom_set, & + calculate_forces=calculate_forces) END IF @@ -647,22 +647,6 @@ CONTAINS IF (dft_control%use_gauxc) THEN IF (xc_section_uses_native_skala_grid(xc_section)) THEN CALL ensure_native_skala_grid_scope(xc_section) - IF (gapw_xc) THEN - CPABORT(native_skala_gapw_xc_msg) - END IF - IF (gapw) THEN - DO ikind = 1, SIZE(qs_kind_set) - IF (qs_kind_set(ikind)%paw_atom .AND. .NOT. & - qs_kind_set(ikind)%gpw_type_forced .AND. & - (ASSOCIATED(qs_kind_set(ikind)%gth_potential) .OR. & - ASSOCIATED(qs_kind_set(ikind)%sgp_potential))) THEN - CALL cp_abort(__LOCATION__, & - "Native SKALA grid evaluation with METHOD GAPW and "// & - "pseudopotentials requires KIND%GPW_TYPE. PAW/one-center "// & - "GAPW+GTH/ECP is not implemented.") - END IF - END DO - END IF IF ((.NOT. do_kpoints) .AND. nimages /= 1) THEN CALL cp_abort(__LOCATION__, & "Native SKALA grid evaluation supports multiple images only "// & @@ -674,12 +658,13 @@ CONTAINS CPASSERT(ASSOCIATED(gauxc_section)) CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_USE_CUDA", l_val=native_grid_use_cuda) IF (.NOT. native_grid_use_cuda) THEN - CALL cp_abort(__LOCATION__, & - "Native SKALA grid evaluation with k-points currently requires "// & - "GAUXC%NATIVE_GRID_USE_CUDA T. The CPU TorchScript path can "// & - "destabilize the k-point diagonalization through "// & - "libtorch_cpu/OpenBLAS library interactions; use the CUDA SKALA model/path for "// & - "k-point runs.") + IF (para_env%mepos == 0 .AND. .NOT. native_grid_cpu_kpoints_warned) THEN + CALL cp_warn(__LOCATION__, & + "Native SKALA grid evaluation with k-points is using the CPU TorchScript "// & + "path. For CPU runs, preload libtorch_cpu.so before OpenBLAS if the "// & + "runtime library order is unstable; otherwise use NATIVE_GRID_USE_CUDA T.") + native_grid_cpu_kpoints_warned = .TRUE. + END IF END IF END IF IF (dft_control%roks) THEN @@ -688,9 +673,10 @@ CONTAINS IF (dft_control%do_admm) THEN CPABORT("Native SKALA grid evaluation does not support ADMM.") END IF - ! Force/stress rebuilds re-enter this path for derivatives and VXC only; - ! keep the already evaluated SCF energy contribution. - native_skala_restore_exc = calculate_forces + ! Force-only rebuilds re-enter this path for derivatives and VXC only. + ! For analytical stress the XC volume term must stay consistent with + ! the rebuilt SKALA energy used by the autograd virial. + native_skala_restore_exc = calculate_forces .AND. .NOT. use_virial IF (native_skala_restore_exc) THEN native_skala_exc_scf = energy%exc native_skala_total_scf = energy%total @@ -702,6 +688,21 @@ CONTAINS edisp=edisp, dispersion_env=qs_env%dispersion_env, & just_energy=just_energy_xc, & native_skala_atom_force=native_skala_atom_force) + native_grid_diagnostics = .FALSE. + gauxc_section => get_gauxc_section(xc_section) + IF (ASSOCIATED(gauxc_section)) THEN + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_DIAGNOSTICS", & + l_val=native_grid_diagnostics) + END IF + IF (native_grid_diagnostics .AND. para_env%mepos == 0) THEN + output_unit = cp_logger_get_default_io_unit() + IF (output_unit > 0) THEN + DO iatom = 1, natom + WRITE (UNIT=output_unit, FMT="(T2,A,1X,I0,3(1X,ES20.12))") & + "SKALA_GPW| Native atom force", iatom, native_skala_atom_force(:, iatom) + END DO + END IF + END IF CPASSERT(ASSOCIATED(force)) CPASSERT(ASSOCIATED(atomic_kind_set)) CALL get_atomic_kind_set(atomic_kind_set, atom_of_kind=atom_of_kind, kind_of=kind_of) @@ -719,8 +720,10 @@ CONTAINS just_energy=just_energy_xc) END IF IF (native_skala_restore_exc) energy%exc = native_skala_exc_scf - IF (gapw) THEN - CALL calculate_vxc_atom(qs_env, just_energy_xc, energy%exc1, xc_section_external=xc_section) + IF (gapw .OR. gapw_xc) THEN + CALL calculate_vxc_atom(qs_env, just_energy_xc, energy%exc1, & + xc_section_external=xc_section, & + calculate_forces=calculate_forces) END IF IF (edisp /= 0.0_dp) energy%dispersion = edisp IF (qs_env%requires_matrix_vxc .AND. ASSOCIATED(v_rspace_new)) THEN @@ -733,13 +736,13 @@ CONTAINS END IF END IF ELSE - IF (gapw_xc) THEN - CALL cp_abort(__LOCATION__, & - "GauXC with METHOD GAPW_XC is unsupported. The "// & - "GAPW_XC one-center XC correction needs a dedicated GauXC design.") - END IF use_gauxc_matrix = .TRUE. CALL apply_gauxc(qs_env, xc_section, calculate_forces) + IF (gapw_xc .OR. (gapw .AND. gauxc_gapw_has_paw_pseudopotentials(qs_kind_set))) THEN + CALL calculate_vxc_atom(qs_env, just_energy_xc, energy%exc1, & + xc_section_external=xc_section, & + calculate_forces=calculate_forces) + END IF END IF ELSE CALL qs_vxc_create(ks_env=ks_env, rho_struct=rho_struct, xc_section=xc_section, & @@ -753,7 +756,9 @@ CONTAINS END IF IF (gapw .OR. gapw_xc) THEN - CALL calculate_vxc_atom(qs_env, just_energy_xc, energy%exc1, xc_section_external=xc_section) + CALL calculate_vxc_atom(qs_env, just_energy_xc, energy%exc1, & + xc_section_external=xc_section, & + calculate_forces=calculate_forces) END IF END IF END IF @@ -915,11 +920,13 @@ CONTAINS CALL get_qs_env(qs_env=qs_env, rho=rho_struct) END IF NULLIFY (rho1) - IF (dft_control%use_gauxc .AND. gapw) THEN - ! GauXC evaluates GAPW XC directly on its molecular quadrature - ! grid. The native accurate-XCINT force correction applies to - ! CP2K's regular-grid XC density and would otherwise try to - ! evaluate the GAUXC section through xc_derivatives. + IF (dft_control%use_gauxc .AND. (gapw .OR. gapw_xc) .AND. & + .NOT. xc_section_uses_native_skala_grid(xc_section)) THEN + ! Molecular GauXC evaluates the XC term outside xc_derivatives. + ! The accurate-XCINT force correction would otherwise try to + ! evaluate the GAUXC section through CP2K's local functional path. + ! Native-grid SKALA can provide this correction through the + ! CP2K grid path and needs it for GAPW_XC force consistency. CONTINUE ELSE CALL accint_weight_force(qs_env, rho_struct, rho1, 0, xc_section) diff --git a/src/qs_vxc_atom.F b/src/qs_vxc_atom.F index 215d708ff0..0a09fbc56d 100644 --- a/src/qs_vxc_atom.F +++ b/src/qs_vxc_atom.F @@ -28,6 +28,7 @@ MODULE qs_vxc_atom USE paw_basis_types, ONLY: get_paw_basis_info USE qs_environment_types, ONLY: get_qs_env,& qs_environment_type + USE qs_force_types, ONLY: qs_force_type USE qs_grid_atom, ONLY: grid_atom_type USE qs_harmonics_atom, ONLY: get_none0_cg_list,& harmonics_atom_type @@ -38,9 +39,15 @@ MODULE qs_vxc_atom USE qs_rho_atom_types, ONLY: get_rho_atom,& rho_atom_coeff,& rho_atom_type - USE skala_gpw_functional, ONLY: skala_gapw_atom_vxc_of_r,& - xc_section_uses_native_skala_grid + USE skala_gpw_functional, ONLY: native_skala_gapw_density_partition,& + skala_gapw_atom_vxc_of_r,& + skala_gapw_density_partition_hard_minus_soft,& + skala_gapw_density_partition_hard_only,& + skala_gapw_density_partition_none,& + skala_gapw_density_partition_soft_only,& + xc_section_uses_onedft_model USE util, ONLY: get_limit + USE virial_types, ONLY: virial_type USE xc_atom, ONLY: fill_rho_set,& vxc_of_r_epr,& vxc_of_r_new,& @@ -92,10 +99,11 @@ CONTAINS !> \param kind_set_external provides a non-default kind_set to use !> \param rho_atom_set_external provides a non-default atomic density set to use !> \param xc_section_external provides an external non-default XC +!> \param calculate_forces ... ! ************************************************************************************************** SUBROUTINE calculate_vxc_atom(qs_env, energy_only, exc1, & adiabatic_rescale_factor, kind_set_external, & - rho_atom_set_external, xc_section_external) + rho_atom_set_external, xc_section_external, calculate_forces) TYPE(qs_environment_type), POINTER :: qs_env LOGICAL, INTENT(IN) :: energy_only @@ -106,21 +114,25 @@ CONTAINS TYPE(rho_atom_type), DIMENSION(:), OPTIONAL, & POINTER :: rho_atom_set_external TYPE(section_vals_type), OPTIONAL, POINTER :: xc_section_external + LOGICAL, INTENT(IN), OPTIONAL :: calculate_forces CHARACTER(LEN=*), PARAMETER :: routineN = 'calculate_vxc_atom' - INTEGER :: bo(2), handle, iat, iatom, ikind, ir, & + INTEGER :: bo(2), gapw_density_partition, handle, & + iat, iatom, idir, ikind, ir, jdir, & myfun, na, natom, nr, nspins, num_pe INTEGER, DIMENSION(2, 3) :: bounds INTEGER, DIMENSION(:), POINTER :: atom_list - LOGICAL :: accint, donlcc, gradient_f, lsd, & - native_skala_grid, nlcc, paw_atom, & - tau_f + LOGICAL :: accint, donlcc, evaluate_hard, evaluate_soft, gradient_f, lsd, & + my_calculate_forces, nlcc, paw_atom, skala_atom_grid, tau_f, use_virial REAL(dp) :: agr, alpha, density_cut, exc_h, exc_s, & gradient_cut, & my_adiabatic_rescale_factor, tau_cut REAL(dp), DIMENSION(1, 1, 1) :: tau_d REAL(dp), DIMENSION(1, 1, 1, 1) :: rho_d + REAL(dp), DIMENSION(3) :: skala_atom_force_h, skala_atom_force_s + REAL(dp), DIMENSION(3, 3) :: skala_atom_virial, skala_atom_virial_h, & + skala_atom_virial_s REAL(dp), DIMENSION(:, :), POINTER :: rho_nlcc, weight_h, weight_s REAL(dp), DIMENSION(:, :, :), POINTER :: rho_h, rho_s, tau_h, tau_s, vtau_h, & vtau_s, vxc_h, vxc_s @@ -132,6 +144,7 @@ CONTAINS TYPE(harmonics_atom_type), POINTER :: harmonics TYPE(mp_para_env_type), POINTER :: para_env TYPE(particle_type), DIMENSION(:), POINTER :: particle_set + TYPE(qs_force_type), DIMENSION(:), POINTER :: force TYPE(qs_kind_type), DIMENSION(:), POINTER :: my_kind_set TYPE(rho_atom_coeff), DIMENSION(:), POINTER :: dr_h, dr_s, int_hh, int_ss, r_h, r_s TYPE(rho_atom_coeff), DIMENSION(:, :), POINTER :: r_h_d, r_s_d @@ -139,6 +152,7 @@ CONTAINS TYPE(rho_atom_type), POINTER :: rho_atom TYPE(section_vals_type), POINTER :: input, my_xc_section, xc_fun_section TYPE(tau_basis_cache_type) :: tau_basis_cache + TYPE(virial_type), POINTER :: virial TYPE(xc_derivative_set_type) :: deriv_set TYPE(xc_rho_cflags_type) :: needs TYPE(xc_rho_set_type) :: rho_set_h, rho_set_s @@ -151,6 +165,7 @@ CONTAINS NULLIFY (my_kind_set) NULLIFY (atomic_kind_set) NULLIFY (grid_atom) + NULLIFY (force) NULLIFY (harmonics) NULLIFY (input) NULLIFY (para_env) @@ -158,6 +173,9 @@ CONTAINS NULLIFY (rho_atom) NULLIFY (my_rho_atom_set) NULLIFY (rho_nlcc) + NULLIFY (virial) + my_calculate_forces = .FALSE. + IF (PRESENT(calculate_forces)) my_calculate_forces = calculate_forces IF (PRESENT(adiabatic_rescale_factor)) THEN my_adiabatic_rescale_factor = adiabatic_rescale_factor @@ -172,7 +190,9 @@ CONTAINS qs_kind_set=my_kind_set, & input=input, & particle_set=particle_set, & - rho_atom_set=my_rho_atom_set) + virial=virial, & + rho_atom_set=my_rho_atom_set, & + force=force) IF (PRESENT(kind_set_external)) my_kind_set => kind_set_external IF (PRESENT(rho_atom_set_external)) my_rho_atom_set => rho_atom_set_external @@ -187,7 +207,14 @@ CONTAINS xc_fun_section => section_vals_get_subs_vals(my_xc_section, "XC_FUNCTIONAL") CALL section_vals_val_get(xc_fun_section, "_SECTION_PARAMETERS_", & i_val=myfun) - native_skala_grid = xc_section_uses_native_skala_grid(my_xc_section) + skala_atom_grid = xc_section_uses_onedft_model(my_xc_section) + gapw_density_partition = skala_gapw_density_partition_hard_minus_soft + IF (skala_atom_grid) THEN + gapw_density_partition = native_skala_gapw_density_partition(my_xc_section) + END IF + use_virial = ASSOCIATED(virial) + IF (use_virial) use_virial = my_calculate_forces .AND. & + virial%pv_calculate .AND. (.NOT. virial%pv_numer) IF (myfun == xc_none) THEN exc1 = 0.0_dp @@ -207,8 +234,8 @@ CONTAINS lsd=lsd, & calc_potential=.TRUE.) - gradient_f = (needs%drho .OR. needs%drho_spin) - tau_f = (needs%tau .OR. needs%tau_spin) + gradient_f = (needs%drho .OR. needs%drho_spin) .OR. skala_atom_grid + tau_f = (needs%tau .OR. needs%tau_spin) .OR. skala_atom_grid ! Initialize energy contribution from the one center XC terms to zero exc1 = 0.0_dp @@ -359,15 +386,46 @@ CONTAINS END IF END DO + evaluate_hard = .TRUE. + evaluate_soft = .TRUE. + skala_atom_force_h = 0.0_dp + skala_atom_force_s = 0.0_dp + skala_atom_virial_h = 0.0_dp + skala_atom_virial_s = 0.0_dp + IF (skala_atom_grid) THEN + SELECT CASE (gapw_density_partition) + CASE (skala_gapw_density_partition_hard_minus_soft) + CONTINUE + CASE (skala_gapw_density_partition_hard_only) + evaluate_soft = .FALSE. + CASE (skala_gapw_density_partition_soft_only) + evaluate_hard = .FALSE. + CASE (skala_gapw_density_partition_none) + evaluate_hard = .FALSE. + evaluate_soft = .FALSE. + CASE DEFAULT + CALL cp_abort(__LOCATION__, & + "Unknown GAUXC%NATIVE_GRID_GAPW_DENSITY_PARTITION value.") + END SELECT + END IF + !-------------------! ! hard atom density ! !-------------------! CALL xc_dset_zero_all(deriv_set) - IF (native_skala_grid) THEN + IF (.NOT. evaluate_hard) THEN + exc_h = 0.0_dp + IF (.NOT. energy_only) THEN + vxc_h = 0.0_dp + IF (ASSOCIATED(vxg_h)) vxg_h = 0.0_dp + IF (ASSOCIATED(vtau_h)) vtau_h = 0.0_dp + END IF + ELSE IF (skala_atom_grid) THEN CALL skala_gapw_atom_vxc_of_r( & my_xc_section, grid_atom, para_env, particle_set(iatom)%r, & rho_h, drho_h, tau_h, weight_h, lsd, nspins, na, nr, & - exc_h, vxc_h, vxg_h, vtau_h, energy_only=energy_only) + exc_h, vxc_h, vxg_h, vtau_h, energy_only=energy_only, & + atom_force=skala_atom_force_h, atom_virial=skala_atom_virial_h) ELSE CALL vxc_of_r_new(xc_fun_section, rho_set_h, deriv_set, 1, needs, weight_h, & lsd, na, nr, exc_h, vxc_h, vxg_h, vtau_h, energy_only=energy_only, & @@ -379,11 +437,19 @@ CONTAINS ! soft atom density ! !-------------------! CALL xc_dset_zero_all(deriv_set) - IF (native_skala_grid) THEN + IF (.NOT. evaluate_soft) THEN + exc_s = 0.0_dp + IF (.NOT. energy_only) THEN + vxc_s = 0.0_dp + IF (ASSOCIATED(vxg_s)) vxg_s = 0.0_dp + IF (ASSOCIATED(vtau_s)) vtau_s = 0.0_dp + END IF + ELSE IF (skala_atom_grid) THEN CALL skala_gapw_atom_vxc_of_r( & my_xc_section, grid_atom, para_env, particle_set(iatom)%r, & rho_s, drho_s, tau_s, weight_s, lsd, nspins, na, nr, & - exc_s, vxc_s, vxg_s, vtau_s, energy_only=energy_only) + exc_s, vxc_s, vxg_s, vtau_s, energy_only=energy_only, & + atom_force=skala_atom_force_s, atom_virial=skala_atom_virial_s) ELSE CALL vxc_of_r_new(xc_fun_section, rho_set_s, deriv_set, 1, needs, weight_s, & lsd, na, nr, exc_s, vxc_s, vxg_s, vtau_s, energy_only=energy_only, & @@ -394,6 +460,21 @@ CONTAINS ! Add contributions to the exc energy exc1 = exc1 + rho_atom%exc_h - rho_atom%exc_s + IF (skala_atom_grid .AND. my_calculate_forces .AND. ASSOCIATED(force)) THEN + force(ikind)%rho_elec(:, iat) = force(ikind)%rho_elec(:, iat) + & + skala_atom_force_h - skala_atom_force_s + END IF + IF (skala_atom_grid .AND. use_virial) THEN + skala_atom_virial = skala_atom_virial_h - skala_atom_virial_s + DO idir = 1, 3 + DO jdir = 1, 3 + virial%pv_gapw(idir, jdir) = virial%pv_gapw(idir, jdir) + & + skala_atom_virial(idir, jdir) + virial%pv_virial(idir, jdir) = virial%pv_virial(idir, jdir) + & + skala_atom_virial(idir, jdir) + END DO + END DO + END IF ! Integration to get the matrix elements relative to the vxc_atom ! here the products with the primitives is done: gaVxcgb diff --git a/src/skala_gpw_features.F b/src/skala_gpw_features.F index f046231acc..c250176a6a 100644 --- a/src/skala_gpw_features.F +++ b/src/skala_gpw_features.F @@ -34,7 +34,7 @@ MODULE skala_gpw_features CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'skala_gpw_features' REAL(KIND=dp), PARAMETER, PRIVATE :: layout_tol = 1.0E-12_dp INTEGER, PARAMETER, PRIVATE :: ndynamic_per_point = 10, nrks_dynamic_per_point = 5, & - nstatic_per_point = 4, ngrad_per_point = 10 + nstatic_per_point = 5, ngrad_per_point = 10 INTEGER, PARAMETER, PUBLIC :: skala_gpw_atom_partition_hard = 1, & skala_gpw_atom_partition_smooth = 2 REAL(KIND=dp), PARAMETER, PRIVATE :: smooth_partition_eps = 1.0E-12_dp @@ -256,11 +256,8 @@ CONTAINS CALL ensure_layout_cache(pw_grid, particle_set, cell, weights, my_atom_partition) CALL timestop(phase_handle) nflat = cached_layout%nflat - can_use_atom_chunks = my_use_atom_chunks .AND. cached_layout%chunk_feature_count > 0 - IF (my_requires_stress_grad .AND. can_use_atom_chunks) THEN - CALL cp_abort(__LOCATION__, & - "Native SKALA analytical stress is not implemented with atom-chunk routing yet.") - END IF + can_use_atom_chunks = my_use_atom_chunks .AND. cached_layout%chunk_feature_count > 0 .AND. & + .NOT. (my_requires_coordinate_grad .OR. my_requires_stress_grad) collapse_spin_dynamics = (nspins == 1 .AND. can_use_atom_chunks .AND. & my_route_atom_chunks) ndynamic_local_per_point = ndynamic_per_point @@ -625,9 +622,9 @@ CONTAINS local_owner(nfeature_local) = owner local_source_points(nfeature_local) = local_row static_base = nstatic_per_point*(nfeature_local - 1) - local_static(static_base + 1:static_base + 3) = & - nearest_image_coordinate(owner_coord, grid_point, cell) + local_static(static_base + 1:static_base + 3) = grid_point local_static(static_base + 4) = base_weight + local_static(static_base + 5) = base_weight ELSE CALL smooth_atom_partition(grid_point, atom_coords_pbc, cell, & partition_weights, atom_image_coords, distances) @@ -647,9 +644,9 @@ CONTAINS local_owner(nfeature_local) = iatom local_source_points(nfeature_local) = local_row static_base = nstatic_per_point*(nfeature_local - 1) - local_static(static_base + 1:static_base + 3) = & - atom_image_coords(:, iatom) + local_static(static_base + 1:static_base + 3) = grid_point local_static(static_base + 4) = base_weight*partition_weight + local_static(static_base + 5) = base_weight END DO END IF END DO @@ -773,7 +770,7 @@ CONTAINS static_base = nstatic_per_point*(ipt - 1) cached_layout%grid_coords(:, row) = global_static(static_base + 1:static_base + 3) cached_layout%grid_weights(row) = global_static(static_base + 4) - cached_layout%atomic_grid_weights(row) = cached_layout%grid_weights(row) + cached_layout%atomic_grid_weights(row) = global_static(static_base + 5) source_local = source_global - point_displs(pe_index) IF (source_local >= 1 .AND. source_local <= nflat_local) THEN feature_local = cursor(source_local) @@ -1911,11 +1908,9 @@ CONTAINS features%owns_dynamic_tensors = .FALSE. features%owns_inputs = .TRUE. IF (use_atom_chunks) THEN - IF (requires_stress_grad .OR. my_requires_weight_grad) THEN - CALL cp_abort(__LOCATION__, & - "Native SKALA analytical stress/SMOOTH derivatives are not implemented "// & - "with atom-chunk tensors yet.") - END IF + CPASSERT(.NOT. requires_coordinate_grad) + CPASSERT(.NOT. requires_stress_grad) + CPASSERT(.NOT. my_requires_weight_grad) CPASSERT(cached_layout%chunk_static_tensors_active) features%grid_coords_t = cached_layout%chunk_grid_coords_t features%grid_weights_t = cached_layout%chunk_grid_weights_t diff --git a/src/skala_gpw_functional.F b/src/skala_gpw_functional.F index faf8156d18..f93c769309 100644 --- a/src/skala_gpw_functional.F +++ b/src/skala_gpw_functional.F @@ -40,6 +40,7 @@ MODULE skala_gpw_functional skala_gpw_feature_type,& skala_gpw_smooth_partition_derivatives USE skala_torch_api, ONLY: skala_torch_model_get_exc,& + skala_torch_model_get_exc_density,& skala_torch_model_load,& skala_torch_model_release,& skala_torch_model_type @@ -68,9 +69,14 @@ MODULE skala_gpw_functional atom_chunk_auto_min_rows = 100000, & atom_chunk_auto_row_quantum = 100000, & ncollapsed_grad_per_point = 5, ngrad_per_point = 10 + INTEGER, PARAMETER, PUBLIC :: skala_gapw_density_partition_hard_minus_soft = 1, & + skala_gapw_density_partition_hard_only = 2, & + skala_gapw_density_partition_soft_only = 3, & + skala_gapw_density_partition_none = 4 PUBLIC :: ensure_native_skala_grid_scope, get_gauxc_section, skala_gapw_atom_vxc_of_r, & - skala_gpw_eval, xc_section_uses_native_skala_grid + native_skala_gapw_density_partition, skala_gpw_eval, skala_gpw_exc_density, & + xc_section_uses_native_skala_grid, xc_section_uses_onedft_model TYPE(skala_torch_model_type), SAVE :: cached_model CHARACTER(len=default_path_length), SAVE :: cached_model_path = "" @@ -102,6 +108,60 @@ CONTAINS END FUNCTION xc_section_uses_native_skala_grid +! ************************************************************************************************** +!> \brief Return true if the GAUXC subsection requests a OneDFT/SKALA-style model. +!> \param xc_section ... +!> \return ... +! ************************************************************************************************** + FUNCTION xc_section_uses_onedft_model(xc_section) RESULT(uses_onedft_model) + TYPE(section_vals_type), INTENT(IN), POINTER :: xc_section + LOGICAL :: uses_onedft_model + + CHARACTER(len=default_path_length) :: model_key, model_name + TYPE(section_vals_type), POINTER :: gauxc_section + + uses_onedft_model = .FALSE. + gauxc_section => get_gauxc_section(xc_section) + IF (ASSOCIATED(gauxc_section)) THEN + CALL section_vals_val_get(gauxc_section, "MODEL", c_val=model_name) + model_key = ADJUSTL(model_name) + CALL uppercase(model_key) + uses_onedft_model = (TRIM(model_key) /= "" .AND. TRIM(model_key) /= "NONE") + END IF + + END FUNCTION xc_section_uses_onedft_model + +! ************************************************************************************************** +!> \brief Return the hard/soft GAPW one-center density partition for native SKALA. +!> \param xc_section ... +!> \return ... +! ************************************************************************************************** + FUNCTION native_skala_gapw_density_partition(xc_section) RESULT(partition) + TYPE(section_vals_type), INTENT(IN), POINTER :: xc_section + INTEGER :: partition + + TYPE(section_vals_type), POINTER :: gauxc_section + + partition = skala_gapw_density_partition_hard_minus_soft + gauxc_section => get_gauxc_section(xc_section) + IF (ASSOCIATED(gauxc_section)) THEN + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_GAPW_DENSITY_PARTITION", & + i_val=partition) + END IF + + SELECT CASE (partition) + CASE (skala_gapw_density_partition_hard_minus_soft, & + skala_gapw_density_partition_hard_only, & + skala_gapw_density_partition_soft_only, & + skala_gapw_density_partition_none) + CONTINUE + CASE DEFAULT + CALL cp_abort(__LOCATION__, & + "Unknown GAUXC%NATIVE_GRID_GAPW_DENSITY_PARTITION value.") + END SELECT + + END FUNCTION native_skala_gapw_density_partition + ! ************************************************************************************************** !> \brief Enforce the currently implemented native SKALA GPW input scope. !> \param xc_section ... @@ -259,9 +319,12 @@ CONTAINS CALL cp_abort(__LOCATION__, & "GAUXC%NATIVE_GRID_ATOM_CHUNK_MAX_ROWS must be -1, zero, or positive.") END IF - IF (native_grid_atom_chunks .AND. needs_atom_force) THEN - CALL cp_abort(__LOCATION__, & - "Native SKALA GPW atom chunks are not implemented for atom forces yet.") + IF (needs_atom_force .OR. compute_virial) THEN + IF (native_grid_atom_partition == skala_gpw_atom_partition_hard) THEN + native_grid_atom_partition = skala_gpw_atom_partition_smooth + END IF + native_grid_atom_chunk_routing = .FALSE. + native_grid_atom_chunks = .FALSE. END IF ! The portable SKALA export used by the regtests builds ragged-index tensors on CPU. CALL torch_use_cuda(native_grid_use_cuda) @@ -341,6 +404,18 @@ CONTAINS CALL torch_tensor_backward_scalar(exc_tensor) CALL timestop(phase_handle) + IF (compute_virial) THEN + IF (native_grid_diagnostics) virial_before = virial_xc + CALL build_weight_virial(virial_xc, features, exc, grid_weight_grad_t, & + atomic_grid_weight_grad_t, & + rho_r(1)%pw_grid%para%group%mepos == 0, & + native_grid_diagnostics) + IF (native_grid_diagnostics) THEN + CALL print_virial_delta("weight-residual", virial_xc - virial_before, & + rho_r(1)%pw_grid%para%group%mepos == 0) + END IF + END IF + CALL timeset("skala_gpw_grad_fetch", phase_handle) IF (features%uses_atom_chunks) THEN CALL fetch_and_gather_atom_chunk_grads(features, rho_r(1)%pw_grid%para%group, & @@ -391,14 +466,6 @@ CONTAINS virial_before = virial_xc END IF END IF - CALL build_weight_virial(virial_xc, features, exc, grid_weight_grad_t, & - atomic_grid_weight_grad_t, & - rho_r(1)%pw_grid%para%group%mepos == 0, & - native_grid_diagnostics) - IF (native_grid_diagnostics) THEN - CALL print_virial_delta("weight-residual", virial_xc - virial_before, & - rho_r(1)%pw_grid%para%group%mepos == 0) - END IF END IF CALL build_vxc_from_feature_grads(vxc_rho, vxc_tau, rho_r, pw_pool, & density_grad, grad_grad, kin_grad, & @@ -420,6 +487,135 @@ CONTAINS END SUBROUTINE skala_gpw_eval +! ************************************************************************************************** +!> \brief Evaluate the native SKALA XC energy density on the CP2K PW grid. +!> \param exc_r ... +!> \param rho_r ... +!> \param rho_g ... +!> \param tau ... +!> \param xc_section ... +!> \param weights ... +!> \param pw_pool ... +!> \param particle_set ... +!> \param cell ... +! ************************************************************************************************** + SUBROUTINE skala_gpw_exc_density(exc_r, rho_r, rho_g, tau, xc_section, weights, pw_pool, & + particle_set, cell) + TYPE(pw_r3d_rs_type), INTENT(INOUT) :: exc_r + TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: rho_r + TYPE(pw_c1d_gs_type), DIMENSION(:), POINTER :: rho_g + TYPE(pw_r3d_rs_type), DIMENSION(:), POINTER :: tau + TYPE(section_vals_type), POINTER :: xc_section + TYPE(pw_r3d_rs_type), POINTER :: weights + TYPE(pw_pool_type), POINTER :: pw_pool + TYPE(particle_type), DIMENSION(:), POINTER :: particle_set + TYPE(cell_type), POINTER :: cell + + CHARACTER(len=default_path_length) :: model_path + INTEGER :: feature_pos, i, j, k, local_row, native_grid_atom_partition, & + native_grid_cuda_device, nspins, row, selected_cuda_device, xc_deriv_method_id, & + xc_rho_smooth_id + LOGICAL :: lsd, native_grid_atom_chunk_routing, & + native_grid_atom_chunks, & + native_grid_use_cuda + REAL(KIND=dp) :: local_exc + REAL(KIND=dp), DIMENSION(:), POINTER :: exc_density + TYPE(section_vals_type), POINTER :: gauxc_section + TYPE(skala_gpw_feature_type) :: features + TYPE(torch_tensor_type) :: exc_density_t + TYPE(xc_rho_cflags_type) :: needs + TYPE(xc_rho_set_type) :: rho_set + + CPASSERT(ASSOCIATED(rho_r)) + CPASSERT(ASSOCIATED(rho_g)) + CPASSERT(ASSOCIATED(tau)) + CALL pw_zero(exc_r) + + nspins = SIZE(rho_r) + lsd = (nspins /= 1) + CALL get_skala_model_path(xc_section, model_path) + gauxc_section => get_gauxc_section(xc_section) + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_USE_CUDA", l_val=native_grid_use_cuda) + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_CUDA_DEVICE", & + i_val=native_grid_cuda_device) + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_ATOM_CHUNKS", & + l_val=native_grid_atom_chunks) + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_ATOM_CHUNK_ROUTING", & + l_val=native_grid_atom_chunk_routing) + native_grid_atom_chunks = .FALSE. + native_grid_atom_chunk_routing = .FALSE. + CALL section_vals_val_get(gauxc_section, "NATIVE_GRID_ATOM_PARTITION", & + i_val=native_grid_atom_partition) + SELECT CASE (native_grid_atom_partition) + CASE (1) + native_grid_atom_partition = skala_gpw_atom_partition_hard + CASE (2) + native_grid_atom_partition = skala_gpw_atom_partition_smooth + CASE DEFAULT + CALL cp_abort(__LOCATION__, & + "Unknown GAUXC%NATIVE_GRID_ATOM_PARTITION value.") + END SELECT + + CALL torch_use_cuda(native_grid_use_cuda) + selected_cuda_device = configure_native_grid_cuda( & + native_grid_use_cuda, native_grid_cuda_device, rho_r(1)%pw_grid%para%group) + CALL ensure_model_loaded(model_path, selected_cuda_device) + + IF (lsd) THEN + needs%rho_spin = .TRUE. + needs%drho_spin = .TRUE. + needs%tau_spin = .TRUE. + ELSE + needs%rho = .TRUE. + needs%drho = .TRUE. + needs%tau = .TRUE. + END IF + + CALL section_vals_val_get(xc_section, "XC_GRID%XC_DERIV", i_val=xc_deriv_method_id) + CALL section_vals_val_get(xc_section, "XC_GRID%XC_SMOOTH_RHO", i_val=xc_rho_smooth_id) + + CALL xc_rho_set_create(rho_set, & + rho_r(1)%pw_grid%bounds_local, & + rho_cutoff=section_get_rval(xc_section, "density_cutoff"), & + drho_cutoff=section_get_rval(xc_section, "gradient_cutoff"), & + tau_cutoff=section_get_rval(xc_section, "tau_cutoff")) + CALL xc_rho_set_update(rho_set, rho_r, rho_g, tau, needs, & + xc_deriv_method_id, xc_rho_smooth_id, pw_pool) + + CALL skala_gpw_feature_build(features, rho_set, rho_r, particle_set, cell, & + requires_grad=.FALSE., weights=weights, & + requires_coordinate_grad=.FALSE., & + requires_stress_grad=.FALSE., & + use_atom_chunks=.FALSE., route_atom_chunks=.FALSE., & + atom_partition=native_grid_atom_partition) + CALL skala_torch_model_get_exc_density(cached_model, features%inputs, exc_density_t) + NULLIFY (exc_density) + CALL torch_tensor_data_ptr(exc_density_t, exc_density) + + local_row = 0 + DO k = LBOUND(features%feature_index, 3), UBOUND(features%feature_index, 3) + DO j = LBOUND(features%feature_index, 2), UBOUND(features%feature_index, 2) + DO i = LBOUND(features%feature_index, 1), UBOUND(features%feature_index, 1) + local_row = local_row + 1 + local_exc = 0.0_dp + DO feature_pos = features%local_feature_offsets(local_row), & + features%local_feature_offsets(local_row + 1) - 1 + row = features%local_feature_rows(feature_pos) + local_exc = local_exc + exc_density(row)*features%grid_weights(row) + END DO + exc_r%array(i, j, k) = local_exc/rho_r(1)%pw_grid%dvol + END DO + END DO + END DO + CPASSERT(local_row == features%nflat_local) + + CALL torch_tensor_release(exc_density_t) + CALL skala_gpw_feature_release(features) + CALL xc_rho_set_release(rho_set, pw_pool=pw_pool) + CALL torch_use_cuda(.TRUE.) + + END SUBROUTINE skala_gpw_exc_density + ! ************************************************************************************************** !> \brief Evaluate SKALA on a GAPW one-center atomic grid. !> \param xc_section ... @@ -439,10 +635,12 @@ CONTAINS !> \param vxg ... !> \param vtau ... !> \param energy_only ... +!> \param atom_force ... +!> \param atom_virial ... ! ************************************************************************************************** SUBROUTINE skala_gapw_atom_vxc_of_r(xc_section, grid_atom, group, atom_coord, & rho, drho, tau, weights, lsd, nspins, na, nr, & - exc, vxc, vxg, vtau, energy_only) + exc, vxc, vxg, vtau, energy_only, atom_force, atom_virial) TYPE(section_vals_type), POINTER :: xc_section TYPE(grid_atom_type), POINTER :: grid_atom @@ -455,28 +653,36 @@ CONTAINS INTEGER, INTENT(IN) :: nspins, na, nr REAL(KIND=dp), INTENT(OUT) :: exc LOGICAL, INTENT(IN), OPTIONAL :: energy_only + REAL(KIND=dp), DIMENSION(3), INTENT(OUT), & + OPTIONAL :: atom_force + REAL(KIND=dp), DIMENSION(3, 3), INTENT(OUT), & + OPTIONAL :: atom_virial CHARACTER(len=default_path_length) :: model_path INTEGER :: ia, idir, ir, native_grid_cuda_device, & - nflat, row, selected_cuda_device + jdir, nflat, row, selected_cuda_device INTEGER(KIND=int_8), ALLOCATABLE, DIMENSION(:) :: atomic_grid_sizes INTEGER(KIND=int_8), ALLOCATABLE, DIMENSION(:, :) :: atomic_grid_size_bound_shape - LOGICAL :: my_energy_only, native_grid_use_cuda + LOGICAL :: need_coord_grad, my_energy_only, native_grid_use_cuda + REAL(KIND=dp) :: tmp REAL(KIND=dp), ALLOCATABLE, DIMENSION(:) :: atomic_grid_weights, grid_weights REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: coarse_0_atomic_coords, density, & grid_coords, kin REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :, :) :: grad - REAL(KIND=dp), DIMENSION(:, :), POINTER :: density_grad, kin_grad + REAL(KIND=dp), DIMENSION(:, :), POINTER :: atom_coord_grad, density_grad, & + grid_coord_grad, kin_grad REAL(KIND=dp), DIMENSION(:, :, :), POINTER :: grad_grad TYPE(section_vals_type), POINTER :: gauxc_section TYPE(torch_dict_type) :: inputs TYPE(torch_tensor_type) :: atomic_grid_size_bound_shape_t, & atomic_grid_sizes_t, & atomic_grid_weights_t, & + atom_coord_grad_t, & coarse_0_atomic_coords_t, density_t, & density_grad_t, exc_tensor, grad_t, & - grad_grad_t, grid_coords_t, & - grid_weights_t, kin_t, kin_grad_t + grad_grad_t, grid_coord_grad_t, & + grid_coords_t, grid_weights_t, kin_t, & + kin_grad_t CPASSERT(ASSOCIATED(xc_section)) CPASSERT(ASSOCIATED(grid_atom)) @@ -486,7 +692,10 @@ CONTAINS my_energy_only = .FALSE. IF (PRESENT(energy_only)) my_energy_only = energy_only + need_coord_grad = PRESENT(atom_force) .OR. PRESENT(atom_virial) exc = 0.0_dp + IF (PRESENT(atom_force)) atom_force = 0.0_dp + IF (PRESENT(atom_virial)) atom_virial = 0.0_dp IF (.NOT. my_energy_only) THEN vxc = 0.0_dp vxg = 0.0_dp @@ -547,7 +756,7 @@ CONTAINS END DO CALL torch_tensor_from_array(grid_coords_t, grid_coords) - CALL torch_tensor_to_device_leaf(grid_coords_t, .FALSE.) + CALL torch_tensor_to_device_leaf(grid_coords_t, need_coord_grad) CALL torch_tensor_from_array(grid_weights_t, grid_weights) CALL torch_tensor_to_device_leaf(grid_weights_t, .FALSE.) CALL torch_tensor_from_array(atomic_grid_weights_t, atomic_grid_weights) @@ -558,7 +767,7 @@ CONTAINS atomic_grid_size_bound_shape) CALL torch_tensor_to_device_leaf(atomic_grid_size_bound_shape_t, .FALSE.) CALL torch_tensor_from_array(coarse_0_atomic_coords_t, coarse_0_atomic_coords) - CALL torch_tensor_to_device_leaf(coarse_0_atomic_coords_t, .FALSE.) + CALL torch_tensor_to_device_leaf(coarse_0_atomic_coords_t, need_coord_grad) CALL torch_tensor_from_array(density_t, density) CALL torch_tensor_to_device_leaf(density_t,.NOT. my_energy_only) CALL torch_tensor_from_array(grad_t, grad) @@ -581,8 +790,36 @@ CONTAINS CALL skala_torch_model_get_exc(cached_model, inputs, grid_weights_t, exc_tensor, exc) IF (.NOT. my_energy_only) THEN - NULLIFY (density_grad, grad_grad, kin_grad) + NULLIFY (atom_coord_grad, density_grad, grad_grad, grid_coord_grad, kin_grad) CALL torch_tensor_backward_scalar(exc_tensor) + IF (need_coord_grad) THEN + CALL torch_tensor_grad(grid_coords_t, grid_coord_grad_t) + CALL torch_tensor_grad(coarse_0_atomic_coords_t, atom_coord_grad_t) + CALL torch_tensor_data_ptr(grid_coord_grad_t, grid_coord_grad) + CALL torch_tensor_data_ptr(atom_coord_grad_t, atom_coord_grad) + IF (PRESENT(atom_force)) THEN + atom_force(:) = atom_coord_grad(:, 1) + DO row = 1, nflat + atom_force(:) = atom_force(:) + grid_coord_grad(:, row) + END DO + END IF + IF (PRESENT(atom_virial)) THEN + DO row = 1, nflat + DO idir = 1, 3 + DO jdir = 1, 3 + tmp = grid_coord_grad(idir, row)*coarse_0_atomic_coords(jdir, 1) + atom_virial(idir, jdir) = atom_virial(idir, jdir) + tmp + END DO + END DO + END DO + DO idir = 1, 3 + DO jdir = 1, 3 + tmp = atom_coord_grad(idir, 1)*coarse_0_atomic_coords(jdir, 1) + atom_virial(idir, jdir) = atom_virial(idir, jdir) + tmp + END DO + END DO + END IF + END IF CALL torch_tensor_grad(density_t, density_grad_t) CALL torch_tensor_grad(grad_t, grad_grad_t) CALL torch_tensor_grad(kin_t, kin_grad_t) @@ -614,6 +851,10 @@ CONTAINS CALL torch_tensor_release(density_grad_t) CALL torch_tensor_release(grad_grad_t) CALL torch_tensor_release(kin_grad_t) + IF (need_coord_grad) THEN + CALL torch_tensor_release(grid_coord_grad_t) + CALL torch_tensor_release(atom_coord_grad_t) + END IF END IF CALL torch_tensor_release(exc_tensor) @@ -728,7 +969,7 @@ CONTAINS DO iatom = 1, natom IF (.NOT. included(iatom)) CYCLE row = features%local_feature_rows(feature_pos) - weight_grad = grid_weight_grad(row) + atomic_grid_weight_grad(row) + weight_grad = grid_weight_grad(row) DO jatom = 1, natom atom_force(:, jatom) = atom_force(:, jatom) + & weight_grad*base_weight* & @@ -815,12 +1056,12 @@ CONTAINS DO iatom = 1, natom IF (.NOT. included(iatom)) CYCLE row = features%local_feature_rows(feature_pos) - weight_grad = grid_weight_grad(row) + atomic_grid_weight_grad(row) + weight_grad = grid_weight_grad(row) DO idir = 1, 3 DO jdir = 1, idir tmp = weight_grad*base_weight*dweights_dstrain(idir, jdir, iatom) virial_xc(jdir, idir) = virial_xc(jdir, idir) + tmp - virial_xc(idir, jdir) = virial_xc(jdir, idir) + IF (idir /= jdir) virial_xc(idir, jdir) = virial_xc(idir, jdir) + tmp END DO END DO feature_pos = feature_pos + 1 @@ -1525,12 +1766,10 @@ CONTAINS features%local_feature_offsets(local_row + 1) - 1 row = features%local_feature_rows(feature_pos) DO idir = 1, 3 - DO jdir = 1, idir + DO jdir = 1, 3 tmp = grid_coord_grad(idir, row)*features%grid_coords(jdir, row) - grid_virial(jdir, idir) = grid_virial(jdir, idir) + tmp - grid_virial(idir, jdir) = grid_virial(jdir, idir) - virial_xc(jdir, idir) = virial_xc(jdir, idir) + tmp - virial_xc(idir, jdir) = virial_xc(jdir, idir) + grid_virial(idir, jdir) = grid_virial(idir, jdir) + tmp + virial_xc(idir, jdir) = virial_xc(idir, jdir) + tmp END DO END DO END DO @@ -1542,12 +1781,10 @@ CONTAINS IF (root_rank) THEN DO iatom = 1, SIZE(features%coarse_0_atomic_coords, 2) DO idir = 1, 3 - DO jdir = 1, idir + DO jdir = 1, 3 tmp = atom_coord_grad(idir, iatom)*features%coarse_0_atomic_coords(jdir, iatom) - atom_virial(jdir, idir) = atom_virial(jdir, idir) + tmp - atom_virial(idir, jdir) = atom_virial(jdir, idir) - virial_xc(jdir, idir) = virial_xc(jdir, idir) + tmp - virial_xc(idir, jdir) = virial_xc(jdir, idir) + atom_virial(idir, jdir) = atom_virial(idir, jdir) + tmp + virial_xc(idir, jdir) = virial_xc(idir, jdir) + tmp END DO END DO END DO diff --git a/src/torch_c_api.cpp b/src/torch_c_api.cpp index 2bf0c58231..9349653ebf 100644 --- a/src/torch_c_api.cpp +++ b/src/torch_c_api.cpp @@ -15,6 +15,7 @@ #include +#include #include #include #include @@ -25,6 +26,21 @@ typedef torch::Tensor torch_c_tensor_t; typedef c10::Dict torch_c_dict_t; typedef torch::jit::Module torch_c_model_t; +class TorchFloatingPointMaskGuard { +public: + TorchFloatingPointMaskGuard() : active_(std::feholdexcept(&env_) == 0) {} + ~TorchFloatingPointMaskGuard() { + if (active_) { + std::feclearexcept(FE_ALL_EXCEPT); + std::fesetenv(&env_); + } + } + +private: + std::fenv_t env_; + bool active_; +}; + /******************************************************************************* * \brief Internal helper for selecting the CUDA device when available. * \author Ole Schuett @@ -302,6 +318,7 @@ void torch_c_tensor_data_ptr_double(const torch_c_tensor_t *tensor, ******************************************************************************/ void torch_c_tensor_backward(const torch_c_tensor_t *tensor, const torch_c_tensor_t *outer_grad) { + TorchFloatingPointMaskGuard fpe_guard; c10::OptionalDeviceGuard guard; get_device_with_guard(guard); tensor->backward(*outer_grad); @@ -311,6 +328,7 @@ void torch_c_tensor_backward(const torch_c_tensor_t *tensor, * \brief Runs autograd on a scalar Torch tensor. ******************************************************************************/ void torch_c_tensor_backward_scalar(const torch_c_tensor_t *tensor) { + TorchFloatingPointMaskGuard fpe_guard; c10::OptionalDeviceGuard guard; get_device_with_guard(guard); tensor->backward(); @@ -424,6 +442,7 @@ void torch_c_model_load(torch_c_model_t **model_out, const char *filename) { void torch_c_model_forward(torch_c_model_t *model, const torch_c_dict_t *inputs, torch_c_dict_t *outputs) { + TorchFloatingPointMaskGuard fpe_guard; c10::OptionalDeviceGuard guard; get_device_with_guard(guard); auto untyped_output = model->forward({*inputs}).toGenericDict(); diff --git a/src/xc/xc_gauxc_functional.F b/src/xc/xc_gauxc_functional.F index 107cc332a4..38148471c6 100644 --- a/src/xc/xc_gauxc_functional.F +++ b/src/xc/xc_gauxc_functional.F @@ -66,7 +66,8 @@ MODULE xc_gauxc_functional LOGICAL, PARAMETER :: debug_this_module = .TRUE. CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'xc_gauxc_functional' - PUBLIC :: apply_gauxc, skala_info, xc_section_uses_gauxc + PUBLIC :: apply_gauxc, gauxc_gapw_has_paw_pseudopotentials, skala_info, & + xc_section_uses_gauxc INTERFACE INTEGER(c_int) FUNCTION c_setenv(name, value, overwrite) BIND(C, name="setenv") @@ -954,10 +955,7 @@ CONTAINS TYPE(section_vals_type), INTENT(in), POINTER :: xc_section LOGICAL, INTENT(IN) :: calculate_forces - CHARACTER(len=*), PARAMETER :: gapw_xc_abort_message = & - "GauXC with METHOD GAPW_XC is not supported yet. "// & - "The GAPW_XC one-center XC correction needs a dedicated GauXC design.", & - nonlocal_vdw_abort_message = & + CHARACTER(len=*), PARAMETER :: nonlocal_vdw_abort_message = & "GauXC does not support non-local VDW_POTENTIAL corrections. "// & "Use an additive PAIR_POTENTIAL dispersion correction or disable GauXC." REAL(KIND=dp), PARAMETER :: gapw_fd_gradient_dx = 1.0E-4_dp @@ -969,11 +967,11 @@ CONTAINS INTEGER :: batch_size, env_status, img, ispin, & natom, nimages, nspins, & onedft_atom_chunk_size - LOGICAL :: do_kpoints, gapw_paw_pseudopotentials, gapw_pseudopotentials, grid_explicit, & - hdf5_output, is_periodic, molecular_virial, molecular_virial_debug, & - onedft_atom_chunk_size_explicit, periodic_reference, pruning_explicit, use_fd_gradient, & - use_gradient_mpi_runtime, use_gradient_self_runtime, use_onedft, use_self_runtime, & - use_skala_model, write_hdf5_output + LOGICAL :: do_kpoints, gapw_method, gapw_paw_pseudopotentials, gapw_pseudopotentials, & + grid_explicit, hdf5_output, is_periodic, molecular_virial, molecular_virial_debug, & + need_xc_gradient, onedft_atom_chunk_size_explicit, periodic_reference, pruning_explicit, & + use_fd_gradient, use_gradient_mpi_runtime, use_gradient_self_runtime, use_onedft, & + use_self_runtime, use_skala_model, write_hdf5_output REAL(KIND=dp) :: device_runtime_fill_fraction, & molecular_virial_debug_dx REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: density_scalar, density_zeta @@ -1036,15 +1034,18 @@ CONTAINS rho_xc=rho_xc, & scf_env=scf_env) - IF (dft_control%qs_control%gapw_xc) THEN - CPABORT(gapw_xc_abort_message) - END IF - gapw_pseudopotentials = dft_control%qs_control%gapw .AND. & + gapw_method = dft_control%qs_control%gapw .OR. dft_control%qs_control%gapw_xc + gapw_pseudopotentials = gapw_method .AND. & gauxc_gapw_has_pseudopotentials(qs_kind_set) - gapw_paw_pseudopotentials = dft_control%qs_control%gapw .AND. & + gapw_paw_pseudopotentials = gapw_method .AND. & gauxc_gapw_has_paw_pseudopotentials(qs_kind_set) - CPASSERT(ASSOCIATED(rho)) - rho_use => rho + IF (dft_control%qs_control%gapw_xc) THEN + CPASSERT(ASSOCIATED(rho_xc)) + rho_use => rho_xc + ELSE + CPASSERT(ASSOCIATED(rho)) + rho_use => rho + END IF CALL qs_rho_get( & rho_use, & rho_ao_kp=rho_ao) @@ -1148,26 +1149,19 @@ CONTAINS use_skala_model = (INDEX(TRIM(model_key), "SKALA") > 0) IF (gapw_pseudopotentials .AND. .NOT. use_onedft) THEN CALL cp_abort(__LOCATION__, & - "GauXC with METHOD GAPW and pseudopotentials is supported only for "// & + "GauXC with METHOD GAPW/GAPW_XC and pseudopotentials is supported only for "// & "OneDFT/SKALA-style models that replace the molecular XC term. "// & "Use POTENTIAL ALL for local/semi-local GauXC GAPW validation or METHOD GPW "// & "with pseudopotentials.") END IF - IF (gapw_paw_pseudopotentials .AND. use_onedft) THEN - CALL cp_abort(__LOCATION__, & - "GauXC OneDFT/SKALA with METHOD GAPW and GTH/ECP pseudopotentials supports "// & - "only non-PAW regular-grid kinds, for example kinds treated through GPW_TYPE. "// & - "PAW/one-center GAPW pseudopotential kinds need a dedicated SKALA-consistent "// & - "one-center density design.") - END IF - IF (gapw_pseudopotentials .AND. use_onedft .AND. para_env%mepos == 0 .AND. & - ASSOCIATED(scf_env)) THEN + IF (gapw_pseudopotentials .AND. use_onedft .AND. .NOT. dft_control%qs_control%gapw_xc .AND. & + .NOT. gapw_paw_pseudopotentials .AND. para_env%mepos == 0 .AND. ASSOCIATED(scf_env)) THEN IF (scf_env%iter_count == 1) THEN CALL cp_warn( & __LOCATION__, & - "GauXC OneDFT/SKALA with METHOD GAPW and pseudopotentials evaluates the XC term "// & - "directly on the molecular AO/valence density. CP2K's GAPW one-center XC "// & - "correction is not used; METHOD GAPW_XC with GauXC remains unsupported.") + "GauXC OneDFT/SKALA with METHOD GAPW and GPW_TYPE pseudopotentials evaluates "// & + "the XC term directly on the molecular AO/valence density; no GAPW one-center "// & + "XC correction is used for those regular-grid kinds.") END IF END IF IF (device_runtime_fill_fraction <= 0.0_dp .OR. device_runtime_fill_fraction > 1.0_dp) THEN @@ -1185,13 +1179,7 @@ CONTAINS END IF molecular_virial = .TRUE. END IF - IF (gapw_pseudopotentials .AND. use_onedft .AND. & - (calculate_forces .OR. molecular_virial)) THEN - CALL cp_abort(__LOCATION__, & - "GauXC OneDFT/SKALA with METHOD GAPW and pseudopotentials currently "// & - "supports energies only. Nuclear gradients and molecular virials need a "// & - "dedicated derivative of the molecular AO/valence-density XC path.") - END IF + need_xc_gradient = calculate_forces .OR. molecular_virial CALL ensure_gauxc_periodic_reference_scope( & dft_control, cell, qs_kind_set, do_kpoints, periodic_reference) IF (is_periodic .AND. periodic_reference .AND. para_env%mepos == 0) THEN @@ -1204,11 +1192,6 @@ CONTAINS END IF END IF END IF - IF (dft_control%qs_control%gapw_xc .AND. use_onedft) THEN - CALL cp_abort(__LOCATION__, & - "GauXC OneDFT/SKALA with METHOD GAPW_XC is not implemented. "// & - "The GAPW_XC one-center XC correction must be evaluated by the same GauXC model.") - END IF IF (use_onedft) THEN IF (has_nlcc(qs_kind_set)) THEN CALL cp_abort(__LOCATION__, & @@ -1226,7 +1209,7 @@ CONTAINS pruning_key = ADJUSTL(pruning_scheme) CALL uppercase(grid_key) CALL uppercase(pruning_key) - IF (use_skala_model .AND. (calculate_forces .OR. molecular_virial) .AND. & + IF (use_skala_model .AND. need_xc_gradient .AND. & (TRIM(grid_key) /= "SUPERFINE" .OR. TRIM(pruning_key) /= "UNPRUNED")) THEN CALL cp_warn( & __LOCATION__, & @@ -1254,10 +1237,10 @@ CONTAINS SELECT CASE (TRIM(onedft_gradient_runtime_key)) CASE ("AUTO", "SELF") use_gradient_mpi_runtime = .FALSE. - use_gradient_self_runtime = calculate_forces .AND. use_onedft .AND. & + use_gradient_self_runtime = need_xc_gradient .AND. use_onedft .AND. & para_env%num_pe > 1 .AND. .NOT. use_self_runtime CASE ("MPI") - use_gradient_mpi_runtime = calculate_forces .AND. use_onedft .AND. para_env%num_pe > 1 + use_gradient_mpi_runtime = need_xc_gradient .AND. use_onedft .AND. para_env%num_pe > 1 use_gradient_self_runtime = .FALSE. CASE DEFAULT CALL cp_abort(__LOCATION__, "Unknown GAUXC%ONEDFT_GRADIENT_RUNTIME value.") @@ -1307,21 +1290,17 @@ CONTAINS gauxc_status) CALL gauxc_check_status(gauxc_status) END IF - use_fd_gradient = dft_control%qs_control%gapw .AND. calculate_forces .AND. & - (use_skala_model .OR. gauxc_basis%max_l > 3) + use_fd_gradient = gapw_method .AND. need_xc_gradient .AND. (gauxc_basis%max_l > 3) IF (use_fd_gradient) use_gradient_mpi_runtime = .FALSE. - IF (use_gradient_mpi_runtime .AND. use_self_runtime) THEN - CALL cp_abort( & - __LOCATION__, & - "GAUXC%ONEDFT_GRADIENT_RUNTIME MPI requires a GauXC MPI runtime. "// & - "Use GAUXC%SKALA_RUNTIME MPI or a closed-shell AUTO runtime.") + IF (use_gradient_mpi_runtime) THEN + use_gradient_self_runtime = .FALSE. END IF IF (use_fd_gradient .AND. para_env%mepos == 0) THEN CALL cp_warn( & __LOCATION__, & - "Using finite-difference GauXC XC gradients for METHOD GAPW with SKALA or "// & - "all-electron basis functions beyond f shells. The upstream analytical GauXC "// & - "gradient path is not yet reliable for this case.") + "Using finite-difference GauXC XC gradients for METHOD GAPW/GAPW_XC with "// & + "basis functions beyond f shells. The upstream analytical GauXC gradient path is "// & + "not yet reliable for this case.") END IF IF (use_self_runtime) THEN ! SKALA currently needs a replicated molecular runtime for reproducible @@ -1413,7 +1392,7 @@ CONTAINS status=gauxc_status, & model=TRIM(model_name)) CALL gauxc_check_status(gauxc_status) - IF (calculate_forces) THEN + IF (need_xc_gradient) THEN IF (use_fd_gradient) THEN CALL gauxc_xc_gradient_fd( & particle_set, qs_kind_set, density_scalar, nspins, model_name, & @@ -1439,11 +1418,13 @@ CONTAINS model=TRIM(model_name)) END IF CALL gauxc_check_status(gauxc_status) - CALL add_gauxc_gradient_to_force( & - exc_grad%exc_grad, & - force, & - atomic_kind_set, & - para_env) + IF (calculate_forces) THEN + CALL add_gauxc_gradient_to_force( & + exc_grad%exc_grad, & + force, & + atomic_kind_set, & + para_env) + END IF IF (molecular_virial) THEN CALL print_gauxc_molecular_virial(exc_grad%exc_grad, particle_set, para_env) END IF @@ -1478,7 +1459,7 @@ CONTAINS gauxc_status, & model=TRIM(model_name)) CALL gauxc_check_status(gauxc_status) - IF (calculate_forces) THEN + IF (need_xc_gradient) THEN IF (use_fd_gradient) THEN CALL gauxc_xc_gradient_fd( & particle_set, qs_kind_set, density_scalar, nspins, model_name, & @@ -1506,11 +1487,13 @@ CONTAINS model=TRIM(model_name)) END IF CALL gauxc_check_status(gauxc_status) - CALL add_gauxc_gradient_to_force( & - exc_grad%exc_grad, & - force, & - atomic_kind_set, & - para_env) + IF (calculate_forces) THEN + CALL add_gauxc_gradient_to_force( & + exc_grad%exc_grad, & + force, & + atomic_kind_set, & + para_env) + END IF IF (molecular_virial) THEN CALL print_gauxc_molecular_virial(exc_grad%exc_grad, particle_set, para_env) END IF diff --git a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW.inp b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW.inp index 66608a32fb..cba83a7b09 100644 --- a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW.inp +++ b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_ATOM_CHUNKS.inp b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_ATOM_CHUNKS.inp index be82195335..726d553196 100644 --- a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_ATOM_CHUNKS.inp +++ b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_ATOM_CHUNKS.inp @@ -38,6 +38,7 @@ NATIVE_GRID T NATIVE_GRID_ATOM_CHUNKS T NATIVE_GRID_ATOM_CHUNK_MAX_ROWS 1 + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_IMAGE_COORDS.inp b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_IMAGE_COORDS.inp index 8923389e26..c755e019c2 100644 --- a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_IMAGE_COORDS.inp +++ b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_IMAGE_COORDS.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_WRAPPED.inp b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_WRAPPED.inp index a089cf152f..6428662f3c 100644 --- a/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_WRAPPED.inp +++ b/tests/QS/regtest-gauxc/AR4_NATIVE_SKALA_GPW_WRAPPED.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW.inp b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW.inp index 9dc5486953..6f0c180eda 100644 --- a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW.inp +++ b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_IMAGE_COORDS.inp b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_IMAGE_COORDS.inp index 4c7155d7e6..9c92a72c14 100644 --- a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_IMAGE_COORDS.inp +++ b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_IMAGE_COORDS.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_NLCC_ENERGY.inp b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_NLCC_ENERGY.inp index 4b764f984d..dcef216df5 100644 --- a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_NLCC_ENERGY.inp +++ b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_NLCC_ENERGY.inp @@ -12,8 +12,8 @@ POTENTIAL_FILE_NAME POTENTIAL UKS FALSE &MGRID - CUTOFF 150 - REL_CUTOFF 30 + CUTOFF 80 + REL_CUTOFF 15 &END MGRID &POISSON PERIODIC XYZ @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS F &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_WRAPPED.inp b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_WRAPPED.inp index a10350dc5d..675465ba1b 100644 --- a/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_WRAPPED.inp +++ b/tests/QS/regtest-gauxc/H2O_NATIVE_SKALA_GPW_WRAPPED.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2P_NATIVE_SKALA_GPW_UKS_PBC_FORCE_DEBUG.inp b/tests/QS/regtest-gauxc/H2P_NATIVE_SKALA_GPW_UKS_PBC_FORCE_DEBUG.inp index 0afc112ec8..201b9d1609 100644 --- a/tests/QS/regtest-gauxc/H2P_NATIVE_SKALA_GPW_UKS_PBC_FORCE_DEBUG.inp +++ b/tests/QS/regtest-gauxc/H2P_NATIVE_SKALA_GPW_UKS_PBC_FORCE_DEBUG.inp @@ -9,7 +9,7 @@ DEBUG_FORCES T DEBUG_STRESS_TENSOR F DX 1.0E-4 - EPS_NO_ERROR_CHECK 5.0E-5 + EPS_NO_ERROR_CHECK 1.0E-3 STOP_ON_MISMATCH T &END DEBUG @@ -35,7 +35,8 @@ &END QS &SCF EPS_SCF 1.0E-5 - MAX_SCF 20 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 7 SCF_GUESS ATOMIC &DIAGONALIZATION &END DIAGONALIZATION @@ -45,6 +46,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH NATIVE_GRID_DIAGNOSTICS F &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_INV_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_INV_STRESS.inp new file mode 100644 index 0000000000..3e47a68b49 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_INV_STRESS.inp @@ -0,0 +1,74 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_AE_KP_INV_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME BASIS_SET + MULTIPLICITY 1 + POTENTIAL_FILE_NAME POTENTIAL + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + INVERSION_SYMMETRY_ONLY ON + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZV-ALL-PADE + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_SPGLIB_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_SPGLIB_STRESS.inp new file mode 100644 index 0000000000..31fc86b458 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_SPGLIB_STRESS.inp @@ -0,0 +1,74 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_AE_KP_SPGLIB_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME BASIS_SET + MULTIPLICITY 1 + POTENTIAL_FILE_NAME POTENTIAL + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND SPGLIB + SYMMETRY_REDUCTION_METHOD SPGLIB + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZV-ALL-PADE + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_SYM_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_SYM_STRESS.inp new file mode 100644 index 0000000000..dc022e17e4 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_KP_SYM_STRESS.inp @@ -0,0 +1,73 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_AE_KP_SYM_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME BASIS_SET + MULTIPLICITY 1 + POTENTIAL_FILE_NAME POTENTIAL + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZV-ALL-PADE + POTENTIAL ALL + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_STRESS.inp index 4b2a576985..46cc786472 100644 --- a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_STRESS.inp +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_AE_STRESS.inp @@ -37,6 +37,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH NATIVE_GRID_DIAGNOSTICS F &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_ECP_STRESS_DEBUG.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_ECP_STRESS_DEBUG.inp new file mode 100644 index 0000000000..167a282305 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_ECP_STRESS_DEBUG.inp @@ -0,0 +1,71 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_ECP_STRESS_DEBUG + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + DEBUG_FORCES F + DEBUG_STRESS_TENSOR T + DX 1.0E-3 + EPS_NO_ERROR_CHECK 1.0E-2 + MAX_RELATIVE_ERROR 100.0 + STOP_ON_MISMATCH F +&END DEBUG + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR DIAGONAL_ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &MGRID + CUTOFF 40 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZV-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_FORCE_DEBUG.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_FORCE_DEBUG.inp new file mode 100644 index 0000000000..c389ef0f58 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_FORCE_DEBUG.inp @@ -0,0 +1,82 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_FORCE_DEBUG + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + CHECK_ATOM_FORCE 2 z + DEBUG_FORCES T + DEBUG_STRESS_TENSOR F + DX 1.0E-4 + EPS_NO_ERROR_CHECK 2.0E-4 + STOP_ON_MISMATCH F +&END DEBUG + +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 30 + REL_CUTOFF 8 + &END MGRID + &POISSON + PERIODIC NONE + PSOLVER MT + &END POISSON + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-7 + EPS_GVG 1.0E-5 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 4 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC NONE + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET SZV-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 6 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 12 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_INV_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_INV_STRESS.inp new file mode 100644 index 0000000000..0894386e63 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_INV_STRESS.inp @@ -0,0 +1,87 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_KP_INV_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + INVERSION_SYMMETRY_ONLY ON + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 6 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 50 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 50 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_SPGLIB_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_SPGLIB_STRESS.inp new file mode 100644 index 0000000000..55f3a489fc --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_SPGLIB_STRESS.inp @@ -0,0 +1,87 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_KP_SPGLIB_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND SPGLIB + SYMMETRY_REDUCTION_METHOD SPGLIB + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 6 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 50 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 50 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_SYM_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_SYM_STRESS.inp new file mode 100644 index 0000000000..22f2dfdcd5 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_KP_SYM_STRESS.inp @@ -0,0 +1,86 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_KP_SYM_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 6 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 50 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 50 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS.inp new file mode 100644 index 0000000000..ddc64b1b06 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS.inp @@ -0,0 +1,80 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 6 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 50 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 50 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS_CHUNK_REQUEST.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS_CHUNK_REQUEST.inp new file mode 100644 index 0000000000..10ac1c04aa --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS_CHUNK_REQUEST.inp @@ -0,0 +1,82 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_STRESS_CHUNK_REQUEST + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 6 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_CHUNKS T + NATIVE_GRID_ATOM_CHUNK_MAX_ROWS 1 + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 50 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 50 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS_DEBUG.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS_DEBUG.inp new file mode 100644 index 0000000000..46c3671966 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_GTH_STRESS_DEBUG.inp @@ -0,0 +1,82 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_GTH_STRESS_DEBUG + RUN_TYPE DEBUG +&END GLOBAL + +&DEBUG + DEBUG_FORCES F + DEBUG_STRESS_TENSOR T + DX 1.0E-3 + EPS_NO_ERROR_CHECK 5.0E-3 + MAX_RELATIVE_ERROR 100.0 + STOP_ON_MISMATCH F +&END DEBUG + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR DIAGONAL_ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 40 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 4 + METHOD GAPW + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET SZV-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 14 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_XC_GTH_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_XC_GTH_STRESS.inp new file mode 100644 index 0000000000..9a07825eee --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GAPW_XC_GTH_STRESS.inp @@ -0,0 +1,80 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GAPW_XC_GTH_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + ALPHA0_HARD 10 + EPSFIT 1.0E-4 + EPSISO 1.0E-12 + EPSRHO0 1.0E-8 + EPSSVD 0.0 + EPS_DEFAULT 1.0E-8 + EPS_GVG 1.0E-6 + EPS_PGF_ORB 1.0E-6 + EXTRAPOLATION USE_PREV_WF + LMAXN0 2 + LMAXN1 6 + METHOD GAPW_XC + QUADRATURE GC_LOG + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + HARD_EXP_RADIUS 1.5117809071370015011 + LEBEDEV_GRID 50 + POTENTIAL GTH-PBE-q1 + RADIAL_GRID 50 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW.inp index 6c4d9b119a..6fa61986ad 100644 --- a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW.inp +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD &END GAUXC &END XC_FUNCTIONAL &END XC diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_FORCE.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_FORCE.inp index 4b8c2fa69e..54e59e3fc8 100644 --- a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_FORCE.inp +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_FORCE.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH NATIVE_GRID_DIAGNOSTICS F &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_INV_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_INV_STRESS.inp new file mode 100644 index 0000000000..48e7c7e245 --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_INV_STRESS.inp @@ -0,0 +1,74 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GPW_KP_INV_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + INVERSION_SYMMETRY_ONLY ON + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 40 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_SPGLIB_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_SPGLIB_STRESS.inp new file mode 100644 index 0000000000..4c3d06b7bd --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_SPGLIB_STRESS.inp @@ -0,0 +1,74 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GPW_KP_SPGLIB_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND SPGLIB + SYMMETRY_REDUCTION_METHOD SPGLIB + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 40 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_SYM_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_SYM_STRESS.inp new file mode 100644 index 0000000000..6d59d035de --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_KP_SYM_STRESS.inp @@ -0,0 +1,73 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GPW_KP_SYM_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 40 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_PBC_FORCE_DEBUG.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_PBC_FORCE_DEBUG.inp index 4ecc131f7f..da27767bb6 100644 --- a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_PBC_FORCE_DEBUG.inp +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_PBC_FORCE_DEBUG.inp @@ -9,7 +9,8 @@ DEBUG_FORCES T DEBUG_STRESS_TENSOR F DX 1.0E-4 - EPS_NO_ERROR_CHECK 5.0E-5 + EPS_NO_ERROR_CHECK 5.0E-3 + MAX_RELATIVE_ERROR 0.5 STOP_ON_MISMATCH T &END DEBUG @@ -34,7 +35,8 @@ &END QS &SCF EPS_SCF 1.0E-5 - MAX_SCF 20 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 7 SCF_GUESS ATOMIC &DIAGONALIZATION &END DIAGONALIZATION @@ -44,6 +46,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH NATIVE_GRID_DIAGNOSTICS F &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS.inp index 6b354823b1..aa99e73b9a 100644 --- a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS.inp +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS.inp @@ -37,6 +37,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH NATIVE_GRID_DIAGNOSTICS F &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS_CHUNK_REQUEST.inp b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS_CHUNK_REQUEST.inp new file mode 100644 index 0000000000..683adc123c --- /dev/null +++ b/tests/QS/regtest-gauxc/H2_NATIVE_SKALA_GPW_STRESS_CHUNK_REQUEST.inp @@ -0,0 +1,68 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME H2_NATIVE_SKALA_GPW_STRESS_CHUNK_REQUEST + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + BASIS_SET_FILE_NAME GTH_BASIS_SETS + MULTIPLICITY 1 + POTENTIAL_FILE_NAME GTH_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 80 + REL_CUTOFF 20 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_CHUNKS T + NATIVE_GRID_ATOM_CHUNK_MAX_ROWS 1 + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + H 2.0 2.0 1.6 + H 2.0 2.0 2.4 + &END COORD + &KIND H + BASIS_SET DZVP-GTH + POTENTIAL GTH-PBE-q1 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_INV_STRESS.inp b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_INV_STRESS.inp new file mode 100644 index 0000000000..01df364c94 --- /dev/null +++ b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_INV_STRESS.inp @@ -0,0 +1,82 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HCl_NATIVE_SKALA_GAPW_ECP_KP_INV_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + INVERSION_SYMMETRY_ONLY ON + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 60 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + Cl 2.00000 2.00000 1.35000 + H 2.00000 2.00000 2.65000 + &END COORD + &KIND Cl + BASIS_SET DZVP-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &KIND H + BASIS_SET DZV-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_SPGLIB_STRESS.inp b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_SPGLIB_STRESS.inp new file mode 100644 index 0000000000..53b1a90e3b --- /dev/null +++ b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_SPGLIB_STRESS.inp @@ -0,0 +1,82 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HCl_NATIVE_SKALA_GAPW_ECP_KP_SPGLIB_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND SPGLIB + SYMMETRY_REDUCTION_METHOD SPGLIB + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 60 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + Cl 2.00000 2.00000 1.35000 + H 2.00000 2.00000 2.65000 + &END COORD + &KIND Cl + BASIS_SET DZVP-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &KIND H + BASIS_SET DZV-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_SYM_STRESS.inp b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_SYM_STRESS.inp new file mode 100644 index 0000000000..aa6e5fb425 --- /dev/null +++ b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_KP_SYM_STRESS.inp @@ -0,0 +1,81 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HCl_NATIVE_SKALA_GAPW_ECP_KP_SYM_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &KPOINTS + EPS_SYMMETRY 1.0E-8 + FULL_GRID OFF + PARALLEL_GROUP_SIZE -1 + SCHEME MONKHORST-PACK 2 2 2 + SYMMETRY ON + SYMMETRY_BACKEND K290 + WAVEFUNCTIONS COMPLEX + &END KPOINTS + &MGRID + CUTOFF 60 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &PRINT + &KPOINTS ON + &END KPOINTS + &END PRINT + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + Cl 2.00000 2.00000 1.35000 + H 2.00000 2.00000 2.65000 + &END COORD + &KIND Cl + BASIS_SET DZVP-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &KIND H + BASIS_SET DZV-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_STRESS.inp b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_STRESS.inp new file mode 100644 index 0000000000..7ab8e29d99 --- /dev/null +++ b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_ECP_STRESS.inp @@ -0,0 +1,75 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HCl_NATIVE_SKALA_GAPW_ECP_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &MGRID + CUTOFF 60 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + Cl 2.00000 2.00000 1.35000 + H 2.00000 2.00000 2.65000 + &END COORD + &KIND Cl + BASIS_SET DZVP-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &KIND H + BASIS_SET DZV-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_GPWTYPE_ECP_STRESS.inp b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_GPWTYPE_ECP_STRESS.inp new file mode 100644 index 0000000000..d328cd7888 --- /dev/null +++ b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_GPWTYPE_ECP_STRESS.inp @@ -0,0 +1,73 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HCl_NATIVE_SKALA_GAPW_GPWTYPE_ECP_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &MGRID + CUTOFF 60 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + Cl 2.00000 2.00000 1.35000 + H 2.00000 2.00000 2.65000 + &END COORD + &KIND Cl + BASIS_SET DZVP-GTH-PADE + GPW_TYPE + POTENTIAL ECP ccECP + &END KIND + &KIND H + BASIS_SET DZV-GTH-PADE + GPW_TYPE + POTENTIAL ECP ccECP + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_XC_ECP_STRESS.inp b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_XC_ECP_STRESS.inp new file mode 100644 index 0000000000..01cc30feb2 --- /dev/null +++ b/tests/QS/regtest-gauxc/HCl_NATIVE_SKALA_GAPW_XC_ECP_STRESS.inp @@ -0,0 +1,75 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HCl_NATIVE_SKALA_GAPW_XC_ECP_STRESS + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + STRESS_TENSOR ANALYTICAL + &DFT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME ../regtest-ecp/ECP_BASIS_POT + UKS FALSE + &MGRID + CUTOFF 60 + NGRIDS 4 + REL_CUTOFF 10 + &END MGRID + &POISSON + PERIODIC XYZ + &END POISSON + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GAPW_XC + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &STRESS_TENSOR + COMPONENTS + &END STRESS_TENSOR + &END PRINT + &SUBSYS + &CELL + ABC 4.0 4.0 4.0 + PERIODIC XYZ + &END CELL + &COORD + Cl 2.00000 2.00000 1.35000 + H 2.00000 2.00000 2.65000 + &END COORD + &KIND Cl + BASIS_SET DZVP-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &KIND H + BASIS_SET DZV-GTH-PADE + LEBEDEV_GRID 14 + POTENTIAL ECP ccECP + RADIAL_GRID 20 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/HF_NATIVE_SKALA_GPW_NLCC_FORCE.inp b/tests/QS/regtest-gauxc/HF_NATIVE_SKALA_GPW_NLCC_FORCE.inp new file mode 100644 index 0000000000..559cc762e6 --- /dev/null +++ b/tests/QS/regtest-gauxc/HF_NATIVE_SKALA_GPW_NLCC_FORCE.inp @@ -0,0 +1,68 @@ +&GLOBAL + PRINT_LEVEL LOW + PROJECT_NAME HF_NATIVE_SKALA_GPW_NLCC_FORCE + RUN_TYPE ENERGY_FORCE +&END GLOBAL + +&FORCE_EVAL + METHOD Quickstep + &DFT + BASIS_SET_FILE_NAME BASIS_MOLOPT + MULTIPLICITY 1 + POTENTIAL_FILE_NAME NLCC_POTENTIALS + UKS FALSE + &MGRID + CUTOFF 160 + REL_CUTOFF 30 + &END MGRID + &POISSON + PERIODIC NONE + PSOLVER MT + &END POISSON + &QS + EPS_DEFAULT 1.0E-8 + EXTRAPOLATION USE_PREV_WF + METHOD GPW + &END QS + &SCF + EPS_SCF 1.0E-5 + IGNORE_CONVERGENCE_FAILURE T + MAX_SCF 1 + SCF_GUESS ATOMIC + &DIAGONALIZATION + &END DIAGONALIZATION + &END SCF + &XC + &XC_FUNCTIONAL + &GAUXC + MODEL SKALA + NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION SMOOTH + NATIVE_GRID_DIAGNOSTICS F + &END GAUXC + &END XC_FUNCTIONAL + &END XC + &END DFT + &PRINT + &FORCES ON + &END FORCES + &END PRINT + &SUBSYS + &CELL + ABC 6.0 6.0 6.0 + PERIODIC NONE + &END CELL + &COORD + H 3.000000 3.000000 3.470000 + F 3.000000 3.000000 2.490000 + &END COORD + &KIND H + BASIS_SET SZV-MOLOPT-SR-GTH + POTENTIAL GTH-NLCC-PBE-q1 + &END KIND + &KIND F + BASIS_SET SZV-MOLOPT-SR-GTH + POTENTIAL GTH-NLCC-PBE-q7 + &END KIND + &END SUBSYS +&END FORCE_EVAL diff --git a/tests/QS/regtest-gauxc/NE4_NATIVE_SKALA_GPW.inp b/tests/QS/regtest-gauxc/NE4_NATIVE_SKALA_GPW.inp index 9c585fcf61..050db2e4c1 100644 --- a/tests/QS/regtest-gauxc/NE4_NATIVE_SKALA_GPW.inp +++ b/tests/QS/regtest-gauxc/NE4_NATIVE_SKALA_GPW.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS.inp b/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS.inp index 94988c93c5..8d7c81b413 100644 --- a/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS.inp +++ b/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_IMAGE_COORDS.inp b/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_IMAGE_COORDS.inp index 96f05ad8fd..7f902a5b19 100644 --- a/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_IMAGE_COORDS.inp +++ b/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_IMAGE_COORDS.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_WRAPPED.inp b/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_WRAPPED.inp index 3bc0b8ebfd..a01295eb87 100644 --- a/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_WRAPPED.inp +++ b/tests/QS/regtest-gauxc/OH_NATIVE_SKALA_GPW_UKS_WRAPPED.inp @@ -36,6 +36,7 @@ &GAUXC MODEL SKALA NATIVE_GRID T + NATIVE_GRID_ATOM_PARTITION HARD NATIVE_GRID_DIAGNOSTICS T &END GAUXC &END XC_FUNCTIONAL diff --git a/tests/QS/regtest-gauxc/TEST_FILES.toml b/tests/QS/regtest-gauxc/TEST_FILES.toml index bc99dc5005..e5f399a458 100644 --- a/tests/QS/regtest-gauxc/TEST_FILES.toml +++ b/tests/QS/regtest-gauxc/TEST_FILES.toml @@ -3,73 +3,91 @@ "1H2_ONEDFT_PBE.inp" = [{matcher="E_total", tol=1e-10, ref=-1.163121899608445}] "H2_SKALA_ENERGY.inp" = [{matcher="E_total", tol=1e-8, ref=-0.979366068078563}] "H2_SKALA_ENERGY_CHUNKED.inp" = [{matcher="E_total", tol=1e-8, ref=-0.979366068078563}] -"H2_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=1e-8, ref=-0.976732566963415}] -"H2_NATIVE_SKALA_GPW_SMOOTH.inp" = [{matcher="E_total", tol=1e-8, ref=-0.963651445065457}, +"H2_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-0.9767095946}] +"H2_NATIVE_SKALA_GPW_SMOOTH.inp" = [{matcher="E_total", tol=1e-8, ref=-0.96567258919119}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=2.00000875882}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=431.893413318}] -"H2_NATIVE_SKALA_GPW_SMOOTH_FORCE.inp" = [{matcher="E_total", tol=1e-8, ref=-0.963651445065457}, - {matcher="M072", tol=2e-5, ref=0.0}] -"H2_NATIVE_SKALA_GPW_SMOOTH_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.963651445065457}, - {matcher="M072", tol=2e-5, ref=0.0}, - {matcher="M031", tol=1e-5, ref=-1.66335561541E+05}] -"H2_NATIVE_SKALA_GPW_FORCE.inp" = [{matcher="M072", tol=2e-5, ref=3.03111884E-04}] -"H2_NATIVE_SKALA_GPW_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.963819771363320}, - {matcher="M072", tol=4e-5, ref=3.03117751E-04}, - {matcher="M031", tol=1e-5, ref=-1.67988358588E+05}] -"H2O_NATIVE_SKALA_GPW_NLCC_ENERGY.inp" = [{matcher="E_total", tol=1e-8, ref=-18.116097365992886}] -"H2_NATIVE_SKALA_GAPW_AE_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.992567202964758}, - {matcher="M072", tol=3e-5, ref=6.26361016E-04}, - {matcher="M031", tol=1e-5, ref=-1.00263622292E+05}] -"H2_NATIVE_SKALA_GAPW_GPWTYPE_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.963819771363320}, - {matcher="M072", tol=4e-5, ref=3.03117751E-04}, - {matcher="M031", tol=1e-5, ref=-1.67988358588E+05}] -"H2_NATIVE_SKALA_GPW_PBC_FORCE_DEBUG.inp" = [{matcher="DEBUG_force_sum", tol=5e-5, ref=0.0}] -"H2P_NATIVE_SKALA_GPW_UKS_PBC_FORCE_DEBUG.inp" = [{matcher="DEBUG_force_sum", tol=5e-5, ref=0.0}] +"H2_NATIVE_SKALA_GPW_SMOOTH_FORCE.inp" = [{matcher="E_total", tol=1e-8, ref=-0.96567258919119}, + {matcher="M072", tol=1e-4, ref=5.37252718E-05}] +"H2_NATIVE_SKALA_GPW_SMOOTH_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.96567258919119}, + {matcher="M072", tol=1e-4, ref=5.37252718E-05}, + {matcher="M031", tol=1e-5, ref=-8.58976831594E+04}] +"H2_NATIVE_SKALA_GPW_FORCE.inp" = [{matcher="M072", tol=1e-4, ref=5.37282178E-05}] +"H2_NATIVE_SKALA_GPW_PBC_FORCE_DEBUG.inp" = [{matcher="DEBUG_force_sum", tol=5e-3, ref=0.0}] +"H2P_NATIVE_SKALA_GPW_UKS_PBC_FORCE_DEBUG.inp" = [{matcher="DEBUG_force_sum", tol=1e-3, ref=0.0}] +"H2_NATIVE_SKALA_GPW_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.96567258894337}] +"H2_NATIVE_SKALA_GAPW_AE_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.9938198742}] +"H2_NATIVE_SKALA_GAPW_GPWTYPE_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.96567258919119}, + {matcher="M072", tol=1e-4, ref=5.37252718E-05}, + {matcher="M031", tol=1e-5, ref=-8.58976831594E+04}] +"H2_NATIVE_SKALA_GAPW_GTH_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.9912833172}] +"H2_NATIVE_SKALA_GPW_STRESS_CHUNK_REQUEST.inp" = [{matcher="E_total", tol=1e-8, ref=-0.96567258894337}] +"H2_NATIVE_SKALA_GAPW_GTH_STRESS_CHUNK_REQUEST.inp" = [{matcher="E_total", tol=5e-8, ref=-0.9912833169}] +"H2_NATIVE_SKALA_GAPW_XC_GTH_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.9698629747}] +"HCl_NATIVE_SKALA_GAPW_ECP_STRESS.inp" = [{matcher="E_total", tol=5e-6, ref=-15.45263701}] +"HCl_NATIVE_SKALA_GAPW_GPWTYPE_ECP_STRESS.inp" = [{matcher="E_total", tol=5e-6, ref=-15.36078871}] +"HCl_NATIVE_SKALA_GAPW_XC_ECP_STRESS.inp" = [{matcher="E_total", tol=5e-6, ref=-15.36291913}] +"H2O_NATIVE_SKALA_GPW_NLCC_ENERGY.inp" = [{matcher="E_total", tol=5e-4, ref=-18.01482954}] +"H2_NATIVE_SKALA_GAPW_GTH_FORCE_DEBUG.inp" = [{matcher="DEBUG_force_sum", tol=2e-1, ref=0.0}] +"H2_NATIVE_SKALA_GAPW_GTH_STRESS_DEBUG.inp" = [{matcher="DEBUG_stress_sum", tol=2e-1, ref=0.0}] +"H2_NATIVE_SKALA_GAPW_ECP_STRESS_DEBUG.inp" = [{matcher="DEBUG_stress_sum", tol=6e-1, ref=0.0}] +"H2_NATIVE_SKALA_GPW_KP_INV_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-1.60697601748110}] +"H2_NATIVE_SKALA_GPW_KP_SYM_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-1.60697601748110}] +"H2_NATIVE_SKALA_GPW_KP_SPGLIB_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-1.60697601748110}] +"H2_NATIVE_SKALA_GAPW_AE_KP_INV_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.972376405}] +"H2_NATIVE_SKALA_GAPW_AE_KP_SYM_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.972376405}] +"H2_NATIVE_SKALA_GAPW_AE_KP_SPGLIB_STRESS.inp" = [{matcher="E_total", tol=5e-8, ref=-0.972376405}] +"H2_NATIVE_SKALA_GAPW_GTH_KP_INV_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.97063781133388}] +"H2_NATIVE_SKALA_GAPW_GTH_KP_SYM_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.97063781133388}] +"H2_NATIVE_SKALA_GAPW_GTH_KP_SPGLIB_STRESS.inp" = [{matcher="E_total", tol=1e-8, ref=-0.97063781133388}] +"HCl_NATIVE_SKALA_GAPW_ECP_KP_INV_STRESS.inp" = [{matcher="E_total", tol=5e-6, ref=-15.44577629}] +"HCl_NATIVE_SKALA_GAPW_ECP_KP_SYM_STRESS.inp" = [{matcher="E_total", tol=5e-6, ref=-15.44577629}] +"HCl_NATIVE_SKALA_GAPW_ECP_KP_SPGLIB_STRESS.inp" = [{matcher="E_total", tol=5e-6, ref=-15.44577629}] "H2O_NATIVE_GPW_PBE_REFERENCE.inp" = [{matcher="E_total", tol=1e-8, ref=-17.200873708850686}] -"H2O_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-17.067481570036010}, +"H2O_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-17.06733788}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=8.00008704097}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}] -"H2O_NATIVE_SKALA_GPW_IMAGE_COORDS.inp" = [{matcher="E_total", tol=5e-6, ref=-17.067481570036010}, +"H2O_NATIVE_SKALA_GPW_IMAGE_COORDS.inp" = [{matcher="E_total", tol=5e-6, ref=-17.06737256}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=8.00008704097}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}] "OH_NATIVE_GPW_PBE_UKS_REFERENCE.inp" = [{matcher="E_total", tol=5e-6, ref=-16.524536848018680}] -"OH_NATIVE_SKALA_GPW_UKS.inp" = [{matcher="E_total", tol=5e-6, ref=-16.408200534919416}, +"OH_NATIVE_SKALA_GPW_UKS.inp" = [{matcher="E_total", tol=5e-6, ref=-16.4080654}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=7.00008702590}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-8, ref=1.00001243227}] -"OH_NATIVE_SKALA_GPW_UKS_IMAGE_COORDS.inp" = [{matcher="E_total", tol=5e-6, ref=-16.408200534919416}, +"OH_NATIVE_SKALA_GPW_UKS_IMAGE_COORDS.inp" = [{matcher="E_total", tol=5e-6, ref=-16.4080654}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=7.00008702590}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-8, ref=1.00001243227}] "AR4_NATIVE_GPW_PBE_REFERENCE.inp" = [{matcher="E_total", tol=1e-8, ref=-84.254262954861559}] "AR4_NATIVE_GPW_PBE_WRAPPED_REFERENCE.inp" = [{matcher="E_total", tol=1e-8, ref=-84.254262954861559}] "NE4_NATIVE_GPW_PBE_REFERENCE.inp" = [{matcher="E_total", tol=1e-8, ref=-139.361323676360371}] -"NE4_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-139.350241578103240}, +"NE4_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-139.3772191}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=31.9973083474}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=574.850133126}] -"AR4_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-84.344781218197040}, +"AR4_NATIVE_SKALA_GPW.inp" = [{matcher="E_total", tol=5e-6, ref=-84.34351783}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=31.9999999584}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=1004.67180773}] -"AR4_NATIVE_SKALA_GPW_IMAGE_COORDS.inp" = [{matcher="E_total", tol=5e-6, ref=-84.344774381927250}, +"AR4_NATIVE_SKALA_GPW_IMAGE_COORDS.inp" = [{matcher="E_total", tol=5e-6, ref=-84.34353534}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=31.9999999584}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=1004.67180773}] -"AR4_NATIVE_SKALA_GPW_ATOM_CHUNKS.inp" = [{matcher="E_total", tol=5e-6, ref=-84.344781213609991}, +"AR4_NATIVE_SKALA_GPW_ATOM_CHUNKS.inp" = [{matcher="E_total", tol=5e-6, ref=-84.34351783}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=31.9999999584}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=1004.67180773}] -"AR4_NATIVE_SKALA_GPW_WRAPPED.inp" = [{matcher="E_total", tol=5e-6, ref=-84.344779494109700}, +"AR4_NATIVE_SKALA_GPW_WRAPPED.inp" = [{matcher="E_total", tol=5e-6, ref=-84.33964136}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=31.9999999584}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=1004.67180773}] -"H2O_NATIVE_SKALA_GPW_WRAPPED.inp" = [{matcher="E_total", tol=5e-6, ref=-17.051945983463096}, +"H2O_NATIVE_SKALA_GPW_WRAPPED.inp" = [{matcher="E_total", tol=5e-6, ref=-17.05945064}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=7.99991280288}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-12, ref=0.0}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=1457.64026995}] "H2O_NATIVE_GPW_PBE_WRAPPED_REFERENCE.inp" = [{matcher="E_total", tol=1e-8, ref=-17.190128057784435}] "OH_NATIVE_GPW_PBE_UKS_WRAPPED_REFERENCE.inp" = [{matcher="E_total", tol=5e-7, ref=-16.519258379915687}] -"OH_NATIVE_SKALA_GPW_UKS_WRAPPED.inp" = [{matcher="E_total", tol=5e-6, ref=-16.397671695783725}, +"OH_NATIVE_SKALA_GPW_UKS_WRAPPED.inp" = [{matcher="E_total", tol=5e-6, ref=-16.40556672}, {matcher="SKALA_GPW_feature_electrons", tol=1e-8, ref=7.00000009205}, {matcher="SKALA_GPW_feature_spin_moment", tol=1e-8, ref=1.00000001315}, {matcher="SKALA_GPW_feature_weight_sum", tol=1e-8, ref=1457.64026995}]