Support native-grid SKALA GAPW stress and k-points

This commit is contained in:
Thomas D. Kuehne 2026-06-21 22:01:51 +02:00
parent 2f0b7ede70
commit 257e3b0b73
51 changed files with 2452 additions and 249 deletions

View file

@ -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)

View file

@ -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, &

View file

@ -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)

View file

@ -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)

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -15,6 +15,7 @@
#include <cassert>
#include <cfenv>
#include <cstdlib>
#include <cstring>
#include <string>
@ -25,6 +26,21 @@ typedef torch::Tensor torch_c_tensor_t;
typedef c10::Dict<std::string, torch::Tensor> 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();

View file

@ -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

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -37,6 +37,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION SMOOTH
NATIVE_GRID_DIAGNOSTICS F
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
&END GAUXC
&END XC_FUNCTIONAL
&END XC

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION SMOOTH
NATIVE_GRID_DIAGNOSTICS F
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -37,6 +37,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION SMOOTH
NATIVE_GRID_DIAGNOSTICS F
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -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

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -36,6 +36,7 @@
&GAUXC
MODEL SKALA
NATIVE_GRID T
NATIVE_GRID_ATOM_PARTITION HARD
NATIVE_GRID_DIAGNOSTICS T
&END GAUXC
&END XC_FUNCTIONAL

View file

@ -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}]