From bc4f2b65aeeb2ef5d7049da731e4ed2723119c47 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 12 Jul 2021 05:19:41 -0400 Subject: [PATCH] the INTEL package does not support pair_modify nofdotr - no need to test for it - add a check and report an error if the nofdotr setting is used --- src/INTEL/pair_airebo_intel.cpp | 2 ++ src/INTEL/pair_buck_coul_cut_intel.cpp | 2 ++ src/INTEL/pair_buck_coul_long_intel.cpp | 2 ++ src/INTEL/pair_buck_intel.cpp | 2 ++ src/INTEL/pair_dpd_intel.cpp | 2 ++ src/INTEL/pair_eam_intel.cpp | 2 ++ src/INTEL/pair_gayberne_intel.cpp | 2 ++ .../pair_lj_charmm_coul_charmm_intel.cpp | 2 ++ src/INTEL/pair_lj_charmm_coul_long_intel.cpp | 2 ++ src/INTEL/pair_lj_cut_coul_long_intel.cpp | 2 ++ src/INTEL/pair_lj_cut_intel.cpp | 2 ++ src/INTEL/pair_sw_intel.cpp | 2 ++ src/INTEL/pair_tersoff_intel.cpp | 2 ++ unittest/force-styles/test_pair_style.cpp | 36 ------------------- 14 files changed, 26 insertions(+), 36 deletions(-) diff --git a/src/INTEL/pair_airebo_intel.cpp b/src/INTEL/pair_airebo_intel.cpp index 45ceb6b605..94874153aa 100644 --- a/src/INTEL/pair_airebo_intel.cpp +++ b/src/INTEL/pair_airebo_intel.cpp @@ -292,6 +292,8 @@ void PairAIREBOIntel::compute( ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); pvector[0] = pvector[1] = pvector[2] = 0.0; diff --git a/src/INTEL/pair_buck_coul_cut_intel.cpp b/src/INTEL/pair_buck_coul_cut_intel.cpp index 3826d1a111..99905bfaa0 100644 --- a/src/INTEL/pair_buck_coul_cut_intel.cpp +++ b/src/INTEL/pair_buck_coul_cut_intel.cpp @@ -77,6 +77,8 @@ void PairBuckCoulCutIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_buck_coul_long_intel.cpp b/src/INTEL/pair_buck_coul_long_intel.cpp index 0ef62d4a0c..1566ec23b6 100644 --- a/src/INTEL/pair_buck_coul_long_intel.cpp +++ b/src/INTEL/pair_buck_coul_long_intel.cpp @@ -77,6 +77,8 @@ void PairBuckCoulLongIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_buck_intel.cpp b/src/INTEL/pair_buck_intel.cpp index 88016c5e5e..26ef13be9a 100644 --- a/src/INTEL/pair_buck_intel.cpp +++ b/src/INTEL/pair_buck_intel.cpp @@ -70,6 +70,8 @@ void PairBuckIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_dpd_intel.cpp b/src/INTEL/pair_dpd_intel.cpp index 96a2b2d029..089396afa3 100644 --- a/src/INTEL/pair_dpd_intel.cpp +++ b/src/INTEL/pair_dpd_intel.cpp @@ -89,6 +89,8 @@ void PairDPDIntel::compute(int eflag, int vflag, ev_init(eflag, vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_eam_intel.cpp b/src/INTEL/pair_eam_intel.cpp index 7857225c6b..a86040b6b3 100644 --- a/src/INTEL/pair_eam_intel.cpp +++ b/src/INTEL/pair_eam_intel.cpp @@ -82,6 +82,8 @@ void PairEAMIntel::compute(int eflag, int vflag, ev_init(eflag, vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_gayberne_intel.cpp b/src/INTEL/pair_gayberne_intel.cpp index b5c795ab0b..d7becc7585 100644 --- a/src/INTEL/pair_gayberne_intel.cpp +++ b/src/INTEL/pair_gayberne_intel.cpp @@ -76,6 +76,8 @@ void PairGayBerneIntel::compute(int eflag, int vflag, ev_init(eflag, vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nall = atom->nlocal + atom->nghost; diff --git a/src/INTEL/pair_lj_charmm_coul_charmm_intel.cpp b/src/INTEL/pair_lj_charmm_coul_charmm_intel.cpp index 3b9e8f0964..ad8ef4d84f 100644 --- a/src/INTEL/pair_lj_charmm_coul_charmm_intel.cpp +++ b/src/INTEL/pair_lj_charmm_coul_charmm_intel.cpp @@ -73,6 +73,8 @@ void PairLJCharmmCoulCharmmIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_lj_charmm_coul_long_intel.cpp b/src/INTEL/pair_lj_charmm_coul_long_intel.cpp index dbab14d45b..a910c74acb 100644 --- a/src/INTEL/pair_lj_charmm_coul_long_intel.cpp +++ b/src/INTEL/pair_lj_charmm_coul_long_intel.cpp @@ -77,6 +77,8 @@ void PairLJCharmmCoulLongIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_lj_cut_coul_long_intel.cpp b/src/INTEL/pair_lj_cut_coul_long_intel.cpp index caad36eee6..51e208314b 100644 --- a/src/INTEL/pair_lj_cut_coul_long_intel.cpp +++ b/src/INTEL/pair_lj_cut_coul_long_intel.cpp @@ -76,6 +76,8 @@ void PairLJCutCoulLongIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_lj_cut_intel.cpp b/src/INTEL/pair_lj_cut_intel.cpp index 2108cec061..eb60e0442f 100644 --- a/src/INTEL/pair_lj_cut_intel.cpp +++ b/src/INTEL/pair_lj_cut_intel.cpp @@ -68,6 +68,8 @@ void PairLJCutIntel::compute(int eflag, int vflag, ev_init(eflag, vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_sw_intel.cpp b/src/INTEL/pair_sw_intel.cpp index 1c6cef0121..17dffa2843 100644 --- a/src/INTEL/pair_sw_intel.cpp +++ b/src/INTEL/pair_sw_intel.cpp @@ -97,6 +97,8 @@ void PairSWIntel::compute(int eflag, int vflag, ev_init(eflag, vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/src/INTEL/pair_tersoff_intel.cpp b/src/INTEL/pair_tersoff_intel.cpp index b6de446397..248c3420e6 100644 --- a/src/INTEL/pair_tersoff_intel.cpp +++ b/src/INTEL/pair_tersoff_intel.cpp @@ -91,6 +91,8 @@ void PairTersoffIntel::compute(int eflag, int vflag, ev_init(eflag,vflag); if (vflag_atom) error->all(FLERR,"INTEL package does not support per-atom stress"); + if (vflag && !vflag_fdotr) + error->all(FLERR,"INTEL package does not support pair_modify nofdotr"); const int inum = list->inum; const int nthreads = comm->nthreads; diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index cc5ba66237..dae72ed8d3 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -1093,42 +1093,6 @@ TEST(PairStyle, intel) EXPECT_FP_LE_WITH_EPS((pair->eng_vdwl + pair->eng_coul), energy, epsilon); if (print_stats) std::cerr << "run_energy stats:" << stats << std::endl; - // pair styles sw and tersoff and airebo INTEL package variants require newton on, - // but that also requires fdotr for /intel - if ((test_config.pair_style != "sw") && (test_config.pair_style != "tersoff") && - (test_config.pair_style != "rebo") && (test_config.pair_style != "airebo") && - (test_config.pair_style != "airebo/morse")) { - - if (!verbose) ::testing::internal::CaptureStdout(); - restart_lammps(lmp, test_config, true, true); - if (!verbose) ::testing::internal::GetCapturedStdout(); - f = lmp->atom->f; - tag = lmp->atom->tag; - stats.reset(); - ASSERT_EQ(nlocal + 1, f_ref.size()); - for (int i = 0; i < nlocal; ++i) { - EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 5 * epsilon); - EXPECT_FP_LE_WITH_EPS(f[i][1], f_ref[tag[i]].y, 5 * epsilon); - EXPECT_FP_LE_WITH_EPS(f[i][2], f_ref[tag[i]].z, 5 * epsilon); - } - if (print_stats) std::cerr << "nofdotr_forces stats:" << stats << std::endl; - - pair = lmp->force->pair; - stress = pair->virial; - stats.reset(); - EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 10 * epsilon); - EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 10 * epsilon); - EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 10 * epsilon); - EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 10 * epsilon); - EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 10 * epsilon); - EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 10 * epsilon); - if (print_stats) std::cerr << "nofdotr_stress stats:" << stats << std::endl; - - stats.reset(); - EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, 5 * epsilon); - EXPECT_FP_LE_WITH_EPS(pair->eng_coul, test_config.init_coul, 5 * epsilon); - if (print_stats) std::cerr << "nofdotr_energy stats:" << stats << std::endl; - } if (!verbose) ::testing::internal::CaptureStdout(); cleanup_lammps(lmp, test_config); if (!verbose) ::testing::internal::GetCapturedStdout();