From 6cce7c8bce3514819d7d181376ef70101d0576a7 Mon Sep 17 00:00:00 2001 From: gabriele16 Date: Thu, 13 Apr 2023 16:02:47 +0200 Subject: [PATCH] Inference of Allegro implemented into Fist (#2722) --- data/Allegro/si-deployed.pth | Bin 0 -> 269135 bytes src/CMakeLists.txt | 1 + src/common/bibliography.F | 22 +- src/fist_neighbor_list_control.F | 6 +- src/fist_nonbond_env_types.F | 31 +- src/fist_nonbond_force.F | 8 +- src/force_fields_all.F | 5 +- src/force_fields_input.F | 110 ++++- src/input_cp2k_mm.F | 72 ++- src/manybody_allegro.F | 469 +++++++++++++++++++ src/manybody_nequip.F | 22 +- src/manybody_potential.F | 49 +- src/pair_potential.F | 17 +- src/pair_potential_types.F | 211 ++++++--- tests/Fist/regtest-allegro/Allegro_si_MD.inp | 64 +++ tests/Fist/regtest-allegro/TEST_FILES | 3 + tests/Fist/regtest-allegro/si_input.xyz | 66 +++ tests/TEST_DIRS | 1 + tools/toolchain/install_cp2k_toolchain.sh | 4 +- 19 files changed, 1029 insertions(+), 132 deletions(-) create mode 100644 data/Allegro/si-deployed.pth create mode 100644 src/manybody_allegro.F create mode 100644 tests/Fist/regtest-allegro/Allegro_si_MD.inp create mode 100644 tests/Fist/regtest-allegro/TEST_FILES create mode 100644 tests/Fist/regtest-allegro/si_input.xyz diff --git a/data/Allegro/si-deployed.pth b/data/Allegro/si-deployed.pth new file mode 100644 index 0000000000000000000000000000000000000000..1cd95d2d63ede03ee459661578a7aa7c612c0ad0 GIT binary patch literal 269135 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

h}9uT?d&*0poE!J42!_=zVKnA$<)sGI?oU|I0 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

C)jR|4ZU!8anJelk+n|o9Vj0Ha-E0P^{9@Rs?#E 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 literal 0 HcmV?d00001 diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index d871fe2aca..1a22c70205 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -295,6 +295,7 @@ list( manybody_eam.F manybody_gal21.F manybody_gal.F + manybody_allegro.F manybody_nequip.F manybody_potential.F manybody_quip.F diff --git a/src/common/bibliography.F b/src/common/bibliography.F index 96e7bb2670..3c7b52f3a5 100644 --- a/src/common/bibliography.F +++ b/src/common/bibliography.F @@ -90,7 +90,7 @@ MODULE bibliography Behler2007, Behler2011, Schran2020a, Schran2020b, & Rycroft2009, Thomas2015, Brehm2018, Brehm2020, Shigeta2001, Heinecke2016, & Brehm2021, Bussy2021a, Bussy2021b, Ditler2021, Ditler2022, Mattiat2019, Mattiat2022, & - Belleflamme2023, Knizia2013 + Belleflamme2023, Knizia2013, Musaelian2023 CONTAINS @@ -224,7 +224,7 @@ CONTAINS "SO Nature Communications", & "PY 2022", & "VL 13", & - "IS 1", & + "AR 2453", & "ER"), & DOI="10.1038/s41467-022-29939-5") @@ -4822,6 +4822,24 @@ CONTAINS "ER"), & DOI="10.1021/ct400687b") + CALL add_reference(key=Musaelian2023, ISI_record=s2a( & + "PT J", & + " Musaelian, A", & + " Batzner, S", & + " Johansson, A", & + " Sun, L", & + " Owen, CJ", & + " Kornbluth, M", & + " Kozinsky, B", & + "TI Learning local equivariant representations for large-scale", & + " atomistic dynamice", & + "SO Nature Communications", & + "PY 2023", & + "VL 14", & + "AR 579", & + "ER"), & + DOI="10.1038/s41467-023-36329-y") + END SUBROUTINE add_all_references END MODULE bibliography diff --git a/src/fist_neighbor_list_control.F b/src/fist_neighbor_list_control.F index e590690946..9491d90b62 100644 --- a/src/fist_neighbor_list_control.F +++ b/src/fist_neighbor_list_control.F @@ -39,7 +39,8 @@ MODULE fist_neighbor_list_control section_vals_val_get USE kinds, ONLY: dp USE message_passing, ONLY: mp_para_env_type - USE pair_potential_types, ONLY: gal21_type,& + USE pair_potential_types, ONLY: allegro_type,& + gal21_type,& gal_type,& nequip_type,& pair_potential_pp_type,& @@ -231,6 +232,9 @@ CONTAINS IF (ANY(potparm%pot(ikind, jkind)%pot%type == nequip_type)) THEN full_nl(ikind, jkind) = .TRUE. END IF + IF (ANY(potparm%pot(ikind, jkind)%pot%type == allegro_type)) THEN + full_nl(ikind, jkind) = .TRUE. + END IF full_nl(jkind, ikind) = full_nl(ikind, jkind) END DO END DO diff --git a/src/fist_nonbond_env_types.F b/src/fist_nonbond_env_types.F index 72645910f5..645ccaba5c 100644 --- a/src/fist_nonbond_env_types.F +++ b/src/fist_nonbond_env_types.F @@ -36,7 +36,7 @@ MODULE fist_nonbond_env_types PUBLIC :: fist_nonbond_env_type, fist_nonbond_env_set, & fist_nonbond_env_get, fist_nonbond_env_create, & fist_nonbond_env_release, pos_type, eam_type, & - quip_data_type, nequip_data_type + quip_data_type, nequip_data_type, allegro_data_type ! ************************************************************************************************** TYPE pos_type @@ -60,6 +60,13 @@ MODULE fist_nonbond_env_types TYPE(torch_model_type) :: model END TYPE + TYPE allegro_data_type + INTEGER, POINTER :: use_indices(:) + REAL(KIND=dp), POINTER :: force(:, :) + REAL(KIND=dp) :: virial(3, 3) + TYPE(torch_model_type) :: model + END TYPE + ! ************************************************************************************************** TYPE fist_nonbond_env_type INTEGER :: natom_types @@ -80,6 +87,7 @@ MODULE fist_nonbond_env_types TYPE(eam_type), DIMENSION(:), POINTER :: eam_data TYPE(quip_data_type), POINTER :: quip_data TYPE(nequip_data_type), POINTER :: nequip_data + TYPE(allegro_data_type), POINTER :: allegro_data END TYPE fist_nonbond_env_type CONTAINS @@ -111,6 +119,7 @@ CONTAINS !> \param eam_data ... !> \param quip_data ... !> \param nequip_data ... +!> \param allegro_data ... !> \param charges ... !> \par History !> 12.2002 created [fawzi] @@ -121,7 +130,7 @@ CONTAINS shift_cutoff, r_last_update, r_last_update_pbc, rshell_last_update_pbc, & rcore_last_update_pbc, cell_last_update, num_update, last_update, & counter, natom_types, long_range_correction, ij_kind_full_fac, eam_data, & - quip_data, nequip_data, charges) + quip_data, nequip_data, allegro_data, charges) TYPE(fist_nonbond_env_type), INTENT(IN) :: fist_nonbond_env TYPE(pair_potential_pp_type), OPTIONAL, POINTER :: potparm14, potparm @@ -140,6 +149,7 @@ CONTAINS TYPE(eam_type), DIMENSION(:), OPTIONAL, POINTER :: eam_data TYPE(quip_data_type), OPTIONAL, POINTER :: quip_data TYPE(nequip_data_type), OPTIONAL, POINTER :: nequip_data + TYPE(allegro_data_type), OPTIONAL, POINTER :: allegro_data REAL(KIND=dp), DIMENSION(:), OPTIONAL, POINTER :: charges IF (PRESENT(charges)) charges => fist_nonbond_env%charges @@ -147,6 +157,7 @@ CONTAINS IF (PRESENT(eam_data)) eam_data => fist_nonbond_env%eam_data IF (PRESENT(quip_data)) quip_data => fist_nonbond_env%quip_data IF (PRESENT(nequip_data)) nequip_data => fist_nonbond_env%nequip_data + IF (PRESENT(allegro_data)) allegro_data => fist_nonbond_env%allegro_data IF (PRESENT(potparm)) potparm => fist_nonbond_env%potparm IF (PRESENT(rlist_cut)) rlist_cut => fist_nonbond_env%rlist_cut IF (PRESENT(rlist_lowsq)) rlist_lowsq => fist_nonbond_env%rlist_lowsq @@ -202,6 +213,7 @@ CONTAINS !> \param eam_data ... !> \param quip_data ... !> \param nequip_data ... +!> \param allegro_data ... !> \param charges ... !> \par History !> 12.2002 created [fawzi] @@ -212,7 +224,7 @@ CONTAINS shift_cutoff, r_last_update, r_last_update_pbc, rshell_last_update_pbc, & rcore_last_update_pbc, cell_last_update, num_update, last_update, & counter, natom_types, long_range_correction, eam_data, quip_data, & - nequip_data, charges) + nequip_data, allegro_data, charges) TYPE(fist_nonbond_env_type), INTENT(INOUT) :: fist_nonbond_env TYPE(pair_potential_pp_type), OPTIONAL, POINTER :: potparm14, potparm @@ -230,12 +242,14 @@ CONTAINS TYPE(eam_type), DIMENSION(:), OPTIONAL, POINTER :: eam_data TYPE(quip_data_type), OPTIONAL, POINTER :: quip_data TYPE(nequip_data_type), OPTIONAL, POINTER :: nequip_data + TYPE(allegro_data_type), OPTIONAL, POINTER :: allegro_data REAL(KIND=dp), DIMENSION(:), OPTIONAL, POINTER :: charges IF (PRESENT(potparm14)) fist_nonbond_env%potparm14 => potparm14 IF (PRESENT(eam_data)) fist_nonbond_env%eam_data => eam_data IF (PRESENT(quip_data)) fist_nonbond_env%quip_data => quip_data IF (PRESENT(nequip_data)) fist_nonbond_env%nequip_data => nequip_data + IF (PRESENT(allegro_data)) fist_nonbond_env%allegro_data => allegro_data IF (PRESENT(potparm)) fist_nonbond_env%potparm => potparm IF (PRESENT(rlist_cut)) fist_nonbond_env%rlist_cut => rlist_cut IF (PRESENT(charges)) fist_nonbond_env%charges => charges @@ -306,6 +320,7 @@ CONTAINS NULLIFY (fist_nonbond_env%eam_data) NULLIFY (fist_nonbond_env%quip_data) NULLIFY (fist_nonbond_env%nequip_data) + NULLIFY (fist_nonbond_env%allegro_data) NULLIFY (fist_nonbond_env%charges) CALL init_fist_nonbond_env(fist_nonbond_env, atomic_kind_set, potparm14, & potparm, do_nonbonded, verlet_skin, ewald_rcut, ei_scale14, vdw_scale14, & @@ -499,6 +514,16 @@ CONTAINS CALL torch_model_release(fist_nonbond_env%nequip_data%model) DEALLOCATE (fist_nonbond_env%nequip_data) END IF + IF (ASSOCIATED(fist_nonbond_env%allegro_data)) THEN + IF (ASSOCIATED(fist_nonbond_env%allegro_data%force)) THEN + DEALLOCATE (fist_nonbond_env%allegro_data%force) + END IF + IF (ASSOCIATED(fist_nonbond_env%allegro_data%use_indices)) THEN + DEALLOCATE (fist_nonbond_env%allegro_data%use_indices) + END IF + CALL torch_model_release(fist_nonbond_env%allegro_data%model) + DEALLOCATE (fist_nonbond_env%allegro_data) + END IF IF (ASSOCIATED(fist_nonbond_env%rshell_last_update_pbc)) THEN DEALLOCATE (fist_nonbond_env%rshell_last_update_pbc) END IF diff --git a/src/fist_nonbond_force.F b/src/fist_nonbond_force.F index 915f5efa1c..87b91f27cf 100644 --- a/src/fist_nonbond_force.F +++ b/src/fist_nonbond_force.F @@ -38,8 +38,8 @@ MODULE fist_nonbond_force USE message_passing, ONLY: mp_comm_type USE pair_potential_coulomb, ONLY: potential_coulomb USE pair_potential_types, ONLY: & - gal21_type, gal_type, nequip_type, nosh_nosh, nosh_sh, pair_potential_pp_type, & - pair_potential_single_type, sh_sh, siepmann_type, tersoff_type + allegro_type, gal21_type, gal_type, nequip_type, nosh_nosh, nosh_sh, & + pair_potential_pp_type, pair_potential_single_type, sh_sh, siepmann_type, tersoff_type USE particle_types, ONLY: particle_type USE shell_potential_types, ONLY: get_shell,& shell_kind_type @@ -229,7 +229,7 @@ CONTAINS fac_vdw = fac_kind full_nl = ANY(pot%type == tersoff_type) .OR. ANY(pot%type == siepmann_type) & .OR. ANY(pot%type == gal_type) .OR. ANY(pot%type == gal21_type) & - .OR. ANY(pot%type == nequip_type) + .OR. ANY(pot%type == nequip_type) .OR. ANY(pot%type == allegro_type) IF ((.NOT. full_nl) .AND. (atom_a == atom_b)) THEN fac_ei = 0.5_dp*fac_ei fac_vdw = 0.5_dp*fac_vdw @@ -728,7 +728,7 @@ CONTAINS fac_ei = ij_kind_full_fac(kind_a, kind_b) full_nl = ANY(pot%type == tersoff_type) .OR. ANY(pot%type == siepmann_type) & .OR. ANY(pot%type == gal_type) .OR. ANY(pot%type == gal21_type) & - .OR. ANY(pot%type == nequip_type) + .OR. ANY(pot%type == nequip_type) .OR. ANY(pot%type == allegro_type) IF ((.NOT. full_nl) .AND. (atom_a == atom_b)) THEN fac_ei = fac_ei*0.5_dp END IF diff --git a/src/force_fields_all.F b/src/force_fields_all.F index c4af99136b..3a06f1375c 100644 --- a/src/force_fields_all.F +++ b/src/force_fields_all.F @@ -64,7 +64,7 @@ MODULE force_fields_all spline_nonbond_control USE pair_potential_coulomb, ONLY: potential_coulomb USE pair_potential_types, ONLY: & - ea_type, lj_charmm_type, lj_type, nequip_type, nn_type, nosh_nosh, nosh_sh, & + allegro_type, ea_type, lj_charmm_type, lj_type, nequip_type, nn_type, nosh_nosh, nosh_sh, & pair_potential_lj_create, pair_potential_pp_create, pair_potential_pp_type, & pair_potential_single_add, pair_potential_single_clean, pair_potential_single_copy, & pair_potential_single_type, quip_type, sh_sh, siepmann_type, tersoff_type @@ -2040,7 +2040,8 @@ CONTAINS IF (atmname == inp_info%nonbonded%pot(j)%pot%at1 .OR. & atmname == inp_info%nonbonded%pot(j)%pot%at2) THEN SELECT CASE (inp_info%nonbonded%pot(j)%pot%type(1)) - CASE (ea_type, tersoff_type, siepmann_type, quip_type, nequip_type) + CASE (ea_type, tersoff_type, siepmann_type, quip_type, nequip_type, & + allegro_type) ! Charge is zero for EAM, TERSOFF and SIEPMANN type potential ! Do nothing.. CASE DEFAULT diff --git a/src/force_fields_input.F b/src/force_fields_input.F index 6e2bb080ca..d45bff8a8c 100644 --- a/src/force_fields_input.F +++ b/src/force_fields_input.F @@ -65,11 +65,12 @@ MODULE force_fields_input USE memory_utilities, ONLY: reallocate USE message_passing, ONLY: mp_para_env_type USE pair_potential_types, ONLY: & - b4_type, bm_type, do_potential_single_allocation, ea_type, eam_pot_type, ft_pot_type, & - ft_type, ftd_type, gal21_type, gal_type, gp_type, gw_type, ip_type, ipbv_pot_type, & - lj_charmm_type, nequip_pot_type, nequip_type, no_potential_single_allocation, & - pair_potential_p_type, pair_potential_reallocate, potential_single_allocation, quip_type, & - siepmann_type, tab_pot_type, tab_type, tersoff_type, wl_type + allegro_pot_type, allegro_type, b4_type, bm_type, do_potential_single_allocation, ea_type, & + eam_pot_type, ft_pot_type, ft_type, ftd_type, gal21_type, gal_type, gp_type, gw_type, & + ip_type, ipbv_pot_type, lj_charmm_type, nequip_pot_type, nequip_type, & + no_potential_single_allocation, pair_potential_p_type, pair_potential_reallocate, & + potential_single_allocation, quip_type, siepmann_type, tab_pot_type, tab_type, & + tersoff_type, wl_type USE shell_potential_types, ONLY: shell_p_create,& shell_p_type USE string_utilities, ONLY: uppercase @@ -105,9 +106,9 @@ CONTAINS CHARACTER(LEN=default_string_length), & DIMENSION(:), POINTER :: atm_names - INTEGER :: nb4, nbends, nbm, nbmhft, nbmhftd, nbonds, nchg, neam, ngal, ngal21, ngd, ngp, & - nimpr, nipbv, nlj, nnequip, nopbend, nquip, nshell, nsiepmann, ntab, ntersoff, ntors, & - ntot, nubs, nwl + INTEGER :: nallegro, nb4, nbends, nbm, nbmhft, nbmhftd, nbonds, nchg, neam, ngal, ngal21, & + ngd, ngp, nimpr, nipbv, nlj, nnequip, nopbend, nquip, nshell, nsiepmann, ntab, ntersoff, & + ntors, ntot, nubs, nwl LOGICAL :: explicit, unique_spline REAL(KIND=dp) :: min_eps_spline_allowed TYPE(input_info_type), POINTER :: inp_info @@ -296,10 +297,22 @@ CONTAINS CALL read_nequip_section(inp_info%nonbonded, tmp_section2, ntot) END IF + tmp_section2 => section_vals_get_subs_vals(tmp_section, "allegro") + CALL section_vals_get(tmp_section2, explicit=explicit, n_repetition=nallegro) + ntot = nlj + nwl + neam + ngd + nipbv + nbmhft + nbmhftd + nb4 + nbm + ngp + ntersoff + ngal + ngal21 + nsiepmann + & + nquip + nnequip + IF (explicit) THEN + ! avoid repeating the allegro section for each pair + CALL section_vals_val_get(tmp_section2, "ATOMS", c_vals=atm_names) + nallegro = nallegro - 1 + SIZE(atm_names) + (SIZE(atm_names)*SIZE(atm_names) - SIZE(atm_names))/2 + CALL pair_potential_reallocate(inp_info%nonbonded, 1, ntot + nallegro, allegro=.TRUE.) + CALL read_allegro_section(inp_info%nonbonded, tmp_section2, ntot) + END IF + tmp_section2 => section_vals_get_subs_vals(tmp_section, "TABPOT") CALL section_vals_get(tmp_section2, explicit=explicit, n_repetition=ntab) ntot = nlj + nwl + neam + ngd + nipbv + nbmhft + nbmhftd + nb4 + nbm + ngp + ntersoff + ngal + ngal21 + nsiepmann + & - nquip + nnequip + nquip + nnequip + nallegro IF (explicit) THEN CALL pair_potential_reallocate(inp_info%nonbonded, 1, ntot + ntab, tab=.TRUE.) CALL read_tabpot_section(inp_info%nonbonded, tmp_section2, ntot, para_env, mm_section) @@ -737,6 +750,54 @@ CONTAINS END SUBROUTINE read_nequip_section +! ************************************************************************************************** +!> \brief Reads the ALLEGRO section +!> \param nonbonded ... +!> \param section ... +!> \param start ... +!> \author teo +! ************************************************************************************************** + SUBROUTINE read_allegro_section(nonbonded, section, start) + TYPE(pair_potential_p_type), POINTER :: nonbonded + TYPE(section_vals_type), POINTER :: section + INTEGER, INTENT(IN) :: start + + CHARACTER(LEN=default_string_length) :: allegro_file_name, unit_cell, & + unit_coords, unit_energy, unit_forces + CHARACTER(LEN=default_string_length), & + DIMENSION(:), POINTER :: atm_names + INTEGER :: isec, jsec, n_items + + n_items = 1 + isec = 1 + n_items = isec*n_items + CALL section_vals_val_get(section, "ATOMS", c_vals=atm_names) + CALL section_vals_val_get(section, "PARM_FILE_NAME", c_val=allegro_file_name) + CALL section_vals_val_get(section, "UNIT_COORDS", c_val=unit_coords) + CALL section_vals_val_get(section, "UNIT_ENERGY", c_val=unit_energy) + CALL section_vals_val_get(section, "UNIT_FORCES", c_val=unit_forces) + CALL section_vals_val_get(section, "UNIT_CELL", c_val=unit_cell) + + DO isec = 1, SIZE(atm_names) + DO jsec = isec, SIZE(atm_names) + nonbonded%pot(start + n_items)%pot%type = allegro_type + nonbonded%pot(start + n_items)%pot%at1 = atm_names(isec) + nonbonded%pot(start + n_items)%pot%at2 = atm_names(jsec) + CALL uppercase(nonbonded%pot(start + n_items)%pot%at1) + CALL uppercase(nonbonded%pot(start + n_items)%pot%at2) + nonbonded%pot(start + n_items)%pot%set(1)%allegro%allegro_file_name = discover_file(allegro_file_name) + nonbonded%pot(start + n_items)%pot%set(1)%allegro%unit_coords = unit_coords + nonbonded%pot(start + n_items)%pot%set(1)%allegro%unit_forces = unit_forces + nonbonded%pot(start + n_items)%pot%set(1)%allegro%unit_energy = unit_energy + nonbonded%pot(start + n_items)%pot%set(1)%allegro%unit_cell = unit_cell + CALL read_allegro_data(nonbonded%pot(start + n_items)%pot%set(1)%allegro) + nonbonded%pot(start + n_items)%pot%rcutsq = nonbonded%pot(start + n_items)%pot%set(1)%allegro%rcutsq + n_items = n_items + 1 + END DO + END DO + + END SUBROUTINE read_allegro_section + ! ************************************************************************************************** !> \brief Reads the LJ section !> \param nonbonded ... @@ -2338,6 +2399,37 @@ CONTAINS CALL timestop(handle) END SUBROUTINE read_nequip_data +! ************************************************************************************************** +!> \brief reads ALLEGRO potential from .pth file +!> \param allegro ... +! ************************************************************************************************** + SUBROUTINE read_allegro_data(allegro) + TYPE(allegro_pot_type), POINTER :: allegro + + CHARACTER(len=*), PARAMETER :: routineN = 'read_allegro_data' + + CHARACTER(LEN=default_path_length) :: cutoff_str + INTEGER :: handle + + CALL timeset(routineN, handle) + + allegro%allegro_version = torch_model_read_metadata(allegro%allegro_file_name, "nequip_version") + cutoff_str = torch_model_read_metadata(allegro%allegro_file_name, "r_max") + READ (cutoff_str, *) allegro%rcutsq + allegro%rcutsq = cp_unit_to_cp2k(allegro%rcutsq, allegro%unit_coords) + allegro%rcutsq = allegro%rcutsq*allegro%rcutsq + allegro%unit_coords_val = 1.0_dp + allegro%unit_coords_val = cp_unit_to_cp2k(allegro%unit_coords_val, allegro%unit_coords) + allegro%unit_forces_val = 1.0_dp + allegro%unit_forces_val = cp_unit_to_cp2k(allegro%unit_forces_val, allegro%unit_forces) + allegro%unit_energy_val = 1.0_dp + allegro%unit_energy_val = cp_unit_to_cp2k(allegro%unit_energy_val, allegro%unit_energy) + allegro%unit_cell_val = 1.0_dp + allegro%unit_cell_val = cp_unit_to_cp2k(allegro%unit_cell_val, allegro%unit_cell) + + CALL timestop(handle) + END SUBROUTINE read_allegro_data + ! ************************************************************************************************** !> \brief reads TABPOT potential from file !> \param tab ... diff --git a/src/input_cp2k_mm.F b/src/input_cp2k_mm.F index 5f17304991..3a2fa068c6 100644 --- a/src/input_cp2k_mm.F +++ b/src/input_cp2k_mm.F @@ -16,7 +16,7 @@ MODULE input_cp2k_mm USE bibliography, ONLY: & Batzner2022, Clabaut2020, Clabaut2021, Devynck2012, Dick1958, Foiles1986, Mitchell1993, & - QUIP_ref, Siepmann1995, Tersoff1988, Tosi1964a, Tosi1964b, Yamada2000 + Musaelian2023, QUIP_ref, Siepmann1995, Tersoff1988, Tosi1964a, Tosi1964b, Yamada2000 USE cp_output_handling, ONLY: cp_print_key_section_create,& debug_print_level,& high_print_level,& @@ -1174,6 +1174,10 @@ CONTAINS CALL section_add_subsection(section, subsection) CALL section_release(subsection) + CALL create_ALLEGRO_section(subsection) + CALL section_add_subsection(section, subsection) + CALL section_release(subsection) + CALL create_Goodwin_section(subsection) CALL section_add_subsection(section, subsection) CALL section_release(subsection) @@ -1467,9 +1471,8 @@ CONTAINS CPASSERT(.NOT. ASSOCIATED(section)) CALL section_create(section, __LOCATION__, name="NEQUIP", & - description="This section specifies the input parameters for NEQUIP potential type. "// & - "neural network potentials "// & - "to achieve correlated-wavefunction-like accuracy. "// & + description="This section specifies the input parameters for NEQUIP potential type "// & + "based on equivariant neural networks with message passing. "// & "Requires linking with libtorch library from https://pytorch.org/cppdocs/installing.html .", & citations=(/Batzner2022/), n_keywords=1, n_subsections=0, repeats=.FALSE.) @@ -1517,6 +1520,67 @@ CONTAINS END SUBROUTINE create_NEQUIP_section +! ************************************************************************************************** +!> \brief This section specifies the input parameters for ALLEGRO potential type +!> \param section the section to create +!> \author teo +! ************************************************************************************************** + SUBROUTINE create_ALLEGRO_section(section) + TYPE(section_type), POINTER :: section + + TYPE(keyword_type), POINTER :: keyword + + CPASSERT(.NOT. ASSOCIATED(section)) + CALL section_create(section, __LOCATION__, name="ALLEGRO", & + description="This section specifies the input parameters for ALLEGRO potential type "// & + "based on equivariant neural network potentials. "// & + "Requires linking with libtorch library from https://pytorch.org/cppdocs/installing.html .", & + citations=(/Musaelian2023/), n_keywords=1, n_subsections=0, repeats=.FALSE.) + + NULLIFY (keyword) + + CALL keyword_create(keyword, __LOCATION__, name="ATOMS", & + description="Defines the atomic kinds involved in the ALLEGRO potential. "// & + "Provide a list of each element.", & + usage="ATOMS {KIND 1} {KIND 2} .. {KIND N}", type_of_var=char_t, & + n_var=-1) + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="PARM_FILE_NAME", & + variants=(/"PARMFILE"/), & + description="Specifies the filename that contains the ALLEGRO model.", & + usage="PARM_FILE_NAME {FILENAME}", default_lc_val="model.pth") + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="UNIT_COORDS", & + description="Units of coordinates in the ALLEGRO model.pth file.", & + usage="UNIT angstrom", default_c_val="angstrom") + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="UNIT_ENERGY", & + description="Units of energy in the ALLEGRO model.pth file.", & + usage="UNIT hartree", default_c_val="hartree") + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="UNIT_FORCES", & + description="Units of the forces in the ALLEGRO model.pth file.", & + usage="UNIT hartree/bohr", default_c_val="hartree/bohr") + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + CALL keyword_create(keyword, __LOCATION__, name="UNIT_CELL", & + description="Units of the cell vectors in the ALLEGRO model.pth file.", & + usage="UNIT angstrom", default_c_val="angstrom") + CALL section_add_keyword(section, keyword) + CALL keyword_release(keyword) + + END SUBROUTINE create_ALLEGRO_section + ! ************************************************************************************************** !> \brief This section specifies the input parameters for Lennard-Jones potential type !> \param section the section to create diff --git a/src/manybody_allegro.F b/src/manybody_allegro.F new file mode 100644 index 0000000000..131624e910 --- /dev/null +++ b/src/manybody_allegro.F @@ -0,0 +1,469 @@ +!--------------------------------------------------------------------------------------------------! +! CP2K: A general program to perform molecular dynamics simulations ! +! Copyright 2000-2023 CP2K developers group ! +! ! +! SPDX-License-Identifier: GPL-2.0-or-later ! +!--------------------------------------------------------------------------------------------------! + +! ************************************************************************************************** +!> \par History +!> allegro implementation +!> \author Gabriele Tocci +! ************************************************************************************************** +MODULE manybody_allegro + + USE atomic_kind_types, ONLY: atomic_kind_type + USE cell_types, ONLY: cell_type + USE fist_neighbor_list_types, ONLY: fist_neighbor_type,& + neighbor_kind_pairs_type + USE fist_nonbond_env_types, ONLY: allegro_data_type,& + fist_nonbond_env_get,& + fist_nonbond_env_set,& + fist_nonbond_env_type,& + pos_type + USE kinds, ONLY: dp,& + int_8,& + sp + USE pair_potential_types, ONLY: allegro_pot_type,& + allegro_type,& + pair_potential_pp_type,& + pair_potential_single_type + USE particle_types, ONLY: particle_type + USE torch_api, ONLY: torch_dict_create,& + torch_dict_get,& + torch_dict_insert,& + torch_dict_release,& + torch_dict_type,& + torch_model_eval,& + torch_model_load + USE util, ONLY: sort +#include "./base/base_uses.f90" + + IMPLICIT NONE + + PRIVATE + PUBLIC :: setup_allegro_arrays, destroy_allegro_arrays, & + allegro_energy_store_force_virial, allegro_add_force_virial + CHARACTER(len=*), PARAMETER, PRIVATE :: moduleN = 'manybody_allegro' + +CONTAINS + +! ************************************************************************************************** +!> \brief ... +!> \param nonbonded ... +!> \param potparm ... +!> \param glob_loc_list ... +!> \param glob_cell_v ... +!> \param glob_loc_list_a ... +!> \param unique_list_a ... +!> \param cell ... +!> \par History +!> Implementation of the allegro potential - [gtocci] 2023 +!> \author Gabriele Tocci - University of Zurich +! ************************************************************************************************** + SUBROUTINE setup_allegro_arrays(nonbonded, potparm, glob_loc_list, glob_cell_v, glob_loc_list_a, & + unique_list_a, cell) + TYPE(fist_neighbor_type), POINTER :: nonbonded + TYPE(pair_potential_pp_type), POINTER :: potparm + INTEGER, DIMENSION(:, :), POINTER :: glob_loc_list + REAL(KIND=dp), DIMENSION(:, :), POINTER :: glob_cell_v + INTEGER, DIMENSION(:), POINTER :: glob_loc_list_a, unique_list_a + TYPE(cell_type), POINTER :: cell + + CHARACTER(LEN=*), PARAMETER :: routineN = 'setup_allegro_arrays' + + INTEGER :: handle, i, iend, igrp, ikind, ilist, & + ipair, istart, jkind, nkinds, nlocal, & + npairs, npairs_tot + INTEGER, ALLOCATABLE, DIMENSION(:) :: temp_unique_list_a, work_list, work_list2 + INTEGER, DIMENSION(:, :), POINTER :: list + REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: rwork_list + REAL(KIND=dp), DIMENSION(3) :: cell_v, cvi + TYPE(neighbor_kind_pairs_type), POINTER :: neighbor_kind_pair + TYPE(pair_potential_single_type), POINTER :: pot + + CPASSERT(.NOT. ASSOCIATED(glob_loc_list)) + CPASSERT(.NOT. ASSOCIATED(glob_loc_list_a)) + CPASSERT(.NOT. ASSOCIATED(unique_list_a)) + CPASSERT(.NOT. ASSOCIATED(glob_cell_v)) + CALL timeset(routineN, handle) + npairs_tot = 0 + nkinds = SIZE(potparm%pot, 1) + DO ilist = 1, nonbonded%nlists + neighbor_kind_pair => nonbonded%neighbor_kind_pairs(ilist) + npairs = neighbor_kind_pair%npairs + IF (npairs == 0) CYCLE + Kind_Group_Loop1: DO igrp = 1, neighbor_kind_pair%ngrp_kind + istart = neighbor_kind_pair%grp_kind_start(igrp) + iend = neighbor_kind_pair%grp_kind_end(igrp) + ikind = neighbor_kind_pair%ij_kind(1, igrp) + jkind = neighbor_kind_pair%ij_kind(2, igrp) + pot => potparm%pot(ikind, jkind)%pot + npairs = iend - istart + 1 + IF (pot%no_mb) CYCLE + DO i = 1, SIZE(pot%type) + IF (pot%type(i) == allegro_type) npairs_tot = npairs_tot + npairs + END DO + END DO Kind_Group_Loop1 + END DO + ALLOCATE (work_list(npairs_tot)) + ALLOCATE (work_list2(npairs_tot)) + ALLOCATE (glob_loc_list(2, npairs_tot)) + ALLOCATE (glob_cell_v(3, npairs_tot)) + ! Fill arrays with data + npairs_tot = 0 + DO ilist = 1, nonbonded%nlists + neighbor_kind_pair => nonbonded%neighbor_kind_pairs(ilist) + npairs = neighbor_kind_pair%npairs + IF (npairs == 0) CYCLE + Kind_Group_Loop2: DO igrp = 1, neighbor_kind_pair%ngrp_kind + istart = neighbor_kind_pair%grp_kind_start(igrp) + iend = neighbor_kind_pair%grp_kind_end(igrp) + ikind = neighbor_kind_pair%ij_kind(1, igrp) + jkind = neighbor_kind_pair%ij_kind(2, igrp) + list => neighbor_kind_pair%list + cvi = neighbor_kind_pair%cell_vector + pot => potparm%pot(ikind, jkind)%pot + npairs = iend - istart + 1 + IF (pot%no_mb) CYCLE + cell_v = MATMUL(cell%hmat, cvi) + DO i = 1, SIZE(pot%type) + ! ALLEGRO + IF (pot%type(i) == allegro_type) THEN + DO ipair = 1, npairs + glob_loc_list(:, npairs_tot + ipair) = list(:, istart - 1 + ipair) + glob_cell_v(1:3, npairs_tot + ipair) = cell_v(1:3) + END DO + npairs_tot = npairs_tot + npairs + END IF + END DO + END DO Kind_Group_Loop2 + END DO + ! Order the arrays w.r.t. the first index of glob_loc_list + CALL sort(glob_loc_list(1, :), npairs_tot, work_list) + DO ipair = 1, npairs_tot + work_list2(ipair) = glob_loc_list(2, work_list(ipair)) + END DO + glob_loc_list(2, :) = work_list2 + DEALLOCATE (work_list2) + ALLOCATE (rwork_list(3, npairs_tot)) + DO ipair = 1, npairs_tot + rwork_list(:, ipair) = glob_cell_v(:, work_list(ipair)) + END DO + glob_cell_v = rwork_list + DEALLOCATE (rwork_list) + DEALLOCATE (work_list) + ALLOCATE (glob_loc_list_a(npairs_tot)) + glob_loc_list_a = glob_loc_list(1, :) + ALLOCATE (temp_unique_list_a(npairs_tot)) + nlocal = 1 + temp_unique_list_a(1) = glob_loc_list_a(1) + DO ipair = 2, npairs_tot + IF (glob_loc_list_a(ipair - 1) /= glob_loc_list_a(ipair)) THEN + nlocal = nlocal + 1 + temp_unique_list_a(nlocal) = glob_loc_list_a(ipair) + END IF + END DO + ALLOCATE (unique_list_a(nlocal)) + unique_list_a(:) = temp_unique_list_a(:nlocal) + DEALLOCATE (temp_unique_list_a) + CALL timestop(handle) + END SUBROUTINE setup_allegro_arrays + +! ************************************************************************************************** +!> \brief ... +!> \param glob_loc_list ... +!> \param glob_cell_v ... +!> \param glob_loc_list_a ... +!> \param unique_list_a ... +!> \par History +!> Implementation of the allegro potential - [gtocci] 2023 +!> \author Gabriele Tocci - University of Zurich +! ************************************************************************************************** + SUBROUTINE destroy_allegro_arrays(glob_loc_list, glob_cell_v, glob_loc_list_a, unique_list_a) + INTEGER, DIMENSION(:, :), POINTER :: glob_loc_list + REAL(KIND=dp), DIMENSION(:, :), POINTER :: glob_cell_v + INTEGER, DIMENSION(:), POINTER :: glob_loc_list_a, unique_list_a + + IF (ASSOCIATED(glob_loc_list)) THEN + DEALLOCATE (glob_loc_list) + END IF + IF (ASSOCIATED(glob_loc_list_a)) THEN + DEALLOCATE (glob_loc_list_a) + END IF + IF (ASSOCIATED(glob_cell_v)) THEN + DEALLOCATE (glob_cell_v) + END IF + IF (ASSOCIATED(unique_list_a)) THEN + DEALLOCATE (unique_list_a) + END IF + + END SUBROUTINE destroy_allegro_arrays + +! ************************************************************************************************** +!> \brief ... +!> \param nonbonded ... +!> \param particle_set ... +!> \param cell ... +!> \param atomic_kind_set ... +!> \param potparm ... +!> \param allegro ... +!> \param glob_loc_list_a ... +!> \param r_last_update_pbc ... +!> \param pot_allegro ... +!> \param fist_nonbond_env ... +!> \param unique_list_a ... +!> \par History +!> Implementation of the allegro potential - [gtocci] 2023 +!> \author Gabriele Tocci - University of Zurich +! ************************************************************************************************** + SUBROUTINE allegro_energy_store_force_virial(nonbonded, particle_set, cell, atomic_kind_set, & + potparm, allegro, glob_loc_list_a, r_last_update_pbc, & + pot_allegro, fist_nonbond_env, unique_list_a) + + TYPE(fist_neighbor_type), POINTER :: nonbonded + TYPE(particle_type), POINTER :: particle_set(:) + TYPE(cell_type), POINTER :: cell + TYPE(atomic_kind_type), POINTER :: atomic_kind_set(:) + TYPE(pair_potential_pp_type), POINTER :: potparm + TYPE(allegro_pot_type), POINTER :: allegro + INTEGER, DIMENSION(:), POINTER :: glob_loc_list_a + TYPE(pos_type), DIMENSION(:), POINTER :: r_last_update_pbc + REAL(kind=dp) :: pot_allegro + TYPE(fist_nonbond_env_type), POINTER :: fist_nonbond_env + INTEGER, DIMENSION(:), POINTER :: unique_list_a + + CHARACTER(LEN=*), PARAMETER :: routineN = 'allegro_energy_store_force_virial' + + INTEGER :: atom_a, atom_b, handle, i, iat, iat_use, iend, ifirst, igrp, ikind, ilast, ilist, & + ipair, istart, iunique, jkind, junique, mpair, n_atoms, n_atoms_use, nedges, nloc_size, & + npairs, nunique + INTEGER(kind=int_8), ALLOCATABLE :: atom_types(:), temp_atom_types(:) + INTEGER(kind=int_8), ALLOCATABLE, DIMENSION(:, :) :: edge_index, t_edge_index, temp_edge_index + INTEGER, ALLOCATABLE, DIMENSION(:) :: work_list + INTEGER, DIMENSION(:, :), POINTER :: list, sort_list + LOGICAL, ALLOCATABLE :: use_atom(:) + REAL(kind=dp) :: drij, lattice(3, 3), rab2_max, rij(3) + REAL(KIND=dp), DIMENSION(3) :: cell_v, cvi + REAL(kind=sp), ALLOCATABLE :: pos(:, :) + REAL(kind=sp), ALLOCATABLE, DIMENSION(:, :) :: edge_cell_shifts, new_edge_cell_shifts + REAL(sp), DIMENSION(:, :), POINTER :: atomic_energy, forces + TYPE(allegro_data_type), POINTER :: allegro_data + TYPE(neighbor_kind_pairs_type), POINTER :: neighbor_kind_pair + TYPE(pair_potential_single_type), POINTER :: pot + TYPE(torch_dict_type) :: inputs, outputs + + CALL timeset(routineN, handle) + + NULLIFY (atomic_energy, forces) + n_atoms = SIZE(particle_set) + ALLOCATE (use_atom(n_atoms)) + use_atom = .FALSE. + + DO ikind = 1, SIZE(atomic_kind_set) + DO jkind = 1, SIZE(atomic_kind_set) + pot => potparm%pot(ikind, jkind)%pot + DO i = 1, SIZE(pot%type) + IF (pot%type(i) /= allegro_type) CYCLE + IF (.NOT. ASSOCIATED(allegro)) allegro => pot%set(i)%allegro + DO iat = 1, n_atoms + IF (particle_set(iat)%atomic_kind%kind_number == ikind .OR. & + particle_set(iat)%atomic_kind%kind_number == jkind) use_atom(iat) = .TRUE. + END DO ! iat + END DO ! i + END DO ! jkind + END DO ! ikind + n_atoms_use = COUNT(use_atom) + + ! get allegro_data to save force, virial info and to load model + CALL fist_nonbond_env_get(fist_nonbond_env, allegro_data=allegro_data) + IF (.NOT. ASSOCIATED(allegro_data)) THEN + ALLOCATE (allegro_data) + CALL fist_nonbond_env_set(fist_nonbond_env, allegro_data=allegro_data) + NULLIFY (allegro_data%use_indices, allegro_data%force) + CALL torch_model_load(allegro_data%model, pot%set(1)%allegro%allegro_file_name) + END IF + IF (ASSOCIATED(allegro_data%force)) THEN + IF (SIZE(allegro_data%force, 2) /= n_atoms_use) THEN + DEALLOCATE (allegro_data%force, allegro_data%use_indices) + END IF + END IF + IF (.NOT. ASSOCIATED(allegro_data%force)) THEN + ALLOCATE (allegro_data%force(3, n_atoms_use)) + ALLOCATE (allegro_data%use_indices(n_atoms_use)) + END IF + + iat_use = 0 + DO iat = 1, n_atoms_use + IF (use_atom(iat)) THEN + iat_use = iat_use + 1 + allegro_data%use_indices(iat_use) = iat + END IF + END DO + + nedges = 0 + + ALLOCATE (edge_index(2, SIZE(glob_loc_list_a))) + ALLOCATE (edge_cell_shifts(3, SIZE(glob_loc_list_a))) + ALLOCATE (temp_atom_types(SIZE(glob_loc_list_a))) + + DO ilist = 1, nonbonded%nlists + neighbor_kind_pair => nonbonded%neighbor_kind_pairs(ilist) + npairs = neighbor_kind_pair%npairs + IF (npairs == 0) CYCLE + Kind_Group_Loop_Allegro: DO igrp = 1, neighbor_kind_pair%ngrp_kind + istart = neighbor_kind_pair%grp_kind_start(igrp) + iend = neighbor_kind_pair%grp_kind_end(igrp) + ikind = neighbor_kind_pair%ij_kind(1, igrp) + jkind = neighbor_kind_pair%ij_kind(2, igrp) + list => neighbor_kind_pair%list + cvi = neighbor_kind_pair%cell_vector + pot => potparm%pot(ikind, jkind)%pot + DO i = 1, SIZE(pot%type) + IF (pot%type(i) /= allegro_type) CYCLE + rab2_max = pot%set(i)%allegro%rcutsq + cell_v = MATMUL(cell%hmat, cvi) + pot => potparm%pot(ikind, jkind)%pot + allegro => pot%set(i)%allegro + npairs = iend - istart + 1 + IF (npairs /= 0) THEN + ALLOCATE (sort_list(2, npairs), work_list(npairs)) + sort_list = list(:, istart:iend) + ! Sort the list of neighbors, this increases the efficiency for single + ! potential contributions + CALL sort(sort_list(1, :), npairs, work_list) + DO ipair = 1, npairs + work_list(ipair) = sort_list(2, work_list(ipair)) + END DO + sort_list(2, :) = work_list + ! find number of unique elements of array index 1 + nunique = 1 + DO ipair = 1, npairs - 1 + IF (sort_list(1, ipair + 1) /= sort_list(1, ipair)) nunique = nunique + 1 + END DO + ipair = 1 + junique = sort_list(1, ipair) + ifirst = 1 + DO iunique = 1, nunique + atom_a = junique + IF (glob_loc_list_a(ifirst) > atom_a) CYCLE + DO mpair = ifirst, SIZE(glob_loc_list_a) + IF (glob_loc_list_a(mpair) == atom_a) EXIT + END DO + ifirst = mpair + DO mpair = ifirst, SIZE(glob_loc_list_a) + IF (glob_loc_list_a(mpair) /= atom_a) EXIT + END DO + ilast = mpair - 1 + nloc_size = 0 + IF (ifirst /= 0) nloc_size = ilast - ifirst + 1 + DO WHILE (ipair <= npairs) + IF (sort_list(1, ipair) /= junique) EXIT + atom_b = sort_list(2, ipair) + rij(:) = r_last_update_pbc(atom_b)%r(:) - r_last_update_pbc(atom_a)%r(:) + cell_v + drij = DOT_PRODUCT(rij, rij) + ipair = ipair + 1 + IF (drij <= rab2_max) THEN + nedges = nedges + 1 + edge_index(:, nedges) = [atom_a - 1, atom_b - 1] + edge_cell_shifts(:, nedges) = REAL(cvi, kind=sp) + END IF + END DO + ifirst = ilast + 1 + IF (ipair <= npairs) junique = sort_list(1, ipair) + END DO + DEALLOCATE (sort_list, work_list) + END IF + END DO + END DO Kind_Group_Loop_Allegro + END DO + + ALLOCATE (temp_edge_index(2, nedges)) + temp_edge_index(:, :) = edge_index(:, :nedges) + ALLOCATE (new_edge_cell_shifts(3, nedges)) + new_edge_cell_shifts(:, :) = edge_cell_shifts(:, :nedges) + + ALLOCATE (t_edge_index(nedges, 2)) + + t_edge_index(:, :) = TRANSPOSE(temp_edge_index) + DEALLOCATE (temp_edge_index, edge_index) + + lattice = cell%hmat/pot%set(1)%allegro%unit_cell_val + + iat_use = 0 + ALLOCATE (pos(3, n_atoms_use), atom_types(n_atoms_use)) + + DO iat = 1, n_atoms_use + IF (.NOT. use_atom(iat)) CYCLE + iat_use = iat_use + 1 + atom_types(iat_use) = particle_set(iat)%atomic_kind%kind_number - 1 + pos(:, iat) = REAL(r_last_update_pbc(iat)%r(:)/pot%set(1)%allegro%unit_coords_val, kind=sp) + END DO + + CALL torch_dict_create(inputs) + CALL torch_dict_insert(inputs, "pos", pos) + CALL torch_dict_insert(inputs, "edge_index", t_edge_index) + CALL torch_dict_insert(inputs, "edge_cell_shift", new_edge_cell_shifts) + CALL torch_dict_insert(inputs, "cell", REAL(lattice, kind=sp)) + CALL torch_dict_insert(inputs, "atom_types", atom_types) + + CALL torch_dict_create(outputs) + + CALL torch_model_eval(allegro_data%model, inputs, outputs) + + CALL torch_dict_get(outputs, "atomic_energy", atomic_energy) + CALL torch_dict_get(outputs, "forces", forces) + + allegro_data%force(:, :) = REAL(forces(:, :), kind=dp)*allegro%unit_forces_val + + pot_allegro = 0.0_dp + + DO iat_use = 1, SIZE(unique_list_a) + i = unique_list_a(iat_use) + pot_allegro = pot_allegro + REAL(atomic_energy(1, i), kind=dp)*allegro%unit_energy_val + END DO + + CALL torch_dict_release(inputs) + CALL torch_dict_release(outputs) + + DEALLOCATE (pos, t_edge_index, edge_cell_shifts, atom_types, atomic_energy) + DEALLOCATE (new_edge_cell_shifts) + DEALLOCATE (forces) + + CALL timestop(handle) + END SUBROUTINE allegro_energy_store_force_virial + +! ************************************************************************************************** +!> \brief ... +!> \param fist_nonbond_env ... +!> \param f_nonbond ... +!> \param pv_nonbond ... +!> \param use_virial ... +! ************************************************************************************************** + SUBROUTINE allegro_add_force_virial(fist_nonbond_env, f_nonbond, pv_nonbond, use_virial) + + TYPE(fist_nonbond_env_type), POINTER :: fist_nonbond_env + REAL(KIND=dp), DIMENSION(:, :), INTENT(INOUT) :: f_nonbond, pv_nonbond + LOGICAL, INTENT(IN) :: use_virial + + INTEGER :: iat, iat_use + REAL(KIND=dp), DIMENSION(3, 3) :: virial + TYPE(allegro_data_type), POINTER :: allegro_data + + CALL fist_nonbond_env_get(fist_nonbond_env, allegro_data=allegro_data) + + IF (use_virial) THEN + virial = 0.0_dp + pv_nonbond = pv_nonbond + virial + CPABORT("Stress tensor for Allegro not yet implemented") + END IF + + DO iat_use = 1, SIZE(allegro_data%use_indices) + iat = allegro_data%use_indices(iat_use) + CPASSERT(iat >= 1 .AND. iat <= SIZE(f_nonbond, 2)) + f_nonbond(1:3, iat) = f_nonbond(1:3, iat) + allegro_data%force(1:3, iat_use) + END DO + + END SUBROUTINE allegro_add_force_virial +END MODULE manybody_allegro + diff --git a/src/manybody_nequip.F b/src/manybody_nequip.F index 05bb827681..975e341c55 100644 --- a/src/manybody_nequip.F +++ b/src/manybody_nequip.F @@ -74,10 +74,10 @@ CONTAINS INTEGER :: handle, i, iend, igrp, ikind, ilist, & ipair, istart, jkind, nkinds, npairs, & npairs_tot - INTEGER, DIMENSION(:), POINTER :: work_list, work_list2 + INTEGER, ALLOCATABLE, DIMENSION(:) :: work_list, work_list2 INTEGER, DIMENSION(:, :), POINTER :: list + REAL(KIND=dp), ALLOCATABLE, DIMENSION(:, :) :: rwork_list REAL(KIND=dp), DIMENSION(3) :: cell_v, cvi - REAL(KIND=dp), DIMENSION(:, :), POINTER :: rwork_list TYPE(neighbor_kind_pairs_type), POINTER :: neighbor_kind_pair TYPE(pair_potential_single_type), POINTER :: pot @@ -223,8 +223,7 @@ CONTAINS INTEGER(kind=int_8), ALLOCATABLE :: atom_types(:) INTEGER(kind=int_8), ALLOCATABLE, DIMENSION(:, :) :: edge_index, t_edge_index, temp_edge_index INTEGER, ALLOCATABLE, DIMENSION(:) :: displ, displ_cell, edge_count, & - edge_count_cell - INTEGER, DIMENSION(:), POINTER :: work_list + edge_count_cell, work_list INTEGER, DIMENSION(:, :), POINTER :: list, sort_list LOGICAL, ALLOCATABLE :: use_atom(:) REAL(kind=dp) :: drij, lattice(3, 3), rab2_max, rij(3) @@ -462,19 +461,8 @@ CONTAINS CALL fist_nonbond_env_get(fist_nonbond_env, nequip_data=nequip_data) IF (use_virial) THEN - virial(1, 1) = 0.0_dp; virial(1, 2) = 0.0_dp; virial(1, 3) = 0.0_dp - virial(2, 1) = 0.0_dp; virial(2, 2) = 0.0_dp; virial(2, 3) = 0.0_dp - virial(3, 1) = 0.0_dp; virial(3, 2) = 0.0_dp; virial(3, 3) = 0.0_dp - - pv_nonbond(1, 1) = pv_nonbond(1, 1) + virial(1, 1) - pv_nonbond(1, 2) = pv_nonbond(1, 2) + virial(1, 2) - pv_nonbond(1, 3) = pv_nonbond(1, 3) + virial(1, 3) - pv_nonbond(2, 1) = pv_nonbond(2, 1) + virial(2, 1) - pv_nonbond(2, 2) = pv_nonbond(2, 2) + virial(2, 2) - pv_nonbond(3, 1) = pv_nonbond(3, 1) + virial(3, 1) - pv_nonbond(3, 2) = pv_nonbond(3, 2) + virial(3, 2) - pv_nonbond(3, 3) = pv_nonbond(3, 3) + virial(3, 3) - + virial = 0.0_dp + pv_nonbond = pv_nonbond + virial CPABORT("Stress tensor for NequIP not yet implemented") END IF diff --git a/src/manybody_potential.F b/src/manybody_potential.F index 151a6da157..56a8cebbef 100644 --- a/src/manybody_potential.F +++ b/src/manybody_potential.F @@ -26,6 +26,10 @@ MODULE manybody_potential pos_type USE input_section_types, ONLY: section_vals_type USE kinds, ONLY: dp + USE manybody_allegro, ONLY: allegro_add_force_virial,& + allegro_energy_store_force_virial,& + destroy_allegro_arrays,& + setup_allegro_arrays USE manybody_eam, ONLY: get_force_eam USE manybody_gal, ONLY: destroy_gal_arrays,& gal_energy,& @@ -53,9 +57,10 @@ MODULE manybody_potential tersoff_forces USE message_passing, ONLY: mp_para_env_type USE pair_potential_types, ONLY: & - ea_type, eam_pot_type, gal21_pot_type, gal21_type, gal_pot_type, gal_type, & - nequip_pot_type, nequip_type, pair_potential_pp_type, pair_potential_single_type, & - quip_type, siepmann_pot_type, siepmann_type, tersoff_pot_type, tersoff_type + allegro_pot_type, allegro_type, ea_type, eam_pot_type, gal21_pot_type, gal21_type, & + gal_pot_type, gal_type, nequip_pot_type, nequip_type, pair_potential_pp_type, & + pair_potential_single_type, quip_type, siepmann_pot_type, siepmann_type, tersoff_pot_type, & + tersoff_type USE particle_types, ONLY: particle_type USE util, ONLY: sort #include "./base/base_uses.f90" @@ -100,15 +105,18 @@ CONTAINS INTEGER :: atom_a, atom_b, handle, i, iend, ifirst, igrp, ikind, ilast, ilist, indexa, & ipair, iparticle, iparticle_local, istart, iunique, jkind, junique, mpair, nkinds, & nloc_size, npairs, nparticle, nparticle_local, nr_h3O, nr_o, nr_oh, nunique - INTEGER, DIMENSION(:), POINTER :: glob_loc_list_a, work_list + INTEGER, DIMENSION(:), POINTER :: glob_loc_list_a, unique_list_a, work_list INTEGER, DIMENSION(:, :), POINTER :: glob_loc_list, list, sort_list - LOGICAL :: any_gal, any_gal21, any_nequip, & - any_quip, any_siepmann, any_tersoff - REAL(KIND=dp) :: drij, embed, pot_loc, pot_nequip, & - pot_quip, qr, rab2_max, rij(3) + LOGICAL :: any_allegro, any_gal, any_gal21, & + any_nequip, any_quip, any_siepmann, & + any_tersoff + REAL(KIND=dp) :: drij, embed, pot_allegro, pot_loc, & + pot_nequip, pot_quip, qr, rab2_max, & + rij(3) REAL(KIND=dp), DIMENSION(3) :: cell_v, cvi REAL(KIND=dp), DIMENSION(:, :), POINTER :: glob_cell_v REAL(KIND=dp), POINTER :: fembed(:) + TYPE(allegro_pot_type), POINTER :: allegro TYPE(eam_pot_type), POINTER :: eam TYPE(eam_type), DIMENSION(:), POINTER :: eam_data TYPE(fist_neighbor_type), POINTER :: nonbonded @@ -129,6 +137,7 @@ CONTAINS any_gal21 = .FALSE. any_quip = .FALSE. any_nequip = .FALSE. + any_allegro = .FALSE. CALL timeset(routineN, handle) CALL fist_nonbond_env_get(fist_nonbond_env, r_last_update_pbc=r_last_update_pbc, & potparm=potparm, eam_data=eam_data) @@ -173,6 +182,7 @@ CONTAINS any_tersoff = any_tersoff .OR. ANY(pot%type == tersoff_type) any_quip = any_quip .OR. ANY(pot%type == quip_type) any_nequip = any_nequip .OR. ANY(pot%type == nequip_type) + any_allegro = any_allegro .OR. ANY(pot%type == allegro_type) any_siepmann = any_siepmann .OR. ANY(pot%type == siepmann_type) any_gal = any_gal .OR. ANY(pot%type == gal_type) any_gal21 = any_gal21 .OR. ANY(pot%type == gal21_type) @@ -195,6 +205,17 @@ CONTAINS pot_manybody = pot_manybody + pot_nequip CALL destroy_nequip_arrays(glob_loc_list, glob_cell_v, glob_loc_list_a) END IF + ! ALLEGRO + IF (any_allegro) THEN + NULLIFY (glob_loc_list, glob_cell_v, glob_loc_list_a, unique_list_a) + CALL setup_allegro_arrays(nonbonded, potparm, glob_loc_list, glob_cell_v, glob_loc_list_a, & + unique_list_a, cell) + CALL allegro_energy_store_force_virial(nonbonded, particle_set, cell, atomic_kind_set, potparm, & + allegro, glob_loc_list_a, r_last_update_pbc, pot_allegro, & + fist_nonbond_env, unique_list_a) + pot_manybody = pot_manybody + pot_allegro + CALL destroy_allegro_arrays(glob_loc_list, glob_cell_v, glob_loc_list_a, unique_list_a) + END IF ! TERSOFF IF (any_tersoff) THEN NULLIFY (glob_loc_list, glob_cell_v, glob_loc_list_a) @@ -555,8 +576,9 @@ CONTAINS INTEGER, ALLOCATABLE, DIMENSION(:, :) :: eam_kinds_index INTEGER, DIMENSION(:), POINTER :: glob_loc_list_a, work_list INTEGER, DIMENSION(:, :), POINTER :: glob_loc_list, list, sort_list - LOGICAL :: any_gal, any_gal21, any_nequip, & - any_quip, any_siepmann, any_tersoff + LOGICAL :: any_allegro, any_gal, any_gal21, & + any_nequip, any_quip, any_siepmann, & + any_tersoff REAL(KIND=dp) :: f_eam, fac, fr(3), ptens11, ptens12, ptens13, ptens21, ptens22, ptens23, & ptens31, ptens32, ptens33, rab(3), rab2, rab2_max, rtmp(3) REAL(KIND=dp), DIMENSION(3) :: cell_v, cvi @@ -576,6 +598,7 @@ CONTAINS any_tersoff = .FALSE. any_quip = .FALSE. any_nequip = .FALSE. + any_allegro = .FALSE. any_siepmann = .FALSE. any_gal = .FALSE. any_gal21 = .FALSE. @@ -634,6 +657,7 @@ CONTAINS any_gal = any_gal .OR. ANY(pot%type == gal_type) any_gal21 = any_gal21 .OR. ANY(pot%type == gal21_type) any_nequip = any_nequip .OR. ANY(pot%type == nequip_type) + any_allegro = any_allegro .OR. ANY(pot%type == allegro_type) i = eam_kinds_index(ikind, jkind) IF (i == -1) CYCLE ! EAM @@ -1006,6 +1030,11 @@ CONTAINS CALL nequip_add_force_virial(fist_nonbond_env, f_nonbond, pv_nonbond, use_virial) END IF + ! ALLEGRO + IF (any_allegro) THEN + CALL allegro_add_force_virial(fist_nonbond_env, f_nonbond, pv_nonbond, use_virial) + END IF + IF (use_virial) THEN pv_nonbond(1, 1) = pv_nonbond(1, 1) + ptens11 pv_nonbond(1, 2) = pv_nonbond(1, 2) + ptens12 diff --git a/src/pair_potential.F b/src/pair_potential.F index ca0f6e8215..9f107a8fa9 100644 --- a/src/pair_potential.F +++ b/src/pair_potential.F @@ -29,10 +29,10 @@ MODULE pair_potential default_string_length,& dp USE pair_potential_types, ONLY: & - b4_type, bm_type, compare_pot, ea_type, ft_type, ftd_type, gal21_type, gal_type, gp_type, & - gw_type, ip_type, list_pot, lj_charmm_type, lj_type, multi_type, nequip_type, nn_type, & - pair_potential_pp_type, pair_potential_single_type, potential_single_allocation, & - quip_type, siepmann_type, tab_type, tersoff_type, wl_type + allegro_type, b4_type, bm_type, compare_pot, ea_type, ft_type, ftd_type, gal21_type, & + gal_type, gp_type, gw_type, ip_type, list_pot, lj_charmm_type, lj_type, multi_type, & + nequip_type, nn_type, pair_potential_pp_type, pair_potential_single_type, & + potential_single_allocation, quip_type, siepmann_type, tab_type, tersoff_type, wl_type USE pair_potential_util, ONLY: ener_pot,& ener_zbl,& zbl_matching_polinomial @@ -186,7 +186,7 @@ CONTAINS DO k = 1, SIZE(pot%type) SELECT CASE (pot%type(k)) CASE (lj_type, lj_charmm_type, wl_type, gw_type, ft_type, ftd_type, ip_type, & - b4_type, bm_type, gp_type, ea_type, quip_type, nequip_type, tab_type) + b4_type, bm_type, gp_type, ea_type, quip_type, nequip_type, allegro_type, tab_type) pot%no_pp = .FALSE. CASE (tersoff_type) pot%no_mb = .FALSE. @@ -204,7 +204,7 @@ CONTAINS END SELECT ! Special case for EAM SELECT CASE (pot%type(k)) - CASE (ea_type, quip_type, nequip_type) + CASE (ea_type, quip_type, nequip_type, allegro_type) pot%no_mb = .FALSE. END SELECT END DO @@ -608,6 +608,8 @@ CONTAINS nvar = 1 + nvar CASE (nequip_type) nvar = 1 + nvar + CASE (allegro_type) + nvar = 1 + nvar CASE (ft_type) nvar = 4 + nvar CASE (ftd_type) @@ -691,6 +693,9 @@ CONTAINS CASE (nequip_type) pot_par(nk, 1) = str2id( & TRIM(potparm%pot(i, j)%pot%set(1)%nequip%nequip_file_name)) + CASE (allegro_type) + pot_par(nk, 1) = str2id( & + TRIM(potparm%pot(i, j)%pot%set(1)%allegro%allegro_file_name)) CASE (ft_type) pot_par(nk, 1) = potparm%pot(i, j)%pot%set(1)%ft%A pot_par(nk, 2) = potparm%pot(i, j)%pot%set(1)%ft%B diff --git a/src/pair_potential_types.F b/src/pair_potential_types.F index 99ff9ab1a0..8f6667f9b5 100644 --- a/src/pair_potential_types.F +++ b/src/pair_potential_types.F @@ -50,10 +50,11 @@ MODULE pair_potential_types gal_type = 14, & quip_type = 15, & nequip_type = 16, & - gal21_type = 17, & - tab_type = 18 + allegro_type = 17, & + gal21_type = 18, & + tab_type = 19 - INTEGER, PUBLIC, PARAMETER, DIMENSION(19) :: list_pot = (/nn_type, & + INTEGER, PUBLIC, PARAMETER, DIMENSION(20) :: list_pot = (/nn_type, & lj_type, & lj_charmm_type, & ft_type, & @@ -70,6 +71,7 @@ MODULE pair_potential_types gal_type, & quip_type, & nequip_type, & + allegro_type, & gal21_type, & tab_type/) @@ -105,6 +107,7 @@ MODULE pair_potential_types eam_pot_type, & quip_pot_type, & nequip_pot_type, & + allegro_pot_type, & tersoff_pot_type, & siepmann_pot_type, & gal_pot_type, & @@ -178,12 +181,24 @@ MODULE pair_potential_types ! ************************************************************************************************** TYPE nequip_pot_type - CHARACTER(LEN=default_path_length) :: nequip_file_name, nequip_version, unit_coords, & - unit_forces, unit_energy, unit_cell - REAL(KIND=dp) :: rcutsq, unit_coords_val, unit_forces_val, & - unit_energy_val, unit_cell_val + CHARACTER(LEN=default_path_length) :: nequip_file_name = 'NULL', nequip_version = 'NULL', & + unit_coords = 'NULL', unit_forces = 'NULL', & + unit_energy = 'NULL', unit_cell = 'NULL' + REAL(KIND=dp) :: rcutsq = 0.0_dp, unit_coords_val = 0.0_dp, & + unit_forces_val = 0.0_dp, unit_energy_val = 0.0_dp, & + unit_cell_val = 0.0_dp END TYPE nequip_pot_type +! ************************************************************************************************** + TYPE allegro_pot_type + CHARACTER(LEN=default_path_length) :: allegro_file_name = 'NULL', unit_cell = 'NULL', & + allegro_version = 'NULL', unit_coords = 'NULL', & + unit_forces = 'NULL', unit_energy = 'NULL' + REAL(KIND=dp) :: rcutsq = 0.0_dp, unit_coords_val = 0.0_dp, & + unit_forces_val = 0.0_dp, unit_cell_val = 0.0_dp, & + unit_energy_val = 0.0_dp + END TYPE allegro_pot_type + ! ************************************************************************************************** TYPE buck4ran_pot_type REAL(KIND=dp) :: a @@ -337,6 +352,7 @@ MODULE pair_potential_types TYPE(eam_pot_type), POINTER :: eam TYPE(quip_pot_type), POINTER :: quip TYPE(nequip_pot_type), POINTER :: nequip + TYPE(allegro_pot_type), POINTER :: allegro TYPE(buck4ran_pot_type), POINTER :: buck4r TYPE(buckmorse_pot_type), POINTER :: buckmo TYPE(tersoff_pot_type), POINTER :: tersoff @@ -454,6 +470,12 @@ CONTAINS (pot1%set(i)%nequip%unit_forces == pot2%set(i)%nequip%unit_forces) .AND. & (pot1%set(i)%nequip%unit_energy == pot2%set(i)%nequip%unit_energy) .AND. & (pot1%set(i)%nequip%unit_cell == pot2%set(i)%nequip%unit_cell)) mycompare = .TRUE. + CASE (allegro_type) + IF ((pot1%set(i)%allegro%allegro_file_name == pot2%set(i)%allegro%allegro_file_name) .AND. & + (pot1%set(i)%allegro%unit_coords == pot2%set(i)%allegro%unit_coords) .AND. & + (pot1%set(i)%allegro%unit_forces == pot2%set(i)%allegro%unit_forces) .AND. & + (pot1%set(i)%allegro%unit_energy == pot2%set(i)%allegro%unit_energy) .AND. & + (pot1%set(i)%allegro%unit_cell == pot2%set(i)%allegro%unit_cell)) mycompare = .TRUE. CASE (ft_type) IF ((pot1%set(i)%ft%A == pot2%set(i)%ft%A) .AND. & (pot1%set(i)%ft%B == pot2%set(i)%ft%B) .AND. & @@ -591,6 +613,7 @@ CONTAINS potparm%set(i)%eam, & potparm%set(i)%quip, & potparm%set(i)%nequip, & + potparm%set(i)%allegro, & potparm%set(i)%buck4r, & potparm%set(i)%buckmo, & potparm%set(i)%tersoff, & @@ -635,6 +658,7 @@ CONTAINS CALL pair_potential_eam_clean(potparm%set(i)%eam) CALL pair_potential_quip_clean(potparm%set(i)%quip) CALL pair_potential_nequip_clean(potparm%set(i)%nequip) + CALL pair_potential_allegro_clean(potparm%set(i)%allegro) CALL pair_potential_buck4r_clean(potparm%set(i)%buck4r) CALL pair_potential_buckmo_clean(potparm%set(i)%buckmo) CALL pair_potential_bmhft_clean(potparm%set(i)%ft) @@ -691,6 +715,7 @@ CONTAINS CALL pair_potential_eam_copy(potparm_source%set(i)%eam, potparm_dest%set(i)%eam) CALL pair_potential_quip_copy(potparm_source%set(i)%quip, potparm_dest%set(i)%quip) CALL pair_potential_nequip_copy(potparm_source%set(i)%nequip, potparm_dest%set(i)%nequip) + CALL pair_potential_allegro_copy(potparm_source%set(i)%allegro, potparm_dest%set(i)%allegro) CALL pair_potential_bmhft_copy(potparm_source%set(i)%ft, potparm_dest%set(i)%ft) CALL pair_potential_bmhftd_copy(potparm_source%set(i)%ftd, potparm_dest%set(i)%ftd) CALL pair_potential_ipbv_copy(potparm_source%set(i)%ipbv, potparm_dest%set(i)%ipbv) @@ -740,6 +765,7 @@ CONTAINS (ASSOCIATED(potparm_dest%set(1)%eam)) .OR. & (ASSOCIATED(potparm_dest%set(1)%quip)) .OR. & (ASSOCIATED(potparm_dest%set(1)%nequip)) .OR. & + (ASSOCIATED(potparm_dest%set(1)%allegro)) .OR. & (ASSOCIATED(potparm_dest%set(1)%ft)) .OR. & (ASSOCIATED(potparm_dest%set(1)%ftd)) .OR. & (ASSOCIATED(potparm_dest%set(1)%ipbv)) .OR. & @@ -791,6 +817,7 @@ CONTAINS CALL pair_potential_eam_copy(potparm_tmp%set(i)%eam, potparm_dest%set(i)%eam) CALL pair_potential_quip_copy(potparm_tmp%set(i)%quip, potparm_dest%set(i)%quip) CALL pair_potential_nequip_copy(potparm_tmp%set(i)%nequip, potparm_dest%set(i)%nequip) + CALL pair_potential_allegro_copy(potparm_tmp%set(i)%allegro, potparm_dest%set(i)%allegro) CALL pair_potential_bmhft_copy(potparm_tmp%set(i)%ft, potparm_dest%set(i)%ft) CALL pair_potential_bmhftd_copy(potparm_tmp%set(i)%ftd, potparm_dest%set(i)%ftd) CALL pair_potential_ipbv_copy(potparm_tmp%set(i)%ipbv, potparm_dest%set(i)%ipbv) @@ -826,6 +853,7 @@ CONTAINS CALL pair_potential_eam_copy(potparm_source%set(j)%eam, potparm_dest%set(i)%eam) CALL pair_potential_quip_copy(potparm_source%set(j)%quip, potparm_dest%set(i)%quip) CALL pair_potential_nequip_copy(potparm_source%set(j)%nequip, potparm_dest%set(i)%nequip) + CALL pair_potential_allegro_copy(potparm_source%set(j)%allegro, potparm_dest%set(i)%allegro) CALL pair_potential_bmhft_copy(potparm_source%set(j)%ft, potparm_dest%set(i)%ft) CALL pair_potential_bmhftd_copy(potparm_source%set(j)%ftd, potparm_dest%set(i)%ftd) CALL pair_potential_ipbv_copy(potparm_source%set(j)%ipbv, potparm_dest%set(i)%ipbv) @@ -863,6 +891,7 @@ CONTAINS CALL pair_potential_eam_release(potparm%set(i)%eam) CALL pair_potential_quip_release(potparm%set(i)%quip) CALL pair_potential_nequip_release(potparm%set(i)%nequip) + CALL pair_potential_allegro_release(potparm%set(i)%allegro) CALL pair_potential_buck4r_release(potparm%set(i)%buck4r) CALL pair_potential_buckmo_release(potparm%set(i)%buckmo) CALL pair_potential_gp_release(potparm%set(i)%gp) @@ -1037,6 +1066,7 @@ CONTAINS !> \param eam ... !> \param quip ... !> \param nequip ... +!> \param allegro ... !> \param bmhft ... !> \param bmhftd ... !> \param ipbv ... @@ -1050,19 +1080,17 @@ CONTAINS !> \param tab ... !> \author Teodoro Laino [Teo] 11.2005 ! ************************************************************************************************** - SUBROUTINE pair_potential_reallocate(p, lb1_new, ub1_new, lj, lj_charmm, williams, & - goodwin, eam, quip, nequip, bmhft, bmhftd, ipbv, buck4r, buckmo, gp, tersoff, & - siepmann, gal, gal21, tab) + SUBROUTINE pair_potential_reallocate(p, lb1_new, ub1_new, lj, lj_charmm, williams, goodwin, eam, & + quip, nequip, allegro, bmhft, bmhftd, ipbv, buck4r, buckmo, & + gp, tersoff, siepmann, gal, gal21, tab) TYPE(pair_potential_p_type), POINTER :: p INTEGER, INTENT(IN) :: lb1_new, ub1_new - LOGICAL, INTENT(IN), OPTIONAL :: lj, lj_charmm, williams, goodwin, eam, & - quip, nequip, bmhft, bmhftd, ipbv, & - buck4r, buckmo, gp, tersoff, siepmann, & - gal, gal21, tab + LOGICAL, INTENT(IN), OPTIONAL :: lj, lj_charmm, williams, goodwin, eam, quip, nequip, & + allegro, bmhft, bmhftd, ipbv, buck4r, buckmo, gp, tersoff, siepmann, gal, gal21, tab INTEGER :: i, ipot, lb1_old, std_dim, ub1_old - LOGICAL :: check, lbmhft, lbmhftd, lbuck4r, lbuckmo, leam, lgal, lgal21, lgoodwin, lgp, & - lipbv, llj, llj_charmm, lnequip, lquip, lsiepmann, ltab, ltersoff, lwilliams + LOGICAL :: check, lallegro, lbmhft, lbmhftd, lbuck4r, lbuckmo, leam, lgal, lgal21, lgoodwin, & + lgp, lipbv, llj, llj_charmm, lnequip, lquip, lsiepmann, ltab, ltersoff, lwilliams TYPE(pair_potential_p_type), POINTER :: work NULLIFY (work) @@ -1074,6 +1102,7 @@ CONTAINS leam = .FALSE.; IF (PRESENT(eam)) leam = eam lquip = .FALSE.; IF (PRESENT(quip)) lquip = quip lnequip = .FALSE.; IF (PRESENT(nequip)) lnequip = nequip + lallegro = .FALSE.; IF (PRESENT(allegro)) lallegro = allegro lbmhft = .FALSE.; IF (PRESENT(bmhft)) lbmhft = bmhft lbmhftd = .FALSE.; IF (PRESENT(bmhftd)) lbmhftd = bmhftd lipbv = .FALSE.; IF (PRESENT(ipbv)) lipbv = ipbv @@ -1088,78 +1117,85 @@ CONTAINS IF (llj) THEN ipot = lj_type - check = .NOT. (llj_charmm .OR. lwilliams .OR. lgoodwin .OR. leam .OR. lquip .OR. lnequip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj_charmm .OR. lwilliams .OR. lgoodwin .OR. leam .OR. lquip .OR. lnequip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (llj_charmm) THEN ipot = lj_charmm_type - check = .NOT. (llj .OR. lwilliams .OR. lgoodwin .OR. leam .OR. lquip .OR. lnequip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj .OR. lwilliams .OR. lgoodwin .OR. leam .OR. lquip .OR. lnequip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lwilliams) THEN ipot = wl_type - check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. leam .OR. lquip .OR. lnequip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. leam .OR. lquip .OR. lnequip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lgoodwin) THEN ipot = gw_type - check = .NOT. (llj .OR. llj_charmm .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj .OR. llj_charmm .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (leam) THEN ipot = ea_type - check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. lquip .OR. lnequip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. lquip .OR. lnequip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lquip) THEN ipot = quip_type - check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lnequip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lnequip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lnequip) THEN ipot = nequip_type - check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lbmhft & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lallegro & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) + CPASSERT(check) + END IF + IF (lallegro) THEN + ipot = allegro_type + check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & + .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lbmhft) THEN ipot = ft_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + .OR. lallegro .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lbmhftd) THEN ipot = ftd_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + .OR. lallegro .OR. lbmhft .OR. lipbv .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lipbv) THEN ipot = ip_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lbuck4r .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lbuck4r) THEN ipot = b4_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuckmo .OR. lgp .OR. ltersoff & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuckmo .OR. lgp .OR. ltersoff & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF @@ -1173,43 +1209,43 @@ CONTAINS IF (ltersoff) THEN ipot = tersoff_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & .OR. lsiepmann .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lsiepmann) THEN ipot = siepmann_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & .OR. ltersoff .OR. lgal .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lgal) THEN ipot = gal_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & .OR. ltersoff .OR. lsiepmann .OR. lgal21 .OR. ltab) CPASSERT(check) END IF IF (lgal21) THEN ipot = gal21_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lbuckmo & .OR. ltersoff .OR. lsiepmann .OR. lgal .OR. ltab) CPASSERT(check) END IF IF (lgp) THEN ipot = gp_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgal21 .OR. lbuckmo & + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgal21 .OR. lbuckmo & .OR. ltersoff .OR. lsiepmann .OR. lgal .OR. ltab) CPASSERT(check) END IF IF (ltab) THEN ipot = tab_type check = .NOT. (llj .OR. llj_charmm .OR. lgoodwin .OR. lwilliams .OR. leam .OR. lquip .OR. lnequip & - .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lgal21 .OR. lbuckmo & - .OR. ltersoff .OR. lsiepmann .OR. lgal) + .OR. lallegro .OR. lbmhft .OR. lbmhftd .OR. lipbv .OR. lbuck4r .OR. lgp .OR. lgal21 & + .OR. lbuckmo .OR. ltersoff .OR. lsiepmann .OR. lgal) CPASSERT(check) END IF @@ -1253,6 +1289,8 @@ CONTAINS CALL pair_potential_quip_create(p%pot(i)%pot%set(std_dim)%quip) CASE (nequip_type) CALL pair_potential_nequip_create(p%pot(i)%pot%set(std_dim)%nequip) + CASE (allegro_type) + CALL pair_potential_allegro_create(p%pot(i)%pot%set(std_dim)%allegro) CASE (ft_type) CALL pair_potential_bmhft_create(p%pot(i)%pot%set(std_dim)%ft) CASE (ftd_type) @@ -1716,28 +1754,24 @@ CONTAINS DEALLOCATE (quip) END IF END SUBROUTINE pair_potential_quip_release + ! ************************************************************************************************** !> \brief Creates the NEQUIP potential type !> \param nequip ... -!> \author Teodoro Laino [teo] 11.2005 +!> \author Gabriele Tocci 2023 ! ************************************************************************************************** SUBROUTINE pair_potential_nequip_create(nequip) TYPE(nequip_pot_type), POINTER :: nequip CPASSERT(.NOT. ASSOCIATED(nequip)) ALLOCATE (nequip) - nequip%nequip_file_name = "" - nequip%unit_coords = "" - nequip%unit_forces = "" - nequip%unit_energy = "" - nequip%unit_cell = "" END SUBROUTINE pair_potential_nequip_create ! ************************************************************************************************** !> \brief Copy two NEQUIP potential type !> \param nequip_source ... !> \param nequip_dest ... -!> \author Teodoro Laino [teo] 11.2005 +!> \author Gabriele Tocci 2023 ! ************************************************************************************************** SUBROUTINE pair_potential_nequip_copy(nequip_source, nequip_dest) TYPE(nequip_pot_type), POINTER :: nequip_source, nequip_dest @@ -1745,47 +1779,27 @@ CONTAINS IF (.NOT. ASSOCIATED(nequip_source)) RETURN IF (ASSOCIATED(nequip_dest)) CALL pair_potential_nequip_release(nequip_dest) CALL pair_potential_nequip_create(nequip_dest) - nequip_dest%nequip_file_name = nequip_source%nequip_file_name - nequip_dest%nequip_version = nequip_source%nequip_version - nequip_dest%rcutsq = nequip_source%rcutsq - nequip_dest%unit_coords = nequip_source%unit_coords - nequip_dest%unit_coords_val = nequip_source%unit_coords_val - nequip_dest%unit_forces = nequip_source%unit_forces - nequip_dest%unit_forces_val = nequip_source%unit_forces_val - nequip_dest%unit_energy = nequip_source%unit_energy - nequip_dest%unit_energy_val = nequip_source%unit_energy_val - nequip_dest%unit_cell = nequip_source%unit_cell - nequip_dest%unit_cell_val = nequip_source%unit_cell_val + nequip_dest = nequip_source END SUBROUTINE pair_potential_nequip_copy ! ************************************************************************************************** !> \brief Creates the NEQUIP potential type !> \param nequip ... -!> \author Teodoro Laino [teo] 11.2005 +!> \author Gabriele Tocci 2023 ! ************************************************************************************************** SUBROUTINE pair_potential_nequip_clean(nequip) TYPE(nequip_pot_type), POINTER :: nequip IF (.NOT. ASSOCIATED(nequip)) RETURN - nequip%nequip_file_name = 'NULL' - nequip%nequip_version = 'NULL' - nequip%rcutsq = 0.0_dp - nequip%unit_energy_val = 0.0_dp - nequip%unit_coords_val = 0.0_dp - nequip%unit_forces_val = 0.0_dp - nequip%unit_cell_val = 0.0_dp - nequip%unit_coords = 'NULL' - nequip%unit_forces = 'NULL' - nequip%unit_energy = 'NULL' - nequip%unit_cell = 'NULL' + nequip = nequip_pot_type() END SUBROUTINE pair_potential_nequip_clean ! ************************************************************************************************** !> \brief Destroys the NEQUIP potential type !> \param nequip ... -!> \author Teodoro Laino [teo] 11.2005 +!> \author Gabriele Tocci 2023 ! ************************************************************************************************** SUBROUTINE pair_potential_nequip_release(nequip) TYPE(nequip_pot_type), POINTER :: nequip @@ -1795,6 +1809,59 @@ CONTAINS END IF END SUBROUTINE pair_potential_nequip_release +! ************************************************************************************************** +!> \brief Creates the ALLEGRO potential type +!> \param allegro ... +!> \author Gabriele Tocci 2023 +! ************************************************************************************************** + SUBROUTINE pair_potential_allegro_create(allegro) + TYPE(allegro_pot_type), POINTER :: allegro + + CPASSERT(.NOT. ASSOCIATED(allegro)) + ALLOCATE (allegro) + END SUBROUTINE pair_potential_allegro_create + +! ************************************************************************************************** +!> \brief Copy two ALLEGRO potential type +!> \param allegro_source ... +!> \param allegro_dest ... +!> \author Gabriele Tocci 2023 +! ************************************************************************************************** + SUBROUTINE pair_potential_allegro_copy(allegro_source, allegro_dest) + TYPE(allegro_pot_type), POINTER :: allegro_source, allegro_dest + + IF (.NOT. ASSOCIATED(allegro_source)) RETURN + IF (ASSOCIATED(allegro_dest)) CALL pair_potential_allegro_release(allegro_dest) + CALL pair_potential_allegro_create(allegro_dest) + allegro_dest = allegro_source + END SUBROUTINE pair_potential_allegro_copy + +! ************************************************************************************************** +!> \brief Creates the ALLEGRO potential type +!> \param allegro ... +!> \author Gabriele Tocci 2023 +! ************************************************************************************************** + SUBROUTINE pair_potential_allegro_clean(allegro) + TYPE(allegro_pot_type), POINTER :: allegro + + IF (.NOT. ASSOCIATED(allegro)) RETURN + allegro = allegro_pot_type() + + END SUBROUTINE pair_potential_allegro_clean + +! ************************************************************************************************** +!> \brief Destroys the ALLEGRO potential type +!> \param allegro ... +!> \author Gabriele Tocci 2023 +! ************************************************************************************************** + SUBROUTINE pair_potential_allegro_release(allegro) + TYPE(allegro_pot_type), POINTER :: allegro + + IF (ASSOCIATED(allegro)) THEN + DEALLOCATE (allegro) + END IF + END SUBROUTINE pair_potential_allegro_release + ! ************************************************************************************************** !> \brief Creates the BMHFT (TOSI-FUMI) potential type !> \param ft ... diff --git a/tests/Fist/regtest-allegro/Allegro_si_MD.inp b/tests/Fist/regtest-allegro/Allegro_si_MD.inp new file mode 100644 index 0000000000..08c76a5f1a --- /dev/null +++ b/tests/Fist/regtest-allegro/Allegro_si_MD.inp @@ -0,0 +1,64 @@ +&GLOBAL + PROJECT Si + RUN_TYPE MD +&END GLOBAL +&FORCE_EVAL + &PRINT + &FORCES + &END + &END + METHOD FIST + &MM + &FORCEFIELD + &NONBONDED + &ALLEGRO + ATOMS Si + PARM_FILE_NAME Allegro/si-deployed.pth + UNIT_COORDS angstrom + UNIT_ENERGY eV + UNIT_FORCES eV*angstrom^-1 + &END ALLEGRO + &END NONBONDED + &END FORCEFIELD + &POISSON + &EWALD + EWALD_TYPE none + &END EWALD + &END POISSON + &END MM + &SUBSYS + &CELL + ABC 10.861999859992501 10.861999859992501 10.861999859992501 +# MULTIPLE_UNIT_CELL 4 4 4 + &END CELL + &TOPOLOGY + COORD_FILE_FORMAT XYZ + COORD_FILE_NAME si_input.xyz +# MULTIPLE_UNIT_CELL 4 4 4 + &END + &END SUBSYS +&END FORCE_EVAL + +&MOTION + &MD + ENSEMBLE NVT + STEPS 0 + TIMESTEP 1 + TEMPERATURE 300.0 + &THERMOSTAT + REGION GLOBAL + TYPE CSVR + &CSVR + TIMECON 100. + &END + &END + &END MD + &PRINT + &FORCES + &EACH + MD 1 + &END + UNIT eV*angstrom^-1 + &END + &END +&END MOTION diff --git a/tests/Fist/regtest-allegro/TEST_FILES b/tests/Fist/regtest-allegro/TEST_FILES new file mode 100644 index 0000000000..976b4818c7 --- /dev/null +++ b/tests/Fist/regtest-allegro/TEST_FILES @@ -0,0 +1,3 @@ +# Test of Allegro using libtorch https://pytorch.org/cppdocs/installing.html +Allegro_si_MD.inp 11 1.0E-14 -305.899211744308900 +#EOF diff --git a/tests/Fist/regtest-allegro/si_input.xyz b/tests/Fist/regtest-allegro/si_input.xyz new file mode 100644 index 0000000000..0913097829 --- /dev/null +++ b/tests/Fist/regtest-allegro/si_input.xyz @@ -0,0 +1,66 @@ +64 + +Si 0.10000000 0.00000000 0.00000000 +Si 0.10000000 2.71549996 2.71549996 +Si 2.71549996 2.71549996 0.00000000 +Si 2.71549996 0.00000000 2.71549996 +Si 4.07324995 1.35774998 4.07324995 +Si 1.35774998 1.35774998 1.35774998 +Si 1.35774998 4.07324995 4.07324995 +Si 4.07324995 4.07324995 1.35774998 +Si 0.00000000 0.00000000 5.43099993 +Si 0.00000000 2.71549996 8.14649989 +Si 2.71549996 2.71549996 5.43099993 +Si 2.71549996 0.00000000 8.14649989 +Si 4.07324995 1.35774998 9.50424988 +Si 1.35774998 1.35774998 6.78874991 +Si 1.35774998 4.07324995 9.50424988 +Si 4.07324995 4.07324995 6.78874991 +Si 0.00000000 5.43099993 0.00000000 +Si 0.00000000 8.14649989 2.71549996 +Si 2.71549996 8.14649989 0.00000000 +Si 2.71549996 5.43099993 2.71549996 +Si 4.07324995 6.78874991 4.07324995 +Si 1.35774998 6.78874991 1.35774998 +Si 1.35774998 9.50424988 4.07324995 +Si 4.07324995 9.50424988 1.35774998 +Si 0.00000000 5.43099993 5.43099993 +Si 0.00000000 8.14649989 8.14649989 +Si 2.71549996 8.14649989 5.43099993 +Si 2.71549996 5.43099993 8.14649989 +Si 4.07324995 6.78874991 9.50424988 +Si 1.35774998 6.78874991 6.78874991 +Si 1.35774998 9.50424988 9.50424988 +Si 4.07324995 9.50424988 6.78874991 +Si 5.43099993 0.00000000 0.00000000 +Si 5.43099993 2.71549996 2.71549996 +Si 8.14649989 2.71549996 0.00000000 +Si 8.14649989 0.00000000 2.71549996 +Si 9.50424988 1.35774998 4.07324995 +Si 6.78874991 1.35774998 1.35774998 +Si 6.78874991 4.07324995 4.07324995 +Si 9.50424988 4.07324995 1.35774998 +Si 5.43099993 0.00000000 5.43099993 +Si 5.43099993 2.71549996 8.14649989 +Si 8.14649989 2.71549996 5.43099993 +Si 8.14649989 0.00000000 8.14649989 +Si 9.50424988 1.35774998 9.50424988 +Si 6.78874991 1.35774998 6.78874991 +Si 6.78874991 4.07324995 9.50424988 +Si 9.50424988 4.07324995 6.78874991 +Si 5.43099993 5.43099993 0.00000000 +Si 5.43099993 8.14649989 2.71549996 +Si 8.14649989 8.14649989 0.00000000 +Si 8.14649989 5.43099993 2.71549996 +Si 9.50424988 6.78874991 4.07324995 +Si 6.78874991 6.78874991 1.35774998 +Si 6.78874991 9.50424988 4.07324995 +Si 9.50424988 9.50424988 1.35774998 +Si 5.43099993 5.43099993 5.43099993 +Si 5.43099993 8.14649989 8.14649989 +Si 8.14649989 8.14649989 5.43099993 +Si 8.14649989 5.43099993 8.14649989 +Si 9.50424988 6.78874991 9.50424988 +Si 6.78874991 6.78874991 6.78874991 +Si 6.78874991 9.50424988 9.50424988 +Si 9.60424988 9.50424988 6.78874991 diff --git a/tests/TEST_DIRS b/tests/TEST_DIRS index 3d1d3b941f..ad34d63c0b 100644 --- a/tests/TEST_DIRS +++ b/tests/TEST_DIRS @@ -338,6 +338,7 @@ Fist/regtest-spgr spglib Fist/regtest-plumed2 plumed2 Fist/regtest-quip quip Fist/regtest-nequip libtorch +Fist/regtest-allegro libtorch Fist/regtest-16 DFTB/regtest-vdw QS/regtest-tddfpt-force-gapw diff --git a/tools/toolchain/install_cp2k_toolchain.sh b/tools/toolchain/install_cp2k_toolchain.sh index 829f97228c..218ab6d837 100755 --- a/tools/toolchain/install_cp2k_toolchain.sh +++ b/tools/toolchain/install_cp2k_toolchain.sh @@ -220,7 +220,7 @@ The --with-PKG options follow the rules: Default = install --with-libvori Enable libvori for the Voronoi integration (and the BQB compressed trajectory format) Default = install - --with-libtorch Enable libtorch the machine learning framework needed for NequIP. + --with-libtorch Enable libtorch the machine learning framework needed for NequIP and Allegro Default = no FURTHER INSTRUCTIONS @@ -305,7 +305,7 @@ with_spfft="__DONTUSE__" with_spla="__DONTUSE__" with_cosma="__INSTALL__" with_libvori="__INSTALL__" -with_libtorch="__DONTUSE__" +with_libtorch="__INSTALL__" # for MPI, we try to detect system MPI variant if (command -v mpiexec > /dev/null 2>&1); then # check if we are dealing with openmpi, mpich or intelmpi