From 5ed24b330eaac2aea7f35e3071f88ab9543d6c6b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Aug 2020 21:46:18 -0400 Subject: [PATCH 001/104] add preliminary support for testing pair styles in the GPU package --- unittest/force-styles/test_pair_style.cpp | 115 +++++++++++++++++++++- 1 file changed, 114 insertions(+), 1 deletion(-) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 2cc39f712d..3d45c2075a 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -109,7 +109,6 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new } else { command("variable newton_pair index off"); } - command("variable input_dir index " + INPUT_FOLDER); for (auto &pre_command : cfg.pre_commands) { @@ -124,6 +123,8 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new for (auto &pair_coeff : cfg.pair_coeff) { command("pair_coeff " + pair_coeff); } + command("pair_modify table 0"); + command("pair_modify table/disp 0"); for (auto &post_command : cfg.post_commands) { command(post_command); @@ -798,6 +799,118 @@ TEST(PairStyle, omp) if (!verbose) ::testing::internal::GetCapturedStdout(); }; +TEST(PairStyle, gpu) +{ + if (!LAMMPS::is_installed_pkg("GPU")) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "gpu"}; + + char **argv = (char **)args; + int argc = sizeof(args) / sizeof(char *); + + ::testing::internal::CaptureStdout(); + LAMMPS *lmp = init_lammps(argc, argv, test_config, false); + + std::string output = ::testing::internal::GetCapturedStdout(); + if (verbose) std::cout << output; + + if (!lmp) { + std::cerr << "One or more prerequisite styles with /gpu suffix\n" + "are not available in this LAMMPS configuration:\n"; + for (auto &prerequisite : test_config.prerequisites) { + std::cerr << prerequisite.first << "_style " << prerequisite.second << "\n"; + } + GTEST_SKIP(); + } + + EXPECT_THAT(output, StartsWith("LAMMPS (")); + EXPECT_THAT(output, HasSubstr("Loop time")); + + // abort if running in parallel and not all atoms are local + const int nlocal = lmp->atom->nlocal; + ASSERT_EQ(lmp->atom->natoms, nlocal); + + // skip over tests using tabulated coulomb + if ((lmp->force->pair->ncoultablebits > 0) || (lmp->force->pair->ndisptablebits > 0)) { + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); + GTEST_SKIP(); + } + + // relax error a bit for GPU package + double epsilon = 7.5 * test_config.epsilon; + // relax test precision when using pppm and single precision FFTs +#if defined(FFT_SINGLE) + if (lmp->force->kspace && lmp->force->kspace->compute_flag) + if (utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8; +#endif + const std::vector &f_ref = test_config.init_forces; + const std::vector &f_run = test_config.run_forces; + ErrorStats stats; + + auto f = lmp->atom->f; + auto tag = lmp->atom->tag; + stats.reset(); + for (int i = 0; i < nlocal; ++i) { + EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, epsilon); + EXPECT_FP_LE_WITH_EPS(f[i][1], f_ref[tag[i]].y, epsilon); + EXPECT_FP_LE_WITH_EPS(f[i][2], f_ref[tag[i]].z, epsilon); + } + if (print_stats) std::cerr << "init_forces stats, newton off:" << stats << std::endl; + + auto pair = lmp->force->pair; + auto 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 << "init_stress stats, newton off:" << stats << std::endl; + + stats.reset(); + EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon); + EXPECT_FP_LE_WITH_EPS(pair->eng_coul, test_config.init_coul, epsilon); + if (print_stats) std::cerr << "init_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + run_lammps(lmp); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + f = lmp->atom->f; + tag = lmp->atom->tag; + stats.reset(); + for (int i = 0; i < nlocal; ++i) { + EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 5 * epsilon); + EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 5 * epsilon); + EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 5 * epsilon); + } + if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl; + + stress = pair->virial; + stats.reset(); + EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 10 * epsilon); + EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 10 * epsilon); + EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 10 * epsilon); + EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 10 * epsilon); + EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 10 * epsilon); + EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 10 * epsilon); + if (print_stats) std::cerr << "run_stress stats, newton off:" << stats << std::endl; + + stats.reset(); + auto id = lmp->modify->find_compute("sum"); + auto energy = lmp->modify->compute[id]->compute_scalar(); + EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.run_vdwl, epsilon); + EXPECT_FP_LE_WITH_EPS(pair->eng_coul, test_config.run_coul, epsilon); + EXPECT_FP_LE_WITH_EPS((pair->eng_vdwl + pair->eng_coul), energy, epsilon); + if (print_stats) std::cerr << "run_energy stats, newton off:" << stats << std::endl; + + if (!verbose) ::testing::internal::CaptureStdout(); + cleanup_lammps(lmp, test_config); + if (!verbose) ::testing::internal::GetCapturedStdout(); +}; + TEST(PairStyle, intel) { if (!LAMMPS::is_installed_pkg("USER-INTEL")) GTEST_SKIP(); From 13cf665712363469ef4fabab3afb20352bd6bc7e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 23 Aug 2020 21:47:17 -0400 Subject: [PATCH 002/104] update pair style unit test input files to be compatible with testing GPU package styles --- unittest/force-styles/tests/atomic-pair-atm.yaml | 2 +- unittest/force-styles/tests/atomic-pair-edip.yaml | 2 +- unittest/force-styles/tests/atomic-pair-meam_c.yaml | 2 +- unittest/force-styles/tests/atomic-pair-meam_spline.yaml | 2 +- unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml | 2 +- unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml | 2 +- unittest/force-styles/tests/manybody-pair-airebo.yaml | 2 +- unittest/force-styles/tests/manybody-pair-airebo_00.yaml | 2 +- unittest/force-styles/tests/manybody-pair-airebo_m.yaml | 2 +- unittest/force-styles/tests/manybody-pair-airebo_m00.yaml | 2 +- unittest/force-styles/tests/manybody-pair-bop.yaml | 2 +- unittest/force-styles/tests/manybody-pair-bop_save.yaml | 2 +- unittest/force-styles/tests/manybody-pair-comb.yaml | 2 +- unittest/force-styles/tests/manybody-pair-comb3.yaml | 2 +- unittest/force-styles/tests/manybody-pair-extep.yaml | 2 +- unittest/force-styles/tests/manybody-pair-gw.yaml | 2 +- unittest/force-styles/tests/manybody-pair-gw_zbl.yaml | 2 +- unittest/force-styles/tests/manybody-pair-lcbop.yaml | 2 +- unittest/force-styles/tests/manybody-pair-meam_c.yaml | 2 +- unittest/force-styles/tests/manybody-pair-mliap_snap.yaml | 2 +- .../force-styles/tests/manybody-pair-mliap_snap_chem.yaml | 2 +- unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml | 2 +- unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml | 2 +- .../force-styles/tests/manybody-pair-polymorphic_tersoff.yaml | 2 +- unittest/force-styles/tests/manybody-pair-rebo.yaml | 2 +- unittest/force-styles/tests/manybody-pair-snap.yaml | 2 +- unittest/force-styles/tests/manybody-pair-snap_chem.yaml | 2 +- unittest/force-styles/tests/manybody-pair-sw-multi.yaml | 2 +- unittest/force-styles/tests/manybody-pair-sw.yaml | 2 +- unittest/force-styles/tests/manybody-pair-tersoff.yaml | 2 +- unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml | 2 +- unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml | 2 +- unittest/force-styles/tests/manybody-pair-tersoff_table.yaml | 2 +- unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml | 2 +- unittest/force-styles/tests/manybody-pair-vashishta.yaml | 2 +- .../force-styles/tests/manybody-pair-vashishta_table.yaml | 2 +- unittest/force-styles/tests/manybody-pair_edip_multi.yaml | 2 +- unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml | 2 +- unittest/force-styles/tests/mol-pair-buck.yaml | 2 +- unittest/force-styles/tests/mol-pair-buck_coul_long.yaml | 2 +- unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml | 2 +- unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml | 2 +- unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml | 2 +- unittest/force-styles/tests/mol-pair-e3b.yaml | 2 +- unittest/force-styles/tests/mol-pair-lj_cubic.yaml | 2 +- unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml | 2 +- unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml | 2 +- .../force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml | 2 +- unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml | 2 +- unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml | 2 +- .../force-styles/tests/mol-pair-lj_table_tip4p_table.yaml | 2 +- unittest/force-styles/tests/mol-pair-tip4p_cut.yaml | 4 ++-- unittest/force-styles/tests/mol-pair-tip4p_long.yaml | 2 +- unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml | 2 +- unittest/force-styles/tests/mol-pair-tip4p_table.yaml | 2 +- unittest/force-styles/tests/mol-pair-zbl.yaml | 2 +- 56 files changed, 57 insertions(+), 57 deletions(-) diff --git a/unittest/force-styles/tests/atomic-pair-atm.yaml b/unittest/force-styles/tests/atomic-pair-atm.yaml index 3297ae8ba6..dc0db1e37d 100644 --- a/unittest/force-styles/tests/atomic-pair-atm.yaml +++ b/unittest/force-styles/tests/atomic-pair-atm.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair atm pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.metal pair_style: atm 12.0 5.0 diff --git a/unittest/force-styles/tests/atomic-pair-edip.yaml b/unittest/force-styles/tests/atomic-pair-edip.yaml index c46742a30c..f7a16be94d 100644 --- a/unittest/force-styles/tests/atomic-pair-edip.yaml +++ b/unittest/force-styles/tests/atomic-pair-edip.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pre_commands: ! | echo screen variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" atom_modify map array units metal lattice diamond 5.43 diff --git a/unittest/force-styles/tests/atomic-pair-meam_c.yaml b/unittest/force-styles/tests/atomic-pair-meam_c.yaml index 7e5e04f258..a254155a2b 100644 --- a/unittest/force-styles/tests/atomic-pair-meam_c.yaml +++ b/unittest/force-styles/tests/atomic-pair-meam_c.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair meam/c pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.metal pair_style: meam/c diff --git a/unittest/force-styles/tests/atomic-pair-meam_spline.yaml b/unittest/force-styles/tests/atomic-pair-meam_spline.yaml index 26b41e3246..e395d8b1b4 100644 --- a/unittest/force-styles/tests/atomic-pair-meam_spline.yaml +++ b/unittest/force-styles/tests/atomic-pair-meam_spline.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair meam/spline pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.metal pair_style: meam/spline diff --git a/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml b/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml index 255a424c9e..e8c744851b 100644 --- a/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml +++ b/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pre_commands: ! | echo screen variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" atom_modify map array units metal lattice diamond 5.43 diff --git a/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml b/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml index 4ac11509e6..635c57742c 100644 --- a/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml +++ b/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair polymorphic pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | change_box all x final 0 18 y final 0 18 z final 0 18 input_file: in.metal diff --git a/unittest/force-styles/tests/manybody-pair-airebo.yaml b/unittest/force-styles/tests/manybody-pair-airebo.yaml index 57c71a6325..1dfecf47f8 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair airebo pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.airebo pair_style: airebo 3.0 1 1 diff --git a/unittest/force-styles/tests/manybody-pair-airebo_00.yaml b/unittest/force-styles/tests/manybody-pair-airebo_00.yaml index 30fe7fde4e..408ed51ce0 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo_00.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo_00.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair airebo pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.airebo pair_style: airebo 3.0 0 0 diff --git a/unittest/force-styles/tests/manybody-pair-airebo_m.yaml b/unittest/force-styles/tests/manybody-pair-airebo_m.yaml index e5d4a97ec1..f57e9add95 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo_m.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo_m.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair airebo/morse pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.airebo pair_style: airebo/morse 3.0 1 1 diff --git a/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml b/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml index 50325ee197..770ee99d98 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair airebo/morse pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.airebo pair_style: airebo/morse 3.0 0 0 diff --git a/unittest/force-styles/tests/manybody-pair-bop.yaml b/unittest/force-styles/tests/manybody-pair-bop.yaml index 14ed8865a0..b750d77d8c 100644 --- a/unittest/force-styles/tests/manybody-pair-bop.yaml +++ b/unittest/force-styles/tests/manybody-pair-bop.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair bop pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" comm_modify cutoff 14.0 post_commands: ! | change_box all x final 0 14 y final 0 14 z final 0 14 diff --git a/unittest/force-styles/tests/manybody-pair-bop_save.yaml b/unittest/force-styles/tests/manybody-pair-bop_save.yaml index 72a2351f5d..c3102bcdcc 100644 --- a/unittest/force-styles/tests/manybody-pair-bop_save.yaml +++ b/unittest/force-styles/tests/manybody-pair-bop_save.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair bop pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" comm_modify cutoff 14.0 post_commands: ! | change_box all x final 0 14 y final 0 14 z final 0 14 diff --git a/unittest/force-styles/tests/manybody-pair-comb.yaml b/unittest/force-styles/tests/manybody-pair-comb.yaml index 58de3040c3..6a18ab6733 100644 --- a/unittest/force-styles/tests/manybody-pair-comb.yaml +++ b/unittest/force-styles/tests/manybody-pair-comb.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair comb pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody-charge pair_style: comb diff --git a/unittest/force-styles/tests/manybody-pair-comb3.yaml b/unittest/force-styles/tests/manybody-pair-comb3.yaml index 1d44d5e289..4b79f2b5b0 100644 --- a/unittest/force-styles/tests/manybody-pair-comb3.yaml +++ b/unittest/force-styles/tests/manybody-pair-comb3.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair comb3 pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody-charge pair_style: comb3 polar_off diff --git a/unittest/force-styles/tests/manybody-pair-extep.yaml b/unittest/force-styles/tests/manybody-pair-extep.yaml index 2bc3ad35a7..1a490a0120 100644 --- a/unittest/force-styles/tests/manybody-pair-extep.yaml +++ b/unittest/force-styles/tests/manybody-pair-extep.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair extep pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: extep diff --git a/unittest/force-styles/tests/manybody-pair-gw.yaml b/unittest/force-styles/tests/manybody-pair-gw.yaml index b9e284293e..b01e0221f3 100644 --- a/unittest/force-styles/tests/manybody-pair-gw.yaml +++ b/unittest/force-styles/tests/manybody-pair-gw.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair gw pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: gw diff --git a/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml b/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml index 7d9fd2460d..6c5c302770 100644 --- a/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml +++ b/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair gw/zbl pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: gw/zbl diff --git a/unittest/force-styles/tests/manybody-pair-lcbop.yaml b/unittest/force-styles/tests/manybody-pair-lcbop.yaml index c666afd3ae..6e07460668 100644 --- a/unittest/force-styles/tests/manybody-pair-lcbop.yaml +++ b/unittest/force-styles/tests/manybody-pair-lcbop.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair lcbop pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: lcbop diff --git a/unittest/force-styles/tests/manybody-pair-meam_c.yaml b/unittest/force-styles/tests/manybody-pair-meam_c.yaml index 2f5051abad..23593c1cca 100644 --- a/unittest/force-styles/tests/manybody-pair-meam_c.yaml +++ b/unittest/force-styles/tests/manybody-pair-meam_c.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair meam/c pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: meam/c diff --git a/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml b/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml index a45d7a8f49..32927b9750 100644 --- a/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml +++ b/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair zbl pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: hybrid/overlay zbl 4.0 4.8 mliap model linear Ta06A.mliap.model descriptor diff --git a/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml b/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml index e4719e6eb5..b5e6ca7b36 100644 --- a/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml +++ b/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair zbl pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" variable zblz1 index 49 variable zblz2 index 15 post_commands: ! "" diff --git a/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml b/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml index bd33af6f16..c449e733ce 100644 --- a/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml +++ b/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair nb3b/harmonic pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" variable units delete variable units index real post_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml b/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml index 2aee0ed5fb..ba10a03e94 100644 --- a/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml +++ b/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair polymorphic pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | change_box all x final 0 9.8 y final 0 9.8 z final 0 9.8 input_file: in.manybody diff --git a/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml b/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml index 2025068084..8f8ed15eeb 100644 --- a/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml +++ b/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair polymorphic pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | change_box all x final 0 9.9 y final 0 9.9 z final 0 9.9 input_file: in.manybody diff --git a/unittest/force-styles/tests/manybody-pair-rebo.yaml b/unittest/force-styles/tests/manybody-pair-rebo.yaml index 6cc14a8259..94c442cc58 100644 --- a/unittest/force-styles/tests/manybody-pair-rebo.yaml +++ b/unittest/force-styles/tests/manybody-pair-rebo.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair rebo pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.airebo pair_style: rebo diff --git a/unittest/force-styles/tests/manybody-pair-snap.yaml b/unittest/force-styles/tests/manybody-pair-snap.yaml index 2dc2b6a568..e1d466f1f0 100644 --- a/unittest/force-styles/tests/manybody-pair-snap.yaml +++ b/unittest/force-styles/tests/manybody-pair-snap.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair zbl pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: hybrid/overlay zbl 4.0 4.8 snap diff --git a/unittest/force-styles/tests/manybody-pair-snap_chem.yaml b/unittest/force-styles/tests/manybody-pair-snap_chem.yaml index 8e8c2c8f86..10098a64d9 100644 --- a/unittest/force-styles/tests/manybody-pair-snap_chem.yaml +++ b/unittest/force-styles/tests/manybody-pair-snap_chem.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair zbl pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: hybrid/overlay zbl 4.0 4.2 snap diff --git a/unittest/force-styles/tests/manybody-pair-sw-multi.yaml b/unittest/force-styles/tests/manybody-pair-sw-multi.yaml index 45d912c0c2..5152d63b2a 100644 --- a/unittest/force-styles/tests/manybody-pair-sw-multi.yaml +++ b/unittest/force-styles/tests/manybody-pair-sw-multi.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair sw pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: sw diff --git a/unittest/force-styles/tests/manybody-pair-sw.yaml b/unittest/force-styles/tests/manybody-pair-sw.yaml index 0d18a55a9d..f3744ec031 100644 --- a/unittest/force-styles/tests/manybody-pair-sw.yaml +++ b/unittest/force-styles/tests/manybody-pair-sw.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair sw pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: sw diff --git a/unittest/force-styles/tests/manybody-pair-tersoff.yaml b/unittest/force-styles/tests/manybody-pair-tersoff.yaml index b3f2e22f48..c3c6b39fd8 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair tersoff pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: tersoff diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml index 6427c8f9fa..5f6655aeb1 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair tersoff/mod pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: tersoff/mod diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml index f172c97895..e14866b11c 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair tersoff/mod/c pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: tersoff/mod/c diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml index 3cb005cf46..36a30ac27b 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair tersoff/table pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: tersoff/table diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml index d11fed80ca..05808d5520 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair tersoff/zbl pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: tersoff/zbl diff --git a/unittest/force-styles/tests/manybody-pair-vashishta.yaml b/unittest/force-styles/tests/manybody-pair-vashishta.yaml index d0f2eb94ad..50baf7d7a0 100644 --- a/unittest/force-styles/tests/manybody-pair-vashishta.yaml +++ b/unittest/force-styles/tests/manybody-pair-vashishta.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair vashishta pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: vashishta diff --git a/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml b/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml index b04f710dac..7bf18c0058 100644 --- a/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml +++ b/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair vashishta/table pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: vashishta/table 10000 0.2 diff --git a/unittest/force-styles/tests/manybody-pair_edip_multi.yaml b/unittest/force-styles/tests/manybody-pair_edip_multi.yaml index ae1200100b..5aa31dcc9e 100644 --- a/unittest/force-styles/tests/manybody-pair_edip_multi.yaml +++ b/unittest/force-styles/tests/manybody-pair_edip_multi.yaml @@ -6,7 +6,7 @@ prerequisites: ! | pair edip/multi pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! "" input_file: in.manybody pair_style: edip/multi diff --git a/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml b/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml index bdb35df831..02bf840ad9 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Jul 2020 date_generated: Sat Aug 1 16:17:46 202 -epsilon: 5e-14 +epsilon: 7.5e-14 prerequisites: ! | atom full pair born/coul/dsf diff --git a/unittest/force-styles/tests/mol-pair-buck.yaml b/unittest/force-styles/tests/mol-pair-buck.yaml index 947e2e9755..562ff550a5 100644 --- a/unittest/force-styles/tests/mol-pair-buck.yaml +++ b/unittest/force-styles/tests/mol-pair-buck.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Jul 2020 date_generated: Fri Jul 31 12:07:29 202 -epsilon: 5e-14 +epsilon: 7.5e-14 prerequisites: ! | atom full pair buck diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml index f93f53861d..ed7db64343 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Jul 2020 date_generated: Sat Aug 1 08:33:03 202 -epsilon: 5e-14 +epsilon: 5e-13 prerequisites: ! | atom full pair buck/coul/long diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml index 8082009c41..30891f3e60 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Jul 2020 date_generated: Sat Aug 1 08:36:45 202 -epsilon: 5e-14 +epsilon: 2.5e-13 prerequisites: ! | atom full pair buck/coul/msm diff --git a/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml b/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml index f37079d9ad..a0e6bbbe90 100644 --- a/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml @@ -8,7 +8,7 @@ prerequisites: ! | pre_commands: ! | variable units index metal variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic velocity all scale 100.0 diff --git a/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml b/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml index fcb8b91122..68f0a9c0a1 100644 --- a/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml @@ -8,7 +8,7 @@ prerequisites: ! | pre_commands: ! | variable units index metal variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic velocity all scale 100.0 diff --git a/unittest/force-styles/tests/mol-pair-e3b.yaml b/unittest/force-styles/tests/mol-pair-e3b.yaml index 961cd77784..342db5b02b 100644 --- a/unittest/force-styles/tests/mol-pair-e3b.yaml +++ b/unittest/force-styles/tests/mol-pair-e3b.yaml @@ -8,7 +8,7 @@ prerequisites: ! | pair e3b pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic input_file: in.fourmol diff --git a/unittest/force-styles/tests/mol-pair-lj_cubic.yaml b/unittest/force-styles/tests/mol-pair-lj_cubic.yaml index 3850747330..f7ac67a3a9 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cubic.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cubic.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Jul 2020 date_generated: Sat Aug 1 13:39:00 202 -epsilon: 5e-14 +epsilon: 7.5e-14 prerequisites: ! | atom full pair lj/cubic diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml index 3c550f4a7d..cccc9ba760 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair lj/cut/tip4p/cut pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic input_file: in.fourmol diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml index 7b334554b3..820bef3fc3 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml @@ -8,7 +8,7 @@ prerequisites: ! | kspace pppm/tip4p pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 0 diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml index 254b45b510..f9fcfd8a40 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml @@ -8,7 +8,7 @@ prerequisites: ! | kspace pppm/tip4p pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 0 diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml index cab2e7c3c1..40a342f24a 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml @@ -8,7 +8,7 @@ prerequisites: ! | kspace pppm/tip4p pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 16 diff --git a/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml index 6e7a91b1d4..b713dbfdd6 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml @@ -8,7 +8,7 @@ prerequisites: ! | kspace pppm/disp/tip4p pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 0 diff --git a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml index 359f98d281..411716eb84 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml @@ -8,7 +8,7 @@ prerequisites: ! | kspace pppm/disp/tip4p pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 16 diff --git a/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml b/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml index 2d9e3c7666..8bf231754b 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml @@ -1,13 +1,13 @@ --- lammps_version: 21 Jul 2020 date_generated: Thu Aug 6 16:52:44 202 -epsilon: 1e-14 +epsilon: 7.5e-13 prerequisites: ! | atom full pair tip4p/cut pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic input_file: in.fourmol diff --git a/unittest/force-styles/tests/mol-pair-tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-tip4p_long.yaml index 9d96a981c2..a81c8caab3 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_long.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair tip4p/long pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 0 diff --git a/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml b/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml index c55d60adf9..156e60afdd 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml @@ -9,7 +9,7 @@ prerequisites: ! | pair lj/cut pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 0 diff --git a/unittest/force-styles/tests/mol-pair-tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-tip4p_table.yaml index 6dd612151f..83d7d6d289 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_table.yaml @@ -7,7 +7,7 @@ prerequisites: ! | pair tip4p/long pre_commands: ! | variable newton_pair delete - variable newton_pair index on + if "$(is_active(package,gpu)) > 0.0" then "variable newton_pair index off" else "variable newton_pair index on" post_commands: ! | pair_modify mix arithmetic pair_modify table 16 diff --git a/unittest/force-styles/tests/mol-pair-zbl.yaml b/unittest/force-styles/tests/mol-pair-zbl.yaml index 8aca114255..48046b9584 100644 --- a/unittest/force-styles/tests/mol-pair-zbl.yaml +++ b/unittest/force-styles/tests/mol-pair-zbl.yaml @@ -1,7 +1,7 @@ --- lammps_version: 21 Jul 2020 date_generated: Sat Aug 1 14:40:56 202 -epsilon: 1e-12 +epsilon: 2e-12 prerequisites: ! | atom full pair zbl From 5127071da27955a5e529bfaaf0ffaabc23aef142 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Wed, 26 Aug 2020 18:41:32 -0400 Subject: [PATCH 003/104] Fixes segfault due to uninitialized pointers --- src/KSPACE/pair_buck_coul_long.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/KSPACE/pair_buck_coul_long.cpp b/src/KSPACE/pair_buck_coul_long.cpp index a46424baf7..a63047ea9f 100644 --- a/src/KSPACE/pair_buck_coul_long.cpp +++ b/src/KSPACE/pair_buck_coul_long.cpp @@ -43,7 +43,17 @@ PairBuckCoulLong::PairBuckCoulLong(LAMMPS *lmp) : Pair(lmp) { ewaldflag = pppmflag = 1; writedata = 1; - ftable = NULL; + ftable = nullptr; + cut_lj = nullptr; + cut_ljsq = nullptr; + a = nullptr; + rho = nullptr; + c = nullptr; + rhoinv = nullptr; + buck1 = nullptr; + buck2 = nullptr; + offset = nullptr; + cut_respa = nullptr; } /* ---------------------------------------------------------------------- */ From 9b0c07f79781bfd418f01652b3d0be912f64550f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Thu, 27 Aug 2020 19:06:29 -0400 Subject: [PATCH 004/104] remove undesired trailing whitespace --- .../force-styles/tests/mol-pair-born.yaml | 28 ++++++++--------- .../tests/mol-pair-born_coul_dsf.yaml | 28 ++++++++--------- .../tests/mol-pair-born_coul_long.yaml | 30 +++++++++---------- .../tests/mol-pair-born_coul_msm.yaml | 30 +++++++++---------- .../tests/mol-pair-born_coul_wolf.yaml | 28 ++++++++--------- .../force-styles/tests/mol-pair-morse.yaml | 30 +++++++++---------- 6 files changed, 87 insertions(+), 87 deletions(-) diff --git a/unittest/force-styles/tests/mol-pair-born.yaml b/unittest/force-styles/tests/mol-pair-born.yaml index ed7b5976b0..2323ddee17 100644 --- a/unittest/force-styles/tests/mol-pair-born.yaml +++ b/unittest/force-styles/tests/mol-pair-born.yaml @@ -10,20 +10,20 @@ post_commands: ! "" input_file: in.fourmol pair_style: born 8.0 pair_coeff: ! | - 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 - 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 - 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 - 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 - 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 - 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 - 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 - 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 - 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 + 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 + 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 + 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 + 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 + 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 + 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 + 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 extract: ! | a 2 diff --git a/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml b/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml index 02bf840ad9..cd6b6abab0 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml @@ -10,20 +10,20 @@ post_commands: ! "" input_file: in.fourmol pair_style: born/coul/dsf 0.25 8.0 pair_coeff: ! | - 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 - 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 - 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 - 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 - 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 - 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 - 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 - 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 - 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 + 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 + 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 + 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 + 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 + 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 + 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 + 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 extract: ! "" natoms: 29 diff --git a/unittest/force-styles/tests/mol-pair-born_coul_long.yaml b/unittest/force-styles/tests/mol-pair-born_coul_long.yaml index e45f7dc6b7..e35b4417d9 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_long.yaml @@ -15,21 +15,21 @@ post_commands: ! | input_file: in.fourmol pair_style: born/coul/long 8.0 pair_coeff: ! | - 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 - 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 - 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 - 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 - 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 - 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 - 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 - 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 - 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 + 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 + 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 + 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 + 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 + 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 + 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 + 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 extract: ! | cut_coul 0 natoms: 29 diff --git a/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml index 779a79dd9f..a06da1edc5 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml @@ -16,21 +16,21 @@ post_commands: ! | input_file: in.fourmol pair_style: born/coul/msm 12.0 pair_coeff: ! | - 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 - 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 - 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 - 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 - 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 - 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 - 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 - 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 - 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 + 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 + 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 + 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 + 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 + 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 + 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 + 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 extract: ! | cut_coul 0 natoms: 29 diff --git a/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml b/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml index 7d419e2da2..afaf63d7c3 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml @@ -10,20 +10,20 @@ post_commands: ! "" input_file: in.fourmol pair_style: born/coul/wolf 0.25 8.0 pair_coeff: ! | - 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 - 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 - 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 - 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 - 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 - 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 - 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 - 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 - 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 - 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 - 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 - 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 + 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 + 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 + 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 + 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 + 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 + 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 + 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 extract: ! "" natoms: 29 diff --git a/unittest/force-styles/tests/mol-pair-morse.yaml b/unittest/force-styles/tests/mol-pair-morse.yaml index 60e5f8736f..aae3f78199 100644 --- a/unittest/force-styles/tests/mol-pair-morse.yaml +++ b/unittest/force-styles/tests/mol-pair-morse.yaml @@ -10,21 +10,21 @@ post_commands: ! "" input_file: in.fourmol pair_style: morse 8.0 pair_coeff: ! | - 1 1 0.0202798941614106 2.78203488021395 2.725417159299 - 1 2 0.0101167811264648 3.9793050302425 1.90749569018897 - 1 3 0.0202934330695928 2.43948720203264 3.10711749999622 - 1 4 0.0175731334238374 2.48316585521317 3.05258880102438 - 1 5 0.0175731334238374 2.48316585521317 3.05258880102438 - 2 2 0.00503064360487288 6.98433077606902 1.08960295117864 - 2 3 0.0101296013842819 3.31380153807866 2.28919067558352 - 2 4 0.00497405122588691 14.0508902925745 0.544416409093563 - 2 5 0.00877114211614446 3.39491256196178 2.23466262511073 - 3 3 0.0203039874239943 2.17204344301477 3.48881895084762 - 3 4 0.0175825321440736 2.20660439192238 3.43428999287994 - 3 5 0.0175825321440736 2.20660439192238 3.43428999287994 - 4 4 0.0152259201379927 2.24227873774009 3.37976131582396 - 4 5 0.0152259201379927 2.24227873774009 3.37976131582396 - 5 5 0.0152259201379927 2.24227873774009 3.37976131582396 + 1 1 0.0202798941614106 2.78203488021395 2.725417159299 + 1 2 0.0101167811264648 3.9793050302425 1.90749569018897 + 1 3 0.0202934330695928 2.43948720203264 3.10711749999622 + 1 4 0.0175731334238374 2.48316585521317 3.05258880102438 + 1 5 0.0175731334238374 2.48316585521317 3.05258880102438 + 2 2 0.00503064360487288 6.98433077606902 1.08960295117864 + 2 3 0.0101296013842819 3.31380153807866 2.28919067558352 + 2 4 0.00497405122588691 14.0508902925745 0.544416409093563 + 2 5 0.00877114211614446 3.39491256196178 2.23466262511073 + 3 3 0.0203039874239943 2.17204344301477 3.48881895084762 + 3 4 0.0175825321440736 2.20660439192238 3.43428999287994 + 3 5 0.0175825321440736 2.20660439192238 3.43428999287994 + 4 4 0.0152259201379927 2.24227873774009 3.37976131582396 + 4 5 0.0152259201379927 2.24227873774009 3.37976131582396 + 5 5 0.0152259201379927 2.24227873774009 3.37976131582396 extract: ! | d0 2 r0 2 From 19311d408db82bab339c84090c4cbd451b5b5d77 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Feb 2021 23:10:43 -0500 Subject: [PATCH 005/104] use utils::trim() to remove extra whitespace from ctime() output. --- unittest/force-styles/test_angle_style.cpp | 3 +-- unittest/force-styles/test_bond_style.cpp | 3 +-- unittest/force-styles/test_dihedral_style.cpp | 3 +-- unittest/force-styles/test_fix_timestep.cpp | 3 +-- unittest/force-styles/test_improper_style.cpp | 3 +-- unittest/force-styles/test_pair_style.cpp | 3 +-- 6 files changed, 6 insertions(+), 12 deletions(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index 833aa69174..bf5cb34e7f 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -240,8 +240,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // date_generated std::time_t now = time(NULL); - block = ctime(&now); - block = block.substr(0, block.find("\n") - 1); + block = utils::trim(ctime(&now)); writer.emit("date_generated", block); // epsilon diff --git a/unittest/force-styles/test_bond_style.cpp b/unittest/force-styles/test_bond_style.cpp index 0d20a0bb62..d6a6e9c82d 100644 --- a/unittest/force-styles/test_bond_style.cpp +++ b/unittest/force-styles/test_bond_style.cpp @@ -240,8 +240,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // date_generated std::time_t now = time(NULL); - block = ctime(&now); - block = block.substr(0, block.find("\n") - 1); + block = utils::trim(ctime(&now)); writer.emit("date_generated", block); // epsilon diff --git a/unittest/force-styles/test_dihedral_style.cpp b/unittest/force-styles/test_dihedral_style.cpp index e60968bb0a..a27c50afb7 100644 --- a/unittest/force-styles/test_dihedral_style.cpp +++ b/unittest/force-styles/test_dihedral_style.cpp @@ -249,8 +249,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // date_generated std::time_t now = time(NULL); - block = ctime(&now); - block = block.substr(0, block.find("\n") - 1); + block = utils::trim(ctime(&now)); writer.emit("date_generated", block); // epsilon diff --git a/unittest/force-styles/test_fix_timestep.cpp b/unittest/force-styles/test_fix_timestep.cpp index e4b0fa6e02..2680367c88 100644 --- a/unittest/force-styles/test_fix_timestep.cpp +++ b/unittest/force-styles/test_fix_timestep.cpp @@ -198,8 +198,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // date_generated std::time_t now = time(NULL); - block = ctime(&now); - block = block.substr(0, block.find("\n") - 1); + block = utils::trim(ctime(&now)); writer.emit("date_generated", block); // epsilon diff --git a/unittest/force-styles/test_improper_style.cpp b/unittest/force-styles/test_improper_style.cpp index 858db0fb65..b13b571546 100644 --- a/unittest/force-styles/test_improper_style.cpp +++ b/unittest/force-styles/test_improper_style.cpp @@ -240,8 +240,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // date_generated std::time_t now = time(NULL); - block = ctime(&now); - block = block.substr(0, block.find("\n") - 1); + block = utils::trim(ctime(&now)); writer.emit("date_generated", block); // epsilon diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index aa0edfa2ad..4e1ad8d0e3 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -244,8 +244,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // date_generated std::time_t now = time(NULL); - block = ctime(&now); - block = block.substr(0, block.find("\n") - 1); + block = utils::trim(ctime(&now)); writer.emit("date_generated", block); // epsilon From 981ed019837051167a99303dc38d538e6d9f1a18 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 26 Feb 2021 23:16:51 -0500 Subject: [PATCH 006/104] recreate all yaml files with updated timestamps --- unittest/force-styles/tests/angle-charmm.yaml | 4 +- unittest/force-styles/tests/angle-class2.yaml | 4 +- .../force-styles/tests/angle-class2_p6.yaml | 4 +- unittest/force-styles/tests/angle-cosine.yaml | 4 +- .../tests/angle-cosine_delta.yaml | 4 +- .../tests/angle-cosine_periodic.yaml | 4 +- .../tests/angle-cosine_shift.yaml | 4 +- .../tests/angle-cosine_shift_exp.yaml | 4 +- .../tests/angle-cosine_squared.yaml | 4 +- unittest/force-styles/tests/angle-cross.yaml | 4 +- .../force-styles/tests/angle-fourier.yaml | 4 +- .../tests/angle-fourier_simple.yaml | 4 +- .../force-styles/tests/angle-gaussian.yaml | 4 +- .../force-styles/tests/angle-harmonic.yaml | 4 +- unittest/force-styles/tests/angle-hybrid.yaml | 4 +- unittest/force-styles/tests/angle-mm3.yaml | 4 +- .../force-styles/tests/angle-quartic.yaml | 4 +- .../tests/angle-table_linear.yaml | 4 +- .../tests/angle-table_spline.yaml | 4 +- unittest/force-styles/tests/angle-zero.yaml | 4 +- .../force-styles/tests/atomic-pair-adp.yaml | 4 +- .../force-styles/tests/atomic-pair-atm.yaml | 4 +- .../force-styles/tests/atomic-pair-beck.yaml | 4 +- .../force-styles/tests/atomic-pair-born.yaml | 4 +- .../tests/atomic-pair-colloid.yaml | 4 +- .../tests/atomic-pair-colloid_multi.yaml | 4 +- .../tests/atomic-pair-colloid_multi_tri.yaml | 4 +- .../tests/atomic-pair-colloid_tiled.yaml | 4 +- .../tests/atomic-pair-colloid_tiled_tri.yaml | 4 +- .../force-styles/tests/atomic-pair-eam.yaml | 4 +- .../tests/atomic-pair-eam_alloy.yaml | 4 +- .../tests/atomic-pair-eam_alloy_real.yaml | 4 +- .../tests/atomic-pair-eam_cd.yaml | 4 +- .../tests/atomic-pair-eam_cd_old.yaml | 4 +- .../tests/atomic-pair-eam_cd_real.yaml | 4 +- .../tests/atomic-pair-eam_fs.yaml | 4 +- .../tests/atomic-pair-eam_fs_real.yaml | 4 +- .../tests/atomic-pair-eam_he.yaml | 4 +- .../tests/atomic-pair-eam_he_real.yaml | 4 +- .../tests/atomic-pair-eam_real.yaml | 4 +- .../force-styles/tests/atomic-pair-edip.yaml | 4 +- .../force-styles/tests/atomic-pair-eim.yaml | 4 +- .../force-styles/tests/atomic-pair-gauss.yaml | 4 +- .../tests/atomic-pair-hybrid-eam.yaml | 4 +- .../tests/atomic-pair-hybrid-eam_fs.yaml | 4 +- .../tests/atomic-pair-kim_lj.yaml | 4 +- .../tests/atomic-pair-meam_c.yaml | 4 +- .../tests/atomic-pair-meam_spline.yaml | 4 +- .../tests/atomic-pair-meam_sw_spline.yaml | 4 +- .../force-styles/tests/atomic-pair-momb.yaml | 4 +- .../tests/atomic-pair-polymorphic_eam.yaml | 4 +- .../tests/atomic-pair-reax_c.yaml | 4 +- .../tests/atomic-pair-reax_c_lgvdw.yaml | 4 +- .../tests/atomic-pair-reax_c_noqeq.yaml | 4 +- .../tests/atomic-pair-table_bitmap.yaml | 4 +- .../tests/atomic-pair-table_linear.yaml | 4 +- .../tests/atomic-pair-table_lookup.yaml | 4 +- .../tests/atomic-pair-table_spline.yaml | 4 +- .../tests/atomic-pair-yukawa_colloid.yaml | 4 +- unittest/force-styles/tests/bond-class2.yaml | 4 +- unittest/force-styles/tests/bond-fene.yaml | 4 +- .../force-styles/tests/bond-fene_expand.yaml | 4 +- .../force-styles/tests/bond-gaussian.yaml | 4 +- unittest/force-styles/tests/bond-gromos.yaml | 6 +- .../force-styles/tests/bond-harmonic.yaml | 6 +- .../tests/bond-harmonic_shift.yaml | 6 +- .../tests/bond-harmonic_shift_cut.yaml | 6 +- unittest/force-styles/tests/bond-hybrid.yaml | 6 +- unittest/force-styles/tests/bond-mm3.yaml | 6 +- unittest/force-styles/tests/bond-morse.yaml | 6 +- .../force-styles/tests/bond-nonlinear.yaml | 6 +- unittest/force-styles/tests/bond-quartic.yaml | 4 +- .../force-styles/tests/bond-table_linear.yaml | 6 +- .../force-styles/tests/bond-table_spline.yaml | 6 +- unittest/force-styles/tests/bond-zero.yaml | 6 +- .../force-styles/tests/dihedral-charmm.yaml | 2 +- .../tests/dihedral-charmmfsw.yaml | 2 +- .../force-styles/tests/dihedral-class2.yaml | 2 +- .../tests/dihedral-cosine_shift_exp.yaml | 2 +- .../force-styles/tests/dihedral-fourier.yaml | 2 +- .../force-styles/tests/dihedral-harmonic.yaml | 2 +- .../force-styles/tests/dihedral-helix.yaml | 2 +- .../force-styles/tests/dihedral-hybrid.yaml | 2 +- .../tests/dihedral-multi_harmonic.yaml | 2 +- .../tests/dihedral-nharmonic.yaml | 2 +- .../force-styles/tests/dihedral-opls.yaml | 2 +- .../tests/dihedral-quadratic.yaml | 2 +- .../force-styles/tests/dihedral-zero.yaml | 2 +- .../tests/fix-timestep-addforce_const.yaml | 4 +- .../tests/fix-timestep-addforce_variable.yaml | 4 +- .../tests/fix-timestep-aveforce_const.yaml | 4 +- .../tests/fix-timestep-aveforce_variable.yaml | 4 +- .../force-styles/tests/fix-timestep-drag.yaml | 4 +- .../tests/fix-timestep-efield_const.yaml | 6 +- .../tests/fix-timestep-efield_region.yaml | 4 +- .../tests/fix-timestep-efield_variable.yaml | 6 +- .../force-styles/tests/fix-timestep-heat.yaml | 4 +- .../tests/fix-timestep-heat_region.yaml | 4 +- .../tests/fix-timestep-lineforce.yaml | 4 +- .../tests/fix-timestep-momentum.yaml | 4 +- .../tests/fix-timestep-momentum_chunk.yaml | 4 +- .../force-styles/tests/fix-timestep-nph.yaml | 4 +- .../tests/fix-timestep-npt_aniso.yaml | 4 +- .../tests/fix-timestep-npt_iso.yaml | 4 +- .../tests/fix-timestep-npt_tri.yaml | 6 +- .../force-styles/tests/fix-timestep-nve.yaml | 4 +- .../tests/fix-timestep-nve_limit.yaml | 4 +- .../tests/fix-timestep-nve_noforce.yaml | 4 +- .../force-styles/tests/fix-timestep-nvt.yaml | 4 +- .../tests/fix-timestep-oneway.yaml | 4 +- .../tests/fix-timestep-planeforce.yaml | 4 +- .../fix-timestep-press_berendsen_iso.yaml | 4 +- .../tests/fix-timestep-rattle_angle.yaml | 4 +- .../tests/fix-timestep-rattle_bond.yaml | 4 +- .../tests/fix-timestep-restrain.yaml | 6 +- .../tests/fix-timestep-rigid_group.yaml | 4 +- .../tests/fix-timestep-rigid_molecule.yaml | 4 +- .../fix-timestep-rigid_molecule_tri.yaml | 26 +-- .../tests/fix-timestep-rigid_nph.yaml | 4 +- .../tests/fix-timestep-rigid_nph_small.yaml | 4 +- .../tests/fix-timestep-rigid_npt.yaml | 4 +- .../tests/fix-timestep-rigid_npt_small.yaml | 4 +- .../tests/fix-timestep-rigid_nve_group.yaml | 4 +- .../fix-timestep-rigid_nve_molecule.yaml | 4 +- .../tests/fix-timestep-rigid_nve_single.yaml | 4 +- .../tests/fix-timestep-rigid_nve_small.yaml | 4 +- .../tests/fix-timestep-rigid_nvt.yaml | 4 +- .../tests/fix-timestep-rigid_nvt_small.yaml | 4 +- .../tests/fix-timestep-rigid_single.yaml | 4 +- .../tests/fix-timestep-rigid_small.yaml | 4 +- .../tests/fix-timestep-setforce_const.yaml | 4 +- .../tests/fix-timestep-setforce_region.yaml | 4 +- .../tests/fix-timestep-setforce_variable.yaml | 4 +- .../tests/fix-timestep-shake_angle.yaml | 4 +- .../tests/fix-timestep-shake_bond.yaml | 4 +- .../tests/fix-timestep-smd_couple.yaml | 4 +- .../tests/fix-timestep-smd_tether.yaml | 6 +- .../tests/fix-timestep-spring_chunk.yaml | 4 +- .../tests/fix-timestep-spring_couple.yaml | 4 +- .../tests/fix-timestep-spring_rg.yaml | 4 +- .../tests/fix-timestep-spring_self.yaml | 4 +- .../tests/fix-timestep-spring_tether.yaml | 4 +- .../tests/fix-timestep-temp_berendsen.yaml | 4 +- .../tests/fix-timestep-temp_csld.yaml | 4 +- .../tests/fix-timestep-temp_csvr.yaml | 4 +- .../tests/fix-timestep-temp_rescale.yaml | 4 +- .../fix-timestep-wall_harmonic_const.yaml | 6 +- .../tests/fix-timestep-wall_lj1043_const.yaml | 6 +- .../tests/fix-timestep-wall_lj126_const.yaml | 6 +- .../tests/fix-timestep-wall_lj93_const.yaml | 6 +- .../tests/fix-timestep-wall_morse_const.yaml | 6 +- .../force-styles/tests/improper-class2.yaml | 2 +- .../force-styles/tests/improper-cossq.yaml | 2 +- .../force-styles/tests/improper-cvff.yaml | 2 +- .../force-styles/tests/improper-distance.yaml | 2 +- .../force-styles/tests/improper-distharm.yaml | 2 +- .../force-styles/tests/improper-fourier.yaml | 2 +- .../force-styles/tests/improper-harmonic.yaml | 2 +- .../force-styles/tests/improper-hybrid.yaml | 2 +- .../tests/improper-inversion_harmonic.yaml | 2 +- .../force-styles/tests/improper-ring.yaml | 2 +- .../tests/improper-sqdistharm.yaml | 2 +- .../force-styles/tests/improper-umbrella.yaml | 2 +- .../force-styles/tests/improper-zero.yaml | 2 +- unittest/force-styles/tests/kspace-ewald.yaml | 4 +- .../force-styles/tests/kspace-ewald_disp.yaml | 54 ++--- .../tests/kspace-ewald_nozforce.yaml | 4 +- .../force-styles/tests/kspace-ewald_slab.yaml | 4 +- .../force-styles/tests/kspace-ewald_tri.yaml | 4 +- unittest/force-styles/tests/kspace-msm.yaml | 4 +- .../force-styles/tests/kspace-msm_cg.yaml | 4 +- .../force-styles/tests/kspace-msm_nopbc.yaml | 4 +- unittest/force-styles/tests/kspace-pppm.yaml | 4 +- .../force-styles/tests/kspace-pppm_ad.yaml | 4 +- .../force-styles/tests/kspace-pppm_cg.yaml | 4 +- .../force-styles/tests/kspace-pppm_cg_ad.yaml | 4 +- .../tests/kspace-pppm_cg_tiled.yaml | 4 +- .../force-styles/tests/kspace-pppm_disp.yaml | 4 +- .../tests/kspace-pppm_disp_ad.yaml | 4 +- .../tests/kspace-pppm_disp_ad_only.yaml | 4 +- .../tests/kspace-pppm_disp_only.yaml | 4 +- .../tests/kspace-pppm_disp_tip4p.yaml | 4 +- .../tests/kspace-pppm_nozforce.yaml | 4 +- .../force-styles/tests/kspace-pppm_slab.yaml | 4 +- .../tests/kspace-pppm_stagger.yaml | 104 ++++----- .../tests/kspace-pppm_stagger_tiled.yaml | 104 ++++----- .../force-styles/tests/kspace-pppm_tiled.yaml | 4 +- .../force-styles/tests/kspace-pppm_tip4p.yaml | 4 +- .../tests/kspace-pppm_tip4p_ad.yaml | 4 +- .../tests/kspace-pppm_tip4p_nozforce.yaml | 4 +- .../tests/kspace-pppm_tip4p_slab.yaml | 4 +- .../force-styles/tests/kspace-pppm_tri.yaml | 4 +- .../tests/manybody-pair-airebo.yaml | 4 +- .../tests/manybody-pair-airebo_00.yaml | 4 +- .../tests/manybody-pair-airebo_m.yaml | 4 +- .../tests/manybody-pair-airebo_m00.yaml | 4 +- .../force-styles/tests/manybody-pair-bop.yaml | 4 +- .../tests/manybody-pair-bop_save.yaml | 4 +- .../tests/manybody-pair-comb.yaml | 4 +- .../tests/manybody-pair-comb3.yaml | 4 +- .../tests/manybody-pair-edip_multi.yaml | 4 +- .../tests/manybody-pair-extep.yaml | 4 +- .../force-styles/tests/manybody-pair-gw.yaml | 4 +- .../tests/manybody-pair-gw_zbl.yaml | 4 +- .../tests/manybody-pair-lcbop.yaml | 4 +- .../tests/manybody-pair-meam_c.yaml | 4 +- .../tests/manybody-pair-mliap_snap.yaml | 12 +- .../tests/manybody-pair-mliap_snap_chem.yaml | 8 +- .../tests/manybody-pair-nb3b_harmonic.yaml | 4 +- .../tests/manybody-pair-polymorphic_sw.yaml | 4 +- .../manybody-pair-polymorphic_tersoff.yaml | 4 +- .../tests/manybody-pair-rebo.yaml | 4 +- .../tests/manybody-pair-snap.yaml | 12 +- .../tests/manybody-pair-snap_chem.yaml | 8 +- .../tests/manybody-pair-sw-multi.yaml | 4 +- .../force-styles/tests/manybody-pair-sw.yaml | 4 +- .../tests/manybody-pair-tersoff.yaml | 158 ++++++------- .../tests/manybody-pair-tersoff_mod.yaml | 210 +++++++++--------- .../tests/manybody-pair-tersoff_mod_c.yaml | 210 +++++++++--------- .../manybody-pair-tersoff_mod_c_shift.yaml | 4 +- .../manybody-pair-tersoff_mod_shift.yaml | 4 +- .../tests/manybody-pair-tersoff_shift.yaml | 4 +- .../tests/manybody-pair-tersoff_table.yaml | 4 +- .../tests/manybody-pair-tersoff_zbl.yaml | 188 ++++++++-------- .../manybody-pair-tersoff_zbl_shift.yaml | 4 +- .../tests/manybody-pair-vashishta.yaml | 4 +- .../tests/manybody-pair-vashishta_table.yaml | 4 +- .../force-styles/tests/mol-pair-beck.yaml | 4 +- .../force-styles/tests/mol-pair-born.yaml | 4 +- .../tests/mol-pair-born_coul_dsf.yaml | 4 +- .../tests/mol-pair-born_coul_dsf_cs.yaml | 4 +- .../tests/mol-pair-born_coul_long.yaml | 4 +- .../tests/mol-pair-born_coul_long_cs.yaml | 4 +- .../tests/mol-pair-born_coul_msm.yaml | 4 +- .../tests/mol-pair-born_coul_msm_table.yaml | 4 +- .../tests/mol-pair-born_coul_table_cs.yaml | 4 +- .../tests/mol-pair-born_coul_wolf.yaml | 4 +- .../tests/mol-pair-born_coul_wolf_cs.yaml | 4 +- .../force-styles/tests/mol-pair-buck.yaml | 4 +- .../tests/mol-pair-buck_coul_cut.yaml | 4 +- .../tests/mol-pair-buck_coul_long.yaml | 4 +- .../tests/mol-pair-buck_coul_long_cs.yaml | 4 +- .../tests/mol-pair-buck_coul_msm.yaml | 4 +- .../tests/mol-pair-buck_coul_msm_table.yaml | 4 +- .../tests/mol-pair-buck_coul_table.yaml | 4 +- .../tests/mol-pair-buck_coul_table_cs.yaml | 4 +- .../tests/mol-pair-buck_long_coul_long.yaml | 130 +++++------ .../tests/mol-pair-buck_long_coul_off.yaml | 4 +- .../mol-pair-buck_long_cut_coul_long.yaml | 4 +- .../force-styles/tests/mol-pair-buck_mdf.yaml | 4 +- .../tests/mol-pair-buck_table_coul_long.yaml | 4 +- .../tests/mol-pair-buck_table_coul_off.yaml | 4 +- .../tests/mol-pair-buck_table_coul_table.yaml | 130 +++++------ .../tests/mol-pair-cosine_squared.yaml | 4 +- .../force-styles/tests/mol-pair-coul_cut.yaml | 4 +- .../tests/mol-pair-coul_cut_soft.yaml | 4 +- .../tests/mol-pair-coul_debye.yaml | 4 +- .../tests/mol-pair-coul_diel.yaml | 4 +- .../force-styles/tests/mol-pair-coul_dsf.yaml | 4 +- .../tests/mol-pair-coul_long.yaml | 4 +- .../tests/mol-pair-coul_long_cs.yaml | 4 +- .../tests/mol-pair-coul_long_soft.yaml | 4 +- .../force-styles/tests/mol-pair-coul_msm.yaml | 4 +- .../tests/mol-pair-coul_msm_table.yaml | 4 +- .../tests/mol-pair-coul_shield.yaml | 4 +- .../tests/mol-pair-coul_slater_cut.yaml | 4 +- .../tests/mol-pair-coul_slater_long.yaml | 4 +- .../tests/mol-pair-coul_streitz_long.yaml | 4 +- .../tests/mol-pair-coul_streitz_wolf.yaml | 4 +- .../tests/mol-pair-coul_table.yaml | 4 +- .../tests/mol-pair-coul_table_cs.yaml | 4 +- .../tests/mol-pair-coul_wolf.yaml | 4 +- .../tests/mol-pair-coul_wolf_cs.yaml | 4 +- unittest/force-styles/tests/mol-pair-dpd.yaml | 4 +- .../tests/mol-pair-dpd_tstat.yaml | 4 +- unittest/force-styles/tests/mol-pair-e3b.yaml | 4 +- .../force-styles/tests/mol-pair-gauss.yaml | 4 +- .../tests/mol-pair-gauss_cut.yaml | 4 +- .../tests/mol-pair-hybrid-overlay.yaml | 4 +- .../force-styles/tests/mol-pair-hybrid.yaml | 4 +- .../tests/mol-pair-lennard_mdf.yaml | 4 +- .../force-styles/tests/mol-pair-lj96_cut.yaml | 4 +- .../tests/mol-pair-lj_charmm_coul_charmm.yaml | 4 +- ...l-pair-lj_charmm_coul_charmm_implicit.yaml | 4 +- .../tests/mol-pair-lj_charmm_coul_long.yaml | 4 +- .../mol-pair-lj_charmm_coul_long_soft.yaml | 4 +- .../tests/mol-pair-lj_charmm_coul_msm.yaml | 4 +- .../mol-pair-lj_charmm_coul_msm_table.yaml | 4 +- .../tests/mol-pair-lj_charmm_coul_table.yaml | 4 +- .../mol-pair-lj_charmmfsw_coul_charmmfsw.yaml | 4 +- .../mol-pair-lj_charmmfsw_coul_long.yaml | 4 +- .../mol-pair-lj_charmmfsw_coul_table.yaml | 4 +- .../tests/mol-pair-lj_class2.yaml | 4 +- .../tests/mol-pair-lj_class2_coul_cut.yaml | 4 +- .../mol-pair-lj_class2_coul_cut_soft.yaml | 4 +- .../tests/mol-pair-lj_class2_coul_long.yaml | 4 +- .../mol-pair-lj_class2_coul_long_cs.yaml | 4 +- .../mol-pair-lj_class2_coul_long_soft.yaml | 4 +- .../tests/mol-pair-lj_class2_coul_table.yaml | 4 +- .../mol-pair-lj_class2_coul_table_cs.yaml | 4 +- .../tests/mol-pair-lj_class2_soft.yaml | 4 +- .../force-styles/tests/mol-pair-lj_cubic.yaml | 4 +- .../force-styles/tests/mol-pair-lj_cut.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_cut.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_cut_soft.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_debye.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_dsf.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_long.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_long_cs.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_long_soft.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_msm.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_msm_table.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_table.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_table_cs.yaml | 4 +- .../tests/mol-pair-lj_cut_coul_wolf.yaml | 4 +- .../tests/mol-pair-lj_cut_soft.yaml | 4 +- .../tests/mol-pair-lj_cut_tip4p_cut.yaml | 4 +- .../tests/mol-pair-lj_cut_tip4p_long.yaml | 4 +- .../mol-pair-lj_cut_tip4p_long_soft.yaml | 4 +- .../tests/mol-pair-lj_cut_tip4p_table.yaml | 4 +- .../tests/mol-pair-lj_expand.yaml | 4 +- .../tests/mol-pair-lj_expand_coul_long.yaml | 4 +- .../tests/mol-pair-lj_expand_coul_table.yaml | 4 +- .../tests/mol-pair-lj_gromacs.yaml | 4 +- .../mol-pair-lj_gromacs_coul_gromacs.yaml | 4 +- .../tests/mol-pair-lj_long_coul_long.yaml | 130 +++++------ .../tests/mol-pair-lj_long_coul_off.yaml | 4 +- .../tests/mol-pair-lj_long_cut_coul_long.yaml | 4 +- .../mol-pair-lj_long_cut_tip4p_long.yaml | 4 +- .../tests/mol-pair-lj_long_tip4p_long.yaml | 98 ++++---- .../force-styles/tests/mol-pair-lj_mdf.yaml | 4 +- .../force-styles/tests/mol-pair-lj_sdk.yaml | 4 +- .../tests/mol-pair-lj_sdk_coul_long.yaml | 4 +- .../tests/mol-pair-lj_sdk_coul_msm.yaml | 4 +- .../tests/mol-pair-lj_sdk_coul_msm_table.yaml | 4 +- .../tests/mol-pair-lj_sdk_coul_table.yaml | 4 +- .../tests/mol-pair-lj_smooth.yaml | 4 +- .../tests/mol-pair-lj_smooth_linear.yaml | 4 +- .../tests/mol-pair-lj_table_coul_long.yaml | 4 +- .../tests/mol-pair-lj_table_coul_off.yaml | 4 +- .../tests/mol-pair-lj_table_coul_table.yaml | 4 +- .../tests/mol-pair-lj_table_tip4p_long.yaml | 4 +- .../tests/mol-pair-lj_table_tip4p_table.yaml | 4 +- .../force-styles/tests/mol-pair-mie_cut.yaml | 4 +- .../force-styles/tests/mol-pair-morse.yaml | 4 +- .../tests/mol-pair-morse_smooth_linear.yaml | 4 +- .../tests/mol-pair-morse_soft.yaml | 4 +- .../force-styles/tests/mol-pair-nm_cut.yaml | 4 +- .../tests/mol-pair-nm_cut_coul_cut.yaml | 4 +- .../tests/mol-pair-nm_cut_coul_long.yaml | 4 +- .../tests/mol-pair-nm_cut_coul_table.yaml | 4 +- .../tests/mol-pair-python_hybrid.yaml | 4 +- .../tests/mol-pair-python_lj.yaml | 4 +- .../force-styles/tests/mol-pair-soft.yaml | 4 +- .../force-styles/tests/mol-pair-table.yaml | 4 +- .../tests/mol-pair-tip4p_cut.yaml | 4 +- .../tests/mol-pair-tip4p_long.yaml | 4 +- .../tests/mol-pair-tip4p_long_soft.yaml | 4 +- .../tests/mol-pair-tip4p_table.yaml | 4 +- unittest/force-styles/tests/mol-pair-ufm.yaml | 4 +- .../force-styles/tests/mol-pair-wf_cut.yaml | 4 +- .../force-styles/tests/mol-pair-yukawa.yaml | 4 +- unittest/force-styles/tests/mol-pair-zbl.yaml | 4 +- .../force-styles/tests/mol-pair-zero.yaml | 4 +- 364 files changed, 1482 insertions(+), 1482 deletions(-) diff --git a/unittest/force-styles/tests/angle-charmm.yaml b/unittest/force-styles/tests/angle-charmm.yaml index 3d0dc17371..83c9609995 100644 --- a/unittest/force-styles/tests/angle-charmm.yaml +++ b/unittest/force-styles/tests/angle-charmm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-class2.yaml b/unittest/force-styles/tests/angle-class2.yaml index a82e2f66b3..ffd48d7727 100644 --- a/unittest/force-styles/tests/angle-class2.yaml +++ b/unittest/force-styles/tests/angle-class2.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-class2_p6.yaml b/unittest/force-styles/tests/angle-class2_p6.yaml index f8b3982573..72ee6626c8 100644 --- a/unittest/force-styles/tests/angle-class2_p6.yaml +++ b/unittest/force-styles/tests/angle-class2_p6.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cosine.yaml b/unittest/force-styles/tests/angle-cosine.yaml index 69d3c7439d..3b80dfe647 100644 --- a/unittest/force-styles/tests/angle-cosine.yaml +++ b/unittest/force-styles/tests/angle-cosine.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cosine_delta.yaml b/unittest/force-styles/tests/angle-cosine_delta.yaml index 131e91789f..e59eda767f 100644 --- a/unittest/force-styles/tests/angle-cosine_delta.yaml +++ b/unittest/force-styles/tests/angle-cosine_delta.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cosine_periodic.yaml b/unittest/force-styles/tests/angle-cosine_periodic.yaml index 814c837dcd..55beb13fdd 100644 --- a/unittest/force-styles/tests/angle-cosine_periodic.yaml +++ b/unittest/force-styles/tests/angle-cosine_periodic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cosine_shift.yaml b/unittest/force-styles/tests/angle-cosine_shift.yaml index 3ea5e257e0..0518db6d83 100644 --- a/unittest/force-styles/tests/angle-cosine_shift.yaml +++ b/unittest/force-styles/tests/angle-cosine_shift.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cosine_shift_exp.yaml b/unittest/force-styles/tests/angle-cosine_shift_exp.yaml index cf19a26b1f..f237af9bb2 100644 --- a/unittest/force-styles/tests/angle-cosine_shift_exp.yaml +++ b/unittest/force-styles/tests/angle-cosine_shift_exp.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cosine_squared.yaml b/unittest/force-styles/tests/angle-cosine_squared.yaml index c9ab2e5448..ad00a9e357 100644 --- a/unittest/force-styles/tests/angle-cosine_squared.yaml +++ b/unittest/force-styles/tests/angle-cosine_squared.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-cross.yaml b/unittest/force-styles/tests/angle-cross.yaml index ccaf5f3be6..5e5db1d8cb 100644 --- a/unittest/force-styles/tests/angle-cross.yaml +++ b/unittest/force-styles/tests/angle-cross.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-fourier.yaml b/unittest/force-styles/tests/angle-fourier.yaml index d36d2cefd7..487458bf60 100644 --- a/unittest/force-styles/tests/angle-fourier.yaml +++ b/unittest/force-styles/tests/angle-fourier.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-fourier_simple.yaml b/unittest/force-styles/tests/angle-fourier_simple.yaml index abd9218c7f..ee318b013f 100644 --- a/unittest/force-styles/tests/angle-fourier_simple.yaml +++ b/unittest/force-styles/tests/angle-fourier_simple.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-gaussian.yaml b/unittest/force-styles/tests/angle-gaussian.yaml index 0103811913..dd11d73b1f 100644 --- a/unittest/force-styles/tests/angle-gaussian.yaml +++ b/unittest/force-styles/tests/angle-gaussian.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 29 Oct 2020 -date_generated: Sat Nov 14 17:18:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-harmonic.yaml b/unittest/force-styles/tests/angle-harmonic.yaml index 6d9cf67210..7490bf6764 100644 --- a/unittest/force-styles/tests/angle-harmonic.yaml +++ b/unittest/force-styles/tests/angle-harmonic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-hybrid.yaml b/unittest/force-styles/tests/angle-hybrid.yaml index f68d23e790..a46c6c69e4 100644 --- a/unittest/force-styles/tests/angle-hybrid.yaml +++ b/unittest/force-styles/tests/angle-hybrid.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-mm3.yaml b/unittest/force-styles/tests/angle-mm3.yaml index d4bf2b8cb5..cf857f86d5 100644 --- a/unittest/force-styles/tests/angle-mm3.yaml +++ b/unittest/force-styles/tests/angle-mm3.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:24 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-quartic.yaml b/unittest/force-styles/tests/angle-quartic.yaml index 912825d3a2..3fd927ac4a 100644 --- a/unittest/force-styles/tests/angle-quartic.yaml +++ b/unittest/force-styles/tests/angle-quartic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 4e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-table_linear.yaml b/unittest/force-styles/tests/angle-table_linear.yaml index 7dc66d9edf..979750b11c 100644 --- a/unittest/force-styles/tests/angle-table_linear.yaml +++ b/unittest/force-styles/tests/angle-table_linear.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-table_spline.yaml b/unittest/force-styles/tests/angle-table_spline.yaml index 10edec26fd..7adb7240ec 100644 --- a/unittest/force-styles/tests/angle-table_spline.yaml +++ b/unittest/force-styles/tests/angle-table_spline.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/angle-zero.yaml b/unittest/force-styles/tests/angle-zero.yaml index 71f4451d72..b2f1a0ec90 100644 --- a/unittest/force-styles/tests/angle-zero.yaml +++ b/unittest/force-styles/tests/angle-zero.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 1e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/atomic-pair-adp.yaml b/unittest/force-styles/tests/atomic-pair-adp.yaml index c8eb06a3be..8d8a707bff 100644 --- a/unittest/force-styles/tests/atomic-pair-adp.yaml +++ b/unittest/force-styles/tests/atomic-pair-adp.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:58 2021 epsilon: 5e-13 prerequisites: ! | pair adp diff --git a/unittest/force-styles/tests/atomic-pair-atm.yaml b/unittest/force-styles/tests/atomic-pair-atm.yaml index 525cfdcd5f..0fc90345a3 100644 --- a/unittest/force-styles/tests/atomic-pair-atm.yaml +++ b/unittest/force-styles/tests/atomic-pair-atm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:58 2021 epsilon: 5e-12 prerequisites: ! | pair atm diff --git a/unittest/force-styles/tests/atomic-pair-beck.yaml b/unittest/force-styles/tests/atomic-pair-beck.yaml index e2398914a2..3faebc561b 100644 --- a/unittest/force-styles/tests/atomic-pair-beck.yaml +++ b/unittest/force-styles/tests/atomic-pair-beck.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-13 prerequisites: ! | pair beck diff --git a/unittest/force-styles/tests/atomic-pair-born.yaml b/unittest/force-styles/tests/atomic-pair-born.yaml index 4769fc729c..52fcbef141 100644 --- a/unittest/force-styles/tests/atomic-pair-born.yaml +++ b/unittest/force-styles/tests/atomic-pair-born.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-13 prerequisites: ! | pair born diff --git a/unittest/force-styles/tests/atomic-pair-colloid.yaml b/unittest/force-styles/tests/atomic-pair-colloid.yaml index 9ac3710674..537ac447b5 100644 --- a/unittest/force-styles/tests/atomic-pair-colloid.yaml +++ b/unittest/force-styles/tests/atomic-pair-colloid.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-14 prerequisites: ! | pair colloid diff --git a/unittest/force-styles/tests/atomic-pair-colloid_multi.yaml b/unittest/force-styles/tests/atomic-pair-colloid_multi.yaml index 7923d672eb..025a7faa05 100644 --- a/unittest/force-styles/tests/atomic-pair-colloid_multi.yaml +++ b/unittest/force-styles/tests/atomic-pair-colloid_multi.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-14 prerequisites: ! | pair colloid diff --git a/unittest/force-styles/tests/atomic-pair-colloid_multi_tri.yaml b/unittest/force-styles/tests/atomic-pair-colloid_multi_tri.yaml index 38d51f3566..9ead662a06 100644 --- a/unittest/force-styles/tests/atomic-pair-colloid_multi_tri.yaml +++ b/unittest/force-styles/tests/atomic-pair-colloid_multi_tri.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-13 prerequisites: ! | pair colloid diff --git a/unittest/force-styles/tests/atomic-pair-colloid_tiled.yaml b/unittest/force-styles/tests/atomic-pair-colloid_tiled.yaml index 516395e3c2..be3ba744d0 100644 --- a/unittest/force-styles/tests/atomic-pair-colloid_tiled.yaml +++ b/unittest/force-styles/tests/atomic-pair-colloid_tiled.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-14 prerequisites: ! | pair colloid diff --git a/unittest/force-styles/tests/atomic-pair-colloid_tiled_tri.yaml b/unittest/force-styles/tests/atomic-pair-colloid_tiled_tri.yaml index b52ad6fe37..cd6c7595e8 100644 --- a/unittest/force-styles/tests/atomic-pair-colloid_tiled_tri.yaml +++ b/unittest/force-styles/tests/atomic-pair-colloid_tiled_tri.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:59 2021 epsilon: 5e-13 prerequisites: ! | pair colloid diff --git a/unittest/force-styles/tests/atomic-pair-eam.yaml b/unittest/force-styles/tests/atomic-pair-eam.yaml index 455f932258..c606813d56 100644 --- a/unittest/force-styles/tests/atomic-pair-eam.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:00 2021 epsilon: 6e-12 prerequisites: ! | pair eam diff --git a/unittest/force-styles/tests/atomic-pair-eam_alloy.yaml b/unittest/force-styles/tests/atomic-pair-eam_alloy.yaml index a2d39bdd7c..072a0a97c0 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_alloy.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_alloy.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:00 2021 epsilon: 5e-12 prerequisites: ! | pair eam/alloy diff --git a/unittest/force-styles/tests/atomic-pair-eam_alloy_real.yaml b/unittest/force-styles/tests/atomic-pair-eam_alloy_real.yaml index 4684951547..033c341f08 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_alloy_real.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_alloy_real.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:00 2021 epsilon: 7.5e-12 prerequisites: ! | pair eam/alloy diff --git a/unittest/force-styles/tests/atomic-pair-eam_cd.yaml b/unittest/force-styles/tests/atomic-pair-eam_cd.yaml index c1d189e1d8..bda14a9e5a 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_cd.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_cd.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:00 2021 epsilon: 5e-12 prerequisites: ! | pair eam/cd diff --git a/unittest/force-styles/tests/atomic-pair-eam_cd_old.yaml b/unittest/force-styles/tests/atomic-pair-eam_cd_old.yaml index 6dd89be146..4f6891bae6 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_cd_old.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_cd_old.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:00 2021 epsilon: 5e-12 prerequisites: ! | pair eam/cd/old diff --git a/unittest/force-styles/tests/atomic-pair-eam_cd_real.yaml b/unittest/force-styles/tests/atomic-pair-eam_cd_real.yaml index bf5269b8cb..e2ac5f0cae 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_cd_real.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_cd_real.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:00 2021 epsilon: 5e-12 prerequisites: ! | pair eam/cd diff --git a/unittest/force-styles/tests/atomic-pair-eam_fs.yaml b/unittest/force-styles/tests/atomic-pair-eam_fs.yaml index f978b7d444..89ad740424 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_fs.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_fs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:01 2021 epsilon: 5e-12 prerequisites: ! | pair eam/fs diff --git a/unittest/force-styles/tests/atomic-pair-eam_fs_real.yaml b/unittest/force-styles/tests/atomic-pair-eam_fs_real.yaml index eae925a38d..bf7f4f338b 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_fs_real.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_fs_real.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:01 2021 epsilon: 7.5e-12 prerequisites: ! | pair eam/fs diff --git a/unittest/force-styles/tests/atomic-pair-eam_he.yaml b/unittest/force-styles/tests/atomic-pair-eam_he.yaml index f82b4182b3..001301fe1a 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_he.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_he.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Wed Jan 13 22:16:02 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:01 2021 epsilon: 5e-12 prerequisites: ! | pair eam/he diff --git a/unittest/force-styles/tests/atomic-pair-eam_he_real.yaml b/unittest/force-styles/tests/atomic-pair-eam_he_real.yaml index 62324447a3..236b9538a7 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_he_real.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_he_real.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Wed Jan 13 22:16:02 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:02 2021 epsilon: 7.5e-12 prerequisites: ! | pair eam/he diff --git a/unittest/force-styles/tests/atomic-pair-eam_real.yaml b/unittest/force-styles/tests/atomic-pair-eam_real.yaml index a9df9364a0..89e7c1ce0b 100644 --- a/unittest/force-styles/tests/atomic-pair-eam_real.yaml +++ b/unittest/force-styles/tests/atomic-pair-eam_real.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:02 2021 epsilon: 5e-12 prerequisites: ! | pair eam diff --git a/unittest/force-styles/tests/atomic-pair-edip.yaml b/unittest/force-styles/tests/atomic-pair-edip.yaml index 3d9f4a00fa..91b7fd8db4 100644 --- a/unittest/force-styles/tests/atomic-pair-edip.yaml +++ b/unittest/force-styles/tests/atomic-pair-edip.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:02 2021 epsilon: 7.5e-13 prerequisites: ! | pair edip diff --git a/unittest/force-styles/tests/atomic-pair-eim.yaml b/unittest/force-styles/tests/atomic-pair-eim.yaml index 8e9b4ee2c0..4814029a3c 100644 --- a/unittest/force-styles/tests/atomic-pair-eim.yaml +++ b/unittest/force-styles/tests/atomic-pair-eim.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:02 2021 epsilon: 1e-11 prerequisites: ! | pair eim diff --git a/unittest/force-styles/tests/atomic-pair-gauss.yaml b/unittest/force-styles/tests/atomic-pair-gauss.yaml index a6db06e019..7d4c2029db 100644 --- a/unittest/force-styles/tests/atomic-pair-gauss.yaml +++ b/unittest/force-styles/tests/atomic-pair-gauss.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:22 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:02 2021 epsilon: 5e-12 prerequisites: ! | pair gauss diff --git a/unittest/force-styles/tests/atomic-pair-hybrid-eam.yaml b/unittest/force-styles/tests/atomic-pair-hybrid-eam.yaml index b3569a7e74..a681657b65 100644 --- a/unittest/force-styles/tests/atomic-pair-hybrid-eam.yaml +++ b/unittest/force-styles/tests/atomic-pair-hybrid-eam.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:02 2021 epsilon: 1e-11 prerequisites: ! | pair eam/fs diff --git a/unittest/force-styles/tests/atomic-pair-hybrid-eam_fs.yaml b/unittest/force-styles/tests/atomic-pair-hybrid-eam_fs.yaml index 2098f90e13..d2f511b3ea 100644 --- a/unittest/force-styles/tests/atomic-pair-hybrid-eam_fs.yaml +++ b/unittest/force-styles/tests/atomic-pair-hybrid-eam_fs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:03 2021 epsilon: 5e-12 prerequisites: ! | pair eam/fs diff --git a/unittest/force-styles/tests/atomic-pair-kim_lj.yaml b/unittest/force-styles/tests/atomic-pair-kim_lj.yaml index 87d7994740..84bf844350 100644 --- a/unittest/force-styles/tests/atomic-pair-kim_lj.yaml +++ b/unittest/force-styles/tests/atomic-pair-kim_lj.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:03 2021 epsilon: 5e-13 prerequisites: ! | pair kim diff --git a/unittest/force-styles/tests/atomic-pair-meam_c.yaml b/unittest/force-styles/tests/atomic-pair-meam_c.yaml index 0d369326cc..7d93a698e0 100644 --- a/unittest/force-styles/tests/atomic-pair-meam_c.yaml +++ b/unittest/force-styles/tests/atomic-pair-meam_c.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:03 2021 epsilon: 5e-13 prerequisites: ! | pair meam/c diff --git a/unittest/force-styles/tests/atomic-pair-meam_spline.yaml b/unittest/force-styles/tests/atomic-pair-meam_spline.yaml index 43db461160..7fd61ac2aa 100644 --- a/unittest/force-styles/tests/atomic-pair-meam_spline.yaml +++ b/unittest/force-styles/tests/atomic-pair-meam_spline.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:03 2021 epsilon: 1e-14 prerequisites: ! | pair meam/spline diff --git a/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml b/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml index ca9bad14f5..b9f330e6de 100644 --- a/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml +++ b/unittest/force-styles/tests/atomic-pair-meam_sw_spline.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:03 2021 epsilon: 1e-14 prerequisites: ! | pair meam/sw/spline diff --git a/unittest/force-styles/tests/atomic-pair-momb.yaml b/unittest/force-styles/tests/atomic-pair-momb.yaml index 525198b071..2ee1c80ff0 100644 --- a/unittest/force-styles/tests/atomic-pair-momb.yaml +++ b/unittest/force-styles/tests/atomic-pair-momb.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:03 2021 epsilon: 2.5e-12 prerequisites: ! | pair momb diff --git a/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml b/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml index dcc041f6e0..57f0812bca 100644 --- a/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml +++ b/unittest/force-styles/tests/atomic-pair-polymorphic_eam.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:23 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:04 2021 epsilon: 1e-12 prerequisites: ! | pair polymorphic diff --git a/unittest/force-styles/tests/atomic-pair-reax_c.yaml b/unittest/force-styles/tests/atomic-pair-reax_c.yaml index b88eb7235b..fe6c93db05 100644 --- a/unittest/force-styles/tests/atomic-pair-reax_c.yaml +++ b/unittest/force-styles/tests/atomic-pair-reax_c.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:24 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:04 2021 epsilon: 2.5e-11 prerequisites: ! | pair reax/c diff --git a/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml b/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml index db4bb284fa..567bddf5ce 100644 --- a/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml +++ b/unittest/force-styles/tests/atomic-pair-reax_c_lgvdw.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:25 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:06 2021 epsilon: 2e-10 prerequisites: ! | pair reax/c diff --git a/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml b/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml index 32a75749b1..efdf3ff5de 100644 --- a/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml +++ b/unittest/force-styles/tests/atomic-pair-reax_c_noqeq.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:26 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:08 2021 epsilon: 5e-13 prerequisites: ! | pair reax/c diff --git a/unittest/force-styles/tests/atomic-pair-table_bitmap.yaml b/unittest/force-styles/tests/atomic-pair-table_bitmap.yaml index d4401d6895..c67ff58bf8 100644 --- a/unittest/force-styles/tests/atomic-pair-table_bitmap.yaml +++ b/unittest/force-styles/tests/atomic-pair-table_bitmap.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:09 2021 epsilon: 5e-13 prerequisites: ! | pair table diff --git a/unittest/force-styles/tests/atomic-pair-table_linear.yaml b/unittest/force-styles/tests/atomic-pair-table_linear.yaml index 14dd697e49..bb7f3959e0 100644 --- a/unittest/force-styles/tests/atomic-pair-table_linear.yaml +++ b/unittest/force-styles/tests/atomic-pair-table_linear.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:10 2021 epsilon: 5e-13 prerequisites: ! | pair table diff --git a/unittest/force-styles/tests/atomic-pair-table_lookup.yaml b/unittest/force-styles/tests/atomic-pair-table_lookup.yaml index 769d94b350..8752fa49a8 100644 --- a/unittest/force-styles/tests/atomic-pair-table_lookup.yaml +++ b/unittest/force-styles/tests/atomic-pair-table_lookup.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:10 2021 epsilon: 5e-13 prerequisites: ! | pair table diff --git a/unittest/force-styles/tests/atomic-pair-table_spline.yaml b/unittest/force-styles/tests/atomic-pair-table_spline.yaml index a4dce1338b..276dae27c2 100644 --- a/unittest/force-styles/tests/atomic-pair-table_spline.yaml +++ b/unittest/force-styles/tests/atomic-pair-table_spline.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:10 2021 epsilon: 5e-13 prerequisites: ! | pair table diff --git a/unittest/force-styles/tests/atomic-pair-yukawa_colloid.yaml b/unittest/force-styles/tests/atomic-pair-yukawa_colloid.yaml index 4011d89240..1529cf51b9 100644 --- a/unittest/force-styles/tests/atomic-pair-yukawa_colloid.yaml +++ b/unittest/force-styles/tests/atomic-pair-yukawa_colloid.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:10 2021 epsilon: 5e-14 prerequisites: ! | atom sphere diff --git a/unittest/force-styles/tests/bond-class2.yaml b/unittest/force-styles/tests/bond-class2.yaml index 13c2493d88..19647a56ed 100644 --- a/unittest/force-styles/tests/bond-class2.yaml +++ b/unittest/force-styles/tests/bond-class2.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/bond-fene.yaml b/unittest/force-styles/tests/bond-fene.yaml index dffbcf6f8b..00b66e2466 100644 --- a/unittest/force-styles/tests/bond-fene.yaml +++ b/unittest/force-styles/tests/bond-fene.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/bond-fene_expand.yaml b/unittest/force-styles/tests/bond-fene_expand.yaml index 8b3513737f..f29213e126 100644 --- a/unittest/force-styles/tests/bond-fene_expand.yaml +++ b/unittest/force-styles/tests/bond-fene_expand.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/bond-gaussian.yaml b/unittest/force-styles/tests/bond-gaussian.yaml index 92157d7155..b5553fb053 100644 --- a/unittest/force-styles/tests/bond-gaussian.yaml +++ b/unittest/force-styles/tests/bond-gaussian.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 29 Oct 2020 -date_generated: Sat Nov 14 16:49:01 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/bond-gromos.yaml b/unittest/force-styles/tests/bond-gromos.yaml index 14fc81b49c..13ad366fed 100644 --- a/unittest/force-styles/tests/bond-gromos.yaml +++ b/unittest/force-styles/tests/bond-gromos.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 350.0 1.3 4 650.0 1.2 5 450.0 1.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! | kappa 1 r0 1 diff --git a/unittest/force-styles/tests/bond-harmonic.yaml b/unittest/force-styles/tests/bond-harmonic.yaml index 0bbe86c3c2..a277586a2e 100644 --- a/unittest/force-styles/tests/bond-harmonic.yaml +++ b/unittest/force-styles/tests/bond-harmonic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 350.0 1.3 4 650.0 1.2 5 450.0 1.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! | kappa 1 r0 1 diff --git a/unittest/force-styles/tests/bond-harmonic_shift.yaml b/unittest/force-styles/tests/bond-harmonic_shift.yaml index bc8fa72d85..9726574bee 100644 --- a/unittest/force-styles/tests/bond-harmonic_shift.yaml +++ b/unittest/force-styles/tests/bond-harmonic_shift.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 350.0 1.3 0.3 4 650.0 1.2 0.2 5 450.0 1.0 0.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: -9395.51998238922 diff --git a/unittest/force-styles/tests/bond-harmonic_shift_cut.yaml b/unittest/force-styles/tests/bond-harmonic_shift_cut.yaml index 9fe6db9b1f..9406206497 100644 --- a/unittest/force-styles/tests/bond-harmonic_shift_cut.yaml +++ b/unittest/force-styles/tests/bond-harmonic_shift_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 350.0 1.3 0.3 4 650.0 1.2 0.2 5 450.0 1.0 0.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: 0 diff --git a/unittest/force-styles/tests/bond-hybrid.yaml b/unittest/force-styles/tests/bond-hybrid.yaml index 9e2d6f9be7..44d4579aa2 100644 --- a/unittest/force-styles/tests/bond-hybrid.yaml +++ b/unittest/force-styles/tests/bond-hybrid.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -16,7 +16,7 @@ bond_coeff: ! | 3 morse 7000.0 0.2 1.3 4 harmonic 650.0 1.2 5 harmonic 450.0 1.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: 4.63957309438403 diff --git a/unittest/force-styles/tests/bond-mm3.yaml b/unittest/force-styles/tests/bond-mm3.yaml index f93ee4ace3..4e4c2c19d3 100644 --- a/unittest/force-styles/tests/bond-mm3.yaml +++ b/unittest/force-styles/tests/bond-mm3.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 350.0 1.3 4 650.0 1.2 5 450.0 1.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: 4.24726500827314 diff --git a/unittest/force-styles/tests/bond-morse.yaml b/unittest/force-styles/tests/bond-morse.yaml index fea8739e5e..ba76e2f153 100644 --- a/unittest/force-styles/tests/bond-morse.yaml +++ b/unittest/force-styles/tests/bond-morse.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 7000.0 0.2 1.3 4 7500.0 0.4 1.2 5 7000.0 0.3 1.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! | r0 1 natoms: 29 diff --git a/unittest/force-styles/tests/bond-nonlinear.yaml b/unittest/force-styles/tests/bond-nonlinear.yaml index cb3e10d14f..ef4f59df5b 100644 --- a/unittest/force-styles/tests/bond-nonlinear.yaml +++ b/unittest/force-styles/tests/bond-nonlinear.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 350.0 1.3 2.0 4 650.0 1.2 1.4 5 450.0 1.0 1.1 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: 1.94517280328209 diff --git a/unittest/force-styles/tests/bond-quartic.yaml b/unittest/force-styles/tests/bond-quartic.yaml index b7248b64cf..9d49991d5a 100644 --- a/unittest/force-styles/tests/bond-quartic.yaml +++ b/unittest/force-styles/tests/bond-quartic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 10:06:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/bond-table_linear.yaml b/unittest/force-styles/tests/bond-table_linear.yaml index 307c9ef9bd..b2ffe6360a 100644 --- a/unittest/force-styles/tests/bond-table_linear.yaml +++ b/unittest/force-styles/tests/bond-table_linear.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:22 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 ${input_dir}/bond_table.txt harmonic_3 4 ${input_dir}/bond_table.txt harmonic_4 5 ${input_dir}/bond_table.txt harmonic_5 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: 4.83475893645922 diff --git a/unittest/force-styles/tests/bond-table_spline.yaml b/unittest/force-styles/tests/bond-table_spline.yaml index 23ee0426da..3b4ffe462e 100644 --- a/unittest/force-styles/tests/bond-table_spline.yaml +++ b/unittest/force-styles/tests/bond-table_spline.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 ${input_dir}/bond_table.txt harmonic_3 4 ${input_dir}/bond_table.txt harmonic_4 5 ${input_dir}/bond_table.txt harmonic_5 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! "" natoms: 29 init_energy: 4.78937402460163 diff --git a/unittest/force-styles/tests/bond-zero.yaml b/unittest/force-styles/tests/bond-zero.yaml index 9c87712465..e3458f7d50 100644 --- a/unittest/force-styles/tests/bond-zero.yaml +++ b/unittest/force-styles/tests/bond-zero.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:34 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:23 2021 epsilon: 1e-14 prerequisites: ! | atom full @@ -15,7 +15,7 @@ bond_coeff: ! | 3 1.3 4 1.2 5 1.0 -equilibrium: 5 1.5 1.1 1.3 1.2 1.0 +equilibrium: 5 1.5 1.1 1.3 1.2 1 extract: ! | r0 1 natoms: 29 diff --git a/unittest/force-styles/tests/dihedral-charmm.yaml b/unittest/force-styles/tests/dihedral-charmm.yaml index 18df3bcd0f..471e85de89 100644 --- a/unittest/force-styles/tests/dihedral-charmm.yaml +++ b/unittest/force-styles/tests/dihedral-charmm.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:32:00 202 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-charmmfsw.yaml b/unittest/force-styles/tests/dihedral-charmmfsw.yaml index f1aa53eb63..0f0a76c8de 100644 --- a/unittest/force-styles/tests/dihedral-charmmfsw.yaml +++ b/unittest/force-styles/tests/dihedral-charmmfsw.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:32:07 202 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-class2.yaml b/unittest/force-styles/tests/dihedral-class2.yaml index 9ba2319072..9dfcc918a5 100644 --- a/unittest/force-styles/tests/dihedral-class2.yaml +++ b/unittest/force-styles/tests/dihedral-class2.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 8e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-cosine_shift_exp.yaml b/unittest/force-styles/tests/dihedral-cosine_shift_exp.yaml index 69735c90a7..806a65bd8a 100644 --- a/unittest/force-styles/tests/dihedral-cosine_shift_exp.yaml +++ b/unittest/force-styles/tests/dihedral-cosine_shift_exp.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-fourier.yaml b/unittest/force-styles/tests/dihedral-fourier.yaml index b2e9dffad2..84b5d8f920 100644 --- a/unittest/force-styles/tests/dihedral-fourier.yaml +++ b/unittest/force-styles/tests/dihedral-fourier.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-harmonic.yaml b/unittest/force-styles/tests/dihedral-harmonic.yaml index 4e8fa89118..6c54a96142 100644 --- a/unittest/force-styles/tests/dihedral-harmonic.yaml +++ b/unittest/force-styles/tests/dihedral-harmonic.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-helix.yaml b/unittest/force-styles/tests/dihedral-helix.yaml index 992916d8ab..f775cd2164 100644 --- a/unittest/force-styles/tests/dihedral-helix.yaml +++ b/unittest/force-styles/tests/dihedral-helix.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 4e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-hybrid.yaml b/unittest/force-styles/tests/dihedral-hybrid.yaml index 4826754536..4747958fab 100644 --- a/unittest/force-styles/tests/dihedral-hybrid.yaml +++ b/unittest/force-styles/tests/dihedral-hybrid.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 20:43:34 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-multi_harmonic.yaml b/unittest/force-styles/tests/dihedral-multi_harmonic.yaml index 60ce4d574f..1694ed2e66 100644 --- a/unittest/force-styles/tests/dihedral-multi_harmonic.yaml +++ b/unittest/force-styles/tests/dihedral-multi_harmonic.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-nharmonic.yaml b/unittest/force-styles/tests/dihedral-nharmonic.yaml index b3101ff379..564864a636 100644 --- a/unittest/force-styles/tests/dihedral-nharmonic.yaml +++ b/unittest/force-styles/tests/dihedral-nharmonic.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-opls.yaml b/unittest/force-styles/tests/dihedral-opls.yaml index 3b0c897d68..03164e2c36 100644 --- a/unittest/force-styles/tests/dihedral-opls.yaml +++ b/unittest/force-styles/tests/dihedral-opls.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-quadratic.yaml b/unittest/force-styles/tests/dihedral-quadratic.yaml index c03382dc22..ed230b7c23 100644 --- a/unittest/force-styles/tests/dihedral-quadratic.yaml +++ b/unittest/force-styles/tests/dihedral-quadratic.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:38 202 +date_generated: Fri Feb 26 23:09:35 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/dihedral-zero.yaml b/unittest/force-styles/tests/dihedral-zero.yaml index 2573cf7501..04652cbfc6 100644 --- a/unittest/force-styles/tests/dihedral-zero.yaml +++ b/unittest/force-styles/tests/dihedral-zero.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 18:38:39 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-addforce_const.yaml b/unittest/force-styles/tests/fix-timestep-addforce_const.yaml index 39bbfcf280..47786b33fe 100644 --- a/unittest/force-styles/tests/fix-timestep-addforce_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-addforce_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 9e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-addforce_variable.yaml b/unittest/force-styles/tests/fix-timestep-addforce_variable.yaml index 421051601a..78f260bd39 100644 --- a/unittest/force-styles/tests/fix-timestep-addforce_variable.yaml +++ b/unittest/force-styles/tests/fix-timestep-addforce_variable.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 2e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-aveforce_const.yaml b/unittest/force-styles/tests/fix-timestep-aveforce_const.yaml index 18dd4cf4b2..34c6afbbf5 100644 --- a/unittest/force-styles/tests/fix-timestep-aveforce_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-aveforce_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 2e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-aveforce_variable.yaml b/unittest/force-styles/tests/fix-timestep-aveforce_variable.yaml index 41299b2ec8..6b52979777 100644 --- a/unittest/force-styles/tests/fix-timestep-aveforce_variable.yaml +++ b/unittest/force-styles/tests/fix-timestep-aveforce_variable.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 2.5e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-drag.yaml b/unittest/force-styles/tests/fix-timestep-drag.yaml index bb4908f55e..fbcee25721 100644 --- a/unittest/force-styles/tests/fix-timestep-drag.yaml +++ b/unittest/force-styles/tests/fix-timestep-drag.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-efield_const.yaml b/unittest/force-styles/tests/fix-timestep-efield_const.yaml index 394af87faa..cd0fe2b7d4 100644 --- a/unittest/force-styles/tests/fix-timestep-efield_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-efield_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 2e-13 prerequisites: ! | atom full @@ -13,7 +13,7 @@ input_file: in.fourmol natoms: 29 global_scalar: -0.0309186331146529 global_vector: ! |- - 3 0.0 -2.220446049250313e-16 2.220446049250313e-16 + 3 0 -2.220446049250313e-16 2.220446049250313e-16 run_pos: ! |2 1 -2.7045797446143222e-01 2.4912780824342802e+00 -1.6702148063946790e-01 2 3.1004707684044314e-01 2.9610914097014920e+00 -8.5452223796947857e-01 diff --git a/unittest/force-styles/tests/fix-timestep-efield_region.yaml b/unittest/force-styles/tests/fix-timestep-efield_region.yaml index f45b6c05c9..6312ce5d52 100644 --- a/unittest/force-styles/tests/fix-timestep-efield_region.yaml +++ b/unittest/force-styles/tests/fix-timestep-efield_region.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-efield_variable.yaml b/unittest/force-styles/tests/fix-timestep-efield_variable.yaml index 94137f59b8..13d43663a2 100644 --- a/unittest/force-styles/tests/fix-timestep-efield_variable.yaml +++ b/unittest/force-styles/tests/fix-timestep-efield_variable.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:53 2021 epsilon: 2e-13 prerequisites: ! | atom full @@ -18,7 +18,7 @@ input_file: in.fourmol natoms: 29 global_scalar: 0 global_vector: ! |- - 3 10.275935322301738 0.0 -1.1102230246251565e-16 + 3 10.275935322301738 0 -1.1102230246251565e-16 run_pos: ! |2 1 -2.7027400245078581e-01 2.4912153249078419e+00 -1.6697700443575972e-01 2 3.1048749486212474e-01 2.9612319277095587e+00 -8.5462053704633356e-01 diff --git a/unittest/force-styles/tests/fix-timestep-heat.yaml b/unittest/force-styles/tests/fix-timestep-heat.yaml index a7197528f5..a93468f7e8 100644 --- a/unittest/force-styles/tests/fix-timestep-heat.yaml +++ b/unittest/force-styles/tests/fix-timestep-heat.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-heat_region.yaml b/unittest/force-styles/tests/fix-timestep-heat_region.yaml index 1439af67ad..9c8f740456 100644 --- a/unittest/force-styles/tests/fix-timestep-heat_region.yaml +++ b/unittest/force-styles/tests/fix-timestep-heat_region.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-lineforce.yaml b/unittest/force-styles/tests/fix-timestep-lineforce.yaml index 8acfe82ce3..fbb3a4f16f 100644 --- a/unittest/force-styles/tests/fix-timestep-lineforce.yaml +++ b/unittest/force-styles/tests/fix-timestep-lineforce.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-momentum.yaml b/unittest/force-styles/tests/fix-timestep-momentum.yaml index 96a3e9d4bb..4ae3b928bf 100644 --- a/unittest/force-styles/tests/fix-timestep-momentum.yaml +++ b/unittest/force-styles/tests/fix-timestep-momentum.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-momentum_chunk.yaml b/unittest/force-styles/tests/fix-timestep-momentum_chunk.yaml index 454d9c632c..89e6518c7b 100644 --- a/unittest/force-styles/tests/fix-timestep-momentum_chunk.yaml +++ b/unittest/force-styles/tests/fix-timestep-momentum_chunk.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-nph.yaml b/unittest/force-styles/tests/fix-timestep-nph.yaml index 0eb8716aaf..a21fe19fa8 100644 --- a/unittest/force-styles/tests/fix-timestep-nph.yaml +++ b/unittest/force-styles/tests/fix-timestep-nph.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-npt_aniso.yaml b/unittest/force-styles/tests/fix-timestep-npt_aniso.yaml index b086a1b95e..b7d7a2a32e 100644 --- a/unittest/force-styles/tests/fix-timestep-npt_aniso.yaml +++ b/unittest/force-styles/tests/fix-timestep-npt_aniso.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 4e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-npt_iso.yaml b/unittest/force-styles/tests/fix-timestep-npt_iso.yaml index 8dec2a1bec..1a47662b76 100644 --- a/unittest/force-styles/tests/fix-timestep-npt_iso.yaml +++ b/unittest/force-styles/tests/fix-timestep-npt_iso.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 2e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-npt_tri.yaml b/unittest/force-styles/tests/fix-timestep-npt_tri.yaml index b4093b7a3d..c2a4da9695 100644 --- a/unittest/force-styles/tests/fix-timestep-npt_tri.yaml +++ b/unittest/force-styles/tests/fix-timestep-npt_tri.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:54 2021 epsilon: 5e-12 prerequisites: ! | atom full @@ -13,7 +13,7 @@ input_file: in.fourmol natoms: 29 global_scalar: 354.174797856098 global_vector: ! |- - 48 1.3901404465408471 5.463126417846173 27.522868094744837 0.6808509272696268 1.432899560678195 24.73621155835892 0.059175794171946315 0.058864829843401814 0.12700748296200176 0.02134537927441898 -0.006866713927713234 -0.03517153788806217 0.03214843910942283 0.03135716661218002 0.05847613666451851 0.010015733944968137 -0.004026286211139594 -0.020364872327366976 0.32458573874717506 0.03420953094338522 0.00010301961702814269 0.40071682483624077 0.09021935542363528 0.0016272628807846479 23.20496983817849 1.0856361420490914 5.469362788109317 3.86897924261614 0.20400675418492722 60.79661790199697 0.004555933286932949 0.004555933286932949 0.004555933286932949 0.0 0.0 0.0 23.105498800354294 21.982100664555755 76.44567329133054 2.242648057096569 0.36241390540377744 9.27169098501188 0.06450189547628359 0.006798140909455242 2.0472127318975922e-05 119.66012864844495 6.065599766319885 0.0019732846899264155 + 48 1.3901404465408471 5.463126417846173 27.522868094744837 0.6808509272696268 1.432899560678195 24.73621155835892 0.059175794171946315 0.058864829843401814 0.12700748296200176 0.02134537927441898 -0.006866713927713234 -0.03517153788806217 0.03214843910942283 0.03135716661218002 0.05847613666451851 0.010015733944968137 -0.004026286211139594 -0.020364872327366976 0.32458573874717506 0.03420953094338522 0.00010301961702814269 0.40071682483624077 0.09021935542363528 0.0016272628807846479 23.20496983817849 1.0856361420490914 5.469362788109317 3.86897924261614 0.20400675418492722 60.79661790199697 0.004555933286932949 0.004555933286932949 0.004555933286932949 0 0 0 23.105498800354294 21.982100664555755 76.44567329133054 2.242648057096569 0.36241390540377744 9.27169098501188 0.06450189547628359 0.006798140909455242 2.0472127318975922e-05 119.66012864844495 6.065599766319885 0.0019732846899264155 run_pos: ! |2 1 -8.2271095985417642e-01 2.8289040859356991e+00 -1.1444756137720979e-01 2 -2.2035635832079414e-01 3.3160751622563218e+00 -8.8905665482321261e-01 diff --git a/unittest/force-styles/tests/fix-timestep-nve.yaml b/unittest/force-styles/tests/fix-timestep-nve.yaml index 5d2efa1373..09d1efe402 100644 --- a/unittest/force-styles/tests/fix-timestep-nve.yaml +++ b/unittest/force-styles/tests/fix-timestep-nve.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:40 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-nve_limit.yaml b/unittest/force-styles/tests/fix-timestep-nve_limit.yaml index bc6a16704f..1efd576e57 100644 --- a/unittest/force-styles/tests/fix-timestep-nve_limit.yaml +++ b/unittest/force-styles/tests/fix-timestep-nve_limit.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml b/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml index 17e9923d45..33b5295a53 100644 --- a/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml +++ b/unittest/force-styles/tests/fix-timestep-nve_noforce.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-nvt.yaml b/unittest/force-styles/tests/fix-timestep-nvt.yaml index 6a4ead99c1..298b506ab2 100644 --- a/unittest/force-styles/tests/fix-timestep-nvt.yaml +++ b/unittest/force-styles/tests/fix-timestep-nvt.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-oneway.yaml b/unittest/force-styles/tests/fix-timestep-oneway.yaml index 01131a3803..413902e1ff 100644 --- a/unittest/force-styles/tests/fix-timestep-oneway.yaml +++ b/unittest/force-styles/tests/fix-timestep-oneway.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 4e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-planeforce.yaml b/unittest/force-styles/tests/fix-timestep-planeforce.yaml index e4ad9f124e..ba1b93f9f2 100644 --- a/unittest/force-styles/tests/fix-timestep-planeforce.yaml +++ b/unittest/force-styles/tests/fix-timestep-planeforce.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-press_berendsen_iso.yaml b/unittest/force-styles/tests/fix-timestep-press_berendsen_iso.yaml index 5bbf178dc3..c5bed62746 100644 --- a/unittest/force-styles/tests/fix-timestep-press_berendsen_iso.yaml +++ b/unittest/force-styles/tests/fix-timestep-press_berendsen_iso.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 2e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rattle_angle.yaml b/unittest/force-styles/tests/fix-timestep-rattle_angle.yaml index 03ba9a64b9..92ac0b5cab 100644 --- a/unittest/force-styles/tests/fix-timestep-rattle_angle.yaml +++ b/unittest/force-styles/tests/fix-timestep-rattle_angle.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 3e-10 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rattle_bond.yaml b/unittest/force-styles/tests/fix-timestep-rattle_bond.yaml index cad83187c6..2a4b6d9cb6 100644 --- a/unittest/force-styles/tests/fix-timestep-rattle_bond.yaml +++ b/unittest/force-styles/tests/fix-timestep-rattle_bond.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:55 2021 epsilon: 1e-10 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-restrain.yaml b/unittest/force-styles/tests/fix-timestep-restrain.yaml index b504554484..c6806c3176 100644 --- a/unittest/force-styles/tests/fix-timestep-restrain.yaml +++ b/unittest/force-styles/tests/fix-timestep-restrain.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:41 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 2e-13 prerequisites: ! | atom full @@ -13,7 +13,7 @@ input_file: in.fourmol natoms: 29 global_scalar: 114.558406487374 global_vector: ! |- - 3 0.15090319643872077 29.7021302625337 0.0 + 3 0.15090319643872077 29.7021302625337 0 run_pos: ! |2 1 -2.7049081044736850e-01 2.4911173559795530e+00 -1.6698991821614786e-01 2 3.0937052624736794e-01 2.9607167765013171e+00 -8.5481885843536709e-01 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_group.yaml b/unittest/force-styles/tests/fix-timestep-rigid_group.yaml index 00201c36b5..9646f73313 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_group.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_group.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:53 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml b/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml index 418614b035..bf27b25c5d 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_molecule.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:54 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml b/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml index f23297ece8..3a3f0cd59a 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_molecule_tri.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:54 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-12 prerequisites: ! | atom full @@ -14,7 +14,7 @@ post_commands: ! | input_file: in.fourmol natoms: 29 run_stress: ! |- - -4.9200116134789241e+01 -2.6907707565985238e+01 -6.0080860422273377e+00 -2.5620423972099417e+01 -1.3450224059984127e+01 -1.4947288486998911e+00 + -4.9200116134788829e+01 -2.6907707565985422e+01 -6.0080860422273261e+00 -2.5620423972099612e+01 -1.3450224059983762e+01 -1.4947288487001149e+00 global_scalar: 18.3405601674143 run_pos: ! |2 1 -2.7993683669226854e-01 2.4726588069312836e+00 -1.7200860244148508e-01 @@ -41,7 +41,7 @@ run_pos: ! |2 22 4.3655322291888483e+00 -4.2084949965552569e+00 -4.4622011117402334e+00 23 5.7380414793463101e+00 -3.5841969195032686e+00 -3.8827839830470232e+00 24 2.0701314765323913e+00 3.1499370533342308e+00 3.1565324852522920e+00 - 25 1.3030170721374779e+00 3.2711173927682236e+00 2.5081940917429755e+00 + 25 1.3030170721374770e+00 3.2711173927682236e+00 2.5081940917429755e+00 26 2.5776230782480054e+00 4.0127347068243875e+00 3.2182355138709262e+00 27 -1.9613581876744357e+00 -4.3556300596085160e+00 2.1101467673534788e+00 28 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678509e+00 @@ -64,15 +64,15 @@ run_vel: ! |2 15 -4.3301707382721859e-03 -3.1802661664634938e-03 3.2037919043360571e-03 16 -9.6715751018414326e-05 -5.0016572678960377e-04 1.4945658875149626e-03 17 6.5692180538157174e-04 3.6635779995305095e-04 8.3495414466050911e-04 - 18 3.6149625095704480e-04 -3.1032459262907435e-04 8.1043030117346128e-04 - 19 8.5103884665346124e-04 -1.4572280596788089e-03 1.0163621287634045e-03 - 20 -6.5204659278589121e-04 4.3989037444288817e-04 4.9909839028508280e-04 - 21 -1.3888125881903863e-03 -3.1978049143082245e-04 1.1455681499836596e-03 - 22 -1.6084223477729515e-03 -1.5355394240820991e-03 1.4772010826232349e-03 - 23 2.6392672378804170e-04 -3.9375414431174621e-03 -3.6991583139727824e-04 - 24 8.6062827067889477e-04 -9.4179873474469237e-04 5.5396395550012714e-04 - 25 1.5933645477487534e-03 -2.2139156625681600e-03 -5.5078029695647803e-04 - 26 -1.5679561743998831e-03 3.5146224354725699e-04 2.4446924193334539e-03 + 18 3.6149625095704670e-04 -3.1032459262907857e-04 8.1043030117346052e-04 + 19 8.5103884665345799e-04 -1.4572280596788108e-03 1.0163621287634071e-03 + 20 -6.5204659278590292e-04 4.3989037444289630e-04 4.9909839028508204e-04 + 21 -1.3888125881903854e-03 -3.1978049143082060e-04 1.1455681499836594e-03 + 22 -1.6084223477729519e-03 -1.5355394240820970e-03 1.4772010826232353e-03 + 23 2.6392672378803975e-04 -3.9375414431174552e-03 -3.6991583139727889e-04 + 24 8.6062827067889835e-04 -9.4179873474469346e-04 5.5396395550012497e-04 + 25 1.5933645477487516e-03 -2.2139156625681669e-03 -5.5078029695647564e-04 + 26 -1.5679561743998831e-03 3.5146224354726187e-04 2.4446924193334495e-03 27 -2.6510179146429716e-04 3.6306203629019116e-04 -5.6235585400647747e-04 28 -2.3068708109787484e-04 -8.5663070212203200e-04 2.1302563179109169e-03 29 -2.5054744388303732e-03 -1.6773997805290820e-04 2.8436699761004796e-03 diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml index 4e5c3cf1bc..4b4f53b240 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nph.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:55 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml index 11d6870a42..6a7fa3c8a5 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nph_small.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:55 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 6.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml b/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml index f85f2119b5..2b1fbc73b5 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_npt.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:56 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml index 4b5a717e25..008499c206 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_npt_small.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:56 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml index ee40036bf9..a78dd6c421 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_group.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:57 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:56 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml index d422c3d56e..32a3f6af71 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_molecule.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:57 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml index d72a0ff3b7..85aa11e3e0 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_single.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:58 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml index 74121559aa..87655f456b 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nve_small.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:58 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml index 8a3a1d9c31..be224eb6ad 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nvt.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:59 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml index 654b85416a..b0e0040070 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_nvt_small.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:36:59 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_single.yaml b/unittest/force-styles/tests/fix-timestep-rigid_single.yaml index e419416c7e..61957af75d 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_single.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_single.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:37:00 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-rigid_small.yaml b/unittest/force-styles/tests/fix-timestep-rigid_small.yaml index 2c5fa3a2c0..837363d059 100644 --- a/unittest/force-styles/tests/fix-timestep-rigid_small.yaml +++ b/unittest/force-styles/tests/fix-timestep-rigid_small.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 22:37:00 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-setforce_const.yaml b/unittest/force-styles/tests/fix-timestep-setforce_const.yaml index 4ff222aff6..05ea1b2adb 100644 --- a/unittest/force-styles/tests/fix-timestep-setforce_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-setforce_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 2e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-setforce_region.yaml b/unittest/force-styles/tests/fix-timestep-setforce_region.yaml index bf1d08df34..50eafa8f6a 100644 --- a/unittest/force-styles/tests/fix-timestep-setforce_region.yaml +++ b/unittest/force-styles/tests/fix-timestep-setforce_region.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:57 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-setforce_variable.yaml b/unittest/force-styles/tests/fix-timestep-setforce_variable.yaml index 960368a081..00a1b270f9 100644 --- a/unittest/force-styles/tests/fix-timestep-setforce_variable.yaml +++ b/unittest/force-styles/tests/fix-timestep-setforce_variable.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 1e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-shake_angle.yaml b/unittest/force-styles/tests/fix-timestep-shake_angle.yaml index 1cc3dfe429..3317f7a187 100644 --- a/unittest/force-styles/tests/fix-timestep-shake_angle.yaml +++ b/unittest/force-styles/tests/fix-timestep-shake_angle.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 3e-10 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-shake_bond.yaml b/unittest/force-styles/tests/fix-timestep-shake_bond.yaml index afbba6c6d7..41b3e8c1f9 100644 --- a/unittest/force-styles/tests/fix-timestep-shake_bond.yaml +++ b/unittest/force-styles/tests/fix-timestep-shake_bond.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 3.5e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-smd_couple.yaml b/unittest/force-styles/tests/fix-timestep-smd_couple.yaml index 3b2858ba00..7207392b84 100644 --- a/unittest/force-styles/tests/fix-timestep-smd_couple.yaml +++ b/unittest/force-styles/tests/fix-timestep-smd_couple.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-smd_tether.yaml b/unittest/force-styles/tests/fix-timestep-smd_tether.yaml index f25b7b0334..c6627219d7 100644 --- a/unittest/force-styles/tests/fix-timestep-smd_tether.yaml +++ b/unittest/force-styles/tests/fix-timestep-smd_tether.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 2e-14 prerequisites: ! | atom full @@ -12,7 +12,7 @@ post_commands: ! | input_file: in.fourmol natoms: 29 global_vector: ! |- - 7 3.468936708094085 -3.4952703851457807 -0.8657730938070575 5.0 1.1439828473945521 1.1439828473945521 0.0 + 7 3.468936708094085 -3.4952703851457807 -0.8657730938070575 5 1.1439828473945521 1.1439828473945521 0 run_pos: ! |2 1 -2.7043651355831022e-01 2.4911967678686477e+00 -1.6696328159792090e-01 2 3.1005937993458582e-01 2.9612162404086972e+00 -8.5466839405216255e-01 diff --git a/unittest/force-styles/tests/fix-timestep-spring_chunk.yaml b/unittest/force-styles/tests/fix-timestep-spring_chunk.yaml index 66a9ff9449..266d88dc85 100644 --- a/unittest/force-styles/tests/fix-timestep-spring_chunk.yaml +++ b/unittest/force-styles/tests/fix-timestep-spring_chunk.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 1e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-spring_couple.yaml b/unittest/force-styles/tests/fix-timestep-spring_couple.yaml index 66588fefaf..496f903c1a 100644 --- a/unittest/force-styles/tests/fix-timestep-spring_couple.yaml +++ b/unittest/force-styles/tests/fix-timestep-spring_couple.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-spring_rg.yaml b/unittest/force-styles/tests/fix-timestep-spring_rg.yaml index fbd7e9d879..bcb672321e 100644 --- a/unittest/force-styles/tests/fix-timestep-spring_rg.yaml +++ b/unittest/force-styles/tests/fix-timestep-spring_rg.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-spring_self.yaml b/unittest/force-styles/tests/fix-timestep-spring_self.yaml index 96755572bf..cf303b8757 100644 --- a/unittest/force-styles/tests/fix-timestep-spring_self.yaml +++ b/unittest/force-styles/tests/fix-timestep-spring_self.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:58 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-spring_tether.yaml b/unittest/force-styles/tests/fix-timestep-spring_tether.yaml index bdb2cad1d4..d7172d3811 100644 --- a/unittest/force-styles/tests/fix-timestep-spring_tether.yaml +++ b/unittest/force-styles/tests/fix-timestep-spring_tether.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-temp_berendsen.yaml b/unittest/force-styles/tests/fix-timestep-temp_berendsen.yaml index 7975b61a13..8b2d946782 100644 --- a/unittest/force-styles/tests/fix-timestep-temp_berendsen.yaml +++ b/unittest/force-styles/tests/fix-timestep-temp_berendsen.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-temp_csld.yaml b/unittest/force-styles/tests/fix-timestep-temp_csld.yaml index ef6535888d..a25a54e733 100644 --- a/unittest/force-styles/tests/fix-timestep-temp_csld.yaml +++ b/unittest/force-styles/tests/fix-timestep-temp_csld.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 2e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-temp_csvr.yaml b/unittest/force-styles/tests/fix-timestep-temp_csvr.yaml index 8716de39de..c66a1f2f59 100644 --- a/unittest/force-styles/tests/fix-timestep-temp_csvr.yaml +++ b/unittest/force-styles/tests/fix-timestep-temp_csvr.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 3e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-temp_rescale.yaml b/unittest/force-styles/tests/fix-timestep-temp_rescale.yaml index 6c53252d14..9cb1a096e5 100644 --- a/unittest/force-styles/tests/fix-timestep-temp_rescale.yaml +++ b/unittest/force-styles/tests/fix-timestep-temp_rescale.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml index e1de14d018..779d1b30c3 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_harmonic_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 3e-14 prerequisites: ! | atom full @@ -17,7 +17,7 @@ run_stress: ! |2- 0.0000000000000000e+00 7.2422093200265749e+02 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 global_scalar: 42.6997744353244 global_vector: ! |- - 2 0.0 161.92409617466126 + 2 0 161.92409617466126 run_pos: ! |2 1 -2.7051715090682593e-01 2.4891718422041942e+00 -1.6687343912524535e-01 2 3.1037661579862175e-01 2.9347166386691113e+00 -8.5496435221221156e-01 diff --git a/unittest/force-styles/tests/fix-timestep-wall_lj1043_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_lj1043_const.yaml index e8be8b41a2..1bf3d793fb 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_lj1043_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_lj1043_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 5e-14 prerequisites: ! | atom full @@ -17,7 +17,7 @@ run_stress: ! |2- 0.0000000000000000e+00 -2.6193298572154652e+02 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 global_scalar: -21.0862098649006 global_vector: ! |- - 2 0.0 -57.92496787419014 + 2 0 -57.92496787419014 run_pos: ! |2 1 -2.7044985531646820e-01 2.4925110873587433e+00 -1.6698786670029320e-01 2 3.0995988119031520e-01 2.9684930337266713e+00 -8.5459207531887627e-01 diff --git a/unittest/force-styles/tests/fix-timestep-wall_lj126_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_lj126_const.yaml index e65b582c09..9db35c4e80 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_lj126_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_lj126_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 2e-14 prerequisites: ! | atom full @@ -17,7 +17,7 @@ run_stress: ! |2- 0.0000000000000000e+00 -3.4585143439781433e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 global_scalar: -2.5475438051924 global_vector: ! |- - 2 0.0 -7.685735804480931 + 2 0 -7.685735804480931 run_pos: ! |2 1 -2.7045416679061030e-01 2.4913627730949424e+00 -1.6696242213969814e-01 2 3.1002806235873631e-01 2.9622866518897246e+00 -8.5465272505609957e-01 diff --git a/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml index d1c27927a2..451ce34c0b 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_lj93_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:59 2021 epsilon: 2e-14 prerequisites: ! | atom full @@ -17,7 +17,7 @@ run_stress: ! |2- 0.0000000000000000e+00 -5.0602303343219951e+01 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 global_scalar: -4.10898799728224 global_vector: ! |- - 2 0.0 -11.164431050504302 + 2 0 -11.164431050504302 run_pos: ! |2 1 -2.7045470054680359e-01 2.4914748797509958e+00 -1.6696421170224640e-01 2 3.1002519717316468e-01 2.9626113274873114e+00 -8.5465020014164161e-01 diff --git a/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml b/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml index 2b935dbf14..60261f9bfc 100644 --- a/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml +++ b/unittest/force-styles/tests/fix-timestep-wall_morse_const.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:43 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:10:00 2021 epsilon: 4e-14 prerequisites: ! | atom full @@ -17,7 +17,7 @@ run_stress: ! |2- 0.0000000000000000e+00 -1.6447328969000660e+03 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 global_scalar: -715.415406257395 global_vector: ! |- - 2 0.0 -362.76807567062644 + 2 0 -362.76807567062644 run_pos: ! |2 1 -2.7045893790409276e-01 2.5008322800634093e+00 -1.6714018607090517e-01 2 3.0963184116147618e-01 3.0014595399936281e+00 -8.5430140686816214e-01 diff --git a/unittest/force-styles/tests/improper-class2.yaml b/unittest/force-styles/tests/improper-class2.yaml index a02d8276ad..2ee0feaa6b 100644 --- a/unittest/force-styles/tests/improper-class2.yaml +++ b/unittest/force-styles/tests/improper-class2.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:14 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-cossq.yaml b/unittest/force-styles/tests/improper-cossq.yaml index a4043011a3..facb268a94 100644 --- a/unittest/force-styles/tests/improper-cossq.yaml +++ b/unittest/force-styles/tests/improper-cossq.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:38:24 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-cvff.yaml b/unittest/force-styles/tests/improper-cvff.yaml index 462b7e4427..1c432a683b 100644 --- a/unittest/force-styles/tests/improper-cvff.yaml +++ b/unittest/force-styles/tests/improper-cvff.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:14 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-distance.yaml b/unittest/force-styles/tests/improper-distance.yaml index 2de3d21c73..7401dc3f42 100644 --- a/unittest/force-styles/tests/improper-distance.yaml +++ b/unittest/force-styles/tests/improper-distance.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:14 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-distharm.yaml b/unittest/force-styles/tests/improper-distharm.yaml index e07d02aace..6d2bedcb9e 100644 --- a/unittest/force-styles/tests/improper-distharm.yaml +++ b/unittest/force-styles/tests/improper-distharm.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:14 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-fourier.yaml b/unittest/force-styles/tests/improper-fourier.yaml index 0a1b801656..4c3fa1ff7e 100644 --- a/unittest/force-styles/tests/improper-fourier.yaml +++ b/unittest/force-styles/tests/improper-fourier.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:15 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-harmonic.yaml b/unittest/force-styles/tests/improper-harmonic.yaml index 5daaa0c509..e10307e3a2 100644 --- a/unittest/force-styles/tests/improper-harmonic.yaml +++ b/unittest/force-styles/tests/improper-harmonic.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:15 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-hybrid.yaml b/unittest/force-styles/tests/improper-hybrid.yaml index 0f00d56909..5351cb86d4 100644 --- a/unittest/force-styles/tests/improper-hybrid.yaml +++ b/unittest/force-styles/tests/improper-hybrid.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 20:50:39 202 +date_generated: Fri Feb 26 23:09:36 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-inversion_harmonic.yaml b/unittest/force-styles/tests/improper-inversion_harmonic.yaml index 3cabd4c74a..e1fc0499a8 100644 --- a/unittest/force-styles/tests/improper-inversion_harmonic.yaml +++ b/unittest/force-styles/tests/improper-inversion_harmonic.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:15 202 +date_generated: Fri Feb 26 23:09:37 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-ring.yaml b/unittest/force-styles/tests/improper-ring.yaml index fb2750e36c..355a2ff170 100644 --- a/unittest/force-styles/tests/improper-ring.yaml +++ b/unittest/force-styles/tests/improper-ring.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:15 202 +date_generated: Fri Feb 26 23:09:37 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-sqdistharm.yaml b/unittest/force-styles/tests/improper-sqdistharm.yaml index ed40f1340f..e16dbde61d 100644 --- a/unittest/force-styles/tests/improper-sqdistharm.yaml +++ b/unittest/force-styles/tests/improper-sqdistharm.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:15 202 +date_generated: Fri Feb 26 23:09:37 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-umbrella.yaml b/unittest/force-styles/tests/improper-umbrella.yaml index 85fa142b49..f049680409 100644 --- a/unittest/force-styles/tests/improper-umbrella.yaml +++ b/unittest/force-styles/tests/improper-umbrella.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:35:15 202 +date_generated: Fri Feb 26 23:09:37 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/improper-zero.yaml b/unittest/force-styles/tests/improper-zero.yaml index 9497e184e2..e082e11908 100644 --- a/unittest/force-styles/tests/improper-zero.yaml +++ b/unittest/force-styles/tests/improper-zero.yaml @@ -1,6 +1,6 @@ --- lammps_version: 10 Feb 2021 -date_generated: Wed Feb 24 19:37:56 202 +date_generated: Fri Feb 26 23:09:37 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-ewald.yaml b/unittest/force-styles/tests/kspace-ewald.yaml index b0c9e46000..f03b236aac 100644 --- a/unittest/force-styles/tests/kspace-ewald.yaml +++ b/unittest/force-styles/tests/kspace-ewald.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-ewald_disp.yaml b/unittest/force-styles/tests/kspace-ewald_disp.yaml index 0bf3fb8280..e20bdc149a 100644 --- a/unittest/force-styles/tests/kspace-ewald_disp.yaml +++ b/unittest/force-styles/tests/kspace-ewald_disp.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 5e-12 prerequisites: ! | atom full @@ -61,33 +61,33 @@ run_coul: 0 run_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 run_forces: ! |2 - 1 -1.5321369646512287e-01 3.1811336640254428e-02 -7.5291966466499854e-02 - 2 4.1718499667107591e-02 -6.0993280056077008e-02 7.1251624481841025e-02 - 3 -9.5279894353951251e-03 -1.4941462712424192e-03 -2.3308420217005594e-03 - 4 5.2578632823907109e-02 7.1842522102449641e-03 8.4623035788519083e-03 - 5 5.1098021938378535e-02 9.7285355839204727e-03 1.0253349643675837e-02 - 6 1.1944881653432865e-01 7.6133381161564387e-02 8.1359427537698162e-02 - 7 -6.3591857746436040e-02 -8.6414432169993630e-02 -7.9109433076114163e-02 - 8 -3.7433525775956008e-03 -1.0990369365284677e-01 -1.1224509664376907e-01 - 9 3.4723473525535330e-03 5.8483564454419018e-02 7.3945790434835998e-02 + 1 -1.5321369646512289e-01 3.1811336640254428e-02 -7.5291966466499868e-02 + 2 4.1718499667107597e-02 -6.0993280056077008e-02 7.1251624481841025e-02 + 3 -9.5279894353951268e-03 -1.4941462712424198e-03 -2.3308420217005594e-03 + 4 5.2578632823907102e-02 7.1842522102449641e-03 8.4623035788519083e-03 + 5 5.1098021938378528e-02 9.7285355839204779e-03 1.0253349643675840e-02 + 6 1.1944881653432862e-01 7.6133381161564415e-02 8.1359427537698162e-02 + 7 -6.3591857746436053e-02 -8.6414432169993630e-02 -7.9109433076114136e-02 + 8 -3.7433525775956017e-03 -1.0990369365284679e-01 -1.1224509664376904e-01 + 9 3.4723473525535304e-03 5.8483564454419046e-02 7.3945790434835998e-02 10 -1.9931615263391753e-02 2.3230336652331492e-02 2.2930261922462034e-02 - 11 -2.7043515997570565e-02 3.3096788353233382e-02 2.7833272909244686e-02 - 12 1.4733114619496521e-01 -7.4907012571817977e-02 -9.9310508068793157e-02 - 13 -6.0568451603864093e-02 2.6904500638990563e-02 3.7502952815534972e-02 - 14 -4.7602620526011358e-02 2.4118387991499554e-02 2.8503007637066029e-02 + 11 -2.7043515997570568e-02 3.3096788353233382e-02 2.7833272909244679e-02 + 12 1.4733114619496521e-01 -7.4907012571817991e-02 -9.9310508068793130e-02 + 13 -6.0568451603864079e-02 2.6904500638990563e-02 3.7502952815534972e-02 + 14 -4.7602620526011344e-02 2.4118387991499554e-02 2.8503007637066029e-02 15 -4.5640946475327245e-02 1.1215448404197493e-02 3.2219246480274404e-02 - 16 -2.0008038374075984e-01 1.6245819219836355e-01 1.8812371878208675e-01 - 17 1.3640979614708312e-01 -1.4877360903977560e-01 -1.3970849833566271e-01 + 16 -2.0008038374075982e-01 1.6245819219836355e-01 1.8812371878208675e-01 + 17 1.3640979614708318e-01 -1.4877360903977557e-01 -1.3970849833566271e-01 18 3.1313062271288683e-01 3.0970376465951444e-01 -2.9690888050690195e-01 - 19 -1.2278633817042253e-01 -1.5053154281354220e-01 1.1083205911757414e-01 - 20 -1.7800087923017122e-01 -1.7031941581576107e-01 1.4510467117661957e-01 + 19 -1.2278633817042250e-01 -1.5053154281354220e-01 1.1083205911757414e-01 + 20 -1.7800087923017119e-01 -1.7031941581576107e-01 1.4510467117661957e-01 21 3.5089545735563610e-01 -9.5838434134800643e-02 -2.8233685525513896e-01 - 22 -1.9415564585497339e-01 7.5645499568197841e-02 9.1631181795561512e-02 - 23 -1.4017971783984279e-01 3.7892211453094168e-02 1.1299558998235543e-01 - 24 1.7884203136981469e-01 3.1247703983741304e-01 1.4068927063619113e-01 - 25 -2.7624350380010359e-02 -1.2477864845951722e-01 -2.6147141449362275e-02 - 26 -1.3999328961714030e-01 -1.7823800630539485e-01 -8.7261723908124589e-02 - 27 -3.3286289860045476e-01 1.7647878511351975e-01 -1.8733303262234685e-01 - 28 2.1399771535404677e-01 -1.1748172155357729e-01 1.2097428314785649e-01 - 29 1.5762446207378214e-01 -5.6888082076411807e-02 8.3371966274683518e-02 + 22 -1.9415564585497344e-01 7.5645499568197813e-02 9.1631181795561525e-02 + 23 -1.4017971783984279e-01 3.7892211453094155e-02 1.1299558998235543e-01 + 24 1.7884203136981472e-01 3.1247703983741310e-01 1.4068927063619110e-01 + 25 -2.7624350380010373e-02 -1.2477864845951719e-01 -2.6147141449362272e-02 + 26 -1.3999328961714033e-01 -1.7823800630539485e-01 -8.7261723908124589e-02 + 27 -3.3286289860045476e-01 1.7647878511351969e-01 -1.8733303262234691e-01 + 28 2.1399771535404671e-01 -1.1748172155357726e-01 1.2097428314785651e-01 + 29 1.5762446207378211e-01 -5.6888082076411807e-02 8.3371966274683545e-02 ... diff --git a/unittest/force-styles/tests/kspace-ewald_nozforce.yaml b/unittest/force-styles/tests/kspace-ewald_nozforce.yaml index d18f965aba..f6c3060d3d 100644 --- a/unittest/force-styles/tests/kspace-ewald_nozforce.yaml +++ b/unittest/force-styles/tests/kspace-ewald_nozforce.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-ewald_slab.yaml b/unittest/force-styles/tests/kspace-ewald_slab.yaml index 6b133a663c..0df035667a 100644 --- a/unittest/force-styles/tests/kspace-ewald_slab.yaml +++ b/unittest/force-styles/tests/kspace-ewald_slab.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-ewald_tri.yaml b/unittest/force-styles/tests/kspace-ewald_tri.yaml index 4141dd0cd1..dddfe7018a 100644 --- a/unittest/force-styles/tests/kspace-ewald_tri.yaml +++ b/unittest/force-styles/tests/kspace-ewald_tri.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:25 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-msm.yaml b/unittest/force-styles/tests/kspace-msm.yaml index ce503e0d01..f3cbb4604d 100644 --- a/unittest/force-styles/tests/kspace-msm.yaml +++ b/unittest/force-styles/tests/kspace-msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:35 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:26 2021 epsilon: 5e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-msm_cg.yaml b/unittest/force-styles/tests/kspace-msm_cg.yaml index 835b6dfe25..25892a4528 100644 --- a/unittest/force-styles/tests/kspace-msm_cg.yaml +++ b/unittest/force-styles/tests/kspace-msm_cg.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:26 2021 epsilon: 5e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-msm_nopbc.yaml b/unittest/force-styles/tests/kspace-msm_nopbc.yaml index 4d3080bcc9..ce5e3cd0e3 100644 --- a/unittest/force-styles/tests/kspace-msm_nopbc.yaml +++ b/unittest/force-styles/tests/kspace-msm_nopbc.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Wed Sep 16 23:34:54 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:27 2021 epsilon: 5e-11 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm.yaml b/unittest/force-styles/tests/kspace-pppm.yaml index 302f51280b..5282084567 100644 --- a/unittest/force-styles/tests/kspace-pppm.yaml +++ b/unittest/force-styles/tests/kspace-pppm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:29 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_ad.yaml b/unittest/force-styles/tests/kspace-pppm_ad.yaml index bdeacc50a9..3f77eb99c5 100644 --- a/unittest/force-styles/tests/kspace-pppm_ad.yaml +++ b/unittest/force-styles/tests/kspace-pppm_ad.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:29 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_cg.yaml b/unittest/force-styles/tests/kspace-pppm_cg.yaml index fd892d044e..e6bb6c78f3 100644 --- a/unittest/force-styles/tests/kspace-pppm_cg.yaml +++ b/unittest/force-styles/tests/kspace-pppm_cg.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:29 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_cg_ad.yaml b/unittest/force-styles/tests/kspace-pppm_cg_ad.yaml index a8c1b364e7..a8d9efc1fa 100644 --- a/unittest/force-styles/tests/kspace-pppm_cg_ad.yaml +++ b/unittest/force-styles/tests/kspace-pppm_cg_ad.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:29 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_cg_tiled.yaml b/unittest/force-styles/tests/kspace-pppm_cg_tiled.yaml index 9477bcba77..270ee0418c 100644 --- a/unittest/force-styles/tests/kspace-pppm_cg_tiled.yaml +++ b/unittest/force-styles/tests/kspace-pppm_cg_tiled.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:36 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:29 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_disp.yaml b/unittest/force-styles/tests/kspace-pppm_disp.yaml index 55243a9a68..8c528baf76 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:37 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:30 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml b/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml index 02f36588bc..4ef71d7333 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:37 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:31 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml b/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml index 6c441a3df8..203eceb209 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:38 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:31 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_disp_only.yaml b/unittest/force-styles/tests/kspace-pppm_disp_only.yaml index bd7fe74594..f0243c8da1 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_only.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_only.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:38 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:31 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml b/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml index d713c813e9..79951aab2f 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:38 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:32 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_nozforce.yaml b/unittest/force-styles/tests/kspace-pppm_nozforce.yaml index 57bb160873..7442e862e9 100644 --- a/unittest/force-styles/tests/kspace-pppm_nozforce.yaml +++ b/unittest/force-styles/tests/kspace-pppm_nozforce.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:38 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:32 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_slab.yaml b/unittest/force-styles/tests/kspace-pppm_slab.yaml index 8aa1adbfd7..aa1566aab5 100644 --- a/unittest/force-styles/tests/kspace-pppm_slab.yaml +++ b/unittest/force-styles/tests/kspace-pppm_slab.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:38 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:32 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_stagger.yaml b/unittest/force-styles/tests/kspace-pppm_stagger.yaml index 0e4c9631e2..ea24b6cfd3 100644 --- a/unittest/force-styles/tests/kspace-pppm_stagger.yaml +++ b/unittest/force-styles/tests/kspace-pppm_stagger.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:38 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:33 2021 epsilon: 7.5e-14 prerequisites: ! | atom full @@ -22,67 +22,67 @@ init_coul: 0 init_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 init_forces: ! |2 - 1 -5.2227715900845750e-01 8.1950519891037896e-02 2.1568864750376832e-01 + 1 -5.2227715900845739e-01 8.1950519891037882e-02 2.1568864750376829e-01 2 2.1709329984201631e-01 -2.7910826043908610e-01 -1.3501796562404628e-01 - 3 -3.4431410110235108e-02 -9.3026609475793179e-03 1.9970153652663108e-02 - 4 1.6294612553322482e-01 2.8820208915782589e-02 -7.8041537992552090e-02 - 5 1.6018614143950777e-01 7.5432356753115826e-02 -3.7722588054429150e-02 + 3 -3.4431410110235101e-02 -9.3026609475793179e-03 1.9970153652663108e-02 + 4 1.6294612553322479e-01 2.8820208915782589e-02 -7.8041537992552104e-02 + 5 1.6018614143950774e-01 7.5432356753115812e-02 -3.7722588054429143e-02 6 5.6492988309033354e-01 4.1696814706534630e-01 -6.7673476362799612e-01 - 7 -3.4216205471660566e-01 -4.0009165524095192e-01 3.9325085501474977e-01 - 8 -1.4121658810415072e-01 -6.1694926607232958e-01 3.3967088097622000e-01 + 7 -3.4216205471660560e-01 -4.0009165524095192e-01 3.9325085501474977e-01 + 8 -1.4121658810415072e-01 -6.1694926607232969e-01 3.3967088097622000e-01 9 1.8213420211015810e-01 3.2023550501078568e-01 5.0865716213608053e-02 10 -5.1659753410710330e-02 1.1063713004312387e-01 -1.4434062323990951e-02 - 11 -8.4675426404111437e-02 1.5093767469541053e-01 -3.9273222694910556e-02 - 12 4.5743278086428246e-01 -4.2657803621344026e-01 3.4765791147615285e-02 - 13 -1.5598326968651899e-01 1.1609333380277490e-01 2.6827585674639255e-02 - 14 -1.7229830712699734e-01 1.3660265515995373e-01 1.0364293545061238e-02 - 15 -1.3779624948415931e-01 8.5611514314178239e-02 -1.4417936578185790e-02 - 16 -3.4309620718952316e-01 4.3358259515061448e-01 5.3264911488862143e-01 - 17 1.3394866253126306e-01 -4.1287506953147796e-01 -7.8819987038465467e-01 - 18 7.3032854805187175e-01 1.5459002190369358e+00 -1.3876618467094484e+00 - 19 -2.5946241349817661e-01 -7.7450328984918526e-01 7.7107291114413901e-01 - 20 -3.9364379163465191e-01 -7.0318115064463305e-01 7.3145133273582563e-01 + 11 -8.4675426404111423e-02 1.5093767469541053e-01 -3.9273222694910556e-02 + 12 4.5743278086428241e-01 -4.2657803621344026e-01 3.4765791147615244e-02 + 13 -1.5598326968651899e-01 1.1609333380277490e-01 2.6827585674639266e-02 + 14 -1.7229830712699731e-01 1.3660265515995373e-01 1.0364293545061243e-02 + 15 -1.3779624948415931e-01 8.5611514314178239e-02 -1.4417936578185776e-02 + 16 -3.4309620718952311e-01 4.3358259515061459e-01 5.3264911488862143e-01 + 17 1.3394866253126297e-01 -4.1287506953147801e-01 -7.8819987038465467e-01 + 18 7.3032854805187197e-01 1.5459002190369358e+00 -1.3876618467094484e+00 + 19 -2.5946241349817667e-01 -7.7450328984918526e-01 7.7107291114413901e-01 + 20 -3.9364379163465191e-01 -7.0318115064463316e-01 7.3145133273582541e-01 21 5.1854207039779388e-01 5.4316140431986648e-01 -1.1630561612460866e+00 - 22 -2.9474924657955082e-01 -1.2314722330232061e-01 5.8311514555951505e-01 - 23 -2.8773056143507980e-01 -2.9281856868591627e-01 5.5619506923778372e-01 - 24 6.2752036539684239e-02 1.7441478631220706e+00 -2.7849000426516041e-01 - 25 1.2955239352175907e-01 -7.0427160638100861e-01 2.2582608971039136e-01 - 26 -2.2227598237037974e-01 -9.7470415379148345e-01 7.4514829391794934e-02 - 27 -8.5917766336431800e-01 1.6506499588643100e+00 -9.3704596621935576e-01 - 28 5.7091533654326099e-01 -9.1760299361767794e-01 5.4073727763352530e-01 - 29 4.1187460365847078e-01 -8.0559715142821642e-01 4.4313023169089372e-01 + 22 -2.9474924657955082e-01 -1.2314722330232067e-01 5.8311514555951494e-01 + 23 -2.8773056143507975e-01 -2.9281856868591627e-01 5.5619506923778372e-01 + 24 6.2752036539684308e-02 1.7441478631220706e+00 -2.7849000426516035e-01 + 25 1.2955239352175901e-01 -7.0427160638100861e-01 2.2582608971039136e-01 + 26 -2.2227598237037974e-01 -9.7470415379148345e-01 7.4514829391794962e-02 + 27 -8.5917766336431800e-01 1.6506499588643098e+00 -9.3704596621935576e-01 + 28 5.7091533654326088e-01 -9.1760299361767794e-01 5.4073727763352530e-01 + 29 4.1187460365847078e-01 -8.0559715142821631e-01 4.4313023169089372e-01 run_vdwl: 0 run_coul: 0 run_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 run_forces: ! |2 - 1 -5.2110389443047966e-01 8.2174837617142615e-02 2.1808851100884483e-01 - 2 2.1575362837922490e-01 -2.7985507607146648e-01 -1.3635384720562826e-01 + 1 -5.2110389443047966e-01 8.2174837617142657e-02 2.1808851100884480e-01 + 2 2.1575362837922490e-01 -2.7985507607146654e-01 -1.3635384720562826e-01 3 -3.4412499347272141e-02 -9.2851595240179864e-03 2.0082401999342678e-02 - 4 1.6309295424664277e-01 2.8699106597915747e-02 -7.8424598315124466e-02 - 5 1.6000485976650286e-01 7.5419186199252142e-02 -3.8271532199610915e-02 - 6 5.6452922927167792e-01 4.1651437288870052e-01 -6.8002099522971760e-01 - 7 -3.4234246122559975e-01 -4.0055178531012858e-01 3.9535126657784059e-01 - 8 -1.4009341296531477e-01 -6.1677431194167931e-01 3.4313561304132167e-01 - 9 1.8118627304514590e-01 3.1987212964642597e-01 4.8663680015288674e-02 - 10 -5.1826170633221855e-02 1.1075413671703493e-01 -1.4899488513243717e-02 - 11 -8.4864826013217043e-02 1.5131714121992473e-01 -3.9677764977413960e-02 - 12 4.5802321421041658e-01 -4.2663086780254944e-01 3.6737616091024911e-02 - 13 -1.5618224691804056e-01 1.1618618922421080e-01 2.6228930224266901e-02 - 14 -1.7245201237131119e-01 1.3673119094228264e-01 9.9092533250611670e-03 - 15 -1.3784363552277656e-01 8.5481154737307205e-02 -1.5195517836673982e-02 - 16 -3.4428489670225737e-01 4.3434535352096393e-01 5.3049265061272988e-01 - 17 1.3490425019990776e-01 -4.1238003101359266e-01 -7.8594268071624529e-01 - 18 7.3489377624877839e-01 1.5518891144247411e+00 -1.3833209761015994e+00 - 19 -2.6071651353161379e-01 -7.7650154707748187e-01 7.6978890572474756e-01 + 4 1.6309295424664277e-01 2.8699106597915754e-02 -7.8424598315124466e-02 + 5 1.6000485976650286e-01 7.5419186199252128e-02 -3.8271532199610915e-02 + 6 5.6452922927167803e-01 4.1651437288870052e-01 -6.8002099522971760e-01 + 7 -3.4234246122559986e-01 -4.0055178531012858e-01 3.9535126657784053e-01 + 8 -1.4009341296531477e-01 -6.1677431194167931e-01 3.4313561304132162e-01 + 9 1.8118627304514590e-01 3.1987212964642592e-01 4.8663680015288632e-02 + 10 -5.1826170633221855e-02 1.1075413671703493e-01 -1.4899488513243714e-02 + 11 -8.4864826013217043e-02 1.5131714121992476e-01 -3.9677764977413953e-02 + 12 4.5802321421041658e-01 -4.2663086780254944e-01 3.6737616091024890e-02 + 13 -1.5618224691804056e-01 1.1618618922421080e-01 2.6228930224266905e-02 + 14 -1.7245201237131119e-01 1.3673119094228264e-01 9.9092533250611705e-03 + 15 -1.3784363552277656e-01 8.5481154737307191e-02 -1.5195517836673979e-02 + 16 -3.4428489670225748e-01 4.3434535352096382e-01 5.3049265061272988e-01 + 17 1.3490425019990779e-01 -4.1238003101359261e-01 -7.8594268071624529e-01 + 18 7.3489377624877827e-01 1.5518891144247409e+00 -1.3833209761015994e+00 + 19 -2.6071651353161379e-01 -7.7650154707748176e-01 7.6978890572474756e-01 20 -3.9638127767834741e-01 -7.0644000153250031e-01 7.2935384554137617e-01 - 21 5.1893256827191392e-01 5.3441769782139692e-01 -1.1580900287803464e+00 - 22 -2.9449738462629443e-01 -1.1887047311705630e-01 5.8095962163225279e-01 + 21 5.1893256827191392e-01 5.3441769782139703e-01 -1.1580900287803464e+00 + 22 -2.9449738462629454e-01 -1.1887047311705637e-01 5.8095962163225279e-01 23 -2.8790115407696282e-01 -2.8923985224095883e-01 5.5380720899811053e-01 - 24 6.4191177940294664e-02 1.7394984516077767e+00 -2.7670608704288824e-01 - 25 1.2835128052019390e-01 -7.0221042172703485e-01 2.2447137762053931e-01 - 26 -2.2247931035350960e-01 -9.7223221992333508e-01 7.3515699476410554e-02 - 27 -8.6026914570906921e-01 1.6503940402012782e+00 -9.3240873788746348e-01 - 28 5.7146552243716164e-01 -9.1711088161406329e-01 5.3820268912067859e-01 - 29 4.1232210756742665e-01 -8.0561147447049097e-01 4.4052298379611776e-01 + 24 6.4191177940294691e-02 1.7394984516077767e+00 -2.7670608704288829e-01 + 25 1.2835128052019393e-01 -7.0221042172703474e-01 2.2447137762053931e-01 + 26 -2.2247931035350965e-01 -9.7223221992333508e-01 7.3515699476410554e-02 + 27 -8.6026914570906943e-01 1.6503940402012782e+00 -9.3240873788746348e-01 + 28 5.7146552243716164e-01 -9.1711088161406340e-01 5.3820268912067859e-01 + 29 4.1232210756742671e-01 -8.0561147447049097e-01 4.4052298379611776e-01 ... diff --git a/unittest/force-styles/tests/kspace-pppm_stagger_tiled.yaml b/unittest/force-styles/tests/kspace-pppm_stagger_tiled.yaml index c38767f900..cb8ba3813e 100644 --- a/unittest/force-styles/tests/kspace-pppm_stagger_tiled.yaml +++ b/unittest/force-styles/tests/kspace-pppm_stagger_tiled.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:33 2021 epsilon: 7.5e-14 prerequisites: ! | atom full @@ -24,67 +24,67 @@ init_coul: 0 init_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 init_forces: ! |2 - 1 -5.2227715900845750e-01 8.1950519891037896e-02 2.1568864750376832e-01 + 1 -5.2227715900845739e-01 8.1950519891037882e-02 2.1568864750376829e-01 2 2.1709329984201631e-01 -2.7910826043908610e-01 -1.3501796562404628e-01 - 3 -3.4431410110235108e-02 -9.3026609475793179e-03 1.9970153652663108e-02 - 4 1.6294612553322482e-01 2.8820208915782589e-02 -7.8041537992552090e-02 - 5 1.6018614143950777e-01 7.5432356753115826e-02 -3.7722588054429150e-02 + 3 -3.4431410110235101e-02 -9.3026609475793179e-03 1.9970153652663108e-02 + 4 1.6294612553322479e-01 2.8820208915782589e-02 -7.8041537992552104e-02 + 5 1.6018614143950774e-01 7.5432356753115812e-02 -3.7722588054429143e-02 6 5.6492988309033354e-01 4.1696814706534630e-01 -6.7673476362799612e-01 - 7 -3.4216205471660566e-01 -4.0009165524095192e-01 3.9325085501474977e-01 - 8 -1.4121658810415072e-01 -6.1694926607232958e-01 3.3967088097622000e-01 + 7 -3.4216205471660560e-01 -4.0009165524095192e-01 3.9325085501474977e-01 + 8 -1.4121658810415072e-01 -6.1694926607232969e-01 3.3967088097622000e-01 9 1.8213420211015810e-01 3.2023550501078568e-01 5.0865716213608053e-02 10 -5.1659753410710330e-02 1.1063713004312387e-01 -1.4434062323990951e-02 - 11 -8.4675426404111437e-02 1.5093767469541053e-01 -3.9273222694910556e-02 - 12 4.5743278086428246e-01 -4.2657803621344026e-01 3.4765791147615285e-02 - 13 -1.5598326968651899e-01 1.1609333380277490e-01 2.6827585674639255e-02 - 14 -1.7229830712699734e-01 1.3660265515995373e-01 1.0364293545061238e-02 - 15 -1.3779624948415931e-01 8.5611514314178239e-02 -1.4417936578185790e-02 - 16 -3.4309620718952316e-01 4.3358259515061448e-01 5.3264911488862143e-01 - 17 1.3394866253126306e-01 -4.1287506953147796e-01 -7.8819987038465467e-01 - 18 7.3032854805187175e-01 1.5459002190369358e+00 -1.3876618467094484e+00 - 19 -2.5946241349817661e-01 -7.7450328984918526e-01 7.7107291114413901e-01 - 20 -3.9364379163465191e-01 -7.0318115064463305e-01 7.3145133273582563e-01 + 11 -8.4675426404111423e-02 1.5093767469541053e-01 -3.9273222694910556e-02 + 12 4.5743278086428241e-01 -4.2657803621344026e-01 3.4765791147615244e-02 + 13 -1.5598326968651899e-01 1.1609333380277490e-01 2.6827585674639266e-02 + 14 -1.7229830712699731e-01 1.3660265515995373e-01 1.0364293545061243e-02 + 15 -1.3779624948415931e-01 8.5611514314178239e-02 -1.4417936578185776e-02 + 16 -3.4309620718952311e-01 4.3358259515061459e-01 5.3264911488862143e-01 + 17 1.3394866253126297e-01 -4.1287506953147801e-01 -7.8819987038465467e-01 + 18 7.3032854805187197e-01 1.5459002190369358e+00 -1.3876618467094484e+00 + 19 -2.5946241349817667e-01 -7.7450328984918526e-01 7.7107291114413901e-01 + 20 -3.9364379163465191e-01 -7.0318115064463316e-01 7.3145133273582541e-01 21 5.1854207039779388e-01 5.4316140431986648e-01 -1.1630561612460866e+00 - 22 -2.9474924657955082e-01 -1.2314722330232061e-01 5.8311514555951505e-01 - 23 -2.8773056143507980e-01 -2.9281856868591627e-01 5.5619506923778372e-01 - 24 6.2752036539684239e-02 1.7441478631220706e+00 -2.7849000426516041e-01 - 25 1.2955239352175907e-01 -7.0427160638100861e-01 2.2582608971039136e-01 - 26 -2.2227598237037974e-01 -9.7470415379148345e-01 7.4514829391794934e-02 - 27 -8.5917766336431800e-01 1.6506499588643100e+00 -9.3704596621935576e-01 - 28 5.7091533654326099e-01 -9.1760299361767794e-01 5.4073727763352530e-01 - 29 4.1187460365847078e-01 -8.0559715142821642e-01 4.4313023169089372e-01 + 22 -2.9474924657955082e-01 -1.2314722330232067e-01 5.8311514555951494e-01 + 23 -2.8773056143507975e-01 -2.9281856868591627e-01 5.5619506923778372e-01 + 24 6.2752036539684308e-02 1.7441478631220706e+00 -2.7849000426516035e-01 + 25 1.2955239352175901e-01 -7.0427160638100861e-01 2.2582608971039136e-01 + 26 -2.2227598237037974e-01 -9.7470415379148345e-01 7.4514829391794962e-02 + 27 -8.5917766336431800e-01 1.6506499588643098e+00 -9.3704596621935576e-01 + 28 5.7091533654326088e-01 -9.1760299361767794e-01 5.4073727763352530e-01 + 29 4.1187460365847078e-01 -8.0559715142821631e-01 4.4313023169089372e-01 run_vdwl: 0 run_coul: 0 run_stress: ! |2- 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00 run_forces: ! |2 - 1 -5.2110389443047966e-01 8.2174837617142615e-02 2.1808851100884483e-01 - 2 2.1575362837922490e-01 -2.7985507607146648e-01 -1.3635384720562826e-01 + 1 -5.2110389443047966e-01 8.2174837617142657e-02 2.1808851100884480e-01 + 2 2.1575362837922490e-01 -2.7985507607146654e-01 -1.3635384720562826e-01 3 -3.4412499347272141e-02 -9.2851595240179864e-03 2.0082401999342678e-02 - 4 1.6309295424664277e-01 2.8699106597915747e-02 -7.8424598315124466e-02 - 5 1.6000485976650286e-01 7.5419186199252142e-02 -3.8271532199610915e-02 - 6 5.6452922927167792e-01 4.1651437288870052e-01 -6.8002099522971760e-01 - 7 -3.4234246122559975e-01 -4.0055178531012858e-01 3.9535126657784059e-01 - 8 -1.4009341296531477e-01 -6.1677431194167931e-01 3.4313561304132167e-01 - 9 1.8118627304514590e-01 3.1987212964642597e-01 4.8663680015288674e-02 - 10 -5.1826170633221855e-02 1.1075413671703493e-01 -1.4899488513243717e-02 - 11 -8.4864826013217043e-02 1.5131714121992473e-01 -3.9677764977413960e-02 - 12 4.5802321421041658e-01 -4.2663086780254944e-01 3.6737616091024911e-02 - 13 -1.5618224691804056e-01 1.1618618922421080e-01 2.6228930224266901e-02 - 14 -1.7245201237131119e-01 1.3673119094228264e-01 9.9092533250611670e-03 - 15 -1.3784363552277656e-01 8.5481154737307205e-02 -1.5195517836673982e-02 - 16 -3.4428489670225737e-01 4.3434535352096393e-01 5.3049265061272988e-01 - 17 1.3490425019990776e-01 -4.1238003101359266e-01 -7.8594268071624529e-01 - 18 7.3489377624877839e-01 1.5518891144247411e+00 -1.3833209761015994e+00 - 19 -2.6071651353161379e-01 -7.7650154707748187e-01 7.6978890572474756e-01 + 4 1.6309295424664277e-01 2.8699106597915754e-02 -7.8424598315124466e-02 + 5 1.6000485976650286e-01 7.5419186199252128e-02 -3.8271532199610915e-02 + 6 5.6452922927167803e-01 4.1651437288870052e-01 -6.8002099522971760e-01 + 7 -3.4234246122559986e-01 -4.0055178531012858e-01 3.9535126657784053e-01 + 8 -1.4009341296531477e-01 -6.1677431194167931e-01 3.4313561304132162e-01 + 9 1.8118627304514590e-01 3.1987212964642592e-01 4.8663680015288632e-02 + 10 -5.1826170633221855e-02 1.1075413671703493e-01 -1.4899488513243714e-02 + 11 -8.4864826013217043e-02 1.5131714121992476e-01 -3.9677764977413953e-02 + 12 4.5802321421041658e-01 -4.2663086780254944e-01 3.6737616091024890e-02 + 13 -1.5618224691804056e-01 1.1618618922421080e-01 2.6228930224266905e-02 + 14 -1.7245201237131119e-01 1.3673119094228264e-01 9.9092533250611705e-03 + 15 -1.3784363552277656e-01 8.5481154737307191e-02 -1.5195517836673979e-02 + 16 -3.4428489670225748e-01 4.3434535352096382e-01 5.3049265061272988e-01 + 17 1.3490425019990779e-01 -4.1238003101359261e-01 -7.8594268071624529e-01 + 18 7.3489377624877827e-01 1.5518891144247409e+00 -1.3833209761015994e+00 + 19 -2.6071651353161379e-01 -7.7650154707748176e-01 7.6978890572474756e-01 20 -3.9638127767834741e-01 -7.0644000153250031e-01 7.2935384554137617e-01 - 21 5.1893256827191392e-01 5.3441769782139692e-01 -1.1580900287803464e+00 - 22 -2.9449738462629443e-01 -1.1887047311705630e-01 5.8095962163225279e-01 + 21 5.1893256827191392e-01 5.3441769782139703e-01 -1.1580900287803464e+00 + 22 -2.9449738462629454e-01 -1.1887047311705637e-01 5.8095962163225279e-01 23 -2.8790115407696282e-01 -2.8923985224095883e-01 5.5380720899811053e-01 - 24 6.4191177940294664e-02 1.7394984516077767e+00 -2.7670608704288824e-01 - 25 1.2835128052019390e-01 -7.0221042172703485e-01 2.2447137762053931e-01 - 26 -2.2247931035350960e-01 -9.7223221992333508e-01 7.3515699476410554e-02 - 27 -8.6026914570906921e-01 1.6503940402012782e+00 -9.3240873788746348e-01 - 28 5.7146552243716164e-01 -9.1711088161406329e-01 5.3820268912067859e-01 - 29 4.1232210756742665e-01 -8.0561147447049097e-01 4.4052298379611776e-01 + 24 6.4191177940294691e-02 1.7394984516077767e+00 -2.7670608704288829e-01 + 25 1.2835128052019393e-01 -7.0221042172703474e-01 2.2447137762053931e-01 + 26 -2.2247931035350965e-01 -9.7223221992333508e-01 7.3515699476410554e-02 + 27 -8.6026914570906943e-01 1.6503940402012782e+00 -9.3240873788746348e-01 + 28 5.7146552243716164e-01 -9.1711088161406340e-01 5.3820268912067859e-01 + 29 4.1232210756742671e-01 -8.0561147447049097e-01 4.4052298379611776e-01 ... diff --git a/unittest/force-styles/tests/kspace-pppm_tiled.yaml b/unittest/force-styles/tests/kspace-pppm_tiled.yaml index 769826d7c6..d1b95c8ca9 100644 --- a/unittest/force-styles/tests/kspace-pppm_tiled.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tiled.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:33 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_tip4p.yaml b/unittest/force-styles/tests/kspace-pppm_tip4p.yaml index 8efbeef010..f5785b54d7 100644 --- a/unittest/force-styles/tests/kspace-pppm_tip4p.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tip4p.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:33 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_tip4p_ad.yaml b/unittest/force-styles/tests/kspace-pppm_tip4p_ad.yaml index e2a644a7b2..66404f39b5 100644 --- a/unittest/force-styles/tests/kspace-pppm_tip4p_ad.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tip4p_ad.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 3e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_tip4p_nozforce.yaml b/unittest/force-styles/tests/kspace-pppm_tip4p_nozforce.yaml index f214cd1644..846e1a8605 100644 --- a/unittest/force-styles/tests/kspace-pppm_tip4p_nozforce.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tip4p_nozforce.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml b/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml index b64d7db0f6..35a8ef56f5 100644 --- a/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tip4p_slab.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/kspace-pppm_tri.yaml b/unittest/force-styles/tests/kspace-pppm_tri.yaml index effcc73b4c..dbcbe44e52 100644 --- a/unittest/force-styles/tests/kspace-pppm_tri.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tri.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:39 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:34 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/manybody-pair-airebo.yaml b/unittest/force-styles/tests/manybody-pair-airebo.yaml index f78643e7d0..58c81fb093 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:10 2021 epsilon: 5e-06 prerequisites: ! | pair airebo diff --git a/unittest/force-styles/tests/manybody-pair-airebo_00.yaml b/unittest/force-styles/tests/manybody-pair-airebo_00.yaml index 1444fed8a2..aa9aea8ca9 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo_00.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo_00.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:27 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:11 2021 epsilon: 1e-07 prerequisites: ! | pair airebo diff --git a/unittest/force-styles/tests/manybody-pair-airebo_m.yaml b/unittest/force-styles/tests/manybody-pair-airebo_m.yaml index 84df99a6a8..ae1e670cea 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo_m.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo_m.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:28 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:11 2021 epsilon: 1e-07 prerequisites: ! | pair airebo/morse diff --git a/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml b/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml index e1a365c5bd..eecfd2a08e 100644 --- a/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml +++ b/unittest/force-styles/tests/manybody-pair-airebo_m00.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:28 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:11 2021 epsilon: 1e-07 prerequisites: ! | pair airebo/morse diff --git a/unittest/force-styles/tests/manybody-pair-bop.yaml b/unittest/force-styles/tests/manybody-pair-bop.yaml index 40ca463a5e..0ce8d31d46 100644 --- a/unittest/force-styles/tests/manybody-pair-bop.yaml +++ b/unittest/force-styles/tests/manybody-pair-bop.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:28 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:12 2021 epsilon: 1e-12 prerequisites: ! | pair bop diff --git a/unittest/force-styles/tests/manybody-pair-bop_save.yaml b/unittest/force-styles/tests/manybody-pair-bop_save.yaml index 957476f4eb..1b1d1274a5 100644 --- a/unittest/force-styles/tests/manybody-pair-bop_save.yaml +++ b/unittest/force-styles/tests/manybody-pair-bop_save.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:29 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:13 2021 epsilon: 1e-12 prerequisites: ! | pair bop diff --git a/unittest/force-styles/tests/manybody-pair-comb.yaml b/unittest/force-styles/tests/manybody-pair-comb.yaml index 1b2e0b5c0c..d41aa476db 100644 --- a/unittest/force-styles/tests/manybody-pair-comb.yaml +++ b/unittest/force-styles/tests/manybody-pair-comb.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:29 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:14 2021 epsilon: 1e-12 prerequisites: ! | pair comb diff --git a/unittest/force-styles/tests/manybody-pair-comb3.yaml b/unittest/force-styles/tests/manybody-pair-comb3.yaml index 49e07069dc..2238108055 100644 --- a/unittest/force-styles/tests/manybody-pair-comb3.yaml +++ b/unittest/force-styles/tests/manybody-pair-comb3.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:29 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:14 2021 epsilon: 1e-13 prerequisites: ! | pair comb3 diff --git a/unittest/force-styles/tests/manybody-pair-edip_multi.yaml b/unittest/force-styles/tests/manybody-pair-edip_multi.yaml index 1f12c9955a..ad2dc9018e 100644 --- a/unittest/force-styles/tests/manybody-pair-edip_multi.yaml +++ b/unittest/force-styles/tests/manybody-pair-edip_multi.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:29 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 5e-14 prerequisites: ! | pair edip/multi diff --git a/unittest/force-styles/tests/manybody-pair-extep.yaml b/unittest/force-styles/tests/manybody-pair-extep.yaml index 21c02745ab..ec69217b4a 100644 --- a/unittest/force-styles/tests/manybody-pair-extep.yaml +++ b/unittest/force-styles/tests/manybody-pair-extep.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:29 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 5e-13 prerequisites: ! | pair extep diff --git a/unittest/force-styles/tests/manybody-pair-gw.yaml b/unittest/force-styles/tests/manybody-pair-gw.yaml index d3455dac5b..94a2db51a4 100644 --- a/unittest/force-styles/tests/manybody-pair-gw.yaml +++ b/unittest/force-styles/tests/manybody-pair-gw.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:30 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 5e-13 prerequisites: ! | pair gw diff --git a/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml b/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml index 1d4fc81229..bdda7df922 100644 --- a/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml +++ b/unittest/force-styles/tests/manybody-pair-gw_zbl.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:30 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 5e-13 prerequisites: ! | pair gw/zbl diff --git a/unittest/force-styles/tests/manybody-pair-lcbop.yaml b/unittest/force-styles/tests/manybody-pair-lcbop.yaml index be2f18a176..5c406b2315 100644 --- a/unittest/force-styles/tests/manybody-pair-lcbop.yaml +++ b/unittest/force-styles/tests/manybody-pair-lcbop.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:30 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 7.5e-12 prerequisites: ! | pair lcbop diff --git a/unittest/force-styles/tests/manybody-pair-meam_c.yaml b/unittest/force-styles/tests/manybody-pair-meam_c.yaml index b1cb051fa7..e2867c4dd6 100644 --- a/unittest/force-styles/tests/manybody-pair-meam_c.yaml +++ b/unittest/force-styles/tests/manybody-pair-meam_c.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:30 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 7.5e-12 prerequisites: ! | pair meam/c diff --git a/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml b/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml index e6bef38ab6..3650405db1 100644 --- a/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml +++ b/unittest/force-styles/tests/manybody-pair-mliap_snap.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:30 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:15 2021 epsilon: 5e-13 prerequisites: ! | pair mliap @@ -20,7 +20,7 @@ natoms: 64 init_vdwl: -473.569864629026 init_coul: 0 init_stress: ! |2- - 3.9989504688551500e+02 4.0778136516736993e+02 4.3596322435184845e+02 -2.5242497284339720e+01 1.2811620806363655e+02 2.8644673361821793e+00 + 3.9989504688551500e+02 4.0778136516736993e+02 4.3596322435184823e+02 -2.5242497284339720e+01 1.2811620806363655e+02 2.8644673361821793e+00 init_forces: ! |2 1 -3.7538180163781538e+00 8.8612947043788708e+00 6.7712977816732263e+00 2 -7.6696525239232596e+00 -3.7674335682223203e-01 -5.7958054718422760e+00 @@ -28,7 +28,7 @@ init_forces: ! |2 4 -4.7103509354198474e+00 9.2783458784125941e+00 4.3108702582741429e+00 5 -2.0331946400488916e+00 -2.9593716047756180e+00 -1.6136351145373196e+00 6 1.8086748683348572e+00 4.6479727629048675e+00 3.0425695895915184e-01 - 7 -3.0573043543220644e+00 -4.0575899915120281e+00 1.5283788878527900e+00 + 7 -3.0573043543220644e+00 -4.0575899915120264e+00 1.5283788878527900e+00 8 2.7148403621334427e-01 1.3063473238306007e+00 -1.1268098385676173e+00 9 5.2043326273129953e-01 -2.9340446386399996e+00 -7.6461969078455834e+00 10 -6.2786875145099508e-01 5.6606570005199308e-02 -5.3746300485699576e+00 @@ -64,11 +64,11 @@ init_forces: ! |2 40 9.5193696695210637e+00 -7.0213638399035432e+00 -1.5692669012530696e+00 41 2.4000089474497699e-01 1.0045144396502914e+00 -2.3032449685213630e+00 42 -9.4741999244791426e+00 -6.3134658287662750e+00 -3.6928028439517893e+00 - 43 2.7218639962411773e-01 -1.3813634477251096e+01 5.5147832931992202e-01 + 43 2.7218639962411728e-01 -1.3813634477251096e+01 5.5147832931992291e-01 44 8.0196107396135208e+00 -8.1793730426384545e+00 3.5131695854462590e+00 45 -1.8910274064701343e-01 3.9137627573846219e+00 -7.4450993876429399e+00 46 -3.5282857552811575e+00 -5.1713579630178099e+00 1.2477491203990510e+01 - 47 5.1131478665605341e+00 2.3800985688973468e+00 5.1348001359881987e+00 + 47 5.1131478665605341e+00 2.3800985688973459e+00 5.1348001359881970e+00 48 2.1755560727357057e+00 2.9996491762493216e+00 -9.9575511910097214e-01 49 -2.3978299788760209e+00 -1.2283692236805253e+01 -8.3755937565454435e+00 50 3.6161933080447888e+00 5.6291551969069182e+00 -6.9709721613230968e-01 diff --git a/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml b/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml index 7429d09b91..99f36d8c65 100644 --- a/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml +++ b/unittest/force-styles/tests/manybody-pair-mliap_snap_chem.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:30 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:16 2021 epsilon: 5e-13 prerequisites: ! | pair mliap @@ -31,7 +31,7 @@ init_forces: ! |2 3 6.2372158338858297e-01 2.7149161557212836e-01 -4.8035793806964550e-01 4 -2.0337936615474277e+00 2.9491894607511560e+00 9.8066478014365177e-01 5 -1.9807302026626274e+00 -4.1921845197039964e-01 -3.9514999290884223e-01 - 6 -1.0256636650332082e-01 2.3662295416638282e+00 9.0816298775387960e-01 + 6 -1.0256636650332038e-01 2.3662295416638282e+00 9.0816298775387960e-01 7 -6.0657120592984892e-01 -8.0634286798072863e-01 2.1759740426498744e+00 8 6.0627276316787593e-01 1.0677577347039506e+00 -1.2887262448970753e+00 9 -3.0674852805673963e-01 -2.0605633540913679e+00 -2.5500662803249239e+00 @@ -56,7 +56,7 @@ init_forces: ! |2 28 2.5221087546187970e-01 1.4370172575472946e+00 4.1039332214108297e+00 29 -2.7893073887365909e+00 7.8106446652879402e-01 -8.2039261846997913e-01 30 -1.8694503114341463e+00 7.0812686858707219e-01 -9.1751940639239238e-01 - 31 -7.0985766256762606e-01 8.6963471463259756e-01 -7.5188557225015407e-01 + 31 -7.0985766256762606e-01 8.6963471463259845e-01 -7.5188557225015407e-01 32 -2.4089849337056686e+00 4.0992982351371343e-01 -1.1381600041412354e-01 33 4.3597028481189950e+00 -2.6773596435480469e+00 3.1791467867699659e+00 34 5.1607419486495609e-01 1.3141798772668656e-01 8.7023229642897881e-02 diff --git a/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml b/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml index 06ee4441bb..1eef3f085b 100644 --- a/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml +++ b/unittest/force-styles/tests/manybody-pair-nb3b_harmonic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:31 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:17 2021 epsilon: 1e-12 prerequisites: ! | pair nb3b/harmonic diff --git a/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml b/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml index 9f06a83959..c06d51d907 100644 --- a/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml +++ b/unittest/force-styles/tests/manybody-pair-polymorphic_sw.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:31 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:17 2021 epsilon: 4e-12 prerequisites: ! | pair polymorphic diff --git a/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml b/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml index 568363e7dd..b45c0e4295 100644 --- a/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml +++ b/unittest/force-styles/tests/manybody-pair-polymorphic_tersoff.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:31 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:17 2021 epsilon: 1e-11 prerequisites: ! | pair polymorphic diff --git a/unittest/force-styles/tests/manybody-pair-rebo.yaml b/unittest/force-styles/tests/manybody-pair-rebo.yaml index 0d8a7fa11a..cba66272c3 100644 --- a/unittest/force-styles/tests/manybody-pair-rebo.yaml +++ b/unittest/force-styles/tests/manybody-pair-rebo.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:31 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:18 2021 epsilon: 1e-07 prerequisites: ! | pair rebo diff --git a/unittest/force-styles/tests/manybody-pair-snap.yaml b/unittest/force-styles/tests/manybody-pair-snap.yaml index 3624630ae8..139d1b94d0 100644 --- a/unittest/force-styles/tests/manybody-pair-snap.yaml +++ b/unittest/force-styles/tests/manybody-pair-snap.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:31 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:18 2021 epsilon: 5e-13 prerequisites: ! | pair snap @@ -19,7 +19,7 @@ natoms: 64 init_vdwl: -473.569864629026 init_coul: 0 init_stress: ! |2- - 3.9989504688551500e+02 4.0778136516736993e+02 4.3596322435184845e+02 -2.5242497284339720e+01 1.2811620806363655e+02 2.8644673361821793e+00 + 3.9989504688551500e+02 4.0778136516736993e+02 4.3596322435184823e+02 -2.5242497284339720e+01 1.2811620806363655e+02 2.8644673361821793e+00 init_forces: ! |2 1 -3.7538180163781538e+00 8.8612947043788708e+00 6.7712977816732263e+00 2 -7.6696525239232596e+00 -3.7674335682223203e-01 -5.7958054718422760e+00 @@ -27,7 +27,7 @@ init_forces: ! |2 4 -4.7103509354198474e+00 9.2783458784125941e+00 4.3108702582741429e+00 5 -2.0331946400488916e+00 -2.9593716047756180e+00 -1.6136351145373196e+00 6 1.8086748683348572e+00 4.6479727629048675e+00 3.0425695895915184e-01 - 7 -3.0573043543220644e+00 -4.0575899915120281e+00 1.5283788878527900e+00 + 7 -3.0573043543220644e+00 -4.0575899915120264e+00 1.5283788878527900e+00 8 2.7148403621334427e-01 1.3063473238306007e+00 -1.1268098385676173e+00 9 5.2043326273129953e-01 -2.9340446386399996e+00 -7.6461969078455834e+00 10 -6.2786875145099508e-01 5.6606570005199308e-02 -5.3746300485699576e+00 @@ -63,11 +63,11 @@ init_forces: ! |2 40 9.5193696695210637e+00 -7.0213638399035432e+00 -1.5692669012530696e+00 41 2.4000089474497699e-01 1.0045144396502914e+00 -2.3032449685213630e+00 42 -9.4741999244791426e+00 -6.3134658287662750e+00 -3.6928028439517893e+00 - 43 2.7218639962411773e-01 -1.3813634477251096e+01 5.5147832931992202e-01 + 43 2.7218639962411728e-01 -1.3813634477251096e+01 5.5147832931992291e-01 44 8.0196107396135208e+00 -8.1793730426384545e+00 3.5131695854462590e+00 45 -1.8910274064701343e-01 3.9137627573846219e+00 -7.4450993876429399e+00 46 -3.5282857552811575e+00 -5.1713579630178099e+00 1.2477491203990510e+01 - 47 5.1131478665605341e+00 2.3800985688973468e+00 5.1348001359881987e+00 + 47 5.1131478665605341e+00 2.3800985688973459e+00 5.1348001359881970e+00 48 2.1755560727357057e+00 2.9996491762493216e+00 -9.9575511910097214e-01 49 -2.3978299788760209e+00 -1.2283692236805253e+01 -8.3755937565454435e+00 50 3.6161933080447888e+00 5.6291551969069182e+00 -6.9709721613230968e-01 diff --git a/unittest/force-styles/tests/manybody-pair-snap_chem.yaml b/unittest/force-styles/tests/manybody-pair-snap_chem.yaml index f441535138..39d2abd804 100644 --- a/unittest/force-styles/tests/manybody-pair-snap_chem.yaml +++ b/unittest/force-styles/tests/manybody-pair-snap_chem.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:18 2021 epsilon: 5e-13 prerequisites: ! | pair snap @@ -28,7 +28,7 @@ init_forces: ! |2 3 6.2372158338858297e-01 2.7149161557212836e-01 -4.8035793806964550e-01 4 -2.0337936615474277e+00 2.9491894607511560e+00 9.8066478014365177e-01 5 -1.9807302026626274e+00 -4.1921845197039964e-01 -3.9514999290884223e-01 - 6 -1.0256636650332082e-01 2.3662295416638282e+00 9.0816298775387960e-01 + 6 -1.0256636650332038e-01 2.3662295416638282e+00 9.0816298775387960e-01 7 -6.0657120592984892e-01 -8.0634286798072863e-01 2.1759740426498744e+00 8 6.0627276316787593e-01 1.0677577347039506e+00 -1.2887262448970753e+00 9 -3.0674852805673963e-01 -2.0605633540913679e+00 -2.5500662803249239e+00 @@ -53,7 +53,7 @@ init_forces: ! |2 28 2.5221087546187970e-01 1.4370172575472946e+00 4.1039332214108297e+00 29 -2.7893073887365909e+00 7.8106446652879402e-01 -8.2039261846997913e-01 30 -1.8694503114341463e+00 7.0812686858707219e-01 -9.1751940639239238e-01 - 31 -7.0985766256762606e-01 8.6963471463259756e-01 -7.5188557225015407e-01 + 31 -7.0985766256762606e-01 8.6963471463259845e-01 -7.5188557225015407e-01 32 -2.4089849337056686e+00 4.0992982351371343e-01 -1.1381600041412354e-01 33 4.3597028481189950e+00 -2.6773596435480469e+00 3.1791467867699659e+00 34 5.1607419486495609e-01 1.3141798772668656e-01 8.7023229642897881e-02 diff --git a/unittest/force-styles/tests/manybody-pair-sw-multi.yaml b/unittest/force-styles/tests/manybody-pair-sw-multi.yaml index 3816e43dd0..a1be280af9 100644 --- a/unittest/force-styles/tests/manybody-pair-sw-multi.yaml +++ b/unittest/force-styles/tests/manybody-pair-sw-multi.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:19 2021 epsilon: 2e-08 prerequisites: ! | pair sw diff --git a/unittest/force-styles/tests/manybody-pair-sw.yaml b/unittest/force-styles/tests/manybody-pair-sw.yaml index 8a5bb3bf1a..92ac300c40 100644 --- a/unittest/force-styles/tests/manybody-pair-sw.yaml +++ b/unittest/force-styles/tests/manybody-pair-sw.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:19 2021 epsilon: 1e-10 prerequisites: ! | pair sw diff --git a/unittest/force-styles/tests/manybody-pair-tersoff.yaml b/unittest/force-styles/tests/manybody-pair-tersoff.yaml index 1b8af70661..366810b84e 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-13 prerequisites: ! | pair tersoff @@ -17,139 +17,139 @@ natoms: 64 init_vdwl: -163.150573313048 init_coul: 0 init_stress: ! |- - -5.4897530176832697e+02 -5.4663450719170669e+02 -5.6139257517016426e+02 -1.4199304590474418e+01 -1.3994570965097115e+01 5.4389605871425246e+01 + -5.4897530176832686e+02 -5.4663450719170669e+02 -5.6139257517016438e+02 -1.4199304590474304e+01 -1.3994570965097115e+01 5.4389605871425204e+01 init_forces: ! |2 - 1 -8.1912892931149894e+00 7.5887354282236608e-01 -1.2625078865710950e+00 + 1 -8.1912892931149894e+00 7.5887354282236519e-01 -1.2625078865710941e+00 2 2.9602498712671452e+00 -1.0588320544842651e+01 1.1519772530615358e+00 - 3 1.9949098978773105e-01 3.3201790603073089e+00 -1.2360541799328186e+00 - 4 7.6414578298653435e-01 4.0213523942979013e-01 9.4797175075936373e+00 + 3 1.9949098978772928e-01 3.3201790603073089e+00 -1.2360541799328195e+00 + 4 7.6414578298653524e-01 4.0213523942979190e-01 9.4797175075936355e+00 5 4.1945116087801502e+00 4.0211675202040693e+00 6.4807220477828054e+00 - 6 6.6450126498528483e+00 -3.3655099236048991e+00 2.4183675473801021e+00 - 7 -4.5091473605325696e+00 -7.7672528121795326e+00 -5.4811778043718888e+00 - 8 -3.4780857052968415e+00 -4.5196373264239198e-01 -3.4348484485387509e-01 - 9 -1.3829126879378810e+01 3.3400779631917277e-01 8.3332691135051706e-01 - 10 -4.6448721480660096e+00 2.1918975237587448e+00 -4.2071718234681317e+00 - 11 2.7312864224296671e+00 4.0287946263367500e+00 8.9204658499239251e+00 + 6 6.6450126498528475e+00 -3.3655099236048982e+00 2.4183675473801003e+00 + 7 -4.5091473605325678e+00 -7.7672528121795308e+00 -5.4811778043718888e+00 + 8 -3.4780857052968406e+00 -4.5196373264239553e-01 -3.4348484485387243e-01 + 9 -1.3829126879378810e+01 3.3400779631917366e-01 8.3332691135051618e-01 + 10 -4.6448721480660113e+00 2.1918975237587466e+00 -4.2071718234681317e+00 + 11 2.7312864224296662e+00 4.0287946263367500e+00 8.9204658499239251e+00 12 7.8751891700625904e+00 -7.7186307214801797e+00 -5.2791439019701114e+00 - 13 -1.5858309992357273e+00 -2.3812819396093934e+00 1.2460555338797787e+00 - 14 6.2686278379542264e+00 2.5996877962621214e+00 -7.3065539727817423e+00 + 13 -1.5858309992357265e+00 -2.3812819396093947e+00 1.2460555338797792e+00 + 14 6.2686278379542255e+00 2.5996877962621214e+00 -7.3065539727817423e+00 15 -4.3326311771962445e-02 -6.0170386352470562e-01 -1.0129825989425537e+01 16 -7.2727057172127685e+00 6.4043826683606628e+00 3.5171698455744105e+00 17 9.5539951969070547e+00 2.6379654076395345e+00 5.0065343169077945e+00 - 18 -3.9214285985710289e+00 -3.3891469739812172e+00 3.2978277630465125e+00 + 18 -3.9214285985710298e+00 -3.3891469739812190e+00 3.2978277630465143e+00 19 5.2752276712922141e-01 -5.0346196994826009e+00 -7.2649963109726121e+00 20 3.3539383489473220e+00 -3.4277977518290026e-01 5.8115196917869794e-01 - 21 -3.2053627402696465e+00 -9.8463742292726408e+00 1.2907611413251274e+00 + 21 -3.2053627402696447e+00 -9.8463742292726408e+00 1.2907611413251265e+00 22 7.4683659037949859e+00 5.0663391168235794e+00 -7.7210795150894302e+00 23 7.0209510094956986e+00 -8.2134652397570367e+00 4.8499600596081835e+00 24 4.1068542205309111e+00 7.3847751157925199e+00 2.2530249788791874e+00 - 25 -3.9317998834815548e+00 -2.5156019711898603e+00 -7.5848748129221573e+00 + 25 -3.9317998834815540e+00 -2.5156019711898585e+00 -7.5848748129221573e+00 26 9.6130868394163904e-01 4.2613891391897135e-01 -6.2159492546416457e+00 27 3.1192079889978230e+00 -6.5362208060545628e+00 1.2268964071865918e+00 - 28 -6.0381257391328775e+00 -5.1923165377355414e+00 2.9595508172547853e+00 + 28 -6.0381257391328775e+00 -5.1923165377355396e+00 2.9595508172547853e+00 29 3.6213632449475486e+00 7.9953345033105618e+00 -2.4577107962677385e+00 - 30 9.3099853021452930e+00 -4.1372759628053686e+00 2.4543788703785023e+00 - 31 7.3989572826939201e+00 -4.1718610802469280e+00 -8.0314138211966313e-01 - 32 7.4385441920429161e+00 4.0458707919489969e+00 -3.4391127020935182e+00 + 30 9.3099853021452930e+00 -4.1372759628053686e+00 2.4543788703785041e+00 + 31 7.3989572826939192e+00 -4.1718610802469271e+00 -8.0314138211966402e-01 + 32 7.4385441920429178e+00 4.0458707919489978e+00 -3.4391127020935190e+00 33 -7.6856588792542304e+00 -5.2818796645272048e+00 4.5261033372808726e+00 34 1.4341383089365500e-02 1.9309480517379565e+00 -5.5943902542352966e+00 - 35 -2.0808410967907274e+00 -1.0280592113229023e+01 5.1428946976574741e-01 - 36 -8.8183779521306405e-01 9.8684615667595459e+00 -4.8109031519057527e-01 + 35 -2.0808410967907278e+00 -1.0280592113229023e+01 5.1428946976574741e-01 + 36 -8.8183779521306316e-01 9.8684615667595441e+00 -4.8109031519057349e-01 37 -2.2686352055426395e+00 2.1331123333755340e+00 5.6453425235790373e+00 - 38 -3.1134845125038391e-01 5.3227665374006232e+00 -2.1683540213154733e+00 + 38 -3.1134845125038391e-01 5.3227665374006232e+00 -2.1683540213154724e+00 39 6.2802359097693028e+00 -4.4534617586305956e+00 8.8595185494148723e+00 40 -2.3301691419577937e+00 -3.2758785270630066e+00 -5.7819201702562930e+00 41 -5.9529127476328636e-01 2.1159296355895192e+00 8.6146423556989973e+00 42 5.9189513497850648e+00 -2.5092333558200637e+00 -5.1879957283630036e+00 43 -3.9541467863883950e-01 1.7167882940314338e+00 1.2472048975129875e+00 - 44 9.0533839182766673e-01 3.1947228611599816e+00 1.2778052286326369e+01 + 44 9.0533839182766673e-01 3.1947228611599812e+00 1.2778052286326369e+01 45 -7.2126726281236007e+00 4.8416302234272584e+00 -4.7112146424964925e+00 46 -7.1816028879383049e+00 6.7619490219881930e+00 3.7606013072495070e+00 47 4.7420508215326551e-01 2.6438079361177045e+00 9.3458736364390571e+00 - 48 -9.3992570471024575e+00 -7.2012852783004933e+00 5.3036194512231303e+00 - 49 -5.5873879559778343e+00 7.7963293184336617e+00 -5.6221041743396887e+00 - 50 6.8601963794059770e+00 -2.4660866715270968e+00 -1.6122667028154534e+00 + 48 -9.3992570471024592e+00 -7.2012852783004915e+00 5.3036194512231321e+00 + 49 -5.5873879559778334e+00 7.7963293184336617e+00 -5.6221041743396896e+00 + 50 6.8601963794059770e+00 -2.4660866715270973e+00 -1.6122667028154529e+00 51 -1.0615369098452508e+01 -1.1947069593051742e+00 -2.4754931735718033e+00 - 52 -1.0276441993468604e+00 1.2386128581162801e+00 2.7418262118600261e+00 - 53 3.0404706830256303e+00 1.2330889276234737e-01 1.0538693274614536e+01 - 54 2.1362122614980152e+00 3.4829232055967774e+00 -1.0358441996855289e+01 + 52 -1.0276441993468604e+00 1.2386128581162805e+00 2.7418262118600252e+00 + 53 3.0404706830256303e+00 1.2330889276234826e-01 1.0538693274614536e+01 + 54 2.1362122614980152e+00 3.4829232055967783e+00 -1.0358441996855289e+01 55 1.1299172592074738e+01 7.6545677558556874e-02 -3.9336839343099766e-01 - 56 -8.4664025172925417e-01 4.2930578794119461e+00 2.5997052919321426e+00 - 57 -3.9059207579783326e+00 1.0936390766210906e+01 2.4937931794373531e+00 - 58 -9.2443531485287878e+00 -2.8306427796695184e+00 4.3004542463117321e+00 - 59 6.4468827293851163e+00 6.7385166803754615e+00 -8.2413070730835223e+00 - 60 -6.2782603157083186e+00 8.1725418209406957e+00 -4.4584633713007520e+00 - 61 -2.3223903213770005e+00 -1.3559332411250972e+01 2.2972608899644109e-01 - 62 3.0202286274163948e+00 -5.8173499219835723e-02 3.7893096308014718e-01 - 63 -6.1967102136017562e+00 -4.9695212866018759e+00 -5.2998409387882619e+00 - 64 5.1027628612149876e+00 5.3292269345077372e+00 -8.7272297575101980e+00 + 56 -8.4664025172925506e-01 4.2930578794119478e+00 2.5997052919321426e+00 + 57 -3.9059207579783344e+00 1.0936390766210904e+01 2.4937931794373522e+00 + 58 -9.2443531485287860e+00 -2.8306427796695193e+00 4.3004542463117339e+00 + 59 6.4468827293851172e+00 6.7385166803754579e+00 -8.2413070730835241e+00 + 60 -6.2782603157083186e+00 8.1725418209406975e+00 -4.4584633713007520e+00 + 61 -2.3223903213769987e+00 -1.3559332411250972e+01 2.2972608899644109e-01 + 62 3.0202286274163956e+00 -5.8173499219836611e-02 3.7893096308014762e-01 + 63 -6.1967102136017562e+00 -4.9695212866018759e+00 -5.2998409387882637e+00 + 64 5.1027628612149876e+00 5.3292269345077354e+00 -8.7272297575101980e+00 run_vdwl: -163.22666341025 run_coul: 0 run_stress: ! |- - -5.4984932084942841e+02 -5.4747825264498317e+02 -5.6218018236834973e+02 -1.3192159297195820e+01 -1.3022347931562763e+01 5.4632816484748133e+01 + -5.4984932084942841e+02 -5.4747825264498306e+02 -5.6218018236834973e+02 -1.3192159297195806e+01 -1.3022347931562834e+01 5.4632816484748162e+01 run_forces: ! |2 - 1 -8.2294707224958152e+00 6.6415559858223139e-01 -1.2477806420252646e+00 + 1 -8.2294707224958170e+00 6.6415559858223139e-01 -1.2477806420252637e+00 2 2.9539163722155473e+00 -1.0567305774620989e+01 1.1661560767930856e+00 - 3 3.3196144058788746e-01 3.1584903320856981e+00 -1.3990995807552162e+00 + 3 3.3196144058788657e-01 3.1584903320856998e+00 -1.3990995807552162e+00 4 9.5391741269238572e-01 3.7826565316552063e-01 9.5055318246309355e+00 5 4.1639673516102560e+00 3.9705390785870254e+00 6.5682616368294298e+00 - 6 6.6727168421938297e+00 -3.6374343121692387e+00 2.7114260395938978e+00 + 6 6.6727168421938305e+00 -3.6374343121692396e+00 2.7114260395938996e+00 7 -4.2186566599771531e+00 -7.5833932377224995e+00 -5.5693511180213600e+00 8 -3.4319560756454162e+00 -3.6671624646345102e-01 -4.2144329130681235e-01 - 9 -1.3812189315006259e+01 3.4080905711091208e-01 8.0596405315020814e-01 + 9 -1.3812189315006256e+01 3.4080905711091386e-01 8.0596405315020725e-01 10 -4.7413720402957606e+00 1.8126358752434710e+00 -4.0849671973917960e+00 - 11 2.8522718591694503e+00 4.0370796861985419e+00 8.7789881157941547e+00 - 12 7.8506807861755989e+00 -7.6881532723047741e+00 -5.2541140686568868e+00 + 11 2.8522718591694511e+00 4.0370796861985419e+00 8.7789881157941547e+00 + 12 7.8506807861755981e+00 -7.6881532723047723e+00 -5.2541140686568850e+00 13 -1.6686186680304886e+00 -2.2717282650628912e+00 1.3414761770932502e+00 - 14 6.2566177844507571e+00 2.6175790060871655e+00 -7.3109911007315738e+00 - 15 -3.5512488500033967e-02 -6.0325420556797837e-01 -1.0115277456055301e+01 - 16 -7.2839584328751013e+00 6.4191562141574678e+00 3.5013328184702615e+00 - 17 9.5592981582460510e+00 2.7178395190361959e+00 5.0809557506572265e+00 - 18 -3.8846765196129365e+00 -3.3430991646140935e+00 3.2802508011790628e+00 - 19 6.2772117004625883e-01 -4.8514804166047600e+00 -7.4198875094560055e+00 + 14 6.2566177844507562e+00 2.6175790060871664e+00 -7.3109911007315747e+00 + 15 -3.5512488500034856e-02 -6.0325420556797837e-01 -1.0115277456055301e+01 + 16 -7.2839584328751013e+00 6.4191562141574661e+00 3.5013328184702623e+00 + 17 9.5592981582460510e+00 2.7178395190361972e+00 5.0809557506572265e+00 + 18 -3.8846765196129374e+00 -3.3430991646140935e+00 3.2802508011790645e+00 + 19 6.2772117004626016e-01 -4.8514804166047609e+00 -7.4198875094560055e+00 20 3.3548741544632952e+00 -3.5511160096009542e-01 5.8901206194143274e-01 - 21 -3.2206639942859443e+00 -9.9286364065253387e+00 1.2785694915312740e+00 + 21 -3.2206639942859443e+00 -9.9286364065253387e+00 1.2785694915312722e+00 22 7.4555159259077692e+00 5.0895617896923415e+00 -7.7346439701625966e+00 23 7.0720409003383446e+00 -8.2326782144613713e+00 4.8999576462066763e+00 - 24 3.8539038122551608e+00 7.6168833469064579e+00 2.3557227019554334e+00 - 25 -3.9459081317767222e+00 -2.5213387528679223e+00 -7.4689143550869241e+00 - 26 1.0113873219042404e+00 1.7546259377383389e-01 -6.2594150246692672e+00 - 27 3.1808032047272534e+00 -6.5432302930946378e+00 1.2618305054207626e+00 + 24 3.8539038122551625e+00 7.6168833469064543e+00 2.3557227019554343e+00 + 25 -3.9459081317767231e+00 -2.5213387528679232e+00 -7.4689143550869241e+00 + 26 1.0113873219042380e+00 1.7546259377383627e-01 -6.2594150246692681e+00 + 27 3.1808032047272525e+00 -6.5432302930946387e+00 1.2618305054207621e+00 28 -5.9931907183582211e+00 -5.1409008301595644e+00 2.9141715145646727e+00 - 29 3.4534555052025291e+00 7.9689185757712870e+00 -2.4166494671841887e+00 + 29 3.4534555052025300e+00 7.9689185757712870e+00 -2.4166494671841887e+00 30 9.3924610414928704e+00 -4.1698024569281982e+00 2.6643218056377420e+00 - 31 7.3358370584994654e+00 -4.1973124834250282e+00 -8.3010194948160221e-01 - 32 7.3943960241283753e+00 4.1542308511930637e+00 -3.4245736585107807e+00 - 33 -7.7194343389815030e+00 -5.3308239041411811e+00 4.5490264110666576e+00 + 31 7.3358370584994672e+00 -4.1973124834250273e+00 -8.3010194948160310e-01 + 32 7.3943960241283788e+00 4.1542308511930646e+00 -3.4245736585107815e+00 + 33 -7.7194343389815030e+00 -5.3308239041411802e+00 4.5490264110666558e+00 34 1.5343802734805889e-01 1.9182082520781198e+00 -5.7227161806870903e+00 - 35 -2.2413415929122471e+00 -1.0393995120476315e+01 4.3417636109408975e-01 - 36 -1.1206820076087858e+00 9.8632654350583895e+00 -7.4143452129578413e-01 + 35 -2.2413415929122462e+00 -1.0393995120476315e+01 4.3417636109408797e-01 + 36 -1.1206820076087867e+00 9.8632654350583895e+00 -7.4143452129578680e-01 37 -2.4246244313823127e+00 2.3044207485791537e+00 5.7890564801142066e+00 - 38 -5.3738487239109523e-01 5.2786062896097778e+00 -2.3626180572048687e+00 + 38 -5.3738487239109523e-01 5.2786062896097770e+00 -2.3626180572048692e+00 39 6.3886523307253746e+00 -4.3399697303274891e+00 9.0181916658118375e+00 - 40 -2.3861586287091283e+00 -3.2836123773823833e+00 -5.5776816127277389e+00 + 40 -2.3861586287091274e+00 -3.2836123773823824e+00 -5.5776816127277389e+00 41 -9.0646450923129307e-01 1.9914992939773488e+00 8.5107451129879834e+00 42 5.9551460186563014e+00 -2.5585603984709628e+00 -5.1987974091154516e+00 43 -4.3599168281165374e-01 1.6712528630262453e+00 1.2816846979773100e+00 - 44 8.4974573425527400e-01 3.0899456980185049e+00 1.2851650659811307e+01 - 45 -7.0442538599183102e+00 5.0586696700089222e+00 -4.6674345194080518e+00 + 44 8.4974573425527311e-01 3.0899456980185040e+00 1.2851650659811305e+01 + 45 -7.0442538599183102e+00 5.0586696700089204e+00 -4.6674345194080518e+00 46 -7.1801875599022162e+00 6.7590934281063877e+00 3.7635120215433013e+00 - 47 5.1317375574659274e-01 2.6779341206371439e+00 9.2741917179814291e+00 - 48 -9.3078567387719691e+00 -7.2851345405527432e+00 5.4021614945753766e+00 + 47 5.1317375574659363e-01 2.6779341206371421e+00 9.2741917179814291e+00 + 48 -9.3078567387719691e+00 -7.2851345405527415e+00 5.4021614945753775e+00 49 -5.5978655116913218e+00 7.7697351691267835e+00 -5.6054496108177165e+00 - 50 6.8944270702912647e+00 -2.4979106397944975e+00 -1.6711196893660549e+00 + 50 6.8944270702912629e+00 -2.4979106397944966e+00 -1.6711196893660563e+00 51 -1.0589443847527470e+01 -1.1433769514195413e+00 -2.5199895713086193e+00 - 52 -1.1738240025250661e+00 1.1071497469678624e+00 2.6529976375043698e+00 - 53 3.0682006246374587e+00 2.0292790278432879e-01 1.0584336521467472e+01 - 54 2.1439346160217654e+00 3.4807655514789477e+00 -1.0404022585935799e+01 + 52 -1.1738240025250657e+00 1.1071497469678633e+00 2.6529976375043685e+00 + 53 3.0682006246374596e+00 2.0292790278432701e-01 1.0584336521467472e+01 + 54 2.1439346160217654e+00 3.4807655514789495e+00 -1.0404022585935797e+01 55 1.1341945870703348e+01 1.1812984132292509e-01 -4.3788684134324690e-01 - 56 -5.0853495208522448e-01 4.3721019098526890e+00 2.6661059733515078e+00 + 56 -5.0853495208522537e-01 4.3721019098526890e+00 2.6661059733515078e+00 57 -3.7840594071371267e+00 1.1089743031131956e+01 2.3884678929613359e+00 58 -9.4268734677328467e+00 -2.7210262550267679e+00 4.3142585606710391e+00 - 59 6.4673603867530671e+00 6.8013230672937857e+00 -8.1798771518830709e+00 + 59 6.4673603867530653e+00 6.8013230672937874e+00 -8.1798771518830709e+00 60 -6.3371704156347120e+00 8.2056355573409814e+00 -4.4997023517211074e+00 - 61 -2.3170606856174616e+00 -1.3658343433246674e+01 1.0623172135206077e-01 + 61 -2.3170606856174598e+00 -1.3658343433246678e+01 1.0623172135206166e-01 62 3.0553926824435198e+00 -1.4425840477553686e-02 3.3505019908623868e-01 - 63 -6.2122003399241823e+00 -5.0242126599414014e+00 -5.3263529941212209e+00 - 64 5.1584253754664209e+00 5.3709530308188809e+00 -8.7534806643756298e+00 + 63 -6.2122003399241823e+00 -5.0242126599414014e+00 -5.3263529941212200e+00 + 64 5.1584253754664191e+00 5.3709530308188800e+00 -8.7534806643756298e+00 ... diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml index 8a9632b88f..92fc41d7e6 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-11 prerequisites: ! | pair tersoff/mod @@ -17,139 +17,139 @@ natoms: 64 init_vdwl: -271.724273648021 init_coul: 0 init_stress: ! |2- - 4.5327307609410205e+01 4.8520624491107604e+01 4.9902937603449253e+01 -9.5506101395831298e+00 3.2604807162960689e+01 3.7958926469664576e+00 + 4.5327307609410205e+01 4.8520624491107647e+01 4.9902937603449239e+01 -9.5506101395831298e+00 3.2604807162960675e+01 3.7958926469664611e+00 init_forces: ! |2 - 1 -1.1892795399502762e+00 3.4257359265649283e+00 1.7874368716815203e+00 - 2 -2.0954555386253175e+00 -1.7654085262330996e+00 -1.8532577270904687e+00 - 3 1.1876001464899757e+00 1.9242256463464447e-02 -9.0670530051980980e-01 - 4 -2.5214919613545850e+00 3.0505938787742286e+00 8.5556867413215443e-01 - 5 -2.2339471154402837e+00 -4.0007755923806543e-01 1.2555572333857423e-01 - 6 6.9406481651349483e-01 4.0779990387340961e+00 1.5289132846276394e+00 - 7 -8.6448706557168009e-01 -9.4197647582959165e-01 3.4802822970950045e+00 - 8 3.0016862396459665e-01 9.5380838768747189e-01 -1.3651064654046985e+00 - 9 -6.9326758274324463e-01 -2.8733710553178735e+00 -2.4740438488877459e+00 - 10 4.6147807167257193e-02 -2.2738498964512495e+00 -3.1717588361770175e+00 + 1 -1.1892795399502771e+00 3.4257359265649283e+00 1.7874368716815203e+00 + 2 -2.0954555386253193e+00 -1.7654085262330996e+00 -1.8532577270904687e+00 + 3 1.1876001464899755e+00 1.9242256463464447e-02 -9.0670530051980969e-01 + 4 -2.5214919613545845e+00 3.0505938787742286e+00 8.5556867413215532e-01 + 5 -2.2339471154402832e+00 -4.0007755923806521e-01 1.2555572333857401e-01 + 6 6.9406481651349439e-01 4.0779990387340961e+00 1.5289132846276394e+00 + 7 -8.6448706557168098e-01 -9.4197647582959121e-01 3.4802822970950027e+00 + 8 3.0016862396459620e-01 9.5380838768747189e-01 -1.3651064654046985e+00 + 9 -6.9326758274324418e-01 -2.8733710553178735e+00 -2.4740438488877459e+00 + 10 4.6147807167256832e-02 -2.2738498964512490e+00 -3.1717588361770170e+00 11 3.7082399304089573e+00 -4.4335060560642923e+00 3.5780289702018742e+00 - 12 -6.2207601922482070e+00 -4.2728239828918628e+00 -3.8672463790561697e+00 - 13 -1.0545105917528061e+00 5.9534933227328537e+00 -1.2541339268562639e+00 - 14 -1.9555282724792578e+00 4.9515688839071048e+00 7.5550610196808976e-02 + 12 -6.2207601922482070e+00 -4.2728239828918619e+00 -3.8672463790561697e+00 + 13 -1.0545105917528064e+00 5.9534933227328537e+00 -1.2541339268562641e+00 + 14 -1.9555282724792578e+00 4.9515688839071048e+00 7.5550610196808532e-02 15 -4.3678587432815448e+00 5.2039733154082759e+00 -3.8907877292288418e+00 - 16 2.0376392283211429e+00 4.1379151497049238e-02 7.3383531261943142e+00 - 17 2.5868961445484078e+00 3.3855091049241492e+00 -4.3525116836709090e+00 - 18 -2.0691760334270426e-01 1.1174781095513309e-01 3.9956653276596352e+00 - 19 -1.7181968595197383e+00 -3.2977071933364361e+00 -6.7298506096511712e-01 - 20 -6.6869704016886153e+00 6.5629477674615799e-01 8.5744900543906888e-01 - 21 1.9661997284095161e+00 5.8407645448956558e-01 -2.1403769815463689e+00 + 16 2.0376392283211429e+00 4.1379151497046351e-02 7.3383531261943142e+00 + 17 2.5868961445484082e+00 3.3855091049241492e+00 -4.3525116836709090e+00 + 18 -2.0691760334270470e-01 1.1174781095513486e-01 3.9956653276596352e+00 + 19 -1.7181968595197383e+00 -3.2977071933364370e+00 -6.7298506096511712e-01 + 20 -6.6869704016886153e+00 6.5629477674615799e-01 8.5744900543907066e-01 + 21 1.9661997284095161e+00 5.8407645448956558e-01 -2.1403769815463707e+00 22 -6.4806179729927962e+00 5.2609892436594707e+00 -5.8464202950859878e+00 23 2.1953645827992441e+00 3.8674084242261273e+00 1.6173483594542475e+00 - 24 2.5151508371365803e+00 1.4617337639339523e+00 3.4414267080105279e+00 + 24 2.5151508371365794e+00 1.4617337639339514e+00 3.4414267080105279e+00 25 1.0523978389374937e+00 -5.2326428640524392e-02 1.5897502115131033e+00 - 26 5.9916481607206099e-02 -5.7366071373394834e-01 1.3123953222317672e+00 - 27 2.9093832181966754e+00 -5.2366747707677330e-01 1.7866950461283688e+00 + 26 5.9916481607205876e-02 -5.7366071373394922e-01 1.3123953222317677e+00 + 27 2.9093832181966750e+00 -5.2366747707677330e-01 1.7866950461283684e+00 28 8.9638119308977648e-01 1.9996170391979944e+00 4.7622873174925884e+00 - 29 -3.7917232870403828e+00 1.3473159628039733e+00 -1.9274546986124070e+00 - 30 -1.6130847767696728e+00 1.3894366643496951e+00 -1.0830830302555146e+00 - 31 -1.3151578459616253e+00 1.8871395994432212e+00 -2.7011060864608871e-01 - 32 -3.2712791280387576e+00 7.1096851908456316e-01 -1.2734746552927405e+00 - 33 5.2911245069099460e+00 -3.4010540959332545e+00 3.6524180132002586e+00 - 34 7.9555324781102965e-01 -1.0583159648069751e-01 1.3094669311144647e-01 - 35 1.4066245523460819e+00 2.6509737902065122e-02 3.3189083125822232e+00 - 36 -5.9348529189884680e-01 -3.0775310512793967e+00 7.3726020443943635e-02 - 37 -2.1879917887538411e+00 1.8340593401715548e+00 -2.5952825292852095e+00 - 38 -8.4063356882763873e-01 -5.1045205546434858e-01 7.5648910376227496e-01 - 39 3.1966416370423714e+00 -1.7900106360847508e+00 -3.8176153923506142e+00 - 40 5.0170678274997247e+00 -2.4371237670262524e+00 -2.7953264349333442e+00 - 41 -2.2964879304419927e-02 -9.5684782238783939e-01 -8.4045745865603538e-01 - 42 -3.7325596565462327e+00 -1.4944324070127961e+00 -6.6156987915423582e-01 + 29 -3.7917232870403828e+00 1.3473159628039741e+00 -1.9274546986124070e+00 + 30 -1.6130847767696728e+00 1.3894366643496951e+00 -1.0830830302555141e+00 + 31 -1.3151578459616262e+00 1.8871395994432212e+00 -2.7011060864608827e-01 + 32 -3.2712791280387572e+00 7.1096851908456316e-01 -1.2734746552927405e+00 + 33 5.2911245069099460e+00 -3.4010540959332536e+00 3.6524180132002577e+00 + 34 7.9555324781102921e-01 -1.0583159648069751e-01 1.3094669311144647e-01 + 35 1.4066245523460814e+00 2.6509737902064234e-02 3.3189083125822227e+00 + 36 -5.9348529189884658e-01 -3.0775310512793981e+00 7.3726020443945411e-02 + 37 -2.1879917887538411e+00 1.8340593401715548e+00 -2.5952825292852104e+00 + 38 -8.4063356882763829e-01 -5.1045205546434813e-01 7.5648910376227496e-01 + 39 3.1966416370423723e+00 -1.7900106360847508e+00 -3.8176153923506142e+00 + 40 5.0170678274997247e+00 -2.4371237670262533e+00 -2.7953264349333460e+00 + 41 -2.2964879304419927e-02 -9.5684782238784027e-01 -8.4045745865603494e-01 + 42 -3.7325596565462327e+00 -1.4944324070127959e+00 -6.6156987915423582e-01 43 8.2163161790382777e-01 -5.6551284520222911e+00 3.5034152559291865e-01 - 44 3.7094881869229743e+00 -4.0305786490774889e+00 2.4402506192353060e+00 + 44 3.7094881869229743e+00 -4.0305786490774906e+00 2.4402506192353073e+00 45 -2.5415464668779046e+00 2.3561442767971252e+00 -3.3698756670727792e+00 46 -8.0311065526091541e-01 -1.8070192617844101e+00 5.9279212669666430e+00 - 47 3.2198087191803304e+00 2.1050004196645213e+00 1.1081985447058491e+00 + 47 3.2198087191803304e+00 2.1050004196645218e+00 1.1081985447058491e+00 48 1.1757816284297755e+00 -8.0697689137480266e-02 -2.5399512834746130e-01 49 -3.1588233852954701e+00 -5.4636934937363648e+00 -3.0409687849567568e+00 - 50 -2.7634926151772410e-01 3.1171696810177565e+00 -1.2591746592873663e+00 + 50 -2.7634926151772365e-01 3.1171696810177583e+00 -1.2591746592873654e+00 51 -2.7543054752091045e+00 2.8286849763020028e+00 4.2904949083466351e+00 - 52 5.8417676659988604e+00 -6.1620383217354462e+00 5.8373190892393598e+00 - 53 4.3349543609042716e+00 3.8955013047694798e+00 2.4358913852148913e+00 - 54 3.1961654886581594e+00 -3.9231725683375429e+00 -2.8101612958752127e+00 - 55 1.7020114280700853e+00 -3.1207712150229088e+00 -4.5927309465946955e+00 - 56 -7.2812157006377631e-01 2.7705521432161806e-01 -2.4526401278051884e+00 - 57 1.4923040822361899e-03 -1.2901024427293186e+00 -1.9986655014236149e-01 + 52 5.8417676659988595e+00 -6.1620383217354462e+00 5.8373190892393598e+00 + 53 4.3349543609042716e+00 3.8955013047694789e+00 2.4358913852148905e+00 + 54 3.1961654886581568e+00 -3.9231725683375429e+00 -2.8101612958752145e+00 + 55 1.7020114280700847e+00 -3.1207712150229097e+00 -4.5927309465946955e+00 + 56 -7.2812157006377642e-01 2.7705521432161762e-01 -2.4526401278051879e+00 + 57 1.4923040822370781e-03 -1.2901024427293186e+00 -1.9986655014236124e-01 58 2.8839232710488920e+00 -1.4968148916784054e+00 1.9674510279452671e+00 - 59 3.7290396548099460e+00 2.9236672921889606e+00 -3.5739265191731291e+00 + 59 3.7290396548099451e+00 2.9236672921889610e+00 -3.5739265191731291e+00 60 -3.3457486474429414e+00 -5.8722985930097442e+00 -3.2731439760160956e+00 - 61 -1.2066779913281913e+00 1.8517791870265143e+00 -1.1888511310265368e+00 - 62 -3.8148306661769906e+00 3.5439712709911046e+00 -2.7497767002061515e+00 - 63 2.2829467996296287e+00 -4.8025431165588612e+00 -4.2319407270880705e-01 + 61 -1.2066779913281904e+00 1.8517791870265143e+00 -1.1888511310265368e+00 + 62 -3.8148306661769911e+00 3.5439712709911046e+00 -2.7497767002061524e+00 + 63 2.2829467996296282e+00 -4.8025431165588621e+00 -4.2319407270880682e-01 64 3.5261103084670364e+00 3.7869432645771459e+00 5.8249511151439197e+00 run_vdwl: -271.714376157296 run_coul: 0 run_stress: ! |2- - 4.5291635990231477e+01 4.8485451299856685e+01 5.0006323329447035e+01 -9.4533068028372238e+00 3.2503068989512592e+01 4.1820539511498547e+00 + 4.5291635990231427e+01 4.8485451299856578e+01 5.0006323329447021e+01 -9.4533068028372274e+00 3.2503068989512613e+01 4.1820539511499151e+00 run_forces: ! |2 - 1 -1.1918947657502443e+00 3.4182958773698853e+00 1.7904564868842150e+00 - 2 -2.1101687652926926e+00 -1.7881701543699093e+00 -1.8660770235856479e+00 - 3 1.1499789392004458e+00 3.1318049610578491e-02 -8.7836200802514608e-01 - 4 -2.4949798351279822e+00 3.0641251157847087e+00 8.2683039594171026e-01 - 5 -2.2514955577372913e+00 -4.0959315506362448e-01 1.4354742156609368e-01 - 6 7.5853679534759166e-01 4.0830865102857796e+00 1.5648769292874620e+00 - 7 -8.3974616990465334e-01 -9.0802601082320589e-01 3.4467636036274385e+00 - 8 2.8195376164759800e-01 9.4427386634072752e-01 -1.3590398824468315e+00 - 9 -7.2160097669275269e-01 -2.9019044838478889e+00 -2.4980059604350497e+00 - 10 4.0946707887443035e-02 -2.2856155090316705e+00 -3.1155390552923201e+00 - 11 3.6678589716761860e+00 -4.3961534857252671e+00 3.5604440610775301e+00 - 12 -6.2101124027422259e+00 -4.2512126616859591e+00 -3.8486449827950837e+00 + 1 -1.1918947657502448e+00 3.4182958773698857e+00 1.7904564868842154e+00 + 2 -2.1101687652926926e+00 -1.7881701543699076e+00 -1.8660770235856474e+00 + 3 1.1499789392004445e+00 3.1318049610578491e-02 -8.7836200802514564e-01 + 4 -2.4949798351279826e+00 3.0641251157847078e+00 8.2683039594171026e-01 + 5 -2.2514955577372895e+00 -4.0959315506362581e-01 1.4354742156609324e-01 + 6 7.5853679534759078e-01 4.0830865102857796e+00 1.5648769292874620e+00 + 7 -8.3974616990465423e-01 -9.0802601082320589e-01 3.4467636036274385e+00 + 8 2.8195376164759889e-01 9.4427386634072663e-01 -1.3590398824468315e+00 + 9 -7.2160097669275269e-01 -2.9019044838478889e+00 -2.4980059604350489e+00 + 10 4.0946707887443923e-02 -2.2856155090316705e+00 -3.1155390552923201e+00 + 11 3.6678589716761860e+00 -4.3961534857252671e+00 3.5604440610775310e+00 + 12 -6.2101124027422259e+00 -4.2512126616859582e+00 -3.8486449827950837e+00 13 -9.8853767077466992e-01 5.9366458542951044e+00 -1.2068287185409750e+00 - 14 -1.9856773352251442e+00 4.9508535035552041e+00 5.1907087118496981e-02 + 14 -1.9856773352251442e+00 4.9508535035552033e+00 5.1907087118496953e-02 15 -4.3566350756857020e+00 5.1863898887809476e+00 -3.8756259179244021e+00 - 16 2.0353788519326237e+00 4.9821647276246273e-02 7.3076197835948209e+00 - 17 2.5821777365174290e+00 3.3851247640671103e+00 -4.3213301779394921e+00 - 18 -2.4549291837112097e-01 1.4426026229081623e-01 4.0126239996445410e+00 - 19 -1.7493866873732822e+00 -3.3215455049730376e+00 -7.0069547129065646e-01 - 20 -6.6735215110955934e+00 6.2728540195079896e-01 8.3442129036797907e-01 - 21 1.9797928202781567e+00 5.3718467924465130e-01 -2.1771145177620359e+00 - 22 -6.4696423803182013e+00 5.2723915719066845e+00 -5.8592496217440937e+00 - 23 2.2106731851878831e+00 3.8883816150166508e+00 1.6421949314180517e+00 - 24 2.5579366274973339e+00 1.4444516236897618e+00 3.4218792980966635e+00 - 25 1.0528226353682415e+00 -4.4267986387067471e-02 1.5675838196884007e+00 - 26 4.7782006510255645e-02 -5.5784177621066933e-01 1.3207903722617040e+00 + 16 2.0353788519326228e+00 4.9821647276245828e-02 7.3076197835948200e+00 + 17 2.5821777365174308e+00 3.3851247640671112e+00 -4.3213301779394904e+00 + 18 -2.4549291837112097e-01 1.4426026229081668e-01 4.0126239996445410e+00 + 19 -1.7493866873732831e+00 -3.3215455049730380e+00 -7.0069547129065690e-01 + 20 -6.6735215110955934e+00 6.2728540195080029e-01 8.3442129036797907e-01 + 21 1.9797928202781558e+00 5.3718467924465130e-01 -2.1771145177620359e+00 + 22 -6.4696423803182013e+00 5.2723915719066827e+00 -5.8592496217440937e+00 + 23 2.2106731851878840e+00 3.8883816150166508e+00 1.6421949314180517e+00 + 24 2.5579366274973339e+00 1.4444516236897618e+00 3.4218792980966626e+00 + 25 1.0528226353682402e+00 -4.4267986387067471e-02 1.5675838196884007e+00 + 26 4.7782006510255437e-02 -5.5784177621066933e-01 1.3207903722617040e+00 27 2.9299528768616572e+00 -5.5817742720001573e-01 1.7996518882221346e+00 - 28 8.7379771231714676e-01 2.0317378135677844e+00 4.7721250877577734e+00 + 28 8.7379771231714587e-01 2.0317378135677826e+00 4.7721250877577734e+00 29 -3.8000786622703515e+00 1.3577390750496805e+00 -1.9359663581396047e+00 - 30 -1.5906854355814142e+00 1.3662070635843266e+00 -1.0898445148582971e+00 - 31 -1.3025407206366624e+00 1.8964647039008451e+00 -2.7231510761590338e-01 - 32 -3.2539664356372855e+00 7.0262291781245700e-01 -1.2808584386417663e+00 + 30 -1.5906854355814142e+00 1.3662070635843266e+00 -1.0898445148582980e+00 + 31 -1.3025407206366624e+00 1.8964647039008451e+00 -2.7231510761590350e-01 + 32 -3.2539664356372846e+00 7.0262291781245967e-01 -1.2808584386417663e+00 33 5.2596408986294385e+00 -3.3953058274223098e+00 3.6491746999779249e+00 - 34 7.8735440926705569e-01 -1.0710243006169362e-01 1.3509866824790451e-01 + 34 7.8735440926705513e-01 -1.0710243006169096e-01 1.3509866824790473e-01 35 1.4141298152530650e+00 4.1771989288174272e-02 3.3205066097919014e+00 - 36 -6.3852185084977231e-01 -3.0622700956246853e+00 3.1902126855895718e-02 - 37 -2.1733919516706246e+00 1.8125832788926235e+00 -2.6019858688777111e+00 - 38 -8.3098475445602260e-01 -5.0280949345705794e-01 7.6501394520272292e-01 + 36 -6.3852185084977320e-01 -3.0622700956246871e+00 3.1902126855895718e-02 + 37 -2.1733919516706237e+00 1.8125832788926235e+00 -2.6019858688777111e+00 + 38 -8.3098475445602260e-01 -5.0280949345705794e-01 7.6501394520272248e-01 39 3.1780625780963874e+00 -1.7750842543948364e+00 -3.8107959944239802e+00 - 40 5.0673369602955054e+00 -2.4509029256628851e+00 -2.8122569560279724e+00 - 41 5.6629551882703133e-03 -9.2739987121600331e-01 -8.1709612116132346e-01 - 42 -3.7355733454518281e+00 -1.5221840226661405e+00 -6.8301016026751449e-01 - 43 8.0301654497618169e-01 -5.6336103194257454e+00 3.3280891647299216e-01 - 44 3.7216318428447646e+00 -4.0326457789100685e+00 2.4276411371636955e+00 - 45 -2.5652700459411899e+00 2.3203294847645317e+00 -3.3607002709832861e+00 - 46 -8.0753027345817174e-01 -1.7996067872009192e+00 5.9580854692345699e+00 - 47 3.2285845533416833e+00 2.0924103403786667e+00 1.1194723988537161e+00 - 48 1.1688136956540618e+00 -5.6138674270530431e-02 -2.5474998569863627e-01 + 40 5.0673369602955054e+00 -2.4509029256628851e+00 -2.8122569560279720e+00 + 41 5.6629551882703133e-03 -9.2739987121600331e-01 -8.1709612116132257e-01 + 42 -3.7355733454518276e+00 -1.5221840226661396e+00 -6.8301016026751404e-01 + 43 8.0301654497618302e-01 -5.6336103194257490e+00 3.3280891647299349e-01 + 44 3.7216318428447646e+00 -4.0326457789100685e+00 2.4276411371636937e+00 + 45 -2.5652700459411903e+00 2.3203294847645308e+00 -3.3607002709832869e+00 + 46 -8.0753027345817263e-01 -1.7996067872009200e+00 5.9580854692345708e+00 + 47 3.2285845533416824e+00 2.0924103403786631e+00 1.1194723988537136e+00 + 48 1.1688136956540616e+00 -5.6138674270530653e-02 -2.5474998569863505e-01 49 -3.2185678215790032e+00 -5.5312356590367173e+00 -3.1069904590061994e+00 - 50 -2.6356763860242438e-01 3.1036424818659194e+00 -1.2758903391299694e+00 + 50 -2.6356763860242660e-01 3.1036424818659194e+00 -1.2758903391299703e+00 51 -2.8071738968594575e+00 2.8702060905481259e+00 4.3081030715942719e+00 52 5.8453254803952301e+00 -6.1511156037641070e+00 5.8404459278581990e+00 - 53 4.3893496213428964e+00 3.9529682528455976e+00 2.5293461908066792e+00 + 53 4.3893496213428946e+00 3.9529682528455976e+00 2.5293461908066792e+00 54 3.1864812498705710e+00 -3.9263054351164062e+00 -2.7996740328705556e+00 - 55 1.6741928863012809e+00 -3.1118648603332209e+00 -4.5507928276719491e+00 - 56 -7.2755429366074531e-01 2.3638688232901517e-01 -2.4423206268377928e+00 + 55 1.6741928863012800e+00 -3.1118648603332209e+00 -4.5507928276719483e+00 + 56 -7.2755429366074487e-01 2.3638688232901472e-01 -2.4423206268377933e+00 57 -4.6903040027292120e-03 -1.3232888876597855e+00 -2.0467223907307161e-01 - 58 2.8879619252105058e+00 -1.4685560725608242e+00 1.9392897818363348e+00 - 59 3.7559063578984673e+00 2.9520899615521978e+00 -3.5747082183205041e+00 - 60 -3.4120487353432085e+00 -5.9079921317921702e+00 -3.3313655490934537e+00 - 61 -1.1947245972934271e+00 1.8614078819708411e+00 -1.1807010370078419e+00 - 62 -3.8048373658391457e+00 3.5279689971056665e+00 -2.7361781562145961e+00 - 63 2.2871253489947252e+00 -4.8341223399724607e+00 -4.5508414479585668e-01 - 64 3.5904334294349534e+00 3.8516221789447727e+00 5.8638653440476931e+00 + 58 2.8879619252105049e+00 -1.4685560725608238e+00 1.9392897818363339e+00 + 59 3.7559063578984673e+00 2.9520899615521992e+00 -3.5747082183205041e+00 + 60 -3.4120487353432085e+00 -5.9079921317921702e+00 -3.3313655490934528e+00 + 61 -1.1947245972934262e+00 1.8614078819708402e+00 -1.1807010370078419e+00 + 62 -3.8048373658391448e+00 3.5279689971056665e+00 -2.7361781562145961e+00 + 63 2.2871253489947261e+00 -4.8341223399724607e+00 -4.5508414479585757e-01 + 64 3.5904334294349534e+00 3.8516221789447722e+00 5.8638653440476931e+00 ... diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml index 641a8e962d..0243e01df7 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 1e-12 prerequisites: ! | pair tersoff/mod/c @@ -17,139 +17,139 @@ natoms: 64 init_vdwl: -270.221167046491 init_coul: 0 init_stress: ! |2- - 3.7721371080158519e+01 4.0406255097836009e+01 4.5487367411373484e+01 -4.8266606949369901e+00 4.8727889805432568e+01 1.1408515692636302e+01 + 3.7721371080158455e+01 4.0406255097835910e+01 4.5487367411373455e+01 -4.8266606949370061e+00 4.8727889805432582e+01 1.1408515692636255e+01 init_forces: ! |2 - 1 -1.1121702900549253e+00 3.2962355779814700e+00 1.7214327613339293e+00 - 2 -2.6231172245796350e+00 -1.1364993928076723e+00 -2.3817153144708119e+00 + 1 -1.1121702900549244e+00 3.2962355779814692e+00 1.7214327613339284e+00 + 2 -2.6231172245796350e+00 -1.1364993928076714e+00 -2.3817153144708110e+00 3 1.2454687790439651e+00 -2.0768859787664962e-02 -9.0044014975037079e-01 - 4 -2.9108777089667255e+00 3.4825750603217136e+00 1.2609281774155390e+00 - 5 -2.1612651325906471e+00 -4.9869587691769302e-01 1.7250163832481702e-01 + 4 -2.9108777089667255e+00 3.4825750603217136e+00 1.2609281774155381e+00 + 5 -2.1612651325906471e+00 -4.9869587691769279e-01 1.7250163832481635e-01 6 6.2541430916574392e-01 4.1094941300847427e+00 1.7170100483649258e+00 - 7 -7.2171003353241292e-01 -8.7428867981606628e-01 3.1938058862406162e+00 + 7 -7.2171003353241292e-01 -8.7428867981606584e-01 3.1938058862406162e+00 8 3.5140079778346966e-01 9.6087816332530318e-01 -1.2820504415972398e+00 - 9 -8.3063920816990322e-02 -3.7423608933633652e+00 -3.2160720450535623e+00 - 10 -3.1901729169774407e-02 -2.3415669618762114e+00 -3.0883299406012168e+00 + 9 -8.3063920816989878e-02 -3.7423608933633652e+00 -3.2160720450535623e+00 + 10 -3.1901729169775739e-02 -2.3415669618762123e+00 -3.0883299406012199e+00 11 4.1864404556275057e+00 -4.8481896851463224e+00 3.8312060479472567e+00 - 12 -9.6713935862591818e+00 -6.6227112990242984e+00 -4.6446377068123139e+00 - 13 1.9646495165853503e-01 7.9861477095384776e+00 -2.7367062033436418e+00 - 14 -2.7684114622587317e+00 5.5939194639363317e+00 -4.0547714650260891e-01 - 15 -7.2775531579340491e+00 8.3478926291447397e+00 -3.2404980553662845e+00 + 12 -9.6713935862591800e+00 -6.6227112990242967e+00 -4.6446377068123139e+00 + 13 1.9646495165853392e-01 7.9861477095384741e+00 -2.7367062033436427e+00 + 14 -2.7684114622587317e+00 5.5939194639363317e+00 -4.0547714650260802e-01 + 15 -7.2775531579340491e+00 8.3478926291447380e+00 -3.2404980553662854e+00 16 3.2825165212935894e+00 1.4503238718907385e-01 9.9619494807553099e+00 - 17 1.8077787360512412e+00 5.6235488307785566e+00 -6.6752189747857935e+00 + 17 1.8077787360512414e+00 5.6235488307785566e+00 -6.6752189747857917e+00 18 -2.9067694818601864e-01 7.0277766073193071e-01 4.3645591263313168e+00 19 -1.7799419254476889e+00 -3.2770446346967073e+00 -8.1006577744305008e-01 - 20 -9.9453199957259972e+00 -4.4689488447166381e-01 2.9031488756869921e+00 - 21 4.0755651659561503e+00 2.5055927550712744e+00 -3.9295891445176494e+00 - 22 -8.4726851156999654e+00 6.8585462938413606e+00 -7.2078210589983769e+00 - 23 2.5236349600547641e+00 5.0871858657739679e+00 1.6016380934443952e+00 - 24 2.7497519642890418e+00 1.7304732457306626e+00 3.6549891820852740e+00 - 25 1.0225647279133203e+00 4.0532546754561860e-02 1.5536574739628866e+00 - 26 -7.0481851150491104e-01 -1.3637381624788669e+00 2.0613502828213091e+00 - 27 2.8896757936606288e+00 -2.5598906474617455e-01 1.6995818028265111e+00 - 28 7.8372315678940652e-01 2.2486288715348084e+00 5.6768795736306181e+00 - 29 -3.7884290849364386e+00 1.1944698204128446e+00 -1.8602750345964847e+00 - 30 -1.5649995972155133e+00 1.3796901248411295e+00 -1.0422790561923814e+00 - 31 -1.4835767031477887e+00 2.1960643033804708e+00 9.3118779237245430e-02 - 32 -3.2907053780286306e+00 6.2378355508109218e-01 -1.2902338668409254e+00 - 33 6.9062659492175591e+00 -4.6716700051867610e+00 4.5297058615592185e+00 - 34 5.9955487511258954e-01 5.1028650560414057e-02 2.1001425329185341e-01 + 20 -9.9453199957259955e+00 -4.4689488447166381e-01 2.9031488756869921e+00 + 21 4.0755651659561503e+00 2.5055927550712744e+00 -3.9295891445176512e+00 + 22 -8.4726851156999636e+00 6.8585462938413606e+00 -7.2078210589983787e+00 + 23 2.5236349600547636e+00 5.0871858657739679e+00 1.6016380934443961e+00 + 24 2.7497519642890405e+00 1.7304732457306626e+00 3.6549891820852740e+00 + 25 1.0225647279133201e+00 4.0532546754561583e-02 1.5536574739628874e+00 + 26 -7.0481851150491059e-01 -1.3637381624788678e+00 2.0613502828213091e+00 + 27 2.8896757936606292e+00 -2.5598906474617433e-01 1.6995818028265111e+00 + 28 7.8372315678940696e-01 2.2486288715348071e+00 5.6768795736306155e+00 + 29 -3.7884290849364386e+00 1.1944698204128448e+00 -1.8602750345964849e+00 + 30 -1.5649995972155135e+00 1.3796901248411300e+00 -1.0422790561923814e+00 + 31 -1.4835767031477887e+00 2.1960643033804708e+00 9.3118779237246319e-02 + 32 -3.2907053780286306e+00 6.2378355508109395e-01 -1.2902338668409250e+00 + 33 6.9062659492175591e+00 -4.6716700051867592e+00 4.5297058615592203e+00 + 34 5.9955487511258931e-01 5.1028650560414057e-02 2.1001425329185341e-01 35 1.3870533247216423e+00 2.2599941992339145e-01 3.1691771352499218e+00 36 -7.2485340203448956e-01 -2.9468050589090384e+00 1.5881949315158159e-01 - 37 -2.2156632667821259e+00 1.5777720928381880e+00 -2.5373496014392680e+00 - 38 -7.4860652592984511e-01 -7.1078971807313196e-01 6.9730423004496167e-01 + 37 -2.2156632667821272e+00 1.5777720928381878e+00 -2.5373496014392685e+00 + 38 -7.4860652592984489e-01 -7.1078971807313263e-01 6.9730423004496167e-01 39 5.0768954315972890e+00 -7.0255010522737926e-01 -5.9161474934557994e+00 40 5.1068862232776402e+00 -2.6572250807869788e+00 -3.0350555471127509e+00 - 41 -1.5543959327638301e-02 -9.9903820196554505e-01 -7.7550537312763934e-01 + 41 -1.5543959327637413e-02 -9.9903820196554549e-01 -7.7550537312763912e-01 42 -5.8719118783583797e+00 -3.2250092618452633e+00 7.4849260312585963e-01 - 43 2.1153755526140956e+00 -7.5250264265041178e+00 -1.0871022565761495e+00 - 44 6.3180364208751865e+00 -6.7411789158583639e+00 1.1116278345350947e+00 - 45 -2.7247244318737365e+00 2.5615735720407926e+00 -3.7075812268108588e+00 - 46 8.4025894151274122e-02 -2.0180730336203885e+00 7.0249965065180646e+00 + 43 2.1153755526140960e+00 -7.5250264265041196e+00 -1.0871022565761499e+00 + 44 6.3180364208751865e+00 -6.7411789158583639e+00 1.1116278345350958e+00 + 45 -2.7247244318737360e+00 2.5615735720407948e+00 -3.7075812268108592e+00 + 46 8.4025894151274094e-02 -2.0180730336203867e+00 7.0249965065180646e+00 47 3.3265285405418528e+00 2.1536423096918682e+00 1.2451815742139596e+00 - 48 1.2590145861274618e+00 -5.9135053727527920e-02 -4.0063540451436003e-01 + 48 1.2590145861274626e+00 -5.9135053727527920e-02 -4.0063540451435958e-01 49 -3.4072597072209669e+00 -6.1070390605333742e+00 -3.5306063249176431e+00 - 50 -1.2324925097128006e+00 4.1915062662249349e+00 -2.5666620297721936e+00 - 51 -2.3733120960180147e+00 3.4165620256287563e+00 5.0660386533198327e+00 - 52 7.4960119597573005e+00 -7.9932429491872048e+00 7.3092067723825780e+00 - 53 4.8598008110851412e+00 4.5281870222367191e+00 2.4268297257522375e+00 - 54 3.3983704274453550e+00 -4.0220846635515732e+00 -2.4796461202922617e+00 + 50 -1.2324925097128014e+00 4.1915062662249358e+00 -2.5666620297721936e+00 + 51 -2.3733120960180139e+00 3.4165620256287572e+00 5.0660386533198327e+00 + 52 7.4960119597572987e+00 -7.9932429491872066e+00 7.3092067723825780e+00 + 53 4.8598008110851412e+00 4.5281870222367200e+00 2.4268297257522375e+00 + 54 3.3983704274453546e+00 -4.0220846635515732e+00 -2.4796461202922595e+00 55 2.0540824843371199e+00 -4.5011288518162811e+00 -5.8606842068916176e+00 - 56 -8.2057128294593273e-01 8.9531331465382280e-03 -2.4950139723745406e+00 - 57 1.9063253744204015e-01 -1.3950288071553631e+00 -1.8130645334635304e-01 - 58 2.7864038109729163e+00 -1.4751542377211930e+00 1.8723178449480449e+00 + 56 -8.2057128294593296e-01 8.9531331465382280e-03 -2.4950139723745401e+00 + 57 1.9063253744203881e-01 -1.3950288071553631e+00 -1.8130645334635370e-01 + 58 2.7864038109729163e+00 -1.4751542377211939e+00 1.8723178449480449e+00 59 3.9282544607350491e+00 2.9149707637849871e+00 -3.6540900686538595e+00 60 -5.2081470599725392e+00 -8.3618639601252767e+00 -5.4019706110934393e+00 - 61 -8.8016078852763746e-01 2.1182748970403305e+00 -1.4653540228996813e+00 - 62 -4.7911545216150282e+00 4.3378864433672462e+00 -2.6608977921209904e+00 - 63 3.8818660647417813e+00 -6.6892167616182174e+00 6.9165485826786144e-01 - 64 5.1815592623345079e+00 6.0301829566070024e+00 1.0737893845502111e+01 + 61 -8.8016078852763657e-01 2.1182748970403305e+00 -1.4653540228996809e+00 + 62 -4.7911545216150291e+00 4.3378864433672462e+00 -2.6608977921209904e+00 + 63 3.8818660647417804e+00 -6.6892167616182157e+00 6.9165485826786188e-01 + 64 5.1815592623345070e+00 6.0301829566070033e+00 1.0737893845502111e+01 run_vdwl: -270.224607668554 run_coul: 0 run_stress: ! |2- - 3.7674451362255276e+01 4.0326697108038509e+01 4.5577845337707849e+01 -4.6735158236851788e+00 4.8643168908345842e+01 1.1894000727069708e+01 + 3.7674451362255247e+01 4.0326697108038395e+01 4.5577845337707821e+01 -4.6735158236852925e+00 4.8643168908345814e+01 1.1894000727069669e+01 run_forces: ! |2 - 1 -1.1142742666418199e+00 3.2887741993210065e+00 1.7241628867442698e+00 - 2 -2.6148518477021274e+00 -1.1740849208477933e+00 -2.3703008670257626e+00 - 3 1.2089929150716658e+00 -6.7487848951954810e-03 -8.7176891527392342e-01 + 1 -1.1142742666418199e+00 3.2887741993210065e+00 1.7241628867442707e+00 + 2 -2.6148518477021256e+00 -1.1740849208477950e+00 -2.3703008670257635e+00 + 3 1.2089929150716656e+00 -6.7487848951994778e-03 -8.7176891527392297e-01 4 -2.8784378291695250e+00 3.4849640896455774e+00 1.2253751868757390e+00 - 5 -2.1768875283676650e+00 -5.0683280025488298e-01 1.8771971799360698e-01 - 6 6.8363271094370026e-01 4.1188116820530274e+00 1.7510959407143254e+00 - 7 -6.9759680551813874e-01 -8.4290063305126406e-01 3.1663839869782047e+00 + 5 -2.1768875283676659e+00 -5.0683280025488120e-01 1.8771971799360743e-01 + 6 6.8363271094370048e-01 4.1188116820530265e+00 1.7510959407143272e+00 + 7 -6.9759680551813918e-01 -8.4290063305126317e-01 3.1663839869782047e+00 8 3.3563530432502575e-01 9.4980829624164631e-01 -1.2775241043615468e+00 - 9 -1.2090643268521584e-01 -3.7768794974128017e+00 -3.2480515433857793e+00 - 10 -3.9827173027341262e-02 -2.3469800281115409e+00 -3.0340141995027476e+00 - 11 4.1282097269421190e+00 -4.7968097304112458e+00 3.8022999483560960e+00 - 12 -9.6623400503948922e+00 -6.5981540025236161e+00 -4.5946083341882282e+00 - 13 3.0038357850795766e-01 7.9786917485485045e+00 -2.6901638494120639e+00 - 14 -2.8062338737355890e+00 5.6004891316720968e+00 -4.2961390202334887e-01 - 15 -7.2648805745731693e+00 8.3251945285468132e+00 -3.2031777212047521e+00 - 16 3.2631813187452239e+00 1.6950378464586580e-01 9.8836563846805330e+00 - 17 1.7876660581841444e+00 5.6116255374247288e+00 -6.6294360080608064e+00 - 18 -3.3201159487641663e-01 7.3194654839619400e-01 4.3820340292676310e+00 - 19 -1.8206300493373171e+00 -3.3051630706796131e+00 -8.4589712208255907e-01 - 20 -9.8897929988994360e+00 -4.8658336333811736e-01 2.8531210732927477e+00 - 21 4.0736008300140742e+00 2.4398907305541004e+00 -3.9565796667215416e+00 - 22 -8.4440920402106130e+00 6.8547775863267688e+00 -7.2142224018556904e+00 - 23 2.5621567759218009e+00 5.1218946302492041e+00 1.6184144172540929e+00 - 24 2.7919657956955897e+00 1.7126950729205657e+00 3.6356286227515984e+00 - 25 1.0239401894422706e+00 4.9099294217466116e-02 1.5335034952572728e+00 - 26 -7.2866022636019356e-01 -1.3606385629801949e+00 2.0823740177212704e+00 - 27 2.9082225152359640e+00 -2.8957326570201725e-01 1.7118504504699348e+00 - 28 7.5417421527058526e-01 2.2935971057630433e+00 5.6934344720508596e+00 - 29 -3.7987533354094705e+00 1.2044876617925269e+00 -1.8672964369860861e+00 - 30 -1.5427652070949360e+00 1.3593187984081179e+00 -1.0476153051317474e+00 - 31 -1.4767939250923430e+00 2.2127425295346232e+00 9.5875204360308941e-02 - 32 -3.2722890231175139e+00 6.0495488607351211e-01 -1.3043629673763908e+00 - 33 6.8576785534296789e+00 -4.6521173898310870e+00 4.5197885948721925e+00 - 34 5.9268805017826043e-01 5.2042918801102900e-02 2.1374154196651229e-01 - 35 1.3952766836821675e+00 2.4050478171119805e-01 3.1729614847063221e+00 + 9 -1.2090643268521584e-01 -3.7768794974128017e+00 -3.2480515433857784e+00 + 10 -3.9827173027342150e-02 -2.3469800281115409e+00 -3.0340141995027476e+00 + 11 4.1282097269421181e+00 -4.7968097304112458e+00 3.8022999483560960e+00 + 12 -9.6623400503948904e+00 -6.5981540025236161e+00 -4.5946083341882282e+00 + 13 3.0038357850795760e-01 7.9786917485485045e+00 -2.6901638494120652e+00 + 14 -2.8062338737355916e+00 5.6004891316720951e+00 -4.2961390202334976e-01 + 15 -7.2648805745731675e+00 8.3251945285468132e+00 -3.2031777212047516e+00 + 16 3.2631813187452239e+00 1.6950378464586624e-01 9.8836563846805312e+00 + 17 1.7876660581841448e+00 5.6116255374247279e+00 -6.6294360080608064e+00 + 18 -3.3201159487641707e-01 7.3194654839619400e-01 4.3820340292676292e+00 + 19 -1.8206300493373175e+00 -3.3051630706796131e+00 -8.4589712208255996e-01 + 20 -9.8897929988994360e+00 -4.8658336333811736e-01 2.8531210732927481e+00 + 21 4.0736008300140742e+00 2.4398907305541013e+00 -3.9565796667215416e+00 + 22 -8.4440920402106130e+00 6.8547775863267697e+00 -7.2142224018556931e+00 + 23 2.5621567759218000e+00 5.1218946302492059e+00 1.6184144172540931e+00 + 24 2.7919657956955888e+00 1.7126950729205657e+00 3.6356286227515984e+00 + 25 1.0239401894422711e+00 4.9099294217465894e-02 1.5335034952572733e+00 + 26 -7.2866022636019401e-01 -1.3606385629801949e+00 2.0823740177212704e+00 + 27 2.9082225152359640e+00 -2.8957326570201680e-01 1.7118504504699348e+00 + 28 7.5417421527058481e-01 2.2935971057630433e+00 5.6934344720508596e+00 + 29 -3.7987533354094696e+00 1.2044876617925264e+00 -1.8672964369860872e+00 + 30 -1.5427652070949365e+00 1.3593187984081179e+00 -1.0476153051317483e+00 + 31 -1.4767939250923430e+00 2.2127425295346228e+00 9.5875204360308719e-02 + 32 -3.2722890231175139e+00 6.0495488607350856e-01 -1.3043629673763908e+00 + 33 6.8576785534296789e+00 -4.6521173898310879e+00 4.5197885948721925e+00 + 34 5.9268805017825998e-01 5.2042918801104676e-02 2.1374154196651229e-01 + 35 1.3952766836821675e+00 2.4050478171119805e-01 3.1729614847063217e+00 36 -7.6808099170433208e-01 -2.9332921244997023e+00 1.2007998407540929e-01 - 37 -2.2027921686068241e+00 1.5570955346907995e+00 -2.5442808648260775e+00 - 38 -7.3699646633911131e-01 -7.0500791082351566e-01 7.0390215916361343e-01 + 37 -2.2027921686068241e+00 1.5570955346907991e+00 -2.5442808648260775e+00 + 38 -7.3699646633911153e-01 -7.0500791082351588e-01 7.0390215916361343e-01 39 5.0221753494654973e+00 -7.0085036602650153e-01 -5.8773682809836112e+00 - 40 5.1673030874188219e+00 -2.6815680399585395e+00 -3.0626556877439941e+00 - 41 1.0676789878963255e-02 -9.7021367768748157e-01 -7.5310859725548096e-01 - 42 -5.8443700387458337e+00 -3.2279591656528281e+00 6.9962004533636746e-01 - 43 2.0876420381888621e+00 -7.4907210140762883e+00 -1.1070376746626898e+00 - 44 6.3410913871860650e+00 -6.7523901286198313e+00 1.0930045880468786e+00 - 45 -2.7411980429804692e+00 2.5203975506934992e+00 -3.6867197118973793e+00 - 46 7.7708166258764727e-02 -2.0166728039677793e+00 7.0577312583076841e+00 + 40 5.1673030874188202e+00 -2.6815680399585395e+00 -3.0626556877439932e+00 + 41 1.0676789878963699e-02 -9.7021367768748179e-01 -7.5310859725548052e-01 + 42 -5.8443700387458337e+00 -3.2279591656528281e+00 6.9962004533636724e-01 + 43 2.0876420381888625e+00 -7.4907210140762874e+00 -1.1070376746626893e+00 + 44 6.3410913871860650e+00 -6.7523901286198313e+00 1.0930045880468791e+00 + 45 -2.7411980429804701e+00 2.5203975506934992e+00 -3.6867197118973802e+00 + 46 7.7708166258764505e-02 -2.0166728039677788e+00 7.0577312583076841e+00 47 3.3346218642295486e+00 2.1393138094643183e+00 1.2524932605254870e+00 - 48 1.2617182562996003e+00 -2.7597261673746321e-02 -4.0954991698920334e-01 - 49 -3.4857756623633440e+00 -6.2071682527566612e+00 -3.6090400242649121e+00 - 50 -1.2375804366925611e+00 4.1994112212565522e+00 -2.6062770185976762e+00 - 51 -2.4338545743769773e+00 3.4676170215863142e+00 5.0923167347867135e+00 - 52 7.4922597808143800e+00 -7.9644243048257097e+00 7.3057144106772487e+00 - 53 4.9226077604518723e+00 4.6027173886959991e+00 2.5390308924823080e+00 - 54 3.3826824333268939e+00 -4.0188767893934827e+00 -2.4723493073275757e+00 + 48 1.2617182562996008e+00 -2.7597261673747153e-02 -4.0954991698920273e-01 + 49 -3.4857756623633440e+00 -6.2071682527566621e+00 -3.6090400242649121e+00 + 50 -1.2375804366925620e+00 4.1994112212565531e+00 -2.6062770185976776e+00 + 51 -2.4338545743769764e+00 3.4676170215863142e+00 5.0923167347867135e+00 + 52 7.4922597808143800e+00 -7.9644243048257080e+00 7.3057144106772460e+00 + 53 4.9226077604518723e+00 4.6027173886960000e+00 2.5390308924823097e+00 + 54 3.3826824333268939e+00 -4.0188767893934827e+00 -2.4723493073275766e+00 55 2.0072747016085981e+00 -4.4688586229115996e+00 -5.8026217554186506e+00 56 -8.2643969843789811e-01 -3.5785652759206865e-02 -2.4907554185925691e+00 - 57 1.8595428092644131e-01 -1.4292567630963531e+00 -1.8534712150892824e-01 - 58 2.7881040389940166e+00 -1.4502699158114176e+00 1.8440006063741061e+00 + 57 1.8595428092644131e-01 -1.4292567630963526e+00 -1.8534712150892824e-01 + 58 2.7881040389940175e+00 -1.4502699158114176e+00 1.8440006063741061e+00 59 3.9594919422179045e+00 2.9464604530667033e+00 -3.6566709427414494e+00 - 60 -5.3137611446251158e+00 -8.4544236376661512e+00 -5.4988782544210464e+00 - 61 -8.6171618111163240e-01 2.1350195440843511e+00 -1.4658442767416378e+00 + 60 -5.3137611446251176e+00 -8.4544236376661512e+00 -5.4988782544210464e+00 + 61 -8.6171618111163217e-01 2.1350195440843516e+00 -1.4658442767416369e+00 62 -4.7782055505377610e+00 4.3156805938089189e+00 -2.6385037834899929e+00 - 63 3.8910892690837837e+00 -6.7270549290274504e+00 6.5341336803071237e-01 + 63 3.8910892690837824e+00 -6.7270549290274504e+00 6.5341336803071326e-01 64 5.3129893707953428e+00 6.1163287510784619e+00 1.0836913217935809e+01 ... diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml index 795272a848..eec7384351 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Mon Jan 11 03:57:49 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 1e-12 prerequisites: ! | pair tersoff/mod/c diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml index 4cc8e84cba..e40ac3548b 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Mon Jan 11 03:57:49 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-11 prerequisites: ! | pair tersoff/mod diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml index 2558fbc9f2..9676fe954b 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Mon Jan 11 03:57:49 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-13 prerequisites: ! | pair tersoff diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml index 1a2152a24a..036acc25d1 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-11 prerequisites: ! | pair tersoff/table diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml index 9f946558ac..a503b6e912 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-11 prerequisites: ! | pair tersoff/zbl @@ -17,139 +17,139 @@ natoms: 64 init_vdwl: -154.312424904672 init_coul: 0 init_stress: ! |- - -5.4522412416158102e+02 -5.4620277297655377e+02 -5.5815536323162701e+02 -1.7213270572024335e+01 -7.7594128912815306e+00 5.4428966311706318e+01 + -5.4522412416158102e+02 -5.4620277297655366e+02 -5.5815536323162701e+02 -1.7213270572024321e+01 -7.7594128912815021e+00 5.4428966311706304e+01 init_forces: ! |2 - 1 -7.7223891253517722e+00 1.0669552508817124e+00 -9.3076553380222071e-01 + 1 -7.7223891253517714e+00 1.0669552508817128e+00 -9.3076553380222204e-01 2 3.7509929454128033e+00 -1.1608422146949774e+01 5.9829237011901226e-01 - 3 2.6417923119560638e-01 2.2717446840373618e+00 -1.9580554374326651e+00 - 4 1.4187200625138665e+00 5.9303547363431663e-01 1.0375888219204084e+01 - 5 2.8065933831668208e+00 4.1360726535826693e+00 6.5929843993713302e+00 + 3 2.6417923119560460e-01 2.2717446840373601e+00 -1.9580554374326660e+00 + 4 1.4187200625138665e+00 5.9303547363431752e-01 1.0375888219204084e+01 + 5 2.8065933831668213e+00 4.1360726535826702e+00 6.5929843993713302e+00 6 6.5638996551157218e+00 -1.5686673063102741e+00 1.7631493864177592e+00 - 7 -3.5965225360426096e+00 -7.2511307484456236e+00 -3.6830937953307998e+00 - 8 -3.1266026325384808e+00 2.7397841938566925e-01 -1.4637526104090299e+00 - 9 -1.4162689681759806e+01 -6.0833719091296479e-02 6.5862389183669001e-01 - 10 -4.1588593526494853e+00 1.9471124735881842e+00 -4.7275429783999288e+00 - 11 2.3782322441244537e+00 2.8028996002466671e+00 8.3974909855476199e+00 - 12 7.2245884140175605e+00 -7.1545180209348835e+00 -5.6015217582408967e+00 - 13 -1.7339461509015812e+00 -6.2656293614589265e-01 1.4680700372946309e+00 - 14 5.8837298095438388e+00 4.0439697767810125e+00 -7.0902659577335854e+00 + 7 -3.5965225360426079e+00 -7.2511307484456218e+00 -3.6830937953307989e+00 + 8 -3.1266026325384817e+00 2.7397841938566836e-01 -1.4637526104090299e+00 + 9 -1.4162689681759810e+01 -6.0833719091292926e-02 6.5862389183668824e-01 + 10 -4.1588593526494870e+00 1.9471124735881842e+00 -4.7275429783999270e+00 + 11 2.3782322441244528e+00 2.8028996002466675e+00 8.3974909855476181e+00 + 12 7.2245884140175605e+00 -7.1545180209348835e+00 -5.6015217582408985e+00 + 13 -1.7339461509015806e+00 -6.2656293614589487e-01 1.4680700372946296e+00 + 14 5.8837298095438388e+00 4.0439697767810152e+00 -7.0902659577335871e+00 15 -2.6319683461903143e-01 9.5625752411607756e-02 -9.9869806512065207e+00 16 -6.9180189161072780e+00 6.0016649351285860e+00 5.2030407483493528e+00 17 8.7820893390038446e+00 2.7984560892702510e+00 4.7728900338248890e+00 - 18 -3.1913649483034638e+00 -3.4524044281061714e+00 3.7538798176451111e+00 - 19 -6.4128808124179412e-02 -6.0635767184752192e+00 -6.8997640473277917e+00 - 20 3.4388871104450129e+00 -3.8200104001389068e-02 5.1166837878832272e-01 + 18 -3.1913649483034656e+00 -3.4524044281061714e+00 3.7538798176451103e+00 + 19 -6.4128808124179856e-02 -6.0635767184752192e+00 -6.8997640473277917e+00 + 20 3.4388871104450121e+00 -3.8200104001389068e-02 5.1166837878832450e-01 21 -2.4701212056737192e+00 -9.3941282330265476e+00 5.2105099848053948e-01 - 22 5.7383565771653142e+00 4.8828947154874278e+00 -7.9926266338824732e+00 - 23 6.4376905136579818e+00 -7.0439226225786209e+00 4.6084176140211843e+00 - 24 4.8510712718085323e+00 6.8813453271828884e+00 3.7726541864639174e+00 - 25 -3.4489436588305233e+00 -3.5502395499027601e+00 -6.7416968668150439e+00 - 26 5.4873724451387218e-01 8.5331027006887650e-01 -7.0355245447133861e+00 - 27 3.3486790257685142e+00 -7.6427425596683571e+00 6.9823818008918426e-01 - 28 -5.4974820053188704e+00 -5.2192989519390922e+00 2.9981122024503728e+00 - 29 1.8990657601464958e+00 7.9462823825407645e+00 -2.2852349979707096e+00 + 22 5.7383565771653187e+00 4.8828947154874287e+00 -7.9926266338824732e+00 + 23 6.4376905136579818e+00 -7.0439226225786200e+00 4.6084176140211843e+00 + 24 4.8510712718085323e+00 6.8813453271828884e+00 3.7726541864639156e+00 + 25 -3.4489436588305225e+00 -3.5502395499027584e+00 -6.7416968668150439e+00 + 26 5.4873724451387262e-01 8.5331027006887561e-01 -7.0355245447133861e+00 + 27 3.3486790257685124e+00 -7.6427425596683571e+00 6.9823818008918426e-01 + 28 -5.4974820053188695e+00 -5.2192989519390922e+00 2.9981122024503728e+00 + 29 1.8990657601464966e+00 7.9462823825407645e+00 -2.2852349979707087e+00 30 8.5847044839182303e+00 -3.5987773729518682e+00 1.9210111641479415e+00 - 31 7.0252868086935667e+00 -3.4623097800839489e+00 -1.1862906778911682e+00 - 32 6.1729069395305345e+00 3.9913522288972123e+00 -3.3335846601483548e+00 - 33 -7.5775036922654033e+00 -5.9605069713583001e+00 4.1414777448263917e+00 - 34 -9.0946996290491056e-01 1.2572967653270477e+00 -5.2123947596604268e+00 - 35 -1.7413957750584443e+00 -9.7866905973519476e+00 9.2507002642295422e-01 - 36 -1.0604503231041353e+00 8.9118947434778093e+00 -3.2649864820235919e-01 - 37 -2.5316818073756524e+00 2.4727832341958438e+00 5.3238709757802045e+00 - 38 -4.3233426310435874e-01 4.8360652833090603e+00 -1.9586012106375454e+00 - 39 6.6090376159255850e+00 -4.8443063100623718e+00 8.3554827564728651e+00 - 40 -7.6762734626138085e-02 -2.7743904987196446e+00 -6.0821504748439743e+00 + 31 7.0252868086935685e+00 -3.4623097800839489e+00 -1.1862906778911682e+00 + 32 6.1729069395305345e+00 3.9913522288972119e+00 -3.3335846601483548e+00 + 33 -7.5775036922654042e+00 -5.9605069713583001e+00 4.1414777448263909e+00 + 34 -9.0946996290491100e-01 1.2572967653270477e+00 -5.2123947596604276e+00 + 35 -1.7413957750584439e+00 -9.7866905973519476e+00 9.2507002642295466e-01 + 36 -1.0604503231041336e+00 8.9118947434778111e+00 -3.2649864820235830e-01 + 37 -2.5316818073756524e+00 2.4727832341958447e+00 5.3238709757802045e+00 + 38 -4.3233426310435785e-01 4.8360652833090612e+00 -1.9586012106375454e+00 + 39 6.6090376159255877e+00 -4.8443063100623744e+00 8.3554827564728669e+00 + 40 -7.6762734626139861e-02 -2.7743904987196455e+00 -6.0821504748439743e+00 41 -6.1063699317217113e-01 2.7151522550600631e+00 9.2123263221338334e+00 42 6.2163089480270228e+00 -2.7694305062107678e+00 -5.7921208552013903e+00 - 43 -8.7180001448292499e-01 1.7901126742696198e+00 1.5519575254278921e+00 - 44 7.8526164522640796e-01 2.4185951124909324e+00 1.2604481861672642e+01 + 43 -8.7180001448292632e-01 1.7901126742696181e+00 1.5519575254278912e+00 + 44 7.8526164522640973e-01 2.4185951124909324e+00 1.2604481861672646e+01 45 -8.0247682250156345e+00 4.9293205753843372e+00 -6.0682015920462939e+00 46 -7.1949455773882338e+00 6.5987259516018728e+00 5.4937477906872818e+00 - 47 2.1314788601538375e+00 3.3362663032911404e+00 8.4585802162670074e+00 - 48 -8.5076653112250291e+00 -7.1852711589841762e+00 5.5735000792544982e+00 + 47 2.1314788601538401e+00 3.3362663032911439e+00 8.4585802162670092e+00 + 48 -8.5076653112250309e+00 -7.1852711589841753e+00 5.5735000792545000e+00 49 -5.2670245468846746e+00 6.9877705136631088e+00 -5.1191274136784921e+00 - 50 6.7159251463526664e+00 -1.9613746718933034e+00 -1.5344273158709154e+00 + 50 6.7159251463526681e+00 -1.9613746718933052e+00 -1.5344273158709172e+00 51 -1.1727851021662977e+01 -5.1582585170714235e-01 -3.4928360372493388e+00 - 52 -1.1984284285057771e-01 1.1918867317733057e+00 3.9396044306165670e+00 - 53 4.9486726742870886e+00 1.0898234069639925e+00 1.0082593834352190e+01 + 52 -1.1984284285057949e-01 1.1918867317733066e+00 3.9396044306165670e+00 + 53 4.9486726742870886e+00 1.0898234069639943e+00 1.0082593834352192e+01 54 1.9535564702196746e+00 2.2045675779591183e+00 -1.0184339640672373e+01 - 55 1.0985523411199667e+01 3.8088963907017875e-01 -2.0149022524288043e+00 - 56 -1.1393680684316139e+00 3.9820344303361921e+00 5.3281327318845495e-01 + 55 1.0985523411199667e+01 3.8088963907017831e-01 -2.0149022524288047e+00 + 56 -1.1393680684316156e+00 3.9820344303361921e+00 5.3281327318845584e-01 57 -4.0457598988134817e+00 9.3402867028335077e+00 3.6326633592191828e+00 - 58 -9.5259925551691484e+00 -3.0439646719749209e+00 5.4130118641158047e+00 - 59 6.1684616977984712e+00 6.7515296579212762e+00 -8.2182898830145366e+00 + 58 -9.5259925551691467e+00 -3.0439646719749209e+00 5.4130118641158047e+00 + 59 6.1684616977984694e+00 6.7515296579212736e+00 -8.2182898830145419e+00 60 -5.4343710487746817e+00 7.8480050696419266e+00 -4.6430620541349326e+00 - 61 -2.5195325804478843e+00 -1.2692534018971337e+01 -1.0104567253349769e-01 + 61 -2.5195325804478834e+00 -1.2692534018971338e+01 -1.0104567253349681e-01 62 2.6584101684745818e+00 9.8218829465888779e-02 2.4244336018167600e-01 - 63 -5.8030976211176633e+00 -5.8640980265649132e+00 -4.9661385661230621e+00 - 64 5.1854732626889648e+00 5.4062029912491161e+00 -7.4682505070688565e+00 + 63 -5.8030976211176615e+00 -5.8640980265649096e+00 -4.9661385661230604e+00 + 64 5.1854732626889648e+00 5.4062029912491152e+00 -7.4682505070688574e+00 run_vdwl: -154.378489848664 run_coul: 0 run_stress: ! |- - -5.4624007123172817e+02 -5.4721759715152484e+02 -5.5903048343882665e+02 -1.6221103215693379e+01 -6.7886936766953410e+00 5.4672709772731153e+01 + -5.4624007123172805e+02 -5.4721759715152484e+02 -5.5903048343882665e+02 -1.6221103215693166e+01 -6.7886936766953978e+00 5.4672709772731096e+01 run_forces: ! |2 1 -7.7710895302100775e+00 9.8421268919149085e-01 -9.2597011523665484e-01 2 3.7458735949792326e+00 -1.1595362271395059e+01 6.0898696083058723e-01 - 3 3.8507676102829136e-01 2.1249103315545970e+00 -2.1091659350102829e+00 + 3 3.8507676102829136e-01 2.1249103315545970e+00 -2.1091659350102803e+00 4 1.6152778155646761e+00 5.7848628778240530e-01 1.0402974682179648e+01 5 2.7649657757706478e+00 4.0900725936990288e+00 6.6835500029952026e+00 6 6.5865965591105393e+00 -1.8292495063151177e+00 2.0366573729446835e+00 - 7 -3.3307881220012630e+00 -7.0942328484718971e+00 -3.7457028752467059e+00 - 8 -3.0885795093442283e+00 3.4989222472378345e-01 -1.5424167903817163e+00 - 9 -1.4165950829089580e+01 -5.3940768744079381e-02 6.4139844116377986e-01 + 7 -3.3307881220012661e+00 -7.0942328484718979e+00 -3.7457028752467076e+00 + 8 -3.0885795093442283e+00 3.4989222472378523e-01 -1.5424167903817172e+00 + 9 -1.4165950829089580e+01 -5.3940768744078493e-02 6.4139844116377898e-01 10 -4.2375705486574775e+00 1.5885910226589701e+00 -4.6304296857792444e+00 - 11 2.5005727825222128e+00 2.7999710123559614e+00 8.2537716086095188e+00 - 12 7.2068862770841138e+00 -7.1262985150488740e+00 -5.5812834302209096e+00 - 13 -1.8167920176170453e+00 -5.1670781420170431e-01 1.5646880590075538e+00 + 11 2.5005727825222119e+00 2.7999710123559618e+00 8.2537716086095152e+00 + 12 7.2068862770841138e+00 -7.1262985150488749e+00 -5.5812834302209078e+00 + 13 -1.8167920176170453e+00 -5.1670781420170608e-01 1.5646880590075538e+00 14 5.8676882814421871e+00 4.0565941081000698e+00 -7.0973772200470240e+00 - 15 -2.5275560092817706e-01 9.3977172310912849e-02 -9.9716762207694138e+00 - 16 -6.9338836089303175e+00 6.0213296077197844e+00 5.1874273368568140e+00 + 15 -2.5275560092817706e-01 9.3977172310914625e-02 -9.9716762207694121e+00 + 16 -6.9338836089303157e+00 6.0213296077197844e+00 5.1874273368568140e+00 17 8.7953600094300750e+00 2.8793107758462098e+00 4.8499081444476015e+00 - 18 -3.1588600347669251e+00 -3.4138281277311084e+00 3.7471063006923906e+00 + 18 -3.1588600347669233e+00 -3.4138281277311076e+00 3.7471063006923879e+00 19 3.4879085903840451e-02 -5.8773630155039998e+00 -7.0587843966793908e+00 - 20 3.4330211575164440e+00 -4.1371194520657628e-02 5.1329944991954957e-01 + 20 3.4330211575164431e+00 -4.1371194520657628e-02 5.1329944991954957e-01 21 -2.4947379150588445e+00 -9.4894349135054981e+00 5.0364943521040173e-01 - 22 5.7290751903491852e+00 4.9148163326514185e+00 -8.0069424396003779e+00 + 22 5.7290751903491843e+00 4.9148163326514211e+00 -8.0069424396003779e+00 23 6.4733242427884665e+00 -7.0483885816608449e+00 4.6473355322331757e+00 24 4.6479345521550304e+00 7.0925025187318305e+00 3.8525865642161286e+00 - 25 -3.4506424790473402e+00 -3.5399464500402189e+00 -6.6082903939147188e+00 - 26 5.9997061031751253e-01 6.0541226955683836e-01 -7.0861839854969526e+00 - 27 3.4071088271546022e+00 -7.6531751215214143e+00 7.2787548943419222e-01 - 28 -5.4557756543079119e+00 -5.1680412737283516e+00 2.9604843714511313e+00 + 25 -3.4506424790473402e+00 -3.5399464500402189e+00 -6.6082903939147171e+00 + 26 5.9997061031751298e-01 6.0541226955683747e-01 -7.0861839854969526e+00 + 27 3.4071088271546031e+00 -7.6531751215214117e+00 7.2787548943419267e-01 + 28 -5.4557756543079110e+00 -5.1680412737283543e+00 2.9604843714511335e+00 29 1.7085911862656871e+00 7.9153761626366883e+00 -2.2614782999669041e+00 - 30 8.6713923717970722e+00 -3.6245305638916414e+00 2.1225785953759368e+00 - 31 6.9792669132115908e+00 -3.4772972717074135e+00 -1.2101233867541827e+00 + 30 8.6713923717970740e+00 -3.6245305638916427e+00 2.1225785953759382e+00 + 31 6.9792669132115899e+00 -3.4772972717074158e+00 -1.2101233867541819e+00 32 6.1216044738549016e+00 4.1103412878257624e+00 -3.3121730936202827e+00 - 33 -7.6085526931230545e+00 -6.0171298821199670e+00 4.1648313412889255e+00 - 34 -8.0117159692062412e-01 1.2250441373794045e+00 -5.3195806368378307e+00 - 35 -1.8928310703700715e+00 -9.8771124140652624e+00 8.5290010448185205e-01 + 33 -7.6085526931230518e+00 -6.0171298821199679e+00 4.1648313412889264e+00 + 34 -8.0117159692062279e-01 1.2250441373794037e+00 -5.3195806368378324e+00 + 35 -1.8928310703700706e+00 -9.8771124140652606e+00 8.5290010448185027e-01 36 -1.2972038107481758e+00 8.8905397437812486e+00 -5.6974286702164834e-01 - 37 -2.6749889787982033e+00 2.6387889766527675e+00 5.4489977351032781e+00 - 38 -6.4457329686822096e-01 4.7973248360269380e+00 -2.1412759241677901e+00 + 37 -2.6749889787982042e+00 2.6387889766527675e+00 5.4489977351032781e+00 + 38 -6.4457329686822051e-01 4.7973248360269389e+00 -2.1412759241677897e+00 39 6.7111987839588494e+00 -4.7388212995722245e+00 8.5076346108378686e+00 - 40 -1.1502944187229440e-01 -2.7838311317517705e+00 -5.8729430758703129e+00 - 41 -9.1359818351046829e-01 2.6073407276930491e+00 9.1031480730908996e+00 + 40 -1.1502944187229529e-01 -2.7838311317517705e+00 -5.8729430758703129e+00 + 41 -9.1359818351046918e-01 2.6073407276930491e+00 9.1031480730908978e+00 42 6.2516745978205881e+00 -2.8059454405892170e+00 -5.8045100753475420e+00 - 43 -9.0162068561726094e-01 1.7535086383109662e+00 1.5881942260025375e+00 - 44 7.4568957675813063e-01 2.3291210910341831e+00 1.2682491711342710e+01 - 45 -7.8827045512830738e+00 5.1136204143684516e+00 -6.0232742119880056e+00 - 46 -7.1909991859724354e+00 6.5930493717367806e+00 5.4969832160946623e+00 - 47 2.1930190183556797e+00 3.3770787280802130e+00 8.3827321095950467e+00 - 48 -8.4316741550207048e+00 -7.2589166508188452e+00 5.6757900084705000e+00 - 49 -5.2787919951503248e+00 6.9617894250151355e+00 -5.1118372569041028e+00 - 50 6.7549914755953635e+00 -1.9686939048679046e+00 -1.5763956001832360e+00 + 43 -9.0162068561726005e-01 1.7535086383109655e+00 1.5881942260025386e+00 + 44 7.4568957675813063e-01 2.3291210910341849e+00 1.2682491711342710e+01 + 45 -7.8827045512830756e+00 5.1136204143684516e+00 -6.0232742119880056e+00 + 46 -7.1909991859724345e+00 6.5930493717367815e+00 5.4969832160946615e+00 + 47 2.1930190183556797e+00 3.3770787280802104e+00 8.3827321095950467e+00 + 48 -8.4316741550207048e+00 -7.2589166508188434e+00 5.6757900084705000e+00 + 49 -5.2787919951503230e+00 6.9617894250151364e+00 -5.1118372569041028e+00 + 50 6.7549914755953626e+00 -1.9686939048679011e+00 -1.5763956001832342e+00 51 -1.1722835834823451e+01 -4.6090445788619194e-01 -3.5458019581496889e+00 - 52 -2.9146420150158925e-01 1.0390697544380689e+00 3.8461064397951099e+00 - 53 4.9994022968781895e+00 1.1625746423885346e+00 1.0131719546021975e+01 - 54 1.9501032708877051e+00 2.1828284989853479e+00 -1.0229107175251080e+01 - 55 1.1017951893515445e+01 4.0696912545743419e-01 -2.0395244626507556e+00 - 56 -7.9765871790228693e-01 4.0562421889191471e+00 6.1126701396247074e-01 - 57 -3.9071992996955269e+00 9.4745522825635540e+00 3.5315639655021500e+00 + 52 -2.9146420150158747e-01 1.0390697544380672e+00 3.8461064397951104e+00 + 53 4.9994022968781850e+00 1.1625746423885328e+00 1.0131719546021973e+01 + 54 1.9501032708877042e+00 2.1828284989853461e+00 -1.0229107175251080e+01 + 55 1.1017951893515447e+01 4.0696912545743330e-01 -2.0395244626507560e+00 + 56 -7.9765871790228826e-01 4.0562421889191462e+00 6.1126701396247074e-01 + 57 -3.9071992996955269e+00 9.4745522825635557e+00 3.5315639655021500e+00 58 -9.7049015797211631e+00 -2.9167333408943041e+00 5.4251373767880153e+00 - 59 6.2022134360845467e+00 6.8057985261686955e+00 -8.1728610238859503e+00 - 60 -5.4918491605506929e+00 7.8759347682481566e+00 -4.6821853616106752e+00 + 59 6.2022134360845458e+00 6.8057985261686946e+00 -8.1728610238859503e+00 + 60 -5.4918491605506929e+00 7.8759347682481584e+00 -4.6821853616106788e+00 61 -2.4999011490572789e+00 -1.2787139053923346e+01 -2.1638212824307607e-01 - 62 2.6906159661430955e+00 1.3928009268586639e-01 2.0167150507734921e-01 - 63 -5.8283969248223002e+00 -5.9257942363533367e+00 -5.0040717151583411e+00 + 62 2.6906159661430942e+00 1.3928009268586861e-01 2.0167150507734788e-01 + 63 -5.8283969248223002e+00 -5.9257942363533367e+00 -5.0040717151583429e+00 64 5.2440455790444869e+00 5.4539376835505564e+00 -7.4979555890288445e+00 ... diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml index 75dafe7449..7dda923362 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Mon Jan 11 03:57:49 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 5e-11 prerequisites: ! | pair tersoff/zbl diff --git a/unittest/force-styles/tests/manybody-pair-vashishta.yaml b/unittest/force-styles/tests/manybody-pair-vashishta.yaml index 113d7ae840..8f5e6373eb 100644 --- a/unittest/force-styles/tests/manybody-pair-vashishta.yaml +++ b/unittest/force-styles/tests/manybody-pair-vashishta.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 5e-13 prerequisites: ! | pair vashishta diff --git a/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml b/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml index bab37d5c14..466e9ff412 100644 --- a/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml +++ b/unittest/force-styles/tests/manybody-pair-vashishta_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:33 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:09:21 2021 epsilon: 1e-12 prerequisites: ! | pair vashishta/table diff --git a/unittest/force-styles/tests/mol-pair-beck.yaml b/unittest/force-styles/tests/mol-pair-beck.yaml index 160ed57874..ca74372e4c 100644 --- a/unittest/force-styles/tests/mol-pair-beck.yaml +++ b/unittest/force-styles/tests/mol-pair-beck.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:38 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born.yaml b/unittest/force-styles/tests/mol-pair-born.yaml index b6bd2c0484..11011100d1 100644 --- a/unittest/force-styles/tests/mol-pair-born.yaml +++ b/unittest/force-styles/tests/mol-pair-born.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 21 Jul 2020 -date_generated: Fri Jul 31 11:30:59 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:38 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml b/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml index 7ced560d68..6280c9a9f3 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_dsf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 21 Jul 2020 -date_generated: Sat Aug 1 16:17:46 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:38 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_dsf_cs.yaml b/unittest/force-styles/tests/mol-pair-born_coul_dsf_cs.yaml index 5389455593..fa49c094f3 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_dsf_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_dsf_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_long.yaml b/unittest/force-styles/tests/mol-pair-born_coul_long.yaml index f61926e37a..d46525ad6c 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_long_cs.yaml b/unittest/force-styles/tests/mol-pair-born_coul_long_cs.yaml index 0b60d5f627..56de63afb8 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_long_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_long_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml index 991dd0ef77..c4c907a1e0 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml index fe6a0faf84..ee9f18f27c 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml index 79dd45154b..32a2b44328 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:10 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml b/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml index 234e9993c6..797cec95a1 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_wolf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:39 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-born_coul_wolf_cs.yaml b/unittest/force-styles/tests/mol-pair-born_coul_wolf_cs.yaml index ab13302868..33323ccdd6 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_wolf_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_wolf_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck.yaml b/unittest/force-styles/tests/mol-pair-buck.yaml index 6600c63b4f..6f4cd2474b 100644 --- a/unittest/force-styles/tests/mol-pair-buck.yaml +++ b/unittest/force-styles/tests/mol-pair-buck.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 6e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_cut.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_cut.yaml index 928473176d..d7d72a1dfe 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml index 07606715b8..2791961f69 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 4e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_long_cs.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_long_cs.yaml index f4ee478ef8..4667f63a75 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_long_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_long_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml index 444f02236d..a3816a6451 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 21 Jul 2020 -date_generated: Sat Aug 1 08:36:45 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml index 24a23bb444..52536b14d4 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml index 5e89b1ddf7..ecdbc8478c 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:40 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_table_cs.yaml index 800e9fe8c4..fed44214d8 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_table_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml index 0cf95ba93b..14624b04e5 100644 --- a/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 2e-09 prerequisites: ! | atom full @@ -32,72 +32,72 @@ pair_coeff: ! | 5 5 127198.698386798 0.207005479340455 37.2289658745028 extract: ! "" natoms: 29 -init_vdwl: 143.844961202964 +init_vdwl: 143.844978614334 init_coul: 225.821815126925 init_stress: ! |2- - 2.6272111873723196e+02 2.4458742404218080e+02 4.2242967619246474e+02 -4.9851077637716458e+01 2.3789370276650072e+01 5.6295168409689467e+01 + 2.6272115366310851e+02 2.4458745276042501e+02 4.2242971713439869e+02 -4.9851077224341211e+01 2.3789370660435189e+01 5.6295145580816097e+01 init_forces: ! |2 - 1 -1.4505624410494478e+00 3.8004146845640946e+01 4.9065031053880901e+01 - 2 2.3385004323266994e+01 1.6548373003634683e+01 -2.9130977751412878e+01 - 3 -1.9512019437951746e+01 -5.0838222458975778e+01 -2.0151694098876884e+01 - 4 -4.2904209818932246e+00 1.1246498890619860e+00 -3.2387274210462231e+00 - 5 -1.8674709846410773e+00 -1.5566490773014534e+00 6.0082552497191397e+00 - 6 -6.9625355347470915e+01 7.3169400283632356e+01 6.3503698624949230e+01 - 7 2.2872748139782947e-02 -2.0565225036292986e+01 -1.2607142869450965e+02 - 8 1.1996695065424641e+00 -1.8715100009380692e+00 3.7423138153540876e+01 - 9 1.2011042893923937e+01 5.3887310332750928e+00 4.7397823880093092e+01 - 10 4.8241827191543997e+01 -6.2511416543000180e+01 -1.8155085286183130e+01 - 11 -2.0864825271762375e+00 -1.9912622313285950e+00 -5.4830247539805992e+00 - 12 1.1616718033393738e+01 3.5495575455578630e+00 -2.2659927233488144e+00 - 13 4.3604500704930667e+00 -1.7673671146127139e+00 -2.5819544454075111e-01 - 14 -2.8754771443668155e+00 7.2404586566233820e-01 -4.7880073941201999e+00 - 15 2.4933061678330612e-01 4.4129067076138435e+00 6.2372609624633168e-01 - 16 4.0308368847826046e+01 -3.2807263621689664e+01 -8.8340531400600753e+01 - 17 -3.8534551365139798e+01 3.0771085961339129e+01 9.2205187827301017e+01 - 18 3.5576850500834917e-01 4.7710862431354206e+00 -7.8576979196455978e+00 - 19 1.9901900021180869e+00 -7.2120494406854874e-01 5.5217488469162515e+00 - 20 -2.9133095976939076e+00 -3.9873825539762580e+00 4.1252912728686368e+00 - 21 -8.8829720545896826e+00 -8.3744024680716311e+00 2.7526234064504237e+01 - 22 -1.5742514391100176e+01 -4.8231234667069982e+00 -2.1626154413397067e+01 - 23 2.4211676287893816e+01 1.3610504586141577e+01 -5.3979045461797428e+00 - 24 5.3565422099278761e+00 -2.4298981889237417e+01 1.3585253788291306e+01 - 25 -2.1457575285633951e+01 1.0104637714343605e+00 -1.7195902085341874e+01 - 26 1.5538242805947316e+01 2.3034633528199404e+01 2.9964006765042197e+00 - 27 4.6260665161027301e+00 -2.6306305085064849e+01 9.9386139884880809e+00 - 28 -2.3342848199176302e+01 7.6603913259359970e+00 -1.5178322120241885e+01 - 29 1.9107789198971762e+01 1.8640339901000139e+01 5.2192425301227203e+00 -run_vdwl: 143.664033848008 -run_coul: 225.788771362758 + 1 -1.4505626034745036e+00 3.8004147184195531e+01 4.9065031148995793e+01 + 2 2.3385004350396244e+01 1.6548373059368291e+01 -2.9130977758085685e+01 + 3 -1.9512020703537843e+01 -5.0838221276192705e+01 -2.0151693376982845e+01 + 4 -4.2904209888378588e+00 1.1246498928035378e+00 -3.2387274227466589e+00 + 5 -1.8674710698629744e+00 -1.5566491115857672e+00 6.0082553420196669e+00 + 6 -6.9625355082065013e+01 7.3169399799559514e+01 6.3503698019226839e+01 + 7 2.2868369509643660e-02 -2.0565222793052861e+01 -1.2607143811848930e+02 + 8 1.1996681428294511e+00 -1.8715118510036990e+00 3.7423149521601651e+01 + 9 1.2011042862979503e+01 5.3887311217158382e+00 4.7397824041093678e+01 + 10 4.8241808301884696e+01 -6.2511419298758931e+01 -1.8155088068620010e+01 + 11 -2.0864824068805468e+00 -1.9912626693428330e+00 -5.4830251319223384e+00 + 12 1.1616736334318013e+01 3.5495698468481334e+00 -2.2660038170498109e+00 + 13 4.3604501552112307e+00 -1.7673670999803819e+00 -2.5819547541081661e-01 + 14 -2.8754771032183997e+00 7.2404590909978195e-01 -4.7880074893069073e+00 + 15 2.4933085503479277e-01 4.4129068756699281e+00 6.2372602282041478e-01 + 16 4.0308375460979065e+01 -3.2807273819944662e+01 -8.8340521147615505e+01 + 17 -3.8534551008005820e+01 3.0771085172025348e+01 9.2205189697673958e+01 + 18 3.5576858779624221e-01 4.7710863658439413e+00 -7.8576980468242379e+00 + 19 1.9901899970750361e+00 -7.2120494775865229e-01 5.5217488427612249e+00 + 20 -2.9133095915866951e+00 -3.9873825487101766e+00 4.1252912739135876e+00 + 21 -8.8829720356918820e+00 -8.3744024885830814e+00 2.7526234045306790e+01 + 22 -1.5742514391939986e+01 -4.8231234673901637e+00 -2.1626154414085931e+01 + 23 2.4211676289077477e+01 1.3610504586446947e+01 -5.3979045459272461e+00 + 24 5.3565422529126572e+00 -2.4298981872347689e+01 1.3585253853834935e+01 + 25 -2.1457575287597841e+01 1.0104637707756350e+00 -1.7195902082789587e+01 + 26 1.5538242811329107e+01 2.3034633531441880e+01 2.9964006799739407e+00 + 27 4.6260665022300582e+00 -2.6306305097469373e+01 9.9386139962313145e+00 + 28 -2.3342848199954272e+01 7.6603913255018758e+00 -1.5178322120320068e+01 + 29 1.9107789199090401e+01 1.8640339900824774e+01 5.2192425307232284e+00 +run_vdwl: 143.664052390025 +run_coul: 225.78877136265 run_stress: ! |2- - 2.6298251505235868e+02 2.4459390353665563e+02 4.2108843574777688e+02 -4.9575317711225544e+01 2.3909358907758179e+01 5.6450588933021592e+01 + 2.6298255053149916e+02 2.4459393805653841e+02 4.2108847711322130e+02 -4.9575323006225169e+01 2.3909358002752519e+01 5.6450569769884474e+01 run_forces: ! |2 - 1 -1.3652720446656716e+00 3.7954572140886413e+01 4.8884538610219984e+01 - 2 2.3313139975676521e+01 1.6527407427439215e+01 -2.8962850556748574e+01 - 3 -1.9564712492477259e+01 -5.0756725254438585e+01 -2.0129969655577696e+01 - 4 -4.2684079132961532e+00 1.1154799200799748e+00 -3.2315050710172626e+00 - 5 -1.8626808257808209e+00 -1.5514191365901677e+00 5.9922525317567326e+00 - 6 -6.9327725793824527e+01 7.2910029709312454e+01 6.2943842478017125e+01 - 7 3.2729296511785085e-02 -2.0499844250721825e+01 -1.2523227297784275e+02 - 8 9.0645129380789513e-01 -1.5931691793865552e+00 3.7347008229957787e+01 - 9 1.1981987334884325e+01 5.2954472303848910e+00 4.7222348781695430e+01 - 10 4.8288299691503205e+01 -6.2566569339379377e+01 -1.8224017564064091e+01 - 11 -2.0738715074249523e+00 -1.9563279663018796e+00 -5.4254319559511295e+00 - 12 1.1610862764961743e+01 3.5316918655662044e+00 -2.3173751221395720e+00 - 13 4.3429255708311079e+00 -1.7528672352564680e+00 -2.5697582206668895e-01 - 14 -2.8597049731416870e+00 7.1516577588292751e-01 -4.7422665041230756e+00 - 15 2.4141777805199607e-01 4.4181497005137018e+00 6.3284863696190541e-01 - 16 4.0232203794586695e+01 -3.2797821300800962e+01 -8.8231810120087630e+01 - 17 -3.8475340336751799e+01 3.0789552016439433e+01 9.2071434975793437e+01 - 18 3.0444737165682245e-01 4.7206637253266726e+00 -7.8186561033362132e+00 - 19 2.0279176824528000e+00 -6.9153978261739135e-01 5.5370947284278174e+00 - 20 -2.8995246410850308e+00 -3.9661906680569294e+00 4.0718950075472362e+00 - 21 -8.9482093919054275e+00 -8.3621998308864107e+00 2.7577075884535351e+01 - 22 -1.5805953773942205e+01 -4.8572145959519402e+00 -2.1662217002199810e+01 - 23 2.4340519096091096e+01 1.3631551507334764e+01 -5.4129063248356344e+00 - 24 5.5331809337240436e+00 -2.4561349924805576e+01 1.3801516502339091e+01 - 25 -2.1784339531775434e+01 1.0179046192128527e+00 -1.7474990059161328e+01 - 26 1.5689568156175840e+01 2.3291559483700894e+01 3.0620904827826170e+00 - 27 4.7026950421097862e+00 -2.6383838671315459e+01 9.9362503961500153e+00 - 28 -2.3442655453950238e+01 7.6899620172100764e+00 -1.5219891622806223e+01 - 29 1.9130052896995540e+01 1.8687939997219068e+01 5.2629392157731738e+00 + 1 -1.3652720834577341e+00 3.7954573432779917e+01 4.8884538769138338e+01 + 2 2.3313140000366758e+01 1.6527407480878715e+01 -2.8962850562818822e+01 + 3 -1.9564718670724936e+01 -5.0756718987621646e+01 -2.0129965484716372e+01 + 4 -4.2684080401728961e+00 1.1154798912797066e+00 -3.2315051383711020e+00 + 5 -1.8626810692630200e+00 -1.5514196446909378e+00 5.9922527671295303e+00 + 6 -6.9327720409994853e+01 7.2910023757618887e+01 6.2943838473388915e+01 + 7 3.2725394906065901e-02 -2.0499842417893980e+01 -1.2523228162779102e+02 + 8 9.0645146796449960e-01 -1.5931711516900440e+00 3.7347017369470542e+01 + 9 1.1981987319613346e+01 5.2954473123148720e+00 4.7222348956569590e+01 + 10 4.8288281212283742e+01 -6.2566570322889454e+01 -1.8224021907990483e+01 + 11 -2.0738715105412719e+00 -1.9563279903586321e+00 -5.4254319984735320e+00 + 12 1.1610878367908992e+01 3.5317032256430076e+00 -2.3173846571471395e+00 + 13 4.3429256472591025e+00 -1.7528672157398184e+00 -2.5697584881970975e-01 + 14 -2.8597049514773167e+00 7.1516578275653253e-01 -4.7422665431420148e+00 + 15 2.4141798790025348e-01 4.4181498659013112e+00 6.3284857350558965e-01 + 16 4.0232210797970701e+01 -3.2797832127730494e+01 -8.8231799256317260e+01 + 17 -3.8475339975415856e+01 3.0789551133759257e+01 9.2071437068448233e+01 + 18 3.0444744501753151e-01 4.7206638357915631e+00 -7.8186562242979116e+00 + 19 2.0279176776152252e+00 -6.9153978564093010e-01 5.5370947240235608e+00 + 20 -2.8995246349425892e+00 -3.9661906625562011e+00 4.0718950082869085e+00 + 21 -8.9482093741669626e+00 -8.3621998525228864e+00 2.7577075866251551e+01 + 22 -1.5805953774649829e+01 -4.8572145967141411e+00 -2.1662217002957558e+01 + 23 2.4340519097230196e+01 1.3631551507602921e+01 -5.4129063246281666e+00 + 24 5.5331809763522193e+00 -2.4561349908059270e+01 1.3801516566834152e+01 + 25 -2.1784339528699515e+01 1.0179046212252338e+00 -1.7474990048927918e+01 + 26 1.5689568160812019e+01 2.3291559486515375e+01 3.0620904858297013e+00 + 27 4.7026950277510515e+00 -2.6383838683693700e+01 9.9362504040370077e+00 + 28 -2.3442655457776933e+01 7.6899620159252651e+00 -1.5219891624415277e+01 + 29 1.9130052900332021e+01 1.8687939997809593e+01 5.2629392179006302e+00 ... diff --git a/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml b/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml index 1c8ab223e0..475e588687 100644 --- a/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_long_coul_off.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 2e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml index 4c54416a19..d51ff36d84 100644 --- a/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_long_cut_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 2e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_mdf.yaml b/unittest/force-styles/tests/mol-pair-buck_mdf.yaml index 3eb30c04fb..8f284c910c 100644 --- a/unittest/force-styles/tests/mol-pair-buck_mdf.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_mdf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:11 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml index d2a027b202..ff11010ebd 100644 --- a/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 2e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml index 75ea5e64f9..0c4d543e7a 100644 --- a/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_off.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 2e-08 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml index 6618461c9a..c204dd600f 100644 --- a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:41 2021 epsilon: 2e-09 prerequisites: ! | atom full @@ -32,72 +32,72 @@ pair_coeff: ! | 5 5 127198.698386798 0.207005479340455 37.2289658745028 extract: ! "" natoms: 29 -init_vdwl: 143.844961202964 +init_vdwl: 143.844978614334 init_coul: 225.821848735651 init_stress: ! |2- - 2.6272113814088459e+02 2.4458742749392664e+02 4.2242968800359819e+02 -4.9851073478676085e+01 2.3789377934310345e+01 5.6295172388862447e+01 + 2.6272117306676120e+02 2.4458745621217102e+02 4.2242972894553253e+02 -4.9851073065300838e+01 2.3789378318095498e+01 5.6295149559988992e+01 init_forces: ! |2 - 1 -1.4505640619389681e+00 3.8004146585790465e+01 4.9065029691291613e+01 - 2 2.3385003661429913e+01 1.6548372213986102e+01 -2.9130976125306312e+01 - 3 -1.9512019324113055e+01 -5.0838222586853490e+01 -2.0151694230673115e+01 - 4 -4.2904209431208518e+00 1.1246503634939833e+00 -3.2387272414004546e+00 - 5 -1.8674707369894010e+00 -1.5566480505693736e+00 6.0082554357882367e+00 - 6 -6.9625355684493741e+01 7.3169400746899186e+01 6.3503696978944937e+01 - 7 2.2872248567361957e-02 -2.0565224930504840e+01 -1.2607143020067289e+02 - 8 1.1996689487155892e+00 -1.8715105185863312e+00 3.7423140066925569e+01 - 9 1.2011044766358129e+01 5.3887301934646903e+00 4.7397825767121098e+01 - 10 4.8241827321101539e+01 -6.2511416084042395e+01 -1.8155085841912381e+01 - 11 -2.0864825790929138e+00 -1.9912615087658645e+00 -5.4830246849536080e+00 - 12 1.1616718202409702e+01 3.5495574649890029e+00 -2.2659934810669191e+00 - 13 4.3604501526858250e+00 -1.7673672190505618e+00 -2.5819527958372701e-01 - 14 -2.8754772284825929e+00 7.2404565365905771e-01 -4.7880073211012384e+00 - 15 2.4933049942539601e-01 4.4129064128547490e+00 6.2372662613715280e-01 - 16 4.0308369518161520e+01 -3.2807264210996060e+01 -8.8340531374457925e+01 - 17 -3.8534551565160626e+01 3.0771086452493318e+01 9.2205187548985350e+01 - 18 3.5576917908861894e-01 4.7710861153208066e+00 -7.8576990689625514e+00 - 19 1.9901880325227932e+00 -7.2120627904964174e-01 5.5217485955577530e+00 - 20 -2.9133077367100180e+00 -3.9873812719318282e+00 4.1252922604915137e+00 - 21 -8.8829725086789715e+00 -8.3744018341613344e+00 2.7526234717445835e+01 - 22 -1.5742517626454115e+01 -4.8231253812211401e+00 -2.1626156254566173e+01 - 23 2.4211679998537132e+01 1.3610506006094726e+01 -5.3979034250046327e+00 - 24 5.3565423261624705e+00 -2.4298981626126210e+01 1.3585253085343975e+01 - 25 -2.1457576766665820e+01 1.0104626762357114e+00 -1.7195902773892538e+01 - 26 1.5538244602897750e+01 2.3034634692097089e+01 2.9964020454921334e+00 - 27 4.6260663831346509e+00 -2.6306304919818423e+01 9.9386137948272868e+00 - 28 -2.3342851186798200e+01 7.6603903379992113e+00 -1.5178323537904395e+01 - 29 1.9107792107500899e+01 1.8640340506299360e+01 5.2192442271064312e+00 -run_vdwl: 143.664033843465 -run_coul: 225.788807114573 + 1 -1.4505642243640215e+00 3.8004146924345065e+01 4.9065029786406498e+01 + 2 2.3385003688559166e+01 1.6548372269719717e+01 -2.9130976131979111e+01 + 3 -1.9512020589699148e+01 -5.0838221404070403e+01 -2.0151693508779069e+01 + 4 -4.2904209500654860e+00 1.1246503672355344e+00 -3.2387272431008922e+00 + 5 -1.8674708222112977e+00 -1.5566480848536877e+00 6.0082555280887631e+00 + 6 -6.9625355419087825e+01 7.3169400262826329e+01 6.3503696373222517e+01 + 7 2.2867869937221619e-02 -2.0565222687264711e+01 -1.2607143962465263e+02 + 8 1.1996675850025813e+00 -1.8715123686519544e+00 3.7423151434986330e+01 + 9 1.2011044735413689e+01 5.3887302819054357e+00 4.7397825928121676e+01 + 10 4.8241808431442209e+01 -6.2511418839801145e+01 -1.8155088624349265e+01 + 11 -2.0864824587972244e+00 -1.9912619467801009e+00 -5.4830250628953481e+00 + 12 1.1616736503333982e+01 3.5495697662792747e+00 -2.2660045747679183e+00 + 13 4.3604502374039908e+00 -1.7673672044182291e+00 -2.5819531045379251e-01 + 14 -2.8754771873341758e+00 7.2404569709650146e-01 -4.7880074162879485e+00 + 15 2.4933073767688302e-01 4.4129065809108328e+00 6.2372655271123578e-01 + 16 4.0308376131314546e+01 -3.2807274409251065e+01 -8.8340521121472662e+01 + 17 -3.8534551208026642e+01 3.0771085663179537e+01 9.2205189419358319e+01 + 18 3.5576926187651203e-01 4.7710862380293300e+00 -7.8576991961411933e+00 + 19 1.9901880274797432e+00 -7.2120628273974552e-01 5.5217485914027300e+00 + 20 -2.9133077306028037e+00 -3.9873812666657433e+00 4.1252922615364644e+00 + 21 -8.8829724897811690e+00 -8.3744018546727830e+00 2.7526234698248395e+01 + 22 -1.5742517627293919e+01 -4.8231253819043038e+00 -2.1626156255255044e+01 + 23 2.4211679999720808e+01 1.3610506006400097e+01 -5.3979034247521342e+00 + 24 5.3565423691472525e+00 -2.4298981609236485e+01 1.3585253150887608e+01 + 25 -2.1457576768629711e+01 1.0104626755769854e+00 -1.7195902771340254e+01 + 26 1.5538244608279541e+01 2.3034634695339562e+01 2.9964020489618552e+00 + 27 4.6260663692619683e+00 -2.6306304932222957e+01 9.9386138025705169e+00 + 28 -2.3342851187576169e+01 7.6603903375650901e+00 -1.5178323537982580e+01 + 29 1.9107792107619538e+01 1.8640340506123994e+01 5.2192442277069402e+00 +run_vdwl: 143.664052385482 +run_coul: 225.788807113984 run_stress: ! |2- - 2.6298253730875990e+02 2.4459390608852283e+02 4.2108844885702558e+02 -4.9575312662970951e+01 2.3909364645213543e+01 5.6450595032795320e+01 + 2.6298257278765311e+02 2.4459394060869445e+02 4.2108849022194408e+02 -4.9575317957752254e+01 2.3909363739954845e+01 5.6450575869687796e+01 run_forces: ! |2 - 1 -1.3652735543008816e+00 3.7954571133178902e+01 4.8884537377309172e+01 - 2 2.3313139309989094e+01 1.6527406547056287e+01 -2.8962849270283392e+01 - 3 -1.9564712384032376e+01 -5.0756725329741236e+01 -2.0129969747702308e+01 - 4 -4.2684080200768406e+00 1.1154804510128165e+00 -3.2315048619404054e+00 - 5 -1.8626805980022214e+00 -1.5514180174720389e+00 5.9922526428223755e+00 - 6 -6.9327726613063405e+01 7.2910030587436125e+01 6.2943841090264428e+01 - 7 3.2729124302063782e-02 -2.0499844044312820e+01 -1.2523227476685206e+02 - 8 9.0645037724821509e-01 -1.5931699446420091e+00 3.7347010853073435e+01 - 9 1.1981988562945483e+01 5.2954468151255067e+00 4.7222350357045890e+01 - 10 4.8288299835295966e+01 -6.2566569083557049e+01 -1.8224018086894844e+01 - 11 -2.0738716050222630e+00 -1.9563271603792205e+00 -5.4254318756542368e+00 - 12 1.1610864028639977e+01 3.5316916580070092e+00 -2.3173763560781429e+00 - 13 4.3429257276773807e+00 -1.7528673949822231e+00 -2.5697563580528093e-01 - 14 -2.8597051905279471e+00 7.1516550165881965e-01 -4.7422662564667295e+00 - 15 2.4141775499873258e-01 4.4181494329616786e+00 6.3284916283478820e-01 - 16 4.0232204451083376e+01 -3.2797821752234313e+01 -8.8231810184066035e+01 - 17 -3.8475340125721864e+01 3.0789552823136074e+01 9.2071434225822074e+01 - 18 3.0444797968268300e-01 4.7206637648615688e+00 -7.8186573872028138e+00 - 19 2.0279150125912517e+00 -6.9154201326913600e-01 5.5370944385616223e+00 - 20 -2.8995220719101922e+00 -3.9661888702042210e+00 4.0718961555885951e+00 - 21 -8.9482098879923537e+00 -8.3621991830172071e+00 2.7577076547654709e+01 - 22 -1.5805955548410763e+01 -4.8572159943051245e+00 -2.1662218351727955e+01 - 23 2.4340521395832020e+01 1.3631552339738477e+01 -5.4129057423025664e+00 - 24 5.5331810643516564e+00 -2.4561349600827779e+01 1.3801515937783783e+01 - 25 -2.1784341755480526e+01 1.0179032133762751e+00 -1.7474990741497301e+01 - 26 1.5689570822659292e+01 2.3291561154430479e+01 3.0620923138000120e+00 - 27 4.7026946479168608e+00 -2.6383838593099334e+01 9.9362502379539066e+00 - 28 -2.3442657625683115e+01 7.6899612511865811e+00 -1.5219892618907782e+01 - 29 1.9130054885010718e+01 1.8687940308877128e+01 5.2629405428671072e+00 + 1 -1.3652735930906894e+00 3.7954572425088600e+01 4.8884537536228251e+01 + 2 2.3313139334678663e+01 1.6527406600491211e+01 -2.8962849276354000e+01 + 3 -1.9564718562282973e+01 -5.0756719062921292e+01 -2.0129965576839844e+01 + 4 -4.2684081469531368e+00 1.1154804222099293e+00 -3.2315049292955824e+00 + 5 -1.8626808414826610e+00 -1.5514185255808333e+00 5.9922528781941766e+00 + 6 -6.9327721229262110e+01 7.2910024635730380e+01 6.2943837085648937e+01 + 7 3.2725222830676137e-02 -2.0499842211560001e+01 -1.2523228341650837e+02 + 8 9.0645055137852115e-01 -1.5931719167310145e+00 3.7347019992128743e+01 + 9 1.1981988547677094e+01 5.2954468970124511e+00 4.7222350531971742e+01 + 10 4.8288281356087531e+01 -6.2566570067320434e+01 -1.8224022430624395e+01 + 11 -2.0738716081392377e+00 -1.9563271844965389e+00 -5.4254319181514443e+00 + 12 1.1610879631578506e+01 3.5317030183327125e+00 -2.3173858911656642e+00 + 13 4.3429258040952297e+00 -1.7528673754740225e+00 -2.5697566254992021e-01 + 14 -2.8597051688567952e+00 7.1516550852642913e-01 -4.7422662954861217e+00 + 15 2.4141796485202816e-01 4.4181495983415076e+00 6.3284909937970446e-01 + 16 4.0232211454356282e+01 -3.2797832579156953e+01 -8.8231799320354028e+01 + 17 -3.8475339764361301e+01 3.0789551940448018e+01 9.2071436318485866e+01 + 18 3.0444805304334399e-01 4.7206638753263892e+00 -7.8186575081644856e+00 + 19 2.0279150077542512e+00 -6.9154201629216772e-01 5.5370944341575088e+00 + 20 -2.8995220657682923e+00 -3.9661888647039816e+00 4.0718961563281235e+00 + 21 -8.9482098702532671e+00 -8.3621992046533951e+00 2.7577076529370782e+01 + 22 -1.5805955549117563e+01 -4.8572159950668672e+00 -2.1662218352485397e+01 + 23 2.4340521396969667e+01 1.3631552340005888e+01 -5.4129057420952673e+00 + 24 5.5331811069800025e+00 -2.4561349584081412e+01 1.3801516002278914e+01 + 25 -2.1784341752404423e+01 1.0179032153888428e+00 -1.7474990731263802e+01 + 26 1.5689570827295116e+01 2.3291561157244697e+01 3.0620923168469263e+00 + 27 4.7026946335578899e+00 -2.6383838605477855e+01 9.9362502458408990e+00 + 28 -2.3442657629509469e+01 7.6899612499018408e+00 -1.5219892620516704e+01 + 29 1.9130054888347100e+01 1.8687940309467866e+01 5.2629405449944144e+00 ... diff --git a/unittest/force-styles/tests/mol-pair-cosine_squared.yaml b/unittest/force-styles/tests/mol-pair-cosine_squared.yaml index b1d44726c9..ee6faf6235 100644 --- a/unittest/force-styles/tests/mol-pair-cosine_squared.yaml +++ b/unittest/force-styles/tests/mol-pair-cosine_squared.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_cut.yaml b/unittest/force-styles/tests/mol-pair-coul_cut.yaml index 6f5c85343b..921e682a9a 100644 --- a/unittest/force-styles/tests/mol-pair-coul_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_cut_soft.yaml b/unittest/force-styles/tests/mol-pair-coul_cut_soft.yaml index 25dfcf21bb..20b467b728 100644 --- a/unittest/force-styles/tests/mol-pair-coul_cut_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_cut_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_debye.yaml b/unittest/force-styles/tests/mol-pair-coul_debye.yaml index 064ea744c6..a7902442d1 100644 --- a/unittest/force-styles/tests/mol-pair-coul_debye.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_debye.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_diel.yaml b/unittest/force-styles/tests/mol-pair-coul_diel.yaml index 565cd5f7b2..a417ee09bf 100644 --- a/unittest/force-styles/tests/mol-pair-coul_diel.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_diel.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_dsf.yaml b/unittest/force-styles/tests/mol-pair-coul_dsf.yaml index b586a73bb6..9bc59e4431 100644 --- a/unittest/force-styles/tests/mol-pair-coul_dsf.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_dsf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 1e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_long.yaml b/unittest/force-styles/tests/mol-pair-coul_long.yaml index 884599ba7e..9c3c933100 100644 --- a/unittest/force-styles/tests/mol-pair-coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_long_cs.yaml b/unittest/force-styles/tests/mol-pair-coul_long_cs.yaml index 164acce939..02426dbdc3 100644 --- a/unittest/force-styles/tests/mol-pair-coul_long_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_long_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_long_soft.yaml b/unittest/force-styles/tests/mol-pair-coul_long_soft.yaml index c1a6832713..b769aabf93 100644 --- a/unittest/force-styles/tests/mol-pair-coul_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_long_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:42 2021 epsilon: 3e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_msm.yaml b/unittest/force-styles/tests/mol-pair-coul_msm.yaml index 83e633d42f..83b8550101 100644 --- a/unittest/force-styles/tests/mol-pair-coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml index 05418a2f75..289a3e0e38 100644 --- a/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:12 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_shield.yaml b/unittest/force-styles/tests/mol-pair-coul_shield.yaml index 58e75ad6d1..fa64e7d0cb 100644 --- a/unittest/force-styles/tests/mol-pair-coul_shield.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_shield.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_slater_cut.yaml b/unittest/force-styles/tests/mol-pair-coul_slater_cut.yaml index 85a3343367..d08bbf4c86 100644 --- a/unittest/force-styles/tests/mol-pair-coul_slater_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_slater_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml b/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml index 9000f80d0d..b731508901 100644 --- a/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_slater_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml b/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml index b2b3509149..5c3c637193 100644 --- a/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_streitz_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml b/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml index ad7aa1ccc1..ec3b354df4 100644 --- a/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_streitz_wolf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:43 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_table.yaml b/unittest/force-styles/tests/mol-pair-coul_table.yaml index aa9ab54062..54baba354c 100644 --- a/unittest/force-styles/tests/mol-pair-coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml index 2691280d70..d5ed5fab83 100644 --- a/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_wolf.yaml b/unittest/force-styles/tests/mol-pair-coul_wolf.yaml index 4918adc093..a48fa7f565 100644 --- a/unittest/force-styles/tests/mol-pair-coul_wolf.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_wolf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-coul_wolf_cs.yaml b/unittest/force-styles/tests/mol-pair-coul_wolf_cs.yaml index 50447386bf..32068ba458 100644 --- a/unittest/force-styles/tests/mol-pair-coul_wolf_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_wolf_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-dpd.yaml b/unittest/force-styles/tests/mol-pair-dpd.yaml index 5f747fa0b2..13e9c1b776 100644 --- a/unittest/force-styles/tests/mol-pair-dpd.yaml +++ b/unittest/force-styles/tests/mol-pair-dpd.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml b/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml index 43f5136973..d43ac13ba0 100644 --- a/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml +++ b/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-e3b.yaml b/unittest/force-styles/tests/mol-pair-e3b.yaml index 416f76db20..03d74c2069 100644 --- a/unittest/force-styles/tests/mol-pair-e3b.yaml +++ b/unittest/force-styles/tests/mol-pair-e3b.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-gauss.yaml b/unittest/force-styles/tests/mol-pair-gauss.yaml index c83d82f39f..642f2417c8 100644 --- a/unittest/force-styles/tests/mol-pair-gauss.yaml +++ b/unittest/force-styles/tests/mol-pair-gauss.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-gauss_cut.yaml b/unittest/force-styles/tests/mol-pair-gauss_cut.yaml index ff11a0e41b..c440fc0f1c 100644 --- a/unittest/force-styles/tests/mol-pair-gauss_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-gauss_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml b/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml index ce962d5a3b..a264411788 100644 --- a/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml +++ b/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-hybrid.yaml b/unittest/force-styles/tests/mol-pair-hybrid.yaml index 3630d4bdd6..4f55c09d25 100644 --- a/unittest/force-styles/tests/mol-pair-hybrid.yaml +++ b/unittest/force-styles/tests/mol-pair-hybrid.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:13 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lennard_mdf.yaml b/unittest/force-styles/tests/mol-pair-lennard_mdf.yaml index 6ba6c42bb5..4ba3045057 100644 --- a/unittest/force-styles/tests/mol-pair-lennard_mdf.yaml +++ b/unittest/force-styles/tests/mol-pair-lennard_mdf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj96_cut.yaml b/unittest/force-styles/tests/mol-pair-lj96_cut.yaml index 85191fe5ed..94e19d6663 100644 --- a/unittest/force-styles/tests/mol-pair-lj96_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-lj96_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml index d20b8e2e87..452a1b58d6 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 7e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm_implicit.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm_implicit.yaml index a8333d8d91..91a73b31e3 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm_implicit.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm_implicit.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long.yaml index 7e377ec89c..c58a4849da 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long_soft.yaml index aa9509679c..0d956e0d3e 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_long_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm.yaml index 93677fc67e..b3884c3b11 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml index 0c0bc86099..adf0f0b71b 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml index 31eea37ef8..7d64a7c692 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_charmmfsw.yaml b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_charmmfsw.yaml index 5348900e55..4ed8721c7e 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_charmmfsw.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_charmmfsw.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_long.yaml index 898a0759a6..0b95c6c4d0 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml index 2e578773a8..2af3de8273 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2.yaml b/unittest/force-styles/tests/mol-pair-lj_class2.yaml index dfded52103..ba4989e6e2 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:14 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut.yaml index 719e42f49d..7855313829 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut_soft.yaml index 0ba6aa7608..8ac23b3583 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_cut_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_long.yaml index 0fdcc79f5e..0bae674a35 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_cs.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_cs.yaml index a8a65171f5..7f88407d20 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_soft.yaml index b18417ceba..673fb46800 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_long_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml index 3c31c1bde6..39a9299b25 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_table_cs.yaml index 6d4064039e..8d3537b6c2 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_table_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_soft.yaml index 55368adbb9..75bf587fe9 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cubic.yaml b/unittest/force-styles/tests/mol-pair-lj_cubic.yaml index 6d23998ad5..1d9b911db5 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cubic.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cubic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 30 Nov 2020 -date_generated: Fri Dec 18 22:30:42 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:47 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut.yaml b/unittest/force-styles/tests/mol-pair-lj_cut.yaml index 1a45b3d448..4aff257f62 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut.yaml index d34748446f..23ee5a4b93 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut_soft.yaml index bfd5a20a36..2c37fbefe9 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_cut_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_debye.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_debye.yaml index b460307579..04e9f26025 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_debye.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_debye.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_dsf.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_dsf.yaml index e830d17236..109e347449 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_dsf.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_dsf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 8e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_long.yaml index b4981269c5..e16d0ac162 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_cs.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_cs.yaml index 0cd8d0ce00..863b41f597 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:15 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 7.5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_soft.yaml index c3a97c2f2f..acd3ea4ce0 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_long_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml index a861ce9a34..937c115a9a 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:48 2021 epsilon: 7e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml index 1c53c025f9..de1ab82c24 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml index 2da0d85562..d5eb9d35a1 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_table_cs.yaml index eddedd29da..179900a1f2 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_table_cs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_wolf.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_wolf.yaml index 47c261986a..28b6525f19 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_wolf.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_wolf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_soft.yaml index 266af00296..77567c0a76 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml index 36e89e8cfa..d57e1df73a 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml index c3097aee6d..d1bed9430b 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:49 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml index 08f12b6476..027c91970e 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml index 22eef49478..77a7f00ad8 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_expand.yaml b/unittest/force-styles/tests/mol-pair-lj_expand.yaml index cc94bc7213..7f7a73df55 100644 --- a/unittest/force-styles/tests/mol-pair-lj_expand.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_expand.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_expand_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_expand_coul_long.yaml index e177df874b..9f4b5fa97c 100644 --- a/unittest/force-styles/tests/mol-pair-lj_expand_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_expand_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:16 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml index 2ca2d354a7..27ceae8a05 100644 --- a/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 2e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_gromacs.yaml b/unittest/force-styles/tests/mol-pair-lj_gromacs.yaml index ecf6b8f0f8..174c94829d 100644 --- a/unittest/force-styles/tests/mol-pair-lj_gromacs.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_gromacs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_gromacs_coul_gromacs.yaml b/unittest/force-styles/tests/mol-pair-lj_gromacs_coul_gromacs.yaml index 75d1943339..c1a87514f1 100644 --- a/unittest/force-styles/tests/mol-pair-lj_gromacs_coul_gromacs.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_gromacs_coul_gromacs.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml index caa7d765b5..483d54a326 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 2.5e-09 prerequisites: ! | atom full @@ -27,72 +27,72 @@ extract: ! | sigma 2 cut_coul 0 natoms: 29 -init_vdwl: 749.373775521848 +init_vdwl: 749.373800441949 init_coul: 225.821815126925 init_stress: ! |2- - 2.1566619777740902e+03 2.1561339369037219e+03 4.6267173221155736e+03 -7.5508635166800991e+02 1.8219495486319847e+01 6.7619475900149655e+02 + 2.1566620277629813e+03 2.1561339780157969e+03 4.6267173807038052e+03 -7.5508635107101691e+02 1.8219496027762062e+01 6.7619472632626719e+02 init_forces: ! |2 - 1 -2.0622981429393807e+01 2.6956534558011725e+02 3.3304204925517143e+02 - 2 1.5804318302709490e+02 1.2736090910218131e+02 -1.8761883353245216e+02 - 3 -1.3527896432508211e+02 -3.8712541491749789e+02 -1.4567430834698106e+02 - 4 -7.9525168436030773e+00 2.1530554166296176e+00 -5.8369678142768118e+00 - 5 -3.0584210326688970e+00 -3.3883621918483655e+00 1.2083104660267935e+01 - 6 -8.3040950136399044e+02 9.6005842246557552e+02 1.1483426903619145e+03 - 7 5.8117176187526780e+01 -3.3519934567641707e+02 -1.7141478166388797e+03 - 8 1.4294493171390297e+02 -1.0474128177423346e+02 4.0227521160525629e+02 - 9 8.0782715664878268e+01 7.9461644781068358e+01 3.5173834803878833e+02 - 10 5.3094739039340072e+02 -6.1005894329030184e+02 -1.8379453583600960e+02 - 11 -3.2540352897717737e+00 -4.8803819809385027e+00 -1.0223100643333725e+01 - 12 2.0391732170892919e+01 1.0150596216961747e+01 -6.4978637469860816e+00 - 13 8.0251516080555430e+00 -3.2176927494765719e+00 -3.2683209992541434e-01 - 14 -4.4396727557663969e+00 1.0430005884558371e+00 -8.8469672403790529e+00 - 15 1.4998024458760750e-01 8.2845477274856112e+00 2.0021371706680275e+00 - 16 4.6253004030953110e+02 -3.3139195670429746e+02 -1.1873816589319622e+03 - 17 -4.5576220588835747e+02 3.2170885473451676e+02 1.1992075674372097e+03 - 18 3.5638625258145490e-01 4.7708005940782092e+00 -7.8562962420657412e+00 - 19 1.9902577614639423e+00 -7.2127770268183056e-01 5.5221988819092536e+00 - 20 -2.9135477975119137e+00 -3.9876270289423439e+00 4.1253800349019452e+00 - 21 -6.9663077752668514e+01 -7.7247842870041893e+01 2.1698923839494989e+02 - 22 -1.0627534004387260e+02 -2.6762806431184490e+01 -1.6366217211268523e+02 - 23 1.7552279743617564e+02 1.0442576746894673e+02 -5.2822891559610461e+01 - 24 3.5025338162767611e+01 -2.0265091634797420e+02 1.0716856771722603e+02 - 25 -1.4546282924538690e+02 2.0973208751614084e+01 -1.2144531001524807e+02 - 26 1.0987377305379422e+02 1.8142227933955789e+02 1.3660221686848063e+01 - 27 4.9787264851761520e+01 -2.1702378491087205e+02 8.7171908546104049e+01 - 28 -1.7608392919959783e+02 7.3301696261828440e+01 -1.1852448703320457e+02 - 29 1.2668890412925685e+02 1.4371750554769054e+02 3.1331418002784233e+01 -run_vdwl: 719.707445870818 -run_coul: 225.904237287787 + 1 -2.0622981661660933e+01 2.6956534606458871e+02 3.3304204939116363e+02 + 2 1.5804318306601883e+02 1.2736090918213843e+02 -1.8761883354202345e+02 + 3 -1.3527896613660067e+02 -3.8712541322474209e+02 -1.4567430731367753e+02 + 4 -7.9525168535595512e+00 2.1530554219898832e+00 -5.8369678167150498e+00 + 5 -3.0584211548599773e+00 -3.3883622409374414e+00 1.2083104792629799e+01 + 6 -8.3040950098401379e+02 9.6005842177261275e+02 1.1483426894944605e+03 + 7 5.8117169924759708e+01 -3.3519934246802160e+02 -1.7141478301179534e+03 + 8 1.4294492975961728e+02 -1.0474128441953674e+02 4.0227522786700177e+02 + 9 8.0782715620485192e+01 7.9461644907945399e+01 3.5173834826976304e+02 + 10 5.3094736334968877e+02 -6.1005894723647111e+02 -1.8379453981847473e+02 + 11 -3.2540351174731903e+00 -4.8803826086618827e+00 -1.0223101185000280e+01 + 12 2.0391758367278634e+01 1.0150613828433194e+01 -6.4978796273378174e+00 + 13 8.0251517295680532e+00 -3.2176927284900541e+00 -3.2683214420263229e-01 + 14 -4.4396726967568014e+00 1.0430006507669409e+00 -8.8469673769189328e+00 + 15 1.4998058602555447e-01 8.2845479683942465e+00 2.0021370654547277e+00 + 16 4.6253004977709497e+02 -3.3139197130445098e+02 -1.1873816442531520e+03 + 17 -4.5576220537745553e+02 3.2170885360525574e+02 1.1992075701133558e+03 + 18 3.5638637100685411e-01 4.7708007696323129e+00 -7.8562964240005906e+00 + 19 1.9902577541873943e+00 -7.2127770801066615e-01 5.5221988759400071e+00 + 20 -2.9135477887099177e+00 -3.9876270213526297e+00 4.1253800364116655e+00 + 21 -6.9663077725625229e+01 -7.7247842899394058e+01 2.1698923836747846e+02 + 22 -1.0627534004508448e+02 -2.6762806432167704e+01 -1.6366217211367643e+02 + 23 1.7552279743788071e+02 1.0442576746938796e+02 -5.2822891559245299e+01 + 24 3.5025338224251065e+01 -2.0265091632381331e+02 1.0716856781097904e+02 + 25 -1.4546282924824158e+02 2.0973208750647458e+01 -1.2144531001161199e+02 + 26 1.0987377306154728e+02 1.8142227934422800e+02 1.3660221691842844e+01 + 27 4.9787264831917881e+01 -2.1702378492861621e+02 8.7171908557180572e+01 + 28 -1.7608392920071728e+02 7.3301696261204825e+01 -1.1852448703331862e+02 + 29 1.2668890412943080e+02 1.4371750554744025e+02 3.1331418003647308e+01 +run_vdwl: 719.707466157291 +run_coul: 225.904237287566 run_stress: ! |2- - 2.1107536793307468e+03 2.1122379201857452e+03 4.3599324498565293e+03 -7.3409238214538516e+02 3.5359613445860141e+01 6.3752279062951925e+02 + 2.1107537188662236e+03 2.1122379542510184e+03 4.3599324983027345e+03 -7.3409237546545421e+02 3.5359612031240225e+01 6.3752276727918104e+02 run_forces: ! |2 - 1 -1.7610671323869674e+01 2.6644632319809125e+02 3.2393635185737048e+02 - 2 1.5276958689054419e+02 1.2310601845342437e+02 -1.8097797853205338e+02 - 3 -1.3352437924496681e+02 -3.7931520927920576e+02 -1.4290253280020417e+02 - 4 -7.9210454699422739e+00 2.1479068853687990e+00 -5.8262866027728446e+00 - 5 -3.0436142186020652e+00 -3.3598700412150313e+00 1.2037071546308955e+01 - 6 -8.0541518106738181e+02 9.1789632182348248e+02 1.0248061101238054e+03 - 7 5.5711025014807248e+01 -3.1035014369487737e+02 -1.5712639984017087e+03 - 8 1.3310087453577813e+02 -9.6225162152811720e+01 3.9090026703160601e+02 - 9 7.8393574070627366e+01 7.6654576853511799e+01 3.4092264679070774e+02 - 10 5.2097956066949666e+02 -5.9878732018277447e+02 -1.8147991237770523e+02 - 11 -3.2607667066270936e+00 -4.8312582714797552e+00 -1.0171800769012659e+01 - 12 2.0370356353863581e+01 1.0143689941206798e+01 -6.6267466555479961e+00 - 13 7.9794514497078781e+00 -3.1830746501709997e+00 -3.2644127587370575e-01 - 14 -4.4037331584323880e+00 1.0233682011991643e+00 -8.7298909905895190e+00 - 15 1.3154168744955988e-01 8.2984798374513744e+00 2.0213779317532383e+00 - 16 4.3411491239178514e+02 -3.1229545621436057e+02 -1.1118126613117161e+03 - 17 -4.2721103677584034e+02 3.0241089748456909e+02 1.1238250106811154e+03 - 18 3.0045457761221517e-01 4.7293875917389530e+00 -7.8044958131791784e+00 - 19 2.0270210763586318e+00 -7.0015059579377714e-01 5.5349995515760559e+00 - 20 -2.8986405349039099e+00 -3.9674896299813454e+00 4.0696696823518108e+00 - 21 -6.8658022402852936e+01 -7.5474151287218916e+01 2.1302465879802361e+02 - 22 -1.0464809690544206e+02 -2.6524463281118258e+01 -1.6069148016249562e+02 - 23 1.7288793881586659e+02 1.0241548772353890e+02 -5.1825425141802349e+01 - 24 3.6621512242007107e+01 -2.0125837141004371e+02 1.0765962820446694e+02 - 25 -1.4622310926571268e+02 2.0851692216922846e+01 -1.2215078336950006e+02 - 26 1.0903616825360248e+02 1.8015275208029206e+02 1.3874388664482883e+01 - 27 4.8836594023392919e+01 -2.1313610883088290e+02 8.5044672096502211e+01 - 28 -1.7278645223316221e+02 7.1874824697301463e+01 -1.1608941518893110e+02 - 29 1.2434417725483669e+02 1.4125650253383503e+02 3.1022996433022094e+01 + 1 -1.7610671215147516e+01 2.6644632521711065e+02 3.2393635216495608e+02 + 2 1.5276958690674471e+02 1.2310601849305402e+02 -1.8097797853684457e+02 + 3 -1.3352438109375441e+02 -3.7931520752883262e+02 -1.4290253169413955e+02 + 4 -7.9210457144807673e+00 2.1479067658962112e+00 -5.8262867707772656e+00 + 5 -3.0436146111746609e+00 -3.3598708486321578e+00 1.2037071927910159e+01 + 6 -8.0541518022246134e+02 9.1789632032195846e+02 1.0248061088552281e+03 + 7 5.5711018458020682e+01 -3.1035014038624917e+02 -1.5712640121585557e+03 + 8 1.3310087649542288e+02 -9.6225164941492508e+01 3.9090028139588929e+02 + 9 7.8393574096452653e+01 7.6654576917241798e+01 3.4092264700067278e+02 + 10 5.2097953975583994e+02 -5.9878733321714390e+02 -1.8147990705795451e+02 + 11 -3.2607666278858591e+00 -4.8312585741314322e+00 -1.0171801101420801e+01 + 12 2.0370378822259379e+01 1.0143707538480376e+01 -6.6267605135464889e+00 + 13 7.9794514942654207e+00 -3.1830746441047428e+00 -3.2644128910532161e-01 + 14 -4.4037331178676657e+00 1.0233682060578044e+00 -8.7298910570923951e+00 + 15 1.3154197296741404e-01 8.2984800089639776e+00 2.0213778453832680e+00 + 16 4.3411491585315781e+02 -3.1229546158366014e+02 -1.1118126563874712e+03 + 17 -4.2721103632201573e+02 3.0241089632715619e+02 1.1238250137043428e+03 + 18 3.0045467379022872e-01 4.7293877280888514e+00 -7.8044959748020570e+00 + 19 2.0270210691150932e+00 -7.0015060136201190e-01 5.5349995459560830e+00 + 20 -2.8986405261351393e+00 -3.9674896221724638e+00 4.0696696835467474e+00 + 21 -6.8658022376548189e+01 -7.5474151318419402e+01 2.1302465876840716e+02 + 22 -1.0464809690829846e+02 -2.6524463283005797e+01 -1.6069148016429543e+02 + 23 1.7288793881938844e+02 1.0241548772466190e+02 -5.1825425140716725e+01 + 24 3.6621512295722965e+01 -2.0125837138502857e+02 1.0765962828843737e+02 + 25 -1.4622310926187339e+02 2.0851692219024567e+01 -1.2215078335595025e+02 + 26 1.0903616826048172e+02 1.8015275208444928e+02 1.3874388668825373e+01 + 27 4.8836594003434030e+01 -2.1313610884810515e+02 8.5044672108300603e+01 + 28 -1.7278645223634851e+02 7.1874824696100561e+01 -1.1608941518998317e+02 + 29 1.2434417725692825e+02 1.4125650253409549e+02 3.1022996434798799e+01 ... diff --git a/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml b/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml index 25043b3ff8..b120893757 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_coul_off.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:50 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml index 64af0de1a7..ff512d3e09 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_cut_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:51 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml index 123706c3dc..9227228855 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_cut_tip4p_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:51 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml index f4920d8699..a6572ed66c 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:51 2021 epsilon: 2.5e-09 prerequisites: ! | atom full @@ -35,72 +35,72 @@ extract: ! | typeA 0 typeB 0 natoms: 29 -init_vdwl: 584.670359070893 +init_vdwl: 584.670383161636 init_coul: 220.904555359383 init_stress: ! |2- - 1.4179907518567816e+03 1.6981521081440758e+03 3.8247897795492727e+03 -1.0685165979600738e+03 -2.2301723603317933e+02 7.0678975460957838e+02 + 1.4179908002675882e+03 1.6981521472771331e+03 3.8247898365498668e+03 -1.0685165973996445e+03 -2.2301723469314501e+02 7.0678972133134016e+02 init_forces: ! |2 - 1 1.3731384454971254e+02 3.9920027816333527e+02 1.4671535385944733e+02 + 1 1.3731384428493124e+02 3.9920027854840805e+02 1.4671535403601737e+02 2 -1.9557407939667784e-01 -2.8434279090485344e+00 -1.2037666274486341e+00 - 3 -1.4543663227279740e+02 -3.8854700219617757e+02 -1.3922266560344775e+02 + 3 -1.4543663403399540e+02 -3.8854700044105419e+02 -1.3922266457674954e+02 4 -7.9314978889013857e-02 1.6212643266693107e-02 -2.3663785465653561e-01 5 -5.4637120859630939e-01 6.5600989679059629e-01 -6.8980117595427104e-02 - 6 -8.3044669735263210e+02 9.6003930511175383e+02 1.1483694862004249e+03 - 7 5.8135902001138916e+01 -3.3519692557212892e+02 -1.7141558244033672e+03 - 8 2.2222306113041898e+02 -1.9487724475012371e+01 7.5254097093507573e+02 + 6 -8.3044669697571760e+02 9.6003930443804529e+02 1.1483694854778580e+03 + 7 5.8135895738828381e+01 -3.3519692236360072e+02 -1.7141558378818368e+03 + 8 2.2222305975187425e+02 -1.9487727502660320e+01 7.5254098660516138e+02 9 1.5618105874324246e+00 -5.8578891996706437e+00 1.3701350515471384e+00 - 10 5.2854811448198768e+02 -6.1591055679501983e+02 -1.9340281827813200e+02 + 10 5.2854808750532732e+02 -6.1591056046926769e+02 -1.9340282225226667e+02 11 -9.3766462457826905e-01 1.0563563299185068e+00 -5.5775022539970631e-01 - 12 2.4920320953166684e+01 1.6044685842922149e+01 -1.2382365264982791e+01 + 12 2.4920347090319872e+01 1.6044703403776545e+01 -1.2382381138510288e+01 13 -7.5720425159299595e-02 3.8772041103398963e-02 -1.8346431648817585e-01 14 -1.0557020156519512e+00 3.6717714938726143e-01 -1.0728817695848940e-01 15 3.5162907632314466e-01 -1.9165325094615621e-01 -1.0148660141104417e+00 - 16 4.6235899435670046e+02 -3.3129450503702833e+02 -1.1872104992473003e+03 - 17 -4.5562419635435378e+02 3.2174933490465634e+02 1.1991777262209341e+03 - 18 3.5327026427352259e-01 4.7616025960598627e+00 -7.8715619141435136e+00 + 16 4.6235900379292781e+02 -3.3129451959604160e+02 -1.1872104846434017e+03 + 17 -4.5562419584375363e+02 3.2174933377566850e+02 1.1991777288967187e+03 + 18 3.5327038190601634e-01 4.7616027705645072e+00 -7.8715620952516669e+00 19 1.9911596893384120e+00 -7.2195675725850206e-01 5.5334689749229105e+00 20 -2.9127135301570397e+00 -4.0021946638596519e+00 4.1375019377447915e+00 - 21 1.5193591883077349e+00 3.2144199030879488e+00 -6.7582252414360386e+00 + 21 1.5193592132463749e+00 3.2144198763444218e+00 -6.7582252673322518e+00 22 4.4657588078956723e+00 1.0585032152255676e+00 5.8268290139589860e+00 23 -6.2938601634201303e+00 -3.9616631352879410e+00 1.3192732707154482e+00 - 24 -1.0905447870604845e+00 6.8024490469623906e+00 -3.6841666676664224e+00 + 24 -1.0905447268336337e+00 6.8024490705444629e+00 -3.6841665762708744e+00 25 4.9746167445264264e+00 -5.2361422570157790e-01 3.9262159421100877e+00 26 -4.3769290854851999e+00 -6.4816134554785325e+00 -8.1534775153570904e-01 - 27 -1.5292288622987564e+00 7.3670370982215285e+00 -2.7248017460341405e+00 + 27 -1.5292288824966420e+00 7.3670370809055621e+00 -2.7248017347638211e+00 28 6.4035032875423159e+00 -2.1779017025677483e+00 4.1727109672631357e+00 29 -4.5201953782892055e+00 -5.1735155675050022e+00 -1.4886429234413563e+00 -run_vdwl: 557.056017138723 -run_coul: 220.913884393424 +run_vdwl: 557.056030477029 +run_coul: 220.91388439321 run_stress: ! |2- - 1.3775223471877366e+03 1.6566887898319319e+03 3.5747571933396416e+03 -1.0386782468208169e+03 -2.0694914366906673e+02 6.6732653084085644e+02 + 1.3775223750599193e+03 1.6566888200245039e+03 3.5747572154246241e+03 -1.0386782389667430e+03 -2.0694915325068987e+02 6.6732651501863484e+02 run_forces: ! |2 - 1 1.3484812659843513e+02 3.9092060800918989e+02 1.4373313137859998e+02 - 2 -2.0271633707648873e-01 -2.8298288761987318e+00 -1.1989313018491383e+00 - 3 -1.4342324899553293e+02 -3.7982436667370501e+02 -1.3597762688785588e+02 - 4 -8.2852639177138657e-02 1.8300393504026149e-02 -2.3762389449071866e-01 - 5 -5.4791673482209124e-01 6.5614563469546494e-01 -6.3941396753216292e-02 - 6 -8.0227486127425436e+02 9.1496525291694797e+02 1.0264249576311956e+03 - 7 5.5771543379925383e+01 -3.1037336716922317e+02 -1.5711704568990347e+03 - 8 2.0819248601410811e+02 -1.2101254710546570e+01 7.2875382950845608e+02 - 9 1.5634160487619546e+00 -5.8771942139639481e+00 1.3776856877372210e+00 - 10 5.1715704548744839e+02 -6.0329365711832054e+02 -1.9113877357061190e+02 - 11 -9.4002639920539743e-01 1.0582108303494102e+00 -5.6167252694801739e-01 - 12 2.4863919762583155e+01 1.6062852620618131e+01 -1.2360597545829215e+01 - 13 -7.5840697095099607e-02 4.0077788679094964e-02 -1.8559573885370806e-01 - 14 -1.0625298052267247e+00 3.6955553581650585e-01 -1.0916767712595477e-01 - 15 3.5311739865286279e-01 -1.9448880340077307e-01 -1.0191647907359309e+00 - 16 4.3394626492285823e+02 -3.1219926534478418e+02 -1.1116473917803178e+03 - 17 -4.2707030325761536e+02 3.0243865908364359e+02 1.1237993806924117e+03 - 18 3.0368395429039413e-01 4.7171895570379352e+00 -7.8295029342293025e+00 - 19 2.0270801847492161e+00 -6.9918333164961344e-01 5.5492247587141375e+00 - 20 -2.8995874776604742e+00 -3.9821844731531963e+00 4.0840163265138711e+00 - 21 1.5208456305724503e+00 3.1993262189952332e+00 -6.7421856947959524e+00 - 22 4.4874876087857585e+00 1.0719243021957119e+00 5.8233438927252603e+00 - 23 -6.3183698445588599e+00 -3.9593735948248070e+00 1.3084674471345548e+00 - 24 -1.1079755165485650e+00 6.8112748041127560e+00 -3.6957336981034130e+00 - 25 5.0093760593232943e+00 -5.0836369921098123e-01 3.9583976051674381e+00 - 26 -4.3931344945010125e+00 -6.5025659801859046e+00 -8.3304413261264720e-01 - 27 -1.5441431471578715e+00 7.3753658554767467e+00 -2.7159697179439259e+00 - 28 6.4199810218638094e+00 -2.1795392395617279e+00 4.1762085294330520e+00 - 29 -4.5208674519252963e+00 -5.1801103225337508e+00 -1.5012632699978348e+00 + 1 1.3484812617575406e+02 3.9092060908116656e+02 1.4373313186999439e+02 + 2 -2.0271633709568476e-01 -2.8298288761956423e+00 -1.1989313018422760e+00 + 3 -1.4342325174055713e+02 -3.7982436396313489e+02 -1.3597762518906373e+02 + 4 -8.2852639170312839e-02 1.8300393499842461e-02 -2.3762389449286375e-01 + 5 -5.4791673481254732e-01 6.5614563468856779e-01 -6.3941396758903993e-02 + 6 -8.0227485954791541e+02 9.1496525050525736e+02 1.0264249558300917e+03 + 7 5.5771542735465069e+01 -3.1037336726230455e+02 -1.5711704577668092e+03 + 8 2.0819248556765424e+02 -1.2101254281688147e+01 7.2875382923317329e+02 + 9 1.5634160486512318e+00 -5.8771942140939055e+00 1.3776856876345804e+00 + 10 5.1715702524063988e+02 -6.0329367024604721e+02 -1.9113876792726958e+02 + 11 -9.4002639917994568e-01 1.0582108302448794e+00 -5.6167252695046399e-01 + 12 2.4863938867166016e+01 1.6062869875084793e+01 -1.2360609625898560e+01 + 13 -7.5840697146929953e-02 4.0077788713113287e-02 -1.8559573885665315e-01 + 14 -1.0625298051164564e+00 3.6955553582007694e-01 -1.0916767715816915e-01 + 15 3.5311739874004949e-01 -1.9448880341844976e-01 -1.0191647907497523e+00 + 16 4.3394626801693568e+02 -3.1219927017642323e+02 -1.1116473874381600e+03 + 17 -4.2707030283376542e+02 3.0243865797177557e+02 1.1237993836385187e+03 + 18 3.0368404844222568e-01 4.7171896888581095e+00 -7.8295030918480828e+00 + 19 2.0270801847430087e+00 -6.9918333167659397e-01 5.5492247587169610e+00 + 20 -2.8995874776653414e+00 -3.9821844731834624e+00 4.0840163265257070e+00 + 21 1.5208456586487951e+00 3.1993261879629271e+00 -6.7421857269435987e+00 + 22 4.4874876087889790e+00 1.0719243022009861e+00 5.8233438927261929e+00 + 23 -6.3183698445659342e+00 -3.9593735948101023e+00 1.3084674471388333e+00 + 24 -1.1079754642593542e+00 6.8112748289396237e+00 -3.6957336164134316e+00 + 25 5.0093760593140946e+00 -5.0836369922018387e-01 3.9583976051551146e+00 + 26 -4.3931344945026183e+00 -6.5025659801902629e+00 -8.3304413261248733e-01 + 27 -1.5441431651250583e+00 7.3753658402581390e+00 -2.7159697072843967e+00 + 28 6.4199810218643059e+00 -2.1795392395603654e+00 4.1762085294336435e+00 + 29 -4.5208674519292567e+00 -5.1801103225235723e+00 -1.5012632699970143e+00 ... diff --git a/unittest/force-styles/tests/mol-pair-lj_mdf.yaml b/unittest/force-styles/tests/mol-pair-lj_mdf.yaml index 47f8b5ca0c..3dc4b08e81 100644 --- a/unittest/force-styles/tests/mol-pair-lj_mdf.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_mdf.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk.yaml index dbaf863ae4..6a705107fe 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_long.yaml index 53097bb236..52871422b1 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:17 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm.yaml index 8c3a199e3a..4df3f42891 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml index 6c97aa9d81..f9e55e3fea 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml index 24ffccc296..914cd9077e 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_smooth.yaml b/unittest/force-styles/tests/mol-pair-lj_smooth.yaml index 0171513b43..ea17c7d5b0 100644 --- a/unittest/force-styles/tests/mol-pair-lj_smooth.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_smooth.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_smooth_linear.yaml b/unittest/force-styles/tests/mol-pair-lj_smooth_linear.yaml index ccd05990b4..1726804d29 100644 --- a/unittest/force-styles/tests/mol-pair-lj_smooth_linear.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_smooth_linear.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:53 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml index a7be6a954d..9b2e520fb5 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:53 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml index 22af7a5357..4f21995ed5 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_off.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:53 2021 epsilon: 2e-08 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml index d3cfee2672..d9c02422cb 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:18 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:53 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml index 8dc5a53716..7eab70a542 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:54 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml index 9ba1ea7802..8274c80cdc 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_tip4p_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:54 2021 epsilon: 2.5e-09 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-mie_cut.yaml b/unittest/force-styles/tests/mol-pair-mie_cut.yaml index 286d201e38..ec36aa2349 100644 --- a/unittest/force-styles/tests/mol-pair-mie_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-mie_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-morse.yaml b/unittest/force-styles/tests/mol-pair-morse.yaml index 06449cec6d..12a2ab2132 100644 --- a/unittest/force-styles/tests/mol-pair-morse.yaml +++ b/unittest/force-styles/tests/mol-pair-morse.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-morse_smooth_linear.yaml b/unittest/force-styles/tests/mol-pair-morse_smooth_linear.yaml index e933b47a0b..a4264cef44 100644 --- a/unittest/force-styles/tests/mol-pair-morse_smooth_linear.yaml +++ b/unittest/force-styles/tests/mol-pair-morse_smooth_linear.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-morse_soft.yaml b/unittest/force-styles/tests/mol-pair-morse_soft.yaml index d57e3a155f..2c385f7a80 100644 --- a/unittest/force-styles/tests/mol-pair-morse_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-morse_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-nm_cut.yaml b/unittest/force-styles/tests/mol-pair-nm_cut.yaml index b05678514d..861a92dbdd 100644 --- a/unittest/force-styles/tests/mol-pair-nm_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-nm_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-nm_cut_coul_cut.yaml b/unittest/force-styles/tests/mol-pair-nm_cut_coul_cut.yaml index 0161426c61..1e8330ec06 100644 --- a/unittest/force-styles/tests/mol-pair-nm_cut_coul_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-nm_cut_coul_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-nm_cut_coul_long.yaml b/unittest/force-styles/tests/mol-pair-nm_cut_coul_long.yaml index e8739a7340..fc190d1aea 100644 --- a/unittest/force-styles/tests/mol-pair-nm_cut_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-nm_cut_coul_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:19 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:55 2021 epsilon: 7.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml b/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml index 128309d349..adaa3904a2 100644 --- a/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:56 2021 epsilon: 5e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-python_hybrid.yaml b/unittest/force-styles/tests/mol-pair-python_hybrid.yaml index 189a321fe9..663e3efa2d 100644 --- a/unittest/force-styles/tests/mol-pair-python_hybrid.yaml +++ b/unittest/force-styles/tests/mol-pair-python_hybrid.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:56 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-python_lj.yaml b/unittest/force-styles/tests/mol-pair-python_lj.yaml index 614741a0a2..ac4fcd9207 100644 --- a/unittest/force-styles/tests/mol-pair-python_lj.yaml +++ b/unittest/force-styles/tests/mol-pair-python_lj.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:56 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-soft.yaml b/unittest/force-styles/tests/mol-pair-soft.yaml index 7a8a5322ee..b9c049cc18 100644 --- a/unittest/force-styles/tests/mol-pair-soft.yaml +++ b/unittest/force-styles/tests/mol-pair-soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:56 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-table.yaml b/unittest/force-styles/tests/mol-pair-table.yaml index 8d70bac4ab..2d0ff80bd3 100644 --- a/unittest/force-styles/tests/mol-pair-table.yaml +++ b/unittest/force-styles/tests/mol-pair-table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:56 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml b/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml index 0394b0b363..8174c5b905 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 21 Jul 2020 -date_generated: Thu Aug 6 16:52:44 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 7.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-tip4p_long.yaml index 9ee6b51077..d09ccd2a68 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_long.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml b/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml index 704294440f..88a80c7e19 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_long_soft.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 1e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-tip4p_table.yaml index 24376bc9b3..1417873385 100644 --- a/unittest/force-styles/tests/mol-pair-tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-tip4p_table.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 2.5e-13 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-ufm.yaml b/unittest/force-styles/tests/mol-pair-ufm.yaml index 494f1cb5b7..e94703032c 100644 --- a/unittest/force-styles/tests/mol-pair-ufm.yaml +++ b/unittest/force-styles/tests/mol-pair-ufm.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-wf_cut.yaml b/unittest/force-styles/tests/mol-pair-wf_cut.yaml index 359c6d7006..0b689fd219 100644 --- a/unittest/force-styles/tests/mol-pair-wf_cut.yaml +++ b/unittest/force-styles/tests/mol-pair-wf_cut.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Dec 2020 -date_generated: Thu Jan 28 03:47:32 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-yukawa.yaml b/unittest/force-styles/tests/mol-pair-yukawa.yaml index 209afc79bd..9a0882a1ce 100644 --- a/unittest/force-styles/tests/mol-pair-yukawa.yaml +++ b/unittest/force-styles/tests/mol-pair-yukawa.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 5e-14 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-zbl.yaml b/unittest/force-styles/tests/mol-pair-zbl.yaml index 465ae3059e..113072816e 100644 --- a/unittest/force-styles/tests/mol-pair-zbl.yaml +++ b/unittest/force-styles/tests/mol-pair-zbl.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:20 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 1e-12 prerequisites: ! | atom full diff --git a/unittest/force-styles/tests/mol-pair-zero.yaml b/unittest/force-styles/tests/mol-pair-zero.yaml index d243cab958..04bffa3b05 100644 --- a/unittest/force-styles/tests/mol-pair-zero.yaml +++ b/unittest/force-styles/tests/mol-pair-zero.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 24 Aug 2020 -date_generated: Tue Sep 15 09:44:21 202 +lammps_version: 10 Feb 2021 +date_generated: Fri Feb 26 23:08:57 2021 epsilon: 1e-14 prerequisites: ! | atom full From f797d9cb2e4619167e354d2f0cce15e35fd479d5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Feb 2021 10:36:38 -0500 Subject: [PATCH 007/104] must always set pair_modify table (and table/disp) explicitly for long-range styles --- unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml | 1 + unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml | 1 + unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml | 1 + unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml | 1 + 4 files changed, 4 insertions(+) diff --git a/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml b/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml index 14624b04e5..df11a0547c 100644 --- a/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_long_coul_long.yaml @@ -9,6 +9,7 @@ prerequisites: ! | pre_commands: ! "" post_commands: ! | pair_modify table 0 + pair_modify table/disp 0 kspace_style ewald/disp 1.0e-6 kspace_modify gewald 0.3 kspace_modify compute no diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml index c204dd600f..39fae48cb4 100644 --- a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml @@ -9,6 +9,7 @@ prerequisites: ! | pre_commands: ! "" post_commands: ! | pair_modify table 16 + pair_modify table/disp 16 kspace_style ewald/disp 1.0e-6 kspace_modify gewald 0.3 kspace_modify compute no diff --git a/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml index 483d54a326..5c083caeac 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_coul_long.yaml @@ -10,6 +10,7 @@ pre_commands: ! "" post_commands: ! | pair_modify mix arithmetic pair_modify table 0 + pair_modify table/disp 0 kspace_style ewald/disp 1.0e-6 kspace_modify gewald 0.3 kspace_modify compute no diff --git a/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml index a6572ed66c..25ac675244 100644 --- a/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_long_tip4p_long.yaml @@ -12,6 +12,7 @@ pre_commands: ! | post_commands: ! | pair_modify mix arithmetic pair_modify table 0 + pair_modify table/disp 0 kspace_style pppm/disp/tip4p 1.0e-5 kspace_modify gewald 0.3 kspace_modify force/disp/real 0.001 From a6f32e472dbc97c01a534c081f2662fbb95f7f4b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Feb 2021 10:39:03 -0500 Subject: [PATCH 008/104] add explanation why we set pair_modify table only in the lammps_init() --- unittest/force-styles/test_pair_style.cpp | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 4e1ad8d0e3..f25923a01b 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -123,6 +123,11 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new for (auto &pair_coeff : cfg.pair_coeff) { command("pair_coeff " + pair_coeff); } + + // set this here explicitly to a setting different + // from the default, so we can spot YAML files for + // long-range interactions that do not include these + // settings. they will fail after restart or read data. command("pair_modify table 0"); command("pair_modify table/disp 0"); From 121774dde33924fcf8c3350d4ba8359d770fe980 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Feb 2021 10:58:04 -0500 Subject: [PATCH 009/104] adjust epsilon for one test --- unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml index 39fae48cb4..643786eb0d 100644 --- a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml @@ -1,7 +1,7 @@ --- lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:41 2021 -epsilon: 2e-09 +epsilon: 8e-07 prerequisites: ! | atom full pair buck/long/coul/long From dfeee1f19be3c6ac3d86401acead974d1beafb9c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Feb 2021 15:42:32 -0500 Subject: [PATCH 010/104] run neighbor list on CPU for hybrid pair styles --- unittest/force-styles/test_pair_style.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index f25923a01b..61815ec5f4 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -814,10 +814,17 @@ TEST(PairStyle, omp) TEST(PairStyle, gpu) { if (!LAMMPS::is_installed_pkg("GPU")) GTEST_SKIP(); - const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "gpu"}; + const char *args_neigh[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "gpu"}; + const char *args_noneigh[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "gpu", "-pk", "gpu", "0", "neigh", "no"}; - char **argv = (char **)args; - int argc = sizeof(args) / sizeof(char *); + char **argv = (char **)args_neigh; + int argc = sizeof(args_neigh) / sizeof(char *); + + // cannot use GPU neighbor list with hybrid pair style (yet) + if (test_config.pair_style.substr(0, 6) == "hybrid") { + argv = (char **)args_noneigh; + argc = sizeof(args_noneigh) / sizeof(char *); + } ::testing::internal::CaptureStdout(); LAMMPS *lmp = init_lammps(argc, argv, test_config, false); From 74713be4a26ab2123f6e79f4fd27989c6c0a9161 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 18:44:30 -0500 Subject: [PATCH 011/104] add new key to YAML files: skip_tests --- unittest/force-styles/test_angle_style.cpp | 14 ++++++++++++ unittest/force-styles/test_bond_style.cpp | 16 ++++++++++++++ unittest/force-styles/test_config.h | 3 +++ unittest/force-styles/test_config_reader.cpp | 11 ++++++++++ unittest/force-styles/test_config_reader.h | 1 + unittest/force-styles/test_dihedral_style.cpp | 4 ++++ unittest/force-styles/test_fix_timestep.cpp | 12 ++++++++++ unittest/force-styles/test_improper_style.cpp | 12 ++++++++++ unittest/force-styles/test_pair_style.cpp | 22 +++++++++++++++++++ 9 files changed, 95 insertions(+) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index bf5cb34e7f..ff391127bd 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -246,6 +246,14 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // epsilon writer.emit("epsilon", config.epsilon); + // skip tests + block.clear(); + for (auto &skip_tests : config.skip_tests) { + if (block.empty()) block = skip_tests; + else block += " " + skip_tests; + } + writer.emit("skip_tests", block); + // prerequisites block.clear(); for (auto &prerequisite : config.prerequisites) { @@ -341,6 +349,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) TEST(AngleStyle, plain) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -567,6 +577,8 @@ TEST(AngleStyle, plain) TEST(AngleStyle, omp) { if (!LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; @@ -740,6 +752,8 @@ TEST(AngleStyle, omp) TEST(AngleStyle, single) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; diff --git a/unittest/force-styles/test_bond_style.cpp b/unittest/force-styles/test_bond_style.cpp index d6a6e9c82d..94d2344c03 100644 --- a/unittest/force-styles/test_bond_style.cpp +++ b/unittest/force-styles/test_bond_style.cpp @@ -246,6 +246,14 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // epsilon writer.emit("epsilon", config.epsilon); + // skip tests + block.clear(); + for (auto &skip_tests : config.skip_tests) { + if (block.empty()) block = skip_tests; + else block += " " + skip_tests; + } + writer.emit("skip_tests", block); + // prerequisites block.clear(); for (auto &prerequisite : config.prerequisites) { @@ -341,6 +349,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) TEST(BondStyle, plain) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"BondStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -567,6 +577,8 @@ TEST(BondStyle, plain) TEST(BondStyle, omp) { if (!LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"BondStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; @@ -739,6 +751,8 @@ TEST(BondStyle, omp) TEST(BondStyle, single) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"BondStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -995,6 +1009,8 @@ TEST(BondStyle, single) TEST(BondStyle, extract) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"BondStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; diff --git a/unittest/force-styles/test_config.h b/unittest/force-styles/test_config.h index baf3a5f29a..0417b306cb 100644 --- a/unittest/force-styles/test_config.h +++ b/unittest/force-styles/test_config.h @@ -14,6 +14,7 @@ #ifndef TEST_CONFIG_H #define TEST_CONFIG_H +#include #include #include #include @@ -32,6 +33,7 @@ public: std::string date_generated; std::string basename; double epsilon; + std::set skip_tests; std::vector> prerequisites; std::vector pre_commands; std::vector post_commands; @@ -74,6 +76,7 @@ public: init_vdwl(0), run_vdwl(0), init_coul(0), run_coul(0), init_stress({0, 0, 0, 0, 0, 0}), run_stress({0, 0, 0, 0, 0, 0}), global_scalar(0) { + skip_tests.clear(); prerequisites.clear(); pre_commands.clear(); post_commands.clear(); diff --git a/unittest/force-styles/test_config_reader.cpp b/unittest/force-styles/test_config_reader.cpp index 4ef3692f56..ed7ddf50a1 100644 --- a/unittest/force-styles/test_config_reader.cpp +++ b/unittest/force-styles/test_config_reader.cpp @@ -15,6 +15,7 @@ #include "test_config.h" #include "yaml.h" #include "yaml_reader.h" +#include "utils.h" #include #include @@ -25,11 +26,14 @@ #include #include +using LAMMPS_NS::utils::split_words; + TestConfigReader::TestConfigReader(TestConfig &config) : YamlReader(), config(config) { consumers["lammps_version"] = &TestConfigReader::lammps_version; consumers["date_generated"] = &TestConfigReader::date_generated; consumers["epsilon"] = &TestConfigReader::epsilon; + consumers["skip_tests"] = &TestConfigReader::skip_tests; consumers["prerequisites"] = &TestConfigReader::prerequisites; consumers["pre_commands"] = &TestConfigReader::pre_commands; consumers["post_commands"] = &TestConfigReader::post_commands; @@ -66,6 +70,13 @@ TestConfigReader::TestConfigReader(TestConfig &config) : YamlReader(), config(co consumers["equilibrium"] = &TestConfigReader::equilibrium; } +void TestConfigReader::skip_tests(const yaml_event_t &event) +{ + config.skip_tests.clear(); + for (auto &word : split_words((char *)event.data.scalar.value)) + config.skip_tests.insert(word); +} + void TestConfigReader::prerequisites(const yaml_event_t &event) { config.prerequisites.clear(); diff --git a/unittest/force-styles/test_config_reader.h b/unittest/force-styles/test_config_reader.h index 840228da3a..f82a2b7a15 100644 --- a/unittest/force-styles/test_config_reader.h +++ b/unittest/force-styles/test_config_reader.h @@ -23,6 +23,7 @@ class TestConfigReader : public YamlReader { public: TestConfigReader(TestConfig &config); + void skip_tests(const yaml_event_t &event); void prerequisites(const yaml_event_t &event); void pre_commands(const yaml_event_t &event); void post_commands(const yaml_event_t &event); diff --git a/unittest/force-styles/test_dihedral_style.cpp b/unittest/force-styles/test_dihedral_style.cpp index a27c50afb7..f8ad0a60eb 100644 --- a/unittest/force-styles/test_dihedral_style.cpp +++ b/unittest/force-styles/test_dihedral_style.cpp @@ -344,6 +344,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) TEST(DihedralStyle, plain) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"DihedralStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -570,6 +572,8 @@ TEST(DihedralStyle, plain) TEST(DihedralStyle, omp) { if (!LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"DihedralStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; diff --git a/unittest/force-styles/test_fix_timestep.cpp b/unittest/force-styles/test_fix_timestep.cpp index 2680367c88..3fa2e78813 100644 --- a/unittest/force-styles/test_fix_timestep.cpp +++ b/unittest/force-styles/test_fix_timestep.cpp @@ -204,6 +204,14 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // epsilon writer.emit("epsilon", config.epsilon); + // skip tests + block.clear(); + for (auto &skip_tests : config.skip_tests) { + if (block.empty()) block = skip_tests; + else block += " " + skip_tests; + } + writer.emit("skip_tests", block); + // prerequisites block.clear(); for (auto &prerequisite : config.prerequisites) { @@ -287,6 +295,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) TEST(FixTimestep, plain) { if (!LAMMPS::is_installed_pkg("MOLECULE")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"FixTimestep", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -729,6 +739,8 @@ TEST(FixTimestep, omp) { if (!LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); if (!LAMMPS::is_installed_pkg("MOLECULE")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"FixTimestep", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; diff --git a/unittest/force-styles/test_improper_style.cpp b/unittest/force-styles/test_improper_style.cpp index b13b571546..9e38c03cd1 100644 --- a/unittest/force-styles/test_improper_style.cpp +++ b/unittest/force-styles/test_improper_style.cpp @@ -246,6 +246,14 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // epsilon writer.emit("epsilon", config.epsilon); + // skip tests + block.clear(); + for (auto &skip_tests : config.skip_tests) { + if (block.empty()) block = skip_tests; + else block += " " + skip_tests; + } + writer.emit("skip_tests", block); + // prerequisites block.clear(); for (auto &prerequisite : config.prerequisites) { @@ -335,6 +343,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) TEST(ImproperStyle, plain) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"ImproperStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -561,6 +571,8 @@ TEST(ImproperStyle, plain) TEST(ImproperStyle, omp) { if (!LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"ImproperStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 61815ec5f4..0e61bacfbd 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -255,6 +255,14 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) // epsilon writer.emit("epsilon", config.epsilon); + // skip tests + block.clear(); + for (auto &skip_tests : config.skip_tests) { + if (block.empty()) block = skip_tests; + else block += " " + skip_tests; + } + writer.emit("skip_tests", block); + // prerequisites block.clear(); for (auto &prerequisite : config.prerequisites) { @@ -350,6 +358,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) TEST(PairStyle, plain) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -632,6 +642,8 @@ TEST(PairStyle, plain) TEST(PairStyle, omp) { if (!LAMMPS::is_installed_pkg("USER-OMP")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; @@ -814,6 +826,8 @@ TEST(PairStyle, omp) TEST(PairStyle, gpu) { if (!LAMMPS::is_installed_pkg("GPU")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args_neigh[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "gpu"}; const char *args_noneigh[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "gpu", "-pk", "gpu", "0", "neigh", "no"}; @@ -933,6 +947,8 @@ TEST(PairStyle, gpu) TEST(PairStyle, intel) { if (!LAMMPS::is_installed_pkg("USER-INTEL")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "intel", "0", "mode", "double", "omp", "4", "lrt", "no", "-sf", "intel"}; @@ -1073,6 +1089,8 @@ TEST(PairStyle, intel) TEST(PairStyle, opt) { if (!LAMMPS::is_installed_pkg("OPT")) GTEST_SKIP(); + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-sf", "opt"}; char **argv = (char **)args; @@ -1178,6 +1196,8 @@ TEST(PairStyle, opt) TEST(PairStyle, single) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; @@ -1435,6 +1455,8 @@ TEST(PairStyle, single) TEST(PairStyle, extract) { + if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP(); + const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite"}; char **argv = (char **)args; From 205b45423c205f76399036bd3e695d21432d8d5e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 20:07:19 -0500 Subject: [PATCH 012/104] combine repetitive code into convenience function --- unittest/force-styles/test_angle_style.cpp | 45 +--------------- unittest/force-styles/test_bond_style.cpp | 45 +--------------- unittest/force-styles/test_dihedral_style.cpp | 37 +------------ unittest/force-styles/test_fix_timestep.cpp | 45 +--------------- unittest/force-styles/test_improper_style.cpp | 45 +--------------- unittest/force-styles/test_main.cpp | 52 +++++++++++++++++++ unittest/force-styles/test_main.h | 9 +++- unittest/force-styles/test_pair_style.cpp | 45 +--------------- 8 files changed, 71 insertions(+), 252 deletions(-) diff --git a/unittest/force-styles/test_angle_style.cpp b/unittest/force-styles/test_angle_style.cpp index ff391127bd..05646a93a9 100644 --- a/unittest/force-styles/test_angle_style.cpp +++ b/unittest/force-styles/test_angle_style.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -235,48 +234,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) YamlWriter writer(outfile); - // lammps_version - writer.emit("lammps_version", lmp->version); - - // date_generated - std::time_t now = time(NULL); - block = utils::trim(ctime(&now)); - writer.emit("date_generated", block); - - // epsilon - writer.emit("epsilon", config.epsilon); - - // skip tests - block.clear(); - for (auto &skip_tests : config.skip_tests) { - if (block.empty()) block = skip_tests; - else block += " " + skip_tests; - } - writer.emit("skip_tests", block); - - // prerequisites - block.clear(); - for (auto &prerequisite : config.prerequisites) { - block += prerequisite.first + " " + prerequisite.second + "\n"; - } - writer.emit_block("prerequisites", block); - - // pre_commands - block.clear(); - for (auto &command : config.pre_commands) { - block += command + "\n"; - } - writer.emit_block("pre_commands", block); - - // post_commands - block.clear(); - for (auto &command : config.post_commands) { - block += command + "\n"; - } - writer.emit_block("post_commands", block); - - // input_file - writer.emit("input_file", config.input_file); + // write yaml header + write_yaml_header(&writer, &test_config, lmp->version); // angle_style writer.emit("angle_style", config.angle_style); diff --git a/unittest/force-styles/test_bond_style.cpp b/unittest/force-styles/test_bond_style.cpp index 94d2344c03..f3aab53b12 100644 --- a/unittest/force-styles/test_bond_style.cpp +++ b/unittest/force-styles/test_bond_style.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -235,48 +234,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) YamlWriter writer(outfile); - // lammps_version - writer.emit("lammps_version", lmp->version); - - // date_generated - std::time_t now = time(NULL); - block = utils::trim(ctime(&now)); - writer.emit("date_generated", block); - - // epsilon - writer.emit("epsilon", config.epsilon); - - // skip tests - block.clear(); - for (auto &skip_tests : config.skip_tests) { - if (block.empty()) block = skip_tests; - else block += " " + skip_tests; - } - writer.emit("skip_tests", block); - - // prerequisites - block.clear(); - for (auto &prerequisite : config.prerequisites) { - block += prerequisite.first + " " + prerequisite.second + "\n"; - } - writer.emit_block("prerequisites", block); - - // pre_commands - block.clear(); - for (auto &command : config.pre_commands) { - block += command + "\n"; - } - writer.emit_block("pre_commands", block); - - // post_commands - block.clear(); - for (auto &command : config.post_commands) { - block += command + "\n"; - } - writer.emit_block("post_commands", block); - - // input_file - writer.emit("input_file", config.input_file); + // write yaml header + write_yaml_header(&writer, &test_config, lmp->version); // bond_style writer.emit("bond_style", config.bond_style); diff --git a/unittest/force-styles/test_dihedral_style.cpp b/unittest/force-styles/test_dihedral_style.cpp index f8ad0a60eb..95f64d7896 100644 --- a/unittest/force-styles/test_dihedral_style.cpp +++ b/unittest/force-styles/test_dihedral_style.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -244,40 +243,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) YamlWriter writer(outfile); - // lammps_version - writer.emit("lammps_version", lmp->version); - - // date_generated - std::time_t now = time(NULL); - block = utils::trim(ctime(&now)); - writer.emit("date_generated", block); - - // epsilon - writer.emit("epsilon", config.epsilon); - - // prerequisites - block.clear(); - for (auto &prerequisite : config.prerequisites) { - block += prerequisite.first + " " + prerequisite.second + "\n"; - } - writer.emit_block("prerequisites", block); - - // pre_commands - block.clear(); - for (auto &command : config.pre_commands) { - block += command + "\n"; - } - writer.emit_block("pre_commands", block); - - // post_commands - block.clear(); - for (auto &command : config.post_commands) { - block += command + "\n"; - } - writer.emit_block("post_commands", block); - - // input_file - writer.emit("input_file", config.input_file); + // write yaml header + write_yaml_header(&writer, &test_config, lmp->version); // dihedral_style writer.emit("dihedral_style", config.dihedral_style); diff --git a/unittest/force-styles/test_fix_timestep.cpp b/unittest/force-styles/test_fix_timestep.cpp index 3fa2e78813..6ba3f7f6d7 100644 --- a/unittest/force-styles/test_fix_timestep.cpp +++ b/unittest/force-styles/test_fix_timestep.cpp @@ -42,7 +42,6 @@ #include #include #include -#include #include #include @@ -193,48 +192,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) std::string block(""); YamlWriter writer(outfile); - // lammps_version - writer.emit("lammps_version", lmp->version); - - // date_generated - std::time_t now = time(NULL); - block = utils::trim(ctime(&now)); - writer.emit("date_generated", block); - - // epsilon - writer.emit("epsilon", config.epsilon); - - // skip tests - block.clear(); - for (auto &skip_tests : config.skip_tests) { - if (block.empty()) block = skip_tests; - else block += " " + skip_tests; - } - writer.emit("skip_tests", block); - - // prerequisites - block.clear(); - for (auto &prerequisite : config.prerequisites) { - block += prerequisite.first + " " + prerequisite.second + "\n"; - } - writer.emit_block("prerequisites", block); - - // pre_commands - block.clear(); - for (auto &command : config.pre_commands) { - block += command + "\n"; - } - writer.emit_block("pre_commands", block); - - // post_commands - block.clear(); - for (auto &command : config.post_commands) { - block += command + "\n"; - } - writer.emit_block("post_commands", block); - - // input_file - writer.emit("input_file", config.input_file); + // write yaml header + write_yaml_header(&writer, &test_config, lmp->version); // natoms writer.emit("natoms", natoms); diff --git a/unittest/force-styles/test_improper_style.cpp b/unittest/force-styles/test_improper_style.cpp index 9e38c03cd1..2e61a1e0cb 100644 --- a/unittest/force-styles/test_improper_style.cpp +++ b/unittest/force-styles/test_improper_style.cpp @@ -38,7 +38,6 @@ #include #include #include -#include #include #include @@ -235,48 +234,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) YamlWriter writer(outfile); - // lammps_version - writer.emit("lammps_version", lmp->version); - - // date_generated - std::time_t now = time(NULL); - block = utils::trim(ctime(&now)); - writer.emit("date_generated", block); - - // epsilon - writer.emit("epsilon", config.epsilon); - - // skip tests - block.clear(); - for (auto &skip_tests : config.skip_tests) { - if (block.empty()) block = skip_tests; - else block += " " + skip_tests; - } - writer.emit("skip_tests", block); - - // prerequisites - block.clear(); - for (auto &prerequisite : config.prerequisites) { - block += prerequisite.first + " " + prerequisite.second + "\n"; - } - writer.emit_block("prerequisites", block); - - // pre_commands - block.clear(); - for (auto &command : config.pre_commands) { - block += command + "\n"; - } - writer.emit_block("pre_commands", block); - - // post_commands - block.clear(); - for (auto &command : config.post_commands) { - block += command + "\n"; - } - writer.emit_block("post_commands", block); - - // input_file - writer.emit("input_file", config.input_file); + // write yaml header + write_yaml_header(&writer, &test_config, lmp->version); // improper_style writer.emit("improper_style", config.improper_style); diff --git a/unittest/force-styles/test_main.cpp b/unittest/force-styles/test_main.cpp index 69a2b96822..e26eb6a8fb 100644 --- a/unittest/force-styles/test_main.cpp +++ b/unittest/force-styles/test_main.cpp @@ -16,16 +16,19 @@ #include "test_config.h" #include "test_config_reader.h" #include "utils.h" +#include "yaml_writer.h" #include "gmock/gmock.h" #include "gtest/gtest.h" #include #include +#include #include #include #include using LAMMPS_NS::utils::split_words; +using LAMMPS_NS::utils::trim; // common read_yaml_file function bool read_yaml_file(const char *infile, TestConfig &config) @@ -37,6 +40,55 @@ bool read_yaml_file(const char *infile, TestConfig &config) return true; } +// write out common header items for yaml files +void write_yaml_header(YamlWriter *writer, + TestConfig *cfg, + const char *version) +{ + // lammps_version + writer->emit("lammps_version", version); + + // date_generated + std::time_t now = time(NULL); + std::string block = trim(ctime(&now)); + writer->emit("date_generated", block); + + // epsilon + writer->emit("epsilon", cfg->epsilon); + + // skip tests + block.clear(); + for (auto &skip : cfg->skip_tests) { + if (block.empty()) block = skip; + else block += " " + skip; + } + writer->emit("skip_tests", block); + + // prerequisites + block.clear(); + for (auto &prerequisite : cfg->prerequisites) { + block += prerequisite.first + " " + prerequisite.second + "\n"; + } + writer->emit_block("prerequisites", block); + + // pre_commands + block.clear(); + for (auto &command : cfg->pre_commands) { + block += command + "\n"; + } + writer->emit_block("pre_commands", block); + + // post_commands + block.clear(); + for (auto &command : cfg->post_commands) { + block += command + "\n"; + } + writer->emit_block("post_commands", block); + + // input_file + writer->emit("input_file", cfg->input_file); +} + // need to be defined in unit test body extern void generate_yaml_file(const char *, const TestConfig &); diff --git a/unittest/force-styles/test_main.h b/unittest/force-styles/test_main.h index ee0be2a637..0f30467f6b 100644 --- a/unittest/force-styles/test_main.h +++ b/unittest/force-styles/test_main.h @@ -22,6 +22,10 @@ extern bool print_stats; extern bool verbose; extern std::string INPUT_FOLDER; +// convenience method to write out common entries +void write_yaml_header(class YamlWriter *writer, TestConfig *cfg, + const char *version); + #define EXPECT_FP_LE_WITH_EPS(val1, val2, eps) \ do { \ const double diff = fabs(val1 - val2); \ @@ -31,10 +35,11 @@ extern std::string INPUT_FOLDER; EXPECT_PRED_FORMAT2(::testing::DoubleLE, err, eps); \ } while (0); -#endif - #if defined _WIN32 static const char PATH_SEP = '\\'; #else static const char PATH_SEP = '/'; #endif + +#endif + diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 0e61bacfbd..6a99fb72cd 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -40,7 +40,6 @@ #include #include #include -#include #include #include @@ -244,48 +243,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config) YamlWriter writer(outfile); - // lammps_version - writer.emit("lammps_version", lmp->version); - - // date_generated - std::time_t now = time(NULL); - block = utils::trim(ctime(&now)); - writer.emit("date_generated", block); - - // epsilon - writer.emit("epsilon", config.epsilon); - - // skip tests - block.clear(); - for (auto &skip_tests : config.skip_tests) { - if (block.empty()) block = skip_tests; - else block += " " + skip_tests; - } - writer.emit("skip_tests", block); - - // prerequisites - block.clear(); - for (auto &prerequisite : config.prerequisites) { - block += prerequisite.first + " " + prerequisite.second + "\n"; - } - writer.emit_block("prerequisites", block); - - // pre_commands - block.clear(); - for (auto &command : config.pre_commands) { - block += command + "\n"; - } - writer.emit_block("pre_commands", block); - - // post_commands - block.clear(); - for (auto &command : config.post_commands) { - block += command + "\n"; - } - writer.emit_block("post_commands", block); - - // input_file - writer.emit("input_file", config.input_file); + // write yaml header + write_yaml_header(&writer, &test_config, lmp->version); // pair_style writer.emit("pair_style", config.pair_style); From 5629947d89065b2ac4015457e9a3c6d271a8f81b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 21:43:38 -0500 Subject: [PATCH 013/104] add skip test entries for tests failing to run for GPU or USER-INTEL --- unittest/force-styles/tests/kspace-pppm_ad.yaml | 1 + unittest/force-styles/tests/kspace-pppm_disp.yaml | 1 + unittest/force-styles/tests/kspace-pppm_disp_ad.yaml | 1 + unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml | 1 + unittest/force-styles/tests/kspace-pppm_disp_only.yaml | 1 + unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml | 1 + unittest/force-styles/tests/manybody-pair-rebo.yaml | 1 + .../force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml | 1 + unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml | 1 + unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml | 1 + unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml | 1 + unittest/force-styles/tests/mol-pair-dpd.yaml | 1 + unittest/force-styles/tests/mol-pair-dpd_tstat.yaml | 1 + unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml | 1 + unittest/force-styles/tests/mol-pair-hybrid.yaml | 1 + unittest/force-styles/tests/mol-pair-lj_class2.yaml | 1 + 16 files changed, 16 insertions(+) diff --git a/unittest/force-styles/tests/kspace-pppm_ad.yaml b/unittest/force-styles/tests/kspace-pppm_ad.yaml index 3f77eb99c5..5eb711c089 100644 --- a/unittest/force-styles/tests/kspace-pppm_ad.yaml +++ b/unittest/force-styles/tests/kspace-pppm_ad.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:29 2021 epsilon: 7.5e-14 +skip_tests: gpu prerequisites: ! | atom full pair coul/long diff --git a/unittest/force-styles/tests/kspace-pppm_disp.yaml b/unittest/force-styles/tests/kspace-pppm_disp.yaml index 8c528baf76..e7693c8980 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:30 2021 epsilon: 2.5e-13 +skip_tests: intel prerequisites: ! | atom full pair lj/long/coul/long diff --git a/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml b/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml index 4ef71d7333..11285b1a23 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_ad.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:31 2021 epsilon: 2.5e-13 +skip_tests: intel prerequisites: ! | atom full pair lj/long/coul/long diff --git a/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml b/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml index 203eceb209..81380966d8 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_ad_only.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:31 2021 epsilon: 2.5e-13 +skip_tests: intel prerequisites: ! | atom full pair lj/long/coul/long diff --git a/unittest/force-styles/tests/kspace-pppm_disp_only.yaml b/unittest/force-styles/tests/kspace-pppm_disp_only.yaml index f0243c8da1..3450805f27 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_only.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_only.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:31 2021 epsilon: 2.5e-13 +skip_tests: intel prerequisites: ! | atom full pair lj/long/coul/long diff --git a/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml b/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml index 79951aab2f..047a623995 100644 --- a/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml +++ b/unittest/force-styles/tests/kspace-pppm_disp_tip4p.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:32 2021 epsilon: 2.5e-13 +skip_tests: intel prerequisites: ! | atom full pair lj/long/tip4p/long diff --git a/unittest/force-styles/tests/manybody-pair-rebo.yaml b/unittest/force-styles/tests/manybody-pair-rebo.yaml index cba66272c3..2e07aad8d6 100644 --- a/unittest/force-styles/tests/manybody-pair-rebo.yaml +++ b/unittest/force-styles/tests/manybody-pair-rebo.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:18 2021 epsilon: 1e-07 +skip_tests: intel prerequisites: ! | pair rebo pre_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml index eec7384351..a630f67ef8 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod_c_shift.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:20 2021 epsilon: 1e-12 +skip_tests: intel prerequisites: ! | pair tersoff/mod/c pre_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml index e40ac3548b..a9390a4fd3 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_mod_shift.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-11 +skip_tests: gpu intel prerequisites: ! | pair tersoff/mod pre_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml index 9676fe954b..9808d348a7 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_shift.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-13 +skip_tests: gpu intel prerequisites: ! | pair tersoff pre_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml index 7dda923362..69b63cf259 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_zbl_shift.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:21 2021 epsilon: 5e-11 +skip_tests: gpu intel prerequisites: ! | pair tersoff/zbl pre_commands: ! | diff --git a/unittest/force-styles/tests/mol-pair-dpd.yaml b/unittest/force-styles/tests/mol-pair-dpd.yaml index 13e9c1b776..4964a74e2a 100644 --- a/unittest/force-styles/tests/mol-pair-dpd.yaml +++ b/unittest/force-styles/tests/mol-pair-dpd.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 +skip_tests: gpu intel prerequisites: ! | atom full pair dpd diff --git a/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml b/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml index d43ac13ba0..0348c0d601 100644 --- a/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml +++ b/unittest/force-styles/tests/mol-pair-dpd_tstat.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:44 2021 epsilon: 5e-14 +skip_tests: gpu intel prerequisites: ! | atom full pair dpd/tstat diff --git a/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml b/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml index a264411788..0967d5727b 100644 --- a/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml +++ b/unittest/force-styles/tests/mol-pair-hybrid-overlay.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut diff --git a/unittest/force-styles/tests/mol-pair-hybrid.yaml b/unittest/force-styles/tests/mol-pair-hybrid.yaml index 4f55c09d25..95bec97279 100644 --- a/unittest/force-styles/tests/mol-pair-hybrid.yaml +++ b/unittest/force-styles/tests/mol-pair-hybrid.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:45 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut diff --git a/unittest/force-styles/tests/mol-pair-lj_class2.yaml b/unittest/force-styles/tests/mol-pair-lj_class2.yaml index ba4989e6e2..779bb4def2 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/class2 From 6fa3e6d23e8632478ae93b4b01ee4d1d07132ed0 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 21:44:41 -0500 Subject: [PATCH 014/104] remove hardcoded checks for incompatible styles. use skip_tests keyword instead --- unittest/force-styles/test_pair_style.cpp | 26 ----------------------- 1 file changed, 26 deletions(-) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 6a99fb72cd..79f832c0ef 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -627,14 +627,6 @@ TEST(PairStyle, omp) EXPECT_THAT(output, StartsWith("LAMMPS (")); EXPECT_THAT(output, HasSubstr("Loop time")); - if (utils::strmatch(test_config.pair_style, "^dpd")) { - std::cerr << "Skipping pair style " << lmp->force->pair_style << "\n"; - if (!verbose) ::testing::internal::CaptureStdout(); - cleanup_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); - GTEST_SKIP(); - } - // abort if running in parallel and not all atoms are local const int nlocal = lmp->atom->nlocal; ASSERT_EQ(lmp->atom->natoms, nlocal); @@ -930,24 +922,6 @@ TEST(PairStyle, intel) GTEST_SKIP(); } - if ((test_config.pair_style == "rebo") - || utils::strmatch(test_config.pair_style, "^dpd") - || utils::strmatch(test_config.pair_style, "^tersoff.* shift ")) { - std::cerr << "Skipping pair style " << lmp->force->pair_style << "\n"; - if (!verbose) ::testing::internal::CaptureStdout(); - cleanup_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); - GTEST_SKIP(); - } - - if (lmp->force->kspace && utils::strmatch(lmp->force->kspace_style, "^pppm/disp/intel")) { - if (!verbose) ::testing::internal::CaptureStdout(); - cleanup_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); - std::cerr << "Skipping kspace style pppm/disp/intel\n"; - GTEST_SKIP(); - } - // relax error a bit for USER-INTEL package double epsilon = 7.5 * test_config.epsilon; // relax test precision when using pppm and single precision FFTs From fb57d86364a1d5d5eac1456f9a90ae6e13e8e1fa Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 21:45:36 -0500 Subject: [PATCH 015/104] dpd and dpd/tsat may only run with 1 thread due to use of per-thread pRNG --- unittest/force-styles/test_pair_style.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 79f832c0ef..56dee46ad2 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -606,6 +606,9 @@ TEST(PairStyle, omp) const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite", "-pk", "omp", "4", "-sf", "omp"}; + // cannot run dpd styles with more than 1 thread due to using multiple pRNGs + if (utils::strmatch(test_config.pair_style, "^dpd")) args[8] = "1"; + char **argv = (char **)args; int argc = sizeof(args) / sizeof(char *); @@ -904,6 +907,9 @@ TEST(PairStyle, intel) "-pk", "intel", "0", "mode", "double", "omp", "4", "lrt", "no", "-sf", "intel"}; + // cannot use more than 1 thread for dpd styles due to pRNG + if (utils::strmatch(test_config.pair_style, "^dpd")) args[12] = "1"; + char **argv = (char **)args; int argc = sizeof(args) / sizeof(char *); From e02ad44b8bf49e661e8a27130ec3a3ddc9b34c95 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 22:04:55 -0500 Subject: [PATCH 016/104] GPU package does not support tabulated long-range coulomb --- unittest/force-styles/test_pair_style.cpp | 8 ----- .../tests/mol-pair-born_coul_msm_table.yaml | 33 ++++++++++--------- .../tests/mol-pair-buck_coul_msm_table.yaml | 1 + .../tests/mol-pair-buck_coul_table.yaml | 1 + .../tests/mol-pair-buck_table_coul_table.yaml | 1 + .../tests/mol-pair-coul_msm_table.yaml | 1 + .../tests/mol-pair-coul_table.yaml | 1 + .../mol-pair-lj_charmm_coul_msm_table.yaml | 1 + .../tests/mol-pair-lj_charmm_coul_table.yaml | 1 + .../mol-pair-lj_charmmfsw_coul_table.yaml | 1 + .../tests/mol-pair-lj_class2_coul_table.yaml | 1 + .../tests/mol-pair-lj_cut_coul_msm.yaml | 1 + .../tests/mol-pair-lj_cut_coul_msm_table.yaml | 1 + .../tests/mol-pair-lj_cut_coul_table.yaml | 1 + .../tests/mol-pair-lj_expand_coul_table.yaml | 1 + .../tests/mol-pair-lj_sdk_coul_msm_table.yaml | 1 + .../tests/mol-pair-lj_sdk_coul_table.yaml | 1 + .../tests/mol-pair-lj_table_coul_table.yaml | 1 + .../tests/mol-pair-nm_cut_coul_table.yaml | 1 + 19 files changed, 34 insertions(+), 24 deletions(-) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 56dee46ad2..38a1e015a6 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -816,14 +816,6 @@ TEST(PairStyle, gpu) const int nlocal = lmp->atom->nlocal; ASSERT_EQ(lmp->atom->natoms, nlocal); - // skip over tests using tabulated coulomb - if ((lmp->force->pair->ncoultablebits > 0) || (lmp->force->pair->ndisptablebits > 0)) { - if (!verbose) ::testing::internal::CaptureStdout(); - cleanup_lammps(lmp, test_config); - if (!verbose) ::testing::internal::GetCapturedStdout(); - GTEST_SKIP(); - } - // relax error a bit for GPU package double epsilon = 7.5 * test_config.epsilon; // relax test precision when using pppm and single precision FFTs diff --git a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml index ee9f18f27c..ecbcdea3ee 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:39 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair born/coul/msm @@ -15,22 +16,22 @@ post_commands: ! | kspace_modify pressure/scalar no # required for USER-OMP with msm input_file: in.fourmol pair_style: born/coul/msm 12.0 -pair_coeff: ! "1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 - 141.547923828784 \n1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 - 4.09225030876458 \n1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 - 403.51858739517 \n1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 - 303.336540547726 \n1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 - 303.336540547726 \n2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 - 0.177172207445923 \n2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 - 17.5662073921955 \n2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 - 0.000703093129207124 \n2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 - 12.548008396489 \n3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 - 1019.38354056979 \n3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 - 778.254162800904 \n3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 - 778.254162800904 \n4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 - 592.979935420722 \n4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 - 592.979935420722 \n5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 - 592.979935420722 \n" +pair_coeff: ! | + 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 + 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 + 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 + 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 + 2 3 2.12127488295383 0.124576922646243 1.46526793359105 5.10367785279284 17.5662073921955 + 2 4 0.523836115049206 0.140093804714855 0.262040872137659 0.00432916334694855 0.000703093129207124 + 2 5 2.36887234111228 0.121604450909563 1.39946581861656 3.82529730669145 12.548008396489 + 3 3 2.81831917530019 0.189944649028137 2.31041576143228 127.684271782117 1019.38354056979 + 3 4 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 3 5 2.5316180773506 0.186976803503293 2.26748506873271 100.602835334624 778.254162800904 + 4 4 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 4 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 + 5 5 2.63841820292211 0.184008285863681 2.19742633928911 79.1465822481912 592.979935420722 extract: ! | cut_coul 0 natoms: 29 diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml index 52536b14d4..06e7a38c18 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_msm_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:40 2021 epsilon: 2e-13 +skip_tests: gpu prerequisites: ! | atom full pair buck/coul/msm diff --git a/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml b/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml index ecdbc8478c..1875a657f4 100644 --- a/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:40 2021 epsilon: 5e-12 +skip_tests: gpu prerequisites: ! | atom full pair buck/coul/long diff --git a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml index 643786eb0d..49ddaab6d9 100644 --- a/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-buck_table_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:41 2021 epsilon: 8e-07 +skip_tests: gpu prerequisites: ! | atom full pair buck/long/coul/long diff --git a/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml index 289a3e0e38..e07fd6e639 100644 --- a/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_msm_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:43 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair coul/msm diff --git a/unittest/force-styles/tests/mol-pair-coul_table.yaml b/unittest/force-styles/tests/mol-pair-coul_table.yaml index 54baba354c..6f1077f19b 100644 --- a/unittest/force-styles/tests/mol-pair-coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:44 2021 epsilon: 7.5e-14 +skip_tests: gpu prerequisites: ! | atom full pair coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml index adf0f0b71b..0755c7e3a6 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_msm_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:46 2021 epsilon: 1e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/charmm/coul/msm diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml index 7d64a7c692..17a06d99f3 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/charmm/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml index 2af3de8273..b0dbfacfd9 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmmfsw_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/charmmfsw/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml index 39a9299b25..9c442b3ac5 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:47 2021 epsilon: 5e-12 +skip_tests: gpu prerequisites: ! | atom full pair lj/class2/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml index 937c115a9a..2bb831e66b 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:48 2021 epsilon: 7e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut/coul/msm diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml index de1ab82c24..ccb0da249f 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_msm_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:49 2021 epsilon: 1e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut/coul/msm diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml index d5eb9d35a1..fe0bd28d96 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:49 2021 epsilon: 5e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml index 27ceae8a05..e5f31de755 100644 --- a/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_expand_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:50 2021 epsilon: 2e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/expand/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml index f9e55e3fea..4f95ee2e34 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_msm_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/sdk/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml index 914cd9077e..09bb65a0cf 100644 --- a/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_sdk_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:52 2021 epsilon: 5e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/sdk/coul/long diff --git a/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml b/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml index d9c02422cb..c02f9a31dd 100644 --- a/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_table_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:53 2021 epsilon: 2.5e-09 +skip_tests: gpu prerequisites: ! | atom full pair lj/long/coul/long diff --git a/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml b/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml index adaa3904a2..1c796c067a 100644 --- a/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml +++ b/unittest/force-styles/tests/mol-pair-nm_cut_coul_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:56 2021 epsilon: 5e-12 +skip_tests: gpu prerequisites: ! | atom full pair nm/cut/coul/long From 6c7de1cbd0924b2d14750ce05c7e351500002ba1 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 22:14:35 -0500 Subject: [PATCH 017/104] no support for pppm on GPU (yet) with nozforce or triclinic cell --- unittest/force-styles/tests/kspace-pppm_nozforce.yaml | 1 + unittest/force-styles/tests/kspace-pppm_tri.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/unittest/force-styles/tests/kspace-pppm_nozforce.yaml b/unittest/force-styles/tests/kspace-pppm_nozforce.yaml index 7442e862e9..32bd592a3c 100644 --- a/unittest/force-styles/tests/kspace-pppm_nozforce.yaml +++ b/unittest/force-styles/tests/kspace-pppm_nozforce.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:32 2021 epsilon: 7.5e-14 +skip_tests: gpu prerequisites: ! | atom full pair coul/long diff --git a/unittest/force-styles/tests/kspace-pppm_tri.yaml b/unittest/force-styles/tests/kspace-pppm_tri.yaml index dbcbe44e52..60099f24ee 100644 --- a/unittest/force-styles/tests/kspace-pppm_tri.yaml +++ b/unittest/force-styles/tests/kspace-pppm_tri.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:34 2021 epsilon: 7.5e-14 +skip_tests: gpu prerequisites: ! | atom full pair coul/long From 7b49b39a935ed521c3a97693723e37d799c30a25 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 22:28:23 -0500 Subject: [PATCH 018/104] fix typo --- unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml index ecbcdea3ee..d7461e8c9e 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_msm_table.yaml @@ -19,7 +19,7 @@ pair_style: born/coul/msm 12.0 pair_coeff: ! | 1 1 2.51937098847838 0.148356076521964 1.82166848001002 29.0375806150613 141.547923828784 1 2 2.87560097202631 0.103769845319212 1.18949647259382 1.7106306969663 4.09225030876458 - 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 + 1 3 2.73333746288062 0.169158133709025 2.06291417638668 63.7180294456725 403.51858739517 1 4 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 1 5 2.51591531388789 0.166186965980131 2.01659390849669 49.622913109061 303.336540547726 2 2 1.0594557710255 0.281261664467988 0.314884389172266 0.271080184997071 0.177172207445923 From 92dd89f9e6ec2d1e668f96788e96b4da777d9456 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 22:41:13 -0500 Subject: [PATCH 019/104] skip a few more tests that crash with the GPU package (/w OpenCL) --- unittest/force-styles/tests/manybody-pair-tersoff.yaml | 1 + unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml | 1 + unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml | 1 + unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml | 1 + unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml | 1 + 5 files changed, 5 insertions(+) diff --git a/unittest/force-styles/tests/manybody-pair-tersoff.yaml b/unittest/force-styles/tests/manybody-pair-tersoff.yaml index 366810b84e..7626e4e5de 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-13 +skip_tests: gpu prerequisites: ! | pair tersoff pre_commands: ! | diff --git a/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml b/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml index a503b6e912..a8d668ac3b 100644 --- a/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml +++ b/unittest/force-styles/tests/manybody-pair-tersoff_zbl.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:09:20 2021 epsilon: 5e-11 +skip_tests: gpu prerequisites: ! | pair tersoff/zbl pre_commands: ! | diff --git a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml index 452a1b58d6..db8265a6b2 100644 --- a/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_charmm_coul_charmm.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:45 2021 epsilon: 7e-14 +skip_tests: gpu prerequisites: ! | atom full pair lj/charmm/coul/charmm diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml index d1bed9430b..2e76bdcb57 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_long.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:49 2021 epsilon: 1e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut/tip4p/long diff --git a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml index 77a7f00ad8..f8c3e70c6f 100644 --- a/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_cut_tip4p_table.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:50 2021 epsilon: 5e-13 +skip_tests: gpu prerequisites: ! | atom full pair lj/cut/tip4p/long From cf5614e7d755df64c9585e9d6d845212e4d4de49 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 1 Mar 2021 22:44:24 -0500 Subject: [PATCH 020/104] change precision handling so we can on the GPU also run with mixed and single precision --- unittest/force-styles/test_pair_style.cpp | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/unittest/force-styles/test_pair_style.cpp b/unittest/force-styles/test_pair_style.cpp index 38a1e015a6..274f8f251f 100644 --- a/unittest/force-styles/test_pair_style.cpp +++ b/unittest/force-styles/test_pair_style.cpp @@ -816,11 +816,16 @@ TEST(PairStyle, gpu) const int nlocal = lmp->atom->nlocal; ASSERT_EQ(lmp->atom->natoms, nlocal); - // relax error a bit for GPU package - double epsilon = 7.5 * test_config.epsilon; - // relax test precision when using pppm and single precision FFTs + // relax error for GPU package depending on precision setting + double epsilon = test_config.epsilon; + if (Info::has_accelerator_feature("GPU","precision","double")) + epsilon *= 7.5; + else if (Info::has_accelerator_feature("GPU","precision","mixed")) + epsilon *= 5.0e8; + else epsilon *= 1.0e10; + // relax test precision when using pppm and single precision FFTs, but only when also running with double precision #if defined(FFT_SINGLE) - if (lmp->force->kspace && lmp->force->kspace->compute_flag) + if (lmp->force->kspace && lmp->force->kspace->compute_flag && Info::has_accelerator_feature("GPU","precision","double")) if (utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8; #endif const std::vector &f_ref = test_config.init_forces; From 73de926f09fa7c3024fae4d325a4bb9d26ade34c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 27 Feb 2021 15:50:58 -0500 Subject: [PATCH 021/104] safer detection and load of lammps shared library --- python/lammps/core.py | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/python/lammps/core.py b/python/lammps/core.py index e13bf9585b..eaf78dfa0c 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -121,18 +121,16 @@ class lammps(object): lib_ext = ".so" if not self.lib: - try: - if not name: - self.lib = CDLL(join(modpath,"liblammps" + lib_ext),RTLD_GLOBAL) + if name: + libpath = join(modpath,"liblammps_%s" % name + lib_ext) + else: + libpath = join(modpath,"liblammps" + lib_ext) + if not os.path.isfile(libpath): + if name: + libpath = "liblammps_%s" % name + lib_ext else: - self.lib = CDLL(join(modpath,"liblammps_%s" % name + lib_ext), - RTLD_GLOBAL) - except: - if not name: - self.lib = CDLL("liblammps" + lib_ext,RTLD_GLOBAL) - else: - self.lib = CDLL("liblammps_%s" % name + lib_ext,RTLD_GLOBAL) - + libpath = "liblammps" + lib_ext + self.lib = CDLL(libpath,RTLD_GLOBAL) # declare all argument and return types for all library methods here. # exceptions are where the arguments depend on certain conditions and From 7e0d44e0ca471495e5a8dd4bb90040fd14a6aa84 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Tue, 30 Mar 2021 20:51:23 -0600 Subject: [PATCH 022/104] Adding no_attraction flag to granular pair and wall styles --- doc/src/fix_wall_gran.rst | 10 ++++++++-- doc/src/fix_wall_gran_region.rst | 10 +++++++++- doc/src/pair_gran.rst | 15 ++++++++++++++- doc/src/pair_granular.rst | 6 ++++++ src/GRANULAR/fix_wall_gran.cpp | 14 +++++++++++++- src/GRANULAR/fix_wall_gran.h | 1 + src/GRANULAR/pair_gran_hertz_history.cpp | 2 ++ src/GRANULAR/pair_gran_hooke.cpp | 2 ++ src/GRANULAR/pair_gran_hooke_history.cpp | 12 +++++++++++- src/GRANULAR/pair_gran_hooke_history.h | 1 + src/GRANULAR/pair_granular.cpp | 14 +++++++++++++- src/GRANULAR/pair_granular.h | 1 + src/KOKKOS/pair_gran_hooke_history_kokkos.cpp | 1 + 13 files changed, 82 insertions(+), 7 deletions(-) diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index 1eefc4aeae..73fa7e367b 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -45,7 +45,7 @@ Syntax radius = cylinder radius (distance units) * zero or more keyword/value pairs may be appended to args -* keyword = *wiggle* or *shear* or *contacts* +* keyword = *wiggle* or *shear* or *contacts* or *no_attraction* .. parsed-literal:: @@ -58,6 +58,8 @@ Syntax vshear = magnitude of shear velocity (velocity units) *contacts* value = none generate contact information for each particle + *no_attraction* value = none + turn off possibility for attractive interactions Examples @@ -175,8 +177,12 @@ the clockwise direction for *vshear* > 0 or counter-clockwise for *vshear* < 0. In this case, *vshear* is the tangential velocity of the wall at whatever *radius* has been defined. +If a particle is moving away from the wall while in contact, there +is a possibility that the particle could experience an effective attractive +force due to damping. If the *no_attraction* keyword is used, this fix +will zero out the normal component of the force if there is an effective +attractive force. This keyword cannot be used with the JKR or DMT models. -Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" This fix writes the shear friction state of atoms interacting with the diff --git a/doc/src/fix_wall_gran_region.rst b/doc/src/fix_wall_gran_region.rst index 9ed5bb7bcc..356c8427b0 100644 --- a/doc/src/fix_wall_gran_region.rst +++ b/doc/src/fix_wall_gran_region.rst @@ -36,12 +36,14 @@ Syntax * wallstyle = region (see :doc:`fix wall/gran ` for options for other kinds of walls) * region-ID = region whose boundary will act as wall -* keyword = *contacts* +* keyword = *contacts* or *no_attraction* .. parsed-literal:: *contacts* value = none generate contact information for each particle + *no_attraction* value = none + turn off possibility for attractive interactions Examples """""""" @@ -199,6 +201,12 @@ values for the 6 wall/particle coefficients than for particle/particle interactions. E.g. if you wish to model the wall as a different material. +If a particle is moving away from the wall while in contact, there +is a possibility that the particle could experience an effective attractive +force due to damping. If the *no_attraction* keyword is used, this fix +will zero out the normal component of the force if there is an effective +attractive force. This keyword cannot be used with the JKR or DMT models. + Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/pair_gran.rst b/doc/src/pair_gran.rst index d3f87839e8..aa2e42d339 100644 --- a/doc/src/pair_gran.rst +++ b/doc/src/pair_gran.rst @@ -26,7 +26,7 @@ Syntax .. code-block:: LAMMPS - pair_style style Kn Kt gamma_n gamma_t xmu dampflag + pair_style style Kn Kt gamma_n gamma_t xmu dampflag keyword * style = *gran/hooke* or *gran/hooke/history* or *gran/hertz/history* * Kn = elastic constant for normal particle repulsion (force/distance units or pressure units - see discussion below) @@ -36,6 +36,13 @@ Syntax * xmu = static yield criterion (unitless value between 0.0 and 1.0e4) * dampflag = 0 or 1 if tangential damping force is excluded or included +* keyword = *no_attraction* + + .. parsed-literal:: + + *no_attraction* value = none + turn off possibility for attractive interactions + .. note:: Versions of LAMMPS before 9Jan09 had different style names for @@ -208,6 +215,12 @@ potential is used as a sub-style of :doc:`pair_style hybrid `, then pair_coeff command to determine which atoms interact via a granular potential. +If two particles are moving away from each other while in contact, there +is a possibility that the particles could experience an effective attractive +force due to damping. If the *no_attraction* keyword is used, this fix +will zero out the normal component of the force if there is an effective +attractive force. + ---------- .. include:: accel_styles.rst diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index 80663b7d49..cb65a58777 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -657,6 +657,12 @@ then LAMMPS will use that cutoff for the specified atom type combination, and automatically set pairwise cutoffs for the remaining atom types. +If two particles are moving away from each other while in contact, there +is a possibility that the particles could experience an effective attractive +force due to damping. If the *no_attraction* keyword is used, this fix +will zero out the normal component of the force if there is an effective +attractive force. This keyword cannot be used with the JKR or DMT models. + ---------- .. include:: accel_styles.rst diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index d18b72aa65..9c17a323c5 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -347,6 +347,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : wiggle = 0; wshear = 0; peratom_flag = 0; + noattraction_flag = 0; while (iarg < narg) { if (strcmp(arg[iarg],"wiggle") == 0) { @@ -373,6 +374,13 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : size_peratom_cols = 8; peratom_freq = 1; iarg += 1; + } else if (strcmp(arg[iarg],"no_attraction") == 0) { + noattraction_flag = 1; + if(normal_model == JKR) + error->all(FLERR,"Cannot turn off attraction with JRK model"); + if(normal_model == DMT) + error->all(FLERR,"Cannot turn off attraction with DMT model"); + iarg += 1; } else error->all(FLERR,"Illegal fix wall/gran command"); } @@ -761,6 +769,7 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; + if(noattraction_flag and ccel < 0.0) ccel = 0.0; // relative velocities @@ -853,6 +862,7 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; + if(noattraction_flag and ccel < 0.0) ccel = 0.0; // relative velocities @@ -984,7 +994,8 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, if (rwall == 0.0) polyhertz = sqrt((radius-r)*radius); else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); ccel *= polyhertz; - + if(noattraction_flag and ccel < 0.0) ccel = 0.0; + // relative velocities vtr1 = vt1 - (dz*wr2-dy*wr3); @@ -1177,6 +1188,7 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; + if(noattraction_flag and Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects diff --git a/src/GRANULAR/fix_wall_gran.h b/src/GRANULAR/fix_wall_gran.h index a81a4c787c..3963b22a2c 100644 --- a/src/GRANULAR/fix_wall_gran.h +++ b/src/GRANULAR/fix_wall_gran.h @@ -69,6 +69,7 @@ class FixWallGran : public Fix { // for granular model choices int normal_model, damping_model; int tangential_model, roll_model, twist_model; + int noattraction_flag; // history flags int normal_history, tangential_history, roll_history, twist_history; diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index e7193140b9..7da0c6142d 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -181,6 +181,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; + if(noattractionflag and ccel < 0.0) ccel = 0.0; // relative velocities @@ -388,6 +389,7 @@ double PairGranHertzHistory::single(int i, int j, int /*itype*/, int /*jtype*/, ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; + if(noattractionflag and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke.cpp b/src/GRANULAR/pair_gran_hooke.cpp index 3875d12a0f..76946701cb 100644 --- a/src/GRANULAR/pair_gran_hooke.cpp +++ b/src/GRANULAR/pair_gran_hooke.cpp @@ -158,6 +158,7 @@ void PairGranHooke::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; + if(noattractionflag and ccel < 0.0) ccel = 0.0; // relative velocities @@ -299,6 +300,7 @@ double PairGranHooke::single(int i, int j, int /*itype*/, int /*jtype*/, double damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; + if(noattractionflag and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index 4deb828d76..4893be4084 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -237,6 +237,7 @@ void PairGranHookeHistory::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; + if(noattractionflag and ccel < 0.0) ccel = 0.0; // relative velocities @@ -356,7 +357,7 @@ void PairGranHookeHistory::allocate() void PairGranHookeHistory::settings(int narg, char **arg) { - if (narg != 6) error->all(FLERR,"Illegal pair_style command"); + if (narg != 6 and narg != 7) error->all(FLERR,"Illegal pair_style command"); kn = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"NULL") == 0) kt = kn * 2.0/7.0; @@ -369,6 +370,14 @@ void PairGranHookeHistory::settings(int narg, char **arg) xmu = utils::numeric(FLERR,arg[4],false,lmp); dampflag = utils::inumeric(FLERR,arg[5],false,lmp); if (dampflag == 0) gammat = 0.0; + + noattractionflag = 0; + if(narg == 7) { + if(strcmp(arg[6], "no_attraction")) + noattractionflag = 1; + else + error->all(FLERR,"Illegal pair_style command"); + } if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || xmu < 0.0 || xmu > 10000.0 || dampflag < 0 || dampflag > 1) @@ -686,6 +695,7 @@ double PairGranHookeHistory::single(int i, int j, int /*itype*/, int /*jtype*/, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; + if(noattractionflag and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke_history.h b/src/GRANULAR/pair_gran_hooke_history.h index c27ce8a9af..bf40097f9d 100644 --- a/src/GRANULAR/pair_gran_hooke_history.h +++ b/src/GRANULAR/pair_gran_hooke_history.h @@ -49,6 +49,7 @@ class PairGranHookeHistory : public Pair { double dt; int freeze_group_bit; int history; + int noattractionflag; int neighprev; double *onerad_dynamic,*onerad_frozen; diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index cc210138eb..7c1a1f2b29 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -793,6 +793,7 @@ void PairGranular::coeff(int narg, char **arg) roll_model_one = ROLL_NONE; twist_model_one = TWIST_NONE; damping_model_one = VISCOELASTIC; + noattractionflag = 0; int iarg = 2; while (iarg < narg) { @@ -1030,7 +1031,18 @@ void PairGranular::coeff(int narg, char **arg) count++; } } - + + if(noattraction flag) { + for(int i = 1; i <= ntypes; i++) { + for(int j = 1; j <= ntypes; j++) { + if(normal_model[i][j] == JKR) + error->all(FLERR,"Cannot turn off attraction with JKR pairstyle"); + if(normal_model[i][j] == DMT) + error->all(FLERR,"Cannot turn off attraction with DMT pairstyle"); + } + } + } + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); } diff --git a/src/GRANULAR/pair_granular.h b/src/GRANULAR/pair_granular.h index 7ef4f2af98..1e4e8c8fc4 100644 --- a/src/GRANULAR/pair_granular.h +++ b/src/GRANULAR/pair_granular.h @@ -70,6 +70,7 @@ class PairGranular : public Pair { // model choices int **normal_model, **damping_model; int **tangential_model, **roll_model, **twist_model; + int **noattractionflag; // history flags int normal_history, tangential_history, roll_history, twist_history; diff --git a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp index 81c82ab826..caa19ffdef 100644 --- a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp +++ b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp @@ -392,6 +392,7 @@ void PairGranHookeHistoryKokkos::operator()(TagPairGranHookeHistoryC F_FLOAT damp = meff*gamman*vnnr*rsqinv; F_FLOAT ccel = kn*(radsum-r)*rinv - damp; + if(noattractionflag & ccel < 0.0) ccel = 0.0; // relative velocities From 2988aa2d1f6cc3d6a67bc7b03021d898656a30f9 Mon Sep 17 00:00:00 2001 From: Dan Bolintineanu Date: Tue, 30 Mar 2021 21:55:06 -0600 Subject: [PATCH 023/104] Fixes bug where accumulated tangential and rolling displacements are not rotated correctly. Pointed out by Deng Pan on LAMMPS mailing list 3/26/21 --- src/GRANULAR/pair_granular.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index cc210138eb..bcf262aa2c 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -446,9 +446,9 @@ void PairGranular::compute(int eflag, int vflag) if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE || tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE_FORCE) - frameupdate = fabs(rsht) < EPSILON*Fscrit; + frameupdate = fabs(rsht) > EPSILON*Fscrit; else - frameupdate = fabs(rsht)*k_tangential < EPSILON*Fscrit; + frameupdate = fabs(rsht)*k_tangential > EPSILON*Fscrit; if (frameupdate) { shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + history[2]*history[2]); @@ -568,7 +568,7 @@ void PairGranular::compute(int eflag, int vflag) if (historyupdate) { rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; - frameupdate = fabs(rolldotn)*k_roll < EPSILON*Frcrit; + frameupdate = fabs(rolldotn)*k_roll > EPSILON*Frcrit; if (frameupdate) { // rotate into tangential plane rollmag = sqrt(history[rhist0]*history[rhist0] + history[rhist1]*history[rhist1] + From d36894ccf5691ca9ba6e85d264a3cb435526ce44 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Tue, 30 Mar 2021 22:16:47 -0600 Subject: [PATCH 024/104] Adding pertype flag to pair granular --- doc/src/fix_wall_gran.rst | 2 +- doc/src/fix_wall_gran_region.rst | 2 +- doc/src/pair_gran.rst | 2 +- doc/src/pair_granular.rst | 8 ++++++++ src/GRANULAR/pair_granular.cpp | 34 ++++++++++++++++++++------------ 5 files changed, 32 insertions(+), 16 deletions(-) diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index 73fa7e367b..bfe06bf7a0 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -59,7 +59,7 @@ Syntax *contacts* value = none generate contact information for each particle *no_attraction* value = none - turn off possibility for attractive interactions + turn off possibility of attractive interactions Examples diff --git a/doc/src/fix_wall_gran_region.rst b/doc/src/fix_wall_gran_region.rst index 356c8427b0..00eb19ba1c 100644 --- a/doc/src/fix_wall_gran_region.rst +++ b/doc/src/fix_wall_gran_region.rst @@ -43,7 +43,7 @@ Syntax *contacts* value = none generate contact information for each particle *no_attraction* value = none - turn off possibility for attractive interactions + turn off possibility of attractive interactions Examples """""""" diff --git a/doc/src/pair_gran.rst b/doc/src/pair_gran.rst index aa2e42d339..8145f7fb7a 100644 --- a/doc/src/pair_gran.rst +++ b/doc/src/pair_gran.rst @@ -41,7 +41,7 @@ Syntax .. parsed-literal:: *no_attraction* value = none - turn off possibility for attractive interactions + turn off possibility of attractive interactions .. note:: diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index cb65a58777..0076994e25 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -623,6 +623,14 @@ Finally, the twisting torque on each particle is given by: ---------- +If two particles are moving away from each other while in contact, there +is a possibility that the particles could experience an effective attractive +force due to damping. If the optional *no_attraction* keyword is used, this fix +will zero out the normal component of the force if there is an effective +attractive force. This keyword cannot be used with the JKR or DMT models. + +---------- + The *granular* pair style can reproduce the behavior of the *pair gran/\** styles with the appropriate settings (some very minor differences can be expected due to corrections in diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 7c1a1f2b29..256acd5a6a 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -130,6 +130,7 @@ PairGranular::~PairGranular() memory->destroy(tangential_model); memory->destroy(roll_model); memory->destroy(twist_model); + memory->destroy(noattraction_flag); delete [] onerad_dynamic; delete [] onerad_frozen; @@ -370,6 +371,7 @@ void PairGranular::compute(int eflag, int vflag) Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; + if(noattraction_flag[itype][jtype] and Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects @@ -740,6 +742,7 @@ void PairGranular::allocate() memory->create(tangential_model,n+1,n+1,"pair:tangential_model"); memory->create(roll_model,n+1,n+1,"pair:roll_model"); memory->create(twist_model,n+1,n+1,"pair:twist_model"); + memory->create(noattraction_flag,n+1,n+1,"pair:noattraction_flag"); onerad_dynamic = new double[n+1]; onerad_frozen = new double[n+1]; @@ -793,8 +796,8 @@ void PairGranular::coeff(int narg, char **arg) roll_model_one = ROLL_NONE; twist_model_one = TWIST_NONE; damping_model_one = VISCOELASTIC; - noattractionflag = 0; - + int na_flag = 0; + int iarg = 2; while (iarg < narg) { if (strcmp(arg[iarg], "hooke") == 0) { @@ -968,6 +971,9 @@ void PairGranular::coeff(int narg, char **arg) error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); cutoff_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; + } else if (strcmp(arg[iarg], "no_attraction") == 0) { + na_flag = 1; + iarg += 1; } else error->all(FLERR, "Illegal pair coeff command"); } @@ -985,6 +991,12 @@ void PairGranular::coeff(int narg, char **arg) 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6); } else damp = normal_coeffs_one[1]; + if(na_flag and normal_model_one == JKR) + error->all(FLERR,"Cannot turn off attraction with JKR pairstyle"); + + if(na_flag and normal_model_one == DMT) + error->all(FLERR,"Cannot turn off attraction with DMT pairstyle"); + for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { normal_model[i][j] = normal_model[j][i] = normal_model_one; @@ -1027,21 +1039,13 @@ void PairGranular::coeff(int narg, char **arg) cutoff_type[i][j] = cutoff_type[j][i] = cutoff_one; + noattraction_flag[i][j] = na_flag; + setflag[i][j] = 1; count++; } } - - if(noattraction flag) { - for(int i = 1; i <= ntypes; i++) { - for(int j = 1; j <= ntypes; j++) { - if(normal_model[i][j] == JKR) - error->all(FLERR,"Cannot turn off attraction with JKR pairstyle"); - if(normal_model[i][j] == DMT) - error->all(FLERR,"Cannot turn off attraction with DMT pairstyle"); - } - } - } + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); } @@ -1315,6 +1319,7 @@ void PairGranular::write_restart(FILE *fp) fwrite(&tangential_model[i][j],sizeof(int),1,fp); fwrite(&roll_model[i][j],sizeof(int),1,fp); fwrite(&twist_model[i][j],sizeof(int),1,fp); + fwrite(&noattraction_flag[i][j],sizeof(int),1,fp); fwrite(normal_coeffs[i][j],sizeof(double),4,fp); fwrite(tangential_coeffs[i][j],sizeof(double),3,fp); fwrite(roll_coeffs[i][j],sizeof(double),3,fp); @@ -1345,6 +1350,7 @@ void PairGranular::read_restart(FILE *fp) utils::sfread(FLERR,&tangential_model[i][j],sizeof(int),1,fp,nullptr,error); utils::sfread(FLERR,&roll_model[i][j],sizeof(int),1,fp,nullptr,error); utils::sfread(FLERR,&twist_model[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&noattraction_flag[i][j],sizeof(int),1,fp,nullptr,error); utils::sfread(FLERR,normal_coeffs[i][j],sizeof(double),4,fp,nullptr,error); utils::sfread(FLERR,tangential_coeffs[i][j],sizeof(double),3,fp,nullptr,error); utils::sfread(FLERR,roll_coeffs[i][j],sizeof(double),3,fp,nullptr,error); @@ -1356,6 +1362,7 @@ void PairGranular::read_restart(FILE *fp) MPI_Bcast(&tangential_model[i][j],1,MPI_INT,0,world); MPI_Bcast(&roll_model[i][j],1,MPI_INT,0,world); MPI_Bcast(&twist_model[i][j],1,MPI_INT,0,world); + MPI_Bcast(&noattraction_flag[i][j],1,MPI_INT,0,world); MPI_Bcast(normal_coeffs[i][j],4,MPI_DOUBLE,0,world); MPI_Bcast(tangential_coeffs[i][j],3,MPI_DOUBLE,0,world); MPI_Bcast(roll_coeffs[i][j],3,MPI_DOUBLE,0,world); @@ -1541,6 +1548,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; + if(noattraction_flag[itype][jtype] and Fntot < 0.0) Fntot = 0.0; jnum = list->numneigh[i]; jlist = list->firstneigh[i]; From 8b2676a103c8fc220fe404c547d1e40ea3d78d5f Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Wed, 31 Mar 2021 16:57:13 -0600 Subject: [PATCH 025/104] Moving arguments in gran wall, renaming toarg limit_damping --- src/GRANULAR/fix_wall_gran.cpp | 31 ++++++++++++------- src/GRANULAR/fix_wall_gran.h | 2 +- src/GRANULAR/pair_gran_hertz_history.cpp | 4 +-- src/GRANULAR/pair_gran_hooke.cpp | 4 +-- src/GRANULAR/pair_gran_hooke_history.cpp | 10 +++--- src/GRANULAR/pair_gran_hooke_history.h | 2 +- src/GRANULAR/pair_granular.cpp | 30 +++++++++--------- src/GRANULAR/pair_granular.h | 2 +- src/KOKKOS/pair_gran_hooke_history_kokkos.cpp | 2 +- 9 files changed, 47 insertions(+), 40 deletions(-) diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index 9c17a323c5..c9d00ccdd3 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -116,6 +116,12 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : kt /= force->nktv2p; } iarg = 10; + + if (strcmp(arg[iarg],"limit_damping") == 0) { + limit_damping = 1; + iarg += 1; + } + } else { iarg = 4; damping_model = VISCOELASTIC; @@ -292,6 +298,9 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : strcmp(arg[iarg], "zcylinder") == 0 || strcmp(arg[iarg], "region") == 0) { break; + } else if (strcmp(arg[iarg],"limit_damping") == 0) { + limit_damping = 1; + iarg += 1; } else { error->all(FLERR, "Illegal fix wall/gran command"); } @@ -301,6 +310,11 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) size_history += 1; } + if(normal_model == JKR) + error->all(FLERR,"Cannot limit damping with JRK model"); + if(normal_model == DMT) + error->all(FLERR,"Cannot limit damping with DMT model"); + // wallstyle args idregion = nullptr; @@ -347,7 +361,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : wiggle = 0; wshear = 0; peratom_flag = 0; - noattraction_flag = 0; + limit_damping = 0; while (iarg < narg) { if (strcmp(arg[iarg],"wiggle") == 0) { @@ -374,13 +388,6 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : size_peratom_cols = 8; peratom_freq = 1; iarg += 1; - } else if (strcmp(arg[iarg],"no_attraction") == 0) { - noattraction_flag = 1; - if(normal_model == JKR) - error->all(FLERR,"Cannot turn off attraction with JRK model"); - if(normal_model == DMT) - error->all(FLERR,"Cannot turn off attraction with DMT model"); - iarg += 1; } else error->all(FLERR,"Illegal fix wall/gran command"); } @@ -769,7 +776,7 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if(noattraction_flag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -862,7 +869,7 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if(noattraction_flag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -994,7 +1001,7 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, if (rwall == 0.0) polyhertz = sqrt((radius-r)*radius); else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); ccel *= polyhertz; - if(noattraction_flag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -1188,7 +1195,7 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if(noattraction_flag and Fntot < 0.0) Fntot = 0.0; + if(limit_damping and Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects diff --git a/src/GRANULAR/fix_wall_gran.h b/src/GRANULAR/fix_wall_gran.h index 3963b22a2c..473f26cca4 100644 --- a/src/GRANULAR/fix_wall_gran.h +++ b/src/GRANULAR/fix_wall_gran.h @@ -69,7 +69,7 @@ class FixWallGran : public Fix { // for granular model choices int normal_model, damping_model; int tangential_model, roll_model, twist_model; - int noattraction_flag; + int limit_damping; // history flags int normal_history, tangential_history, roll_history, twist_history; diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index 7da0c6142d..40c6c3a41d 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -181,7 +181,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if(noattractionflag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -389,7 +389,7 @@ double PairGranHertzHistory::single(int i, int j, int /*itype*/, int /*jtype*/, ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if(noattractionflag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke.cpp b/src/GRANULAR/pair_gran_hooke.cpp index 76946701cb..0e3ffc7293 100644 --- a/src/GRANULAR/pair_gran_hooke.cpp +++ b/src/GRANULAR/pair_gran_hooke.cpp @@ -158,7 +158,7 @@ void PairGranHooke::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(noattractionflag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -300,7 +300,7 @@ double PairGranHooke::single(int i, int j, int /*itype*/, int /*jtype*/, double damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(noattractionflag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index 4893be4084..d3c1cf7672 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -237,7 +237,7 @@ void PairGranHookeHistory::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(noattractionflag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -371,10 +371,10 @@ void PairGranHookeHistory::settings(int narg, char **arg) dampflag = utils::inumeric(FLERR,arg[5],false,lmp); if (dampflag == 0) gammat = 0.0; - noattractionflag = 0; + limit_damping = 0; if(narg == 7) { - if(strcmp(arg[6], "no_attraction")) - noattractionflag = 1; + if(strcmp(arg[6], "limit_damping")) + limit_damping = 1; else error->all(FLERR,"Illegal pair_style command"); } @@ -695,7 +695,7 @@ double PairGranHookeHistory::single(int i, int j, int /*itype*/, int /*jtype*/, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(noattractionflag and ccel < 0.0) ccel = 0.0; + if(limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke_history.h b/src/GRANULAR/pair_gran_hooke_history.h index bf40097f9d..f511d30237 100644 --- a/src/GRANULAR/pair_gran_hooke_history.h +++ b/src/GRANULAR/pair_gran_hooke_history.h @@ -49,7 +49,7 @@ class PairGranHookeHistory : public Pair { double dt; int freeze_group_bit; int history; - int noattractionflag; + int limit_damping; int neighprev; double *onerad_dynamic,*onerad_frozen; diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 256acd5a6a..dd22f03fa8 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -130,7 +130,7 @@ PairGranular::~PairGranular() memory->destroy(tangential_model); memory->destroy(roll_model); memory->destroy(twist_model); - memory->destroy(noattraction_flag); + memory->destroy(limit_damping); delete [] onerad_dynamic; delete [] onerad_frozen; @@ -371,7 +371,7 @@ void PairGranular::compute(int eflag, int vflag) Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if(noattraction_flag[itype][jtype] and Fntot < 0.0) Fntot = 0.0; + if(limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects @@ -742,7 +742,7 @@ void PairGranular::allocate() memory->create(tangential_model,n+1,n+1,"pair:tangential_model"); memory->create(roll_model,n+1,n+1,"pair:roll_model"); memory->create(twist_model,n+1,n+1,"pair:twist_model"); - memory->create(noattraction_flag,n+1,n+1,"pair:noattraction_flag"); + memory->create(limit_damping,n+1,n+1,"pair:limit_damping"); onerad_dynamic = new double[n+1]; onerad_frozen = new double[n+1]; @@ -796,7 +796,7 @@ void PairGranular::coeff(int narg, char **arg) roll_model_one = ROLL_NONE; twist_model_one = TWIST_NONE; damping_model_one = VISCOELASTIC; - int na_flag = 0; + int ld_flag = 0; int iarg = 2; while (iarg < narg) { @@ -971,8 +971,8 @@ void PairGranular::coeff(int narg, char **arg) error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); cutoff_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; - } else if (strcmp(arg[iarg], "no_attraction") == 0) { - na_flag = 1; + } else if (strcmp(arg[iarg], "limit_damping") == 0) { + ld_flag = 1; iarg += 1; } else error->all(FLERR, "Illegal pair coeff command"); } @@ -991,11 +991,11 @@ void PairGranular::coeff(int narg, char **arg) 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6); } else damp = normal_coeffs_one[1]; - if(na_flag and normal_model_one == JKR) - error->all(FLERR,"Cannot turn off attraction with JKR pairstyle"); + if(ld_flag and normal_model_one == JKR) + error->all(FLERR,"Cannot limit damping with JKR model"); - if(na_flag and normal_model_one == DMT) - error->all(FLERR,"Cannot turn off attraction with DMT pairstyle"); + if(ld_flag and normal_model_one == DMT) + error->all(FLERR,"Cannot limit damping with DMT model"); for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { @@ -1039,7 +1039,7 @@ void PairGranular::coeff(int narg, char **arg) cutoff_type[i][j] = cutoff_type[j][i] = cutoff_one; - noattraction_flag[i][j] = na_flag; + limit_damping[i][j] = ld_flag; setflag[i][j] = 1; count++; @@ -1319,7 +1319,7 @@ void PairGranular::write_restart(FILE *fp) fwrite(&tangential_model[i][j],sizeof(int),1,fp); fwrite(&roll_model[i][j],sizeof(int),1,fp); fwrite(&twist_model[i][j],sizeof(int),1,fp); - fwrite(&noattraction_flag[i][j],sizeof(int),1,fp); + fwrite(&limit_damping[i][j],sizeof(int),1,fp); fwrite(normal_coeffs[i][j],sizeof(double),4,fp); fwrite(tangential_coeffs[i][j],sizeof(double),3,fp); fwrite(roll_coeffs[i][j],sizeof(double),3,fp); @@ -1350,7 +1350,7 @@ void PairGranular::read_restart(FILE *fp) utils::sfread(FLERR,&tangential_model[i][j],sizeof(int),1,fp,nullptr,error); utils::sfread(FLERR,&roll_model[i][j],sizeof(int),1,fp,nullptr,error); utils::sfread(FLERR,&twist_model[i][j],sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&noattraction_flag[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&limit_damping[i][j],sizeof(int),1,fp,nullptr,error); utils::sfread(FLERR,normal_coeffs[i][j],sizeof(double),4,fp,nullptr,error); utils::sfread(FLERR,tangential_coeffs[i][j],sizeof(double),3,fp,nullptr,error); utils::sfread(FLERR,roll_coeffs[i][j],sizeof(double),3,fp,nullptr,error); @@ -1362,7 +1362,7 @@ void PairGranular::read_restart(FILE *fp) MPI_Bcast(&tangential_model[i][j],1,MPI_INT,0,world); MPI_Bcast(&roll_model[i][j],1,MPI_INT,0,world); MPI_Bcast(&twist_model[i][j],1,MPI_INT,0,world); - MPI_Bcast(&noattraction_flag[i][j],1,MPI_INT,0,world); + MPI_Bcast(&limit_damping[i][j],1,MPI_INT,0,world); MPI_Bcast(normal_coeffs[i][j],4,MPI_DOUBLE,0,world); MPI_Bcast(tangential_coeffs[i][j],3,MPI_DOUBLE,0,world); MPI_Bcast(roll_coeffs[i][j],3,MPI_DOUBLE,0,world); @@ -1548,7 +1548,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if(noattraction_flag[itype][jtype] and Fntot < 0.0) Fntot = 0.0; + if(limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; jnum = list->numneigh[i]; jlist = list->firstneigh[i]; diff --git a/src/GRANULAR/pair_granular.h b/src/GRANULAR/pair_granular.h index 1e4e8c8fc4..49eb457f0d 100644 --- a/src/GRANULAR/pair_granular.h +++ b/src/GRANULAR/pair_granular.h @@ -70,7 +70,7 @@ class PairGranular : public Pair { // model choices int **normal_model, **damping_model; int **tangential_model, **roll_model, **twist_model; - int **noattractionflag; + int **limit_damping; // history flags int normal_history, tangential_history, roll_history, twist_history; diff --git a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp index caa19ffdef..8d853b7dae 100644 --- a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp +++ b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp @@ -392,7 +392,7 @@ void PairGranHookeHistoryKokkos::operator()(TagPairGranHookeHistoryC F_FLOAT damp = meff*gamman*vnnr*rsqinv; F_FLOAT ccel = kn*(radsum-r)*rinv - damp; - if(noattractionflag & ccel < 0.0) ccel = 0.0; + if(limit_damping & ccel < 0.0) ccel = 0.0; // relative velocities From 8b37f3c04448bc3d3ed7a9f416cde67e8ad8e802 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Wed, 31 Mar 2021 17:25:41 -0600 Subject: [PATCH 026/104] Fixing incorrect arg for pair gran --- doc/src/fix_wall_gran.rst | 14 ++++---------- doc/src/fix_wall_gran_region.rst | 9 ++------- doc/src/pair_gran.rst | 6 +++--- doc/src/pair_granular.rst | 2 +- src/GRANULAR/pair_gran_hooke_history.cpp | 6 ++---- 5 files changed, 12 insertions(+), 25 deletions(-) diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index bfe06bf7a0..02d52ef1a6 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -29,6 +29,7 @@ Syntax gamma_t = damping coefficient for collisions in tangential direction (1/time units or 1/time-distance units - see discussion below) xmu = static yield criterion (unitless value between 0.0 and 1.0e4) dampflag = 0 or 1 if tangential damping force is excluded or included + optional keyword = *limit_damping*, limit damping to prevent attractive interaction .. parsed-literal:: @@ -45,7 +46,7 @@ Syntax radius = cylinder radius (distance units) * zero or more keyword/value pairs may be appended to args -* keyword = *wiggle* or *shear* or *contacts* or *no_attraction* +* keyword = *wiggle* or *shear* or *contacts* .. parsed-literal:: @@ -58,8 +59,6 @@ Syntax vshear = magnitude of shear velocity (velocity units) *contacts* value = none generate contact information for each particle - *no_attraction* value = none - turn off possibility of attractive interactions Examples @@ -97,7 +96,8 @@ Specifically, delta = radius - r = overlap of particle with wall, m_eff = mass of particle, and the effective radius of contact = RiRj/Ri+Rj is set to the radius of the particle. -The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu* and *dampflag* +The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu*, *dampflag*, +and the optional keyword *limit_damping* have the same meaning and units as those specified with the :doc:`pair_style gran/\* ` commands. This means a NULL can be used for either *Kt* or *gamma_t* as described on that page. If a @@ -177,12 +177,6 @@ the clockwise direction for *vshear* > 0 or counter-clockwise for *vshear* < 0. In this case, *vshear* is the tangential velocity of the wall at whatever *radius* has been defined. -If a particle is moving away from the wall while in contact, there -is a possibility that the particle could experience an effective attractive -force due to damping. If the *no_attraction* keyword is used, this fix -will zero out the normal component of the force if there is an effective -attractive force. This keyword cannot be used with the JKR or DMT models. - """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" This fix writes the shear friction state of atoms interacting with the diff --git a/doc/src/fix_wall_gran_region.rst b/doc/src/fix_wall_gran_region.rst index 00eb19ba1c..b7a9ff6bd7 100644 --- a/doc/src/fix_wall_gran_region.rst +++ b/doc/src/fix_wall_gran_region.rst @@ -183,7 +183,8 @@ radius - r = overlap of particle with wall, m_eff = mass of particle, and the effective radius of contact is just the radius of the particle. -The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu* and *dampflag* +The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu*, *dampflag*, +and the optional keyword *limit_damping* have the same meaning and units as those specified with the :doc:`pair_style gran/\* ` commands. This means a NULL can be used for either *Kt* or *gamma_t* as described on that page. If a @@ -201,12 +202,6 @@ values for the 6 wall/particle coefficients than for particle/particle interactions. E.g. if you wish to model the wall as a different material. -If a particle is moving away from the wall while in contact, there -is a possibility that the particle could experience an effective attractive -force due to damping. If the *no_attraction* keyword is used, this fix -will zero out the normal component of the force if there is an effective -attractive force. This keyword cannot be used with the JKR or DMT models. - Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" diff --git a/doc/src/pair_gran.rst b/doc/src/pair_gran.rst index 8145f7fb7a..b918e38da6 100644 --- a/doc/src/pair_gran.rst +++ b/doc/src/pair_gran.rst @@ -40,8 +40,8 @@ Syntax .. parsed-literal:: - *no_attraction* value = none - turn off possibility of attractive interactions + *limit_damping* value = none + limit damping to prevent attractive interaction .. note:: @@ -217,7 +217,7 @@ potential. If two particles are moving away from each other while in contact, there is a possibility that the particles could experience an effective attractive -force due to damping. If the *no_attraction* keyword is used, this fix +force due to damping. If the *limit_damping* keyword is used, this fix will zero out the normal component of the force if there is an effective attractive force. diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index 0076994e25..04c9d45afd 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -625,7 +625,7 @@ Finally, the twisting torque on each particle is given by: If two particles are moving away from each other while in contact, there is a possibility that the particles could experience an effective attractive -force due to damping. If the optional *no_attraction* keyword is used, this fix +force due to damping. If the optional *limit_damping* keyword is used, this fix will zero out the normal component of the force if there is an effective attractive force. This keyword cannot be used with the JKR or DMT models. diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index d3c1cf7672..a86af2116e 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -373,10 +373,8 @@ void PairGranHookeHistory::settings(int narg, char **arg) limit_damping = 0; if(narg == 7) { - if(strcmp(arg[6], "limit_damping")) - limit_damping = 1; - else - error->all(FLERR,"Illegal pair_style command"); + if(strcmp(arg[6], "limit_damping") == 0) limit_damping = 1; + else error->all(FLERR,"Illegal pair_style command"); } if (kn < 0.0 || kt < 0.0 || gamman < 0.0 || gammat < 0.0 || From 4c2fb7a4312501d59ab530a09a5c5054272d53bf Mon Sep 17 00:00:00 2001 From: Nick Curtis Date: Thu, 1 Apr 2021 09:43:13 -0500 Subject: [PATCH 027/104] Porting to new default platform for AMD/HIP in ROCm 4.1 --- cmake/Modules/Packages/GPU.cmake | 12 +++++++++--- doc/src/Build_extras.rst | 13 ++++++++++--- lib/gpu/Makefile.hip | 6 +++++- lib/gpu/README | 5 ++--- lib/gpu/lal_pre_cuda_hip.h | 8 ++++---- 5 files changed, 30 insertions(+), 14 deletions(-) diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 9aa917144b..68d74ea42e 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -218,7 +218,7 @@ elseif(GPU_API STREQUAL "HIP") if(NOT DEFINED HIP_PLATFORM) if(NOT DEFINED ENV{HIP_PLATFORM}) - set(HIP_PLATFORM "hcc" CACHE PATH "HIP Platform to be used during compilation") + set(HIP_PLATFORM "amd" CACHE PATH "HIP Platform to be used during compilation") else() set(HIP_PLATFORM $ENV{HIP_PLATFORM} CACHE PATH "HIP Platform used during compilation") endif() @@ -226,7 +226,7 @@ elseif(GPU_API STREQUAL "HIP") set(ENV{HIP_PLATFORM} ${HIP_PLATFORM}) - if(HIP_PLATFORM STREQUAL "hcc") + if(HIP_PLATFORM STREQUAL "hcc" OR HIP_PLATFORM STREQUAL "amd") set(HIP_ARCH "gfx906" CACHE STRING "HIP target architecture") elseif(HIP_PLATFORM STREQUAL "nvcc") find_package(CUDA REQUIRED) @@ -284,7 +284,7 @@ elseif(GPU_API STREQUAL "HIP") set(CUBIN_FILE "${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}.cubin") set(CUBIN_H_FILE "${LAMMPS_LIB_BINARY_DIR}/gpu/${CU_NAME}_cubin.h") - if(HIP_PLATFORM STREQUAL "hcc") + if(HIP_PLATFORM STREQUAL "hcc" OR HIP_PLATFORM STREQUAL "amd") configure_file(${CU_FILE} ${CU_CPP_FILE} COPYONLY) if(HIP_COMPILER STREQUAL "clang") @@ -381,6 +381,12 @@ elseif(GPU_API STREQUAL "HIP") target_compile_definitions(hip_get_devices PRIVATE -D__HIP_PLATFORM_HCC__) target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/../include) + elseif(HIP_PLATFORM STREQUAL "amd") + target_compile_definitions(gpu PRIVATE -D__HIP_PLATFORM_AMD__) + target_include_directories(gpu PRIVATE ${HIP_ROOT_DIR}/../include) + + target_compile_definitions(hip_get_devices PRIVATE -D__HIP_PLATFORM_AMD__) + target_include_directories(hip_get_devices PRIVATE ${HIP_ROOT_DIR}/../include) endif() target_link_libraries(lammps PRIVATE gpu) diff --git a/doc/src/Build_extras.rst b/doc/src/Build_extras.rst index 2081dc4bcd..3af018c656 100644 --- a/doc/src/Build_extras.rst +++ b/doc/src/Build_extras.rst @@ -125,7 +125,7 @@ CMake build # default is sm_50 -D HIP_ARCH=value # primary GPU hardware choice for GPU_API=hip # value depends on selected HIP_PLATFORM - # default is 'gfx906' for HIP_PLATFORM=hcc and 'sm_50' for HIP_PLATFORM=nvcc + # default is 'gfx906' for HIP_PLATFORM=amd and 'sm_50' for HIP_PLATFORM=nvcc -D HIP_USE_DEVICE_SORT=value # enables GPU sorting # value = yes (default) or no -D CUDPP_OPT=value # use GPU binning on with CUDA (should be off for modern GPUs) @@ -169,17 +169,24 @@ desired, you can set :code:`USE_STATIC_OPENCL_LOADER` to :code:`no`. If you are compiling with HIP, note that before running CMake you will have to set appropriate environment variables. Some variables such as -:code:`HCC_AMDGPU_TARGET` or :code:`CUDA_PATH` are necessary for :code:`hipcc` +:code:`HCC_AMDGPU_TARGET` (for ROCm <= 4.0) or :code:`CUDA_PATH` are necessary for :code:`hipcc` and the linker to work correctly. .. code:: bash - # AMDGPU target + # AMDGPU target (ROCm <= 4.0) export HIP_PLATFORM=hcc export HCC_AMDGPU_TARGET=gfx906 cmake -D PKG_GPU=on -D GPU_API=HIP -D HIP_ARCH=gfx906 -D CMAKE_CXX_COMPILER=hipcc .. make -j 4 +.. code:: bash + + # AMDGPU target (ROCm >= 4.1) + export HIP_PLATFORM=amd + cmake -D PKG_GPU=on -D GPU_API=HIP -D HIP_ARCH=gfx906 -D CMAKE_CXX_COMPILER=hipcc .. + make -j 4 + .. code:: bash # CUDA target (not recommended, use GPU_ARCH=cuda) diff --git a/lib/gpu/Makefile.hip b/lib/gpu/Makefile.hip index dbdef433ec..a736988596 100644 --- a/lib/gpu/Makefile.hip +++ b/lib/gpu/Makefile.hip @@ -1,6 +1,6 @@ # /* ---------------------------------------------------------------------- # Generic Linux Makefile for HIP -# - export HIP_PLATFORM=hcc (or nvcc) before execution +# - export HIP_PLATFORM=amd (or nvcc) before execution # - change HIP_ARCH for your GPU # ------------------------------------------------------------------------- */ @@ -42,6 +42,10 @@ ifeq (hcc,$(HIP_PLATFORM)) HIP_OPTS += -ffast-math # possible values: gfx803,gfx900,gfx906 HIP_ARCH = gfx906 +else ifeq (amd,$(HIP_PLATFORM)) + HIP_OPTS += -ffast-math + # possible values: gfx803,gfx900,gfx906 + HIP_ARCH = gfx906 else ifeq (nvcc,$(HIP_PLATFORM)) HIP_OPTS += --use_fast_math HIP_ARCH = -gencode arch=compute_30,code=[sm_30,compute_30] -gencode arch=compute_32,code=[sm_32,compute_32] -gencode arch=compute_35,code=[sm_35,compute_35] \ diff --git a/lib/gpu/README b/lib/gpu/README index dfffe11b81..eb22839a59 100644 --- a/lib/gpu/README +++ b/lib/gpu/README @@ -212,8 +212,8 @@ additionally requires cub (https://nvlabs.github.io/cub). Download and extract the cub directory to lammps/lib/gpu/ or specify an appropriate path in lammps/lib/gpu/Makefile.hip. 2. In Makefile.hip it is possible to specify the target platform via -export HIP_PLATFORM=hcc or HIP_PLATFORM=nvcc as well as the target -architecture (gfx803, gfx900, gfx906 etc.) +export HIP_PLATFORM=amd (ROCm >= 4.1), HIP_PLATFORM=hcc (ROCm <= 4.0) +or HIP_PLATFORM=nvcc as well as the target architecture (gfx803, gfx900, gfx906 etc.) 3. If your MPI implementation does not support `mpicxx --showme` command, it is required to specify the corresponding MPI compiler and linker flags in lammps/lib/gpu/Makefile.hip and in lammps/src/MAKE/OPTIONS/Makefile.hip. @@ -278,4 +278,3 @@ and Brown, W.M., Masako, Y. Implementing Molecular Dynamics on Hybrid High Performance Computers - Three-Body Potentials. Computer Physics Communications. 2013. 184: p. 2785–2793. - diff --git a/lib/gpu/lal_pre_cuda_hip.h b/lib/gpu/lal_pre_cuda_hip.h index d37b4a94c2..dfb6229bed 100644 --- a/lib/gpu/lal_pre_cuda_hip.h +++ b/lib/gpu/lal_pre_cuda_hip.h @@ -30,7 +30,7 @@ // ------------------------------------------------------------------------- -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__) #define CONFIG_ID 303 #define SIMD_SIZE 64 #else @@ -161,7 +161,7 @@ // KERNEL MACROS - TEXTURES // ------------------------------------------------------------------------- -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__) #define _texture(name, type) __device__ type* name #define _texture_2d(name, type) __device__ type* name #else @@ -201,7 +201,7 @@ #define mu_tex mu_ #endif -#ifdef __HIP_PLATFORM_HCC__ +#if defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__) #undef fetch4 #undef fetch @@ -266,7 +266,7 @@ typedef struct _double4 double4; #endif #endif -#if defined(CUDA_PRE_NINE) || defined(__HIP_PLATFORM_HCC__) +#if defined(CUDA_PRE_NINE) || defined(__HIP_PLATFORM_HCC__) || defined(__HIP_PLATFORM_AMD__) #ifdef _SINGLE_SINGLE #define shfl_down __shfl_down From 366b49c5811316cabae57bfbfbe7dfe810632834 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 12:14:34 -0400 Subject: [PATCH 028/104] copy NeighRequest::id to NeighList::id so we can identify them when a style has multiple requests --- src/neigh_list.cpp | 1 + src/neigh_list.h | 1 + 2 files changed, 2 insertions(+) diff --git a/src/neigh_list.cpp b/src/neigh_list.cpp index 308ecbbf6e..a51ecb7518 100644 --- a/src/neigh_list.cpp +++ b/src/neigh_list.cpp @@ -143,6 +143,7 @@ void NeighList::post_constructor(NeighRequest *nq) respamiddle = nq->respamiddle; respainner = nq->respainner; copy = nq->copy; + id = nq->id; if (nq->copy) { listcopy = neighbor->lists[nq->copylist]; diff --git a/src/neigh_list.h b/src/neigh_list.h index d69b844dc8..ad8e104f2a 100644 --- a/src/neigh_list.h +++ b/src/neigh_list.h @@ -44,6 +44,7 @@ class NeighList : protected Pointers { int copy; // 1 if this list is copied from another list int kk2cpu; // 1 if this list is copied from Kokkos to CPU int copymode; // 1 if this is a Kokkos on-device copy + int id; // copied from neighbor list request // data structs to store neighbor pairs I,J and associated values From 43735fd3f5c52670b87706076de01c2c8b4ab83e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 13:50:50 -0400 Subject: [PATCH 029/104] update neighbor list library interface to use ID field in neighbor list to uniquely identify lists --- src/library.cpp | 135 ++++++++++++++++++++++-------------------------- 1 file changed, 62 insertions(+), 73 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index a950d31e4e..2129ebeff8 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -3914,40 +3914,43 @@ int lammps_create_atoms(void *handle, int n, tagint *id, int *type, // Library functions for accessing neighbor lists // ---------------------------------------------------------------------- -/** Find neighbor list index of pair style neighbor list +/** Find index of a neighbor list requested by a pair style * - * Try finding pair instance that matches style. If exact is set, the pair must - * match style exactly. If exact is 0, style must only be contained. If pair is - * of style pair/hybrid, style is instead matched the nsub-th hybrid sub-style. + * This function determines which of the available neighbor lists for + * pair styles matches the given conditions. It first matches the style + * name. If exact is 1 the name must match exactly, if exact is 0, a + * regular expression or substring match is done. If the pair style is + * hybrid or hybrid/overlay the style is matched against the sub styles + * instead. + * If a the same pair style is used multiple times as a sub-style, the + * nsub argument must be > 0 and represents the nth instance of the sub-style + * (same as for the pair_coeff command, for example). In that case + * nsub=0 will not produce a match and this function will return -1. * - * Once the pair instance has been identified, multiple neighbor list requests - * may be found. Every neighbor list is uniquely identified by its request - * index. Thus, providing this request index ensures that the correct neighbor - * list index is returned. + * The final condition to be checked is the request ID (reqid). This + * will normally be 0, but some pair styles request multiple neighbor + * lists and set the request ID to a value > 0. * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \param style String used to search for pair style instance * \param exact Flag to control whether style should match exactly or only - * must be contained in pair style name - * \param nsub match nsub-th hybrid sub-style - * \param request request index that specifies which neighbor list should be - * returned, in case there are multiple neighbor lists requests - * for the found pair style + * a regular expression / substring match is applied. + * \param nsub match nsub-th hybrid sub-style instance of the same style + * \param reqid request id to identify neighbor list in case there are + * multiple requests from the same pair style instance * \return return neighbor list index if found, otherwise -1 */ -int lammps_find_pair_neighlist(void* handle, char * style, int exact, int nsub, int request) { - LAMMPS * lmp = (LAMMPS *) handle; - Pair* pair = lmp->force->pair_match(style, exact, nsub); +int lammps_find_pair_neighlist(void *handle, char *style, int exact, int nsub, int reqid) { + LAMMPS *lmp = (LAMMPS *) handle; + Pair *pair = lmp->force->pair_match(style, exact, nsub); if (pair != nullptr) { // find neigh list for (int i = 0; i < lmp->neighbor->nlist; i++) { - NeighList * list = lmp->neighbor->lists[i]; - if (list->requestor_type != NeighList::PAIR || pair != list->requestor) continue; - - if (list->index == request) { - return i; - } + NeighList *list = lmp->neighbor->lists[i]; + if ( (list->requestor_type == NeighList::PAIR) + && (pair == list->requestor) + && (list->id == reqid) ) return i; } } return -1; @@ -3955,74 +3958,60 @@ int lammps_find_pair_neighlist(void* handle, char * style, int exact, int nsub, /* ---------------------------------------------------------------------- */ -/** Find neighbor list index of fix neighbor list +/** Find index of a neighbor list requested by a fix + * + * The neighbor list request from a fix is identified by the fix ID and + * the request ID. The request ID is typically 0, but will be > 0 in + * case a fix has multiple neighbor list requests. * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \param id Identifier of fix instance - * \param request request index that specifies which request should be returned, - * in case there are multiple neighbor lists for this fix + * \param reqid request id to identify neighbor list in case there are + * multiple requests from the same fix * \return return neighbor list index if found, otherwise -1 */ -int lammps_find_fix_neighlist(void* handle, char *id, int request) { - LAMMPS * lmp = (LAMMPS *) handle; - Fix* fix = nullptr; - const int nfix = lmp->modify->nfix; +int lammps_find_fix_neighlist(void *handle, char *id, int reqid) { + LAMMPS *lmp = (LAMMPS *) handle; + const int ifix = lmp->modify->find_fix(id); + if (ifix < 0) return -1; - // find fix with name - for (int ifix = 0; ifix < nfix; ifix++) { - if (strcmp(lmp->modify->fix[ifix]->id, id) == 0) { - fix = lmp->modify->fix[ifix]; - break; - } - } - - if (fix != nullptr) { - // find neigh list - for (int i = 0; i < lmp->neighbor->nlist; i++) { - NeighList * list = lmp->neighbor->lists[i]; - if (list->requestor_type != NeighList::FIX || fix != list->requestor) continue; - - if (list->index == request) { - return i; - } - } + Fix *fix = lmp->modify->fix[ifix]; + // find neigh list + for (int i = 0; i < lmp->neighbor->nlist; i++) { + NeighList *list = lmp->neighbor->lists[i]; + if ( (list->requestor_type == NeighList::FIX) + && (fix == list->requestor) + && (list->id == reqid) ) return i; } return -1; } /* ---------------------------------------------------------------------- */ -/** Find neighbor list index of compute neighbor list +/** Find index of a neighbor list requested by a compute + * + * The neighbor list request from a compute is identified by the compute + * ID and the request ID. The request ID is typically 0, but will be + * > 0 in case a compute has multiple neighbor list requests. * * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. - * \param id Identifier of fix instance - * \param request request index that specifies which request should be returned, - * in case there are multiple neighbor lists for this fix + * \param id Identifier of compute instance + * \param reqid request id to identify neighbor list in case there are + * multiple requests from the same compute * \return return neighbor list index if found, otherwise -1 */ -int lammps_find_compute_neighlist(void* handle, char *id, int request) { - LAMMPS * lmp = (LAMMPS *) handle; - Compute* compute = nullptr; - const int ncompute = lmp->modify->ncompute; +int lammps_find_compute_neighlist(void* handle, char *id, int reqid) { + LAMMPS *lmp = (LAMMPS *) handle; + const int icompute = lmp->modify->find_compute(id); + if (icompute < 0) return -1; - // find compute with name - for (int icompute = 0; icompute < ncompute; icompute++) { - if (strcmp(lmp->modify->compute[icompute]->id, id) == 0) { - compute = lmp->modify->compute[icompute]; - break; - } - } - - if (compute != nullptr) { - // find neigh list - for (int i = 0; i < lmp->neighbor->nlist; i++) { - NeighList * list = lmp->neighbor->lists[i]; - if (list->requestor_type != NeighList::COMPUTE || compute != list->requestor) continue; - - if (list->index == request) { - return i; - } - } + Compute *compute = lmp->modify->compute[icompute]; + // find neigh list + for (int i = 0; i < lmp->neighbor->nlist; i++) { + NeighList * list = lmp->neighbor->lists[i]; + if ( (list->requestor_type == NeighList::COMPUTE) + && (compute == list->requestor) + && (list->id == reqid) ) return i; } return -1; } From 5583901b2c77d6882f3a8b762e4ba15500954faf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 13:51:42 -0400 Subject: [PATCH 030/104] should not set neighbor list request id to non-zero when just requesting a single neighbor list --- src/USER-QUIP/pair_quip.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/src/USER-QUIP/pair_quip.cpp b/src/USER-QUIP/pair_quip.cpp index 2d338da158..20a6c98cb8 100644 --- a/src/USER-QUIP/pair_quip.cpp +++ b/src/USER-QUIP/pair_quip.cpp @@ -318,7 +318,6 @@ void PairQUIP::init_style() // Initialise neighbor list int irequest_full = neighbor->request(this); - neighbor->requests[irequest_full]->id = 1; neighbor->requests[irequest_full]->half = 0; neighbor->requests[irequest_full]->full = 1; } From 160f2cc6307cb5c7e7b3179ca93e0d01de7b8b9f Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Fri, 2 Apr 2021 16:11:23 -0400 Subject: [PATCH 031/104] Update ROCm container definitions --- tools/singularity/ubuntu18.04_amd_rocm.def | 2 +- tools/singularity/ubuntu20.04_amd_rocm.def | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tools/singularity/ubuntu18.04_amd_rocm.def b/tools/singularity/ubuntu18.04_amd_rocm.def index bb04c738c4..7b06970110 100644 --- a/tools/singularity/ubuntu18.04_amd_rocm.def +++ b/tools/singularity/ubuntu18.04_amd_rocm.def @@ -94,7 +94,7 @@ From: ubuntu:18.04 ########################################################################### export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 - git clone -b rocm-3.7.x https://github.com/ROCmSoftwarePlatform/hipCUB.git + git clone -b rocm-4.1.x https://github.com/ROCmSoftwarePlatform/hipCUB.git mkdir hipCUB/build cd hipCUB/build CXX=hipcc cmake -D BUILD_TEST=off .. diff --git a/tools/singularity/ubuntu20.04_amd_rocm.def b/tools/singularity/ubuntu20.04_amd_rocm.def index 28d57be341..4eee97ffec 100644 --- a/tools/singularity/ubuntu20.04_amd_rocm.def +++ b/tools/singularity/ubuntu20.04_amd_rocm.def @@ -2,7 +2,7 @@ BootStrap: docker From: ubuntu:20.04 %environment - export PATH=/usr/lib/ccache:/usr/local/cuda-11.0/bin:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 + export PATH=/usr/lib/ccache:${PATH}:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 %post export DEBIAN_FRONTEND=noninteractive apt-get update @@ -90,7 +90,7 @@ From: ubuntu:20.04 ########################################################################### export PATH=$PATH:/opt/rocm/bin:/opt/rocm/profiler/bin:/opt/rocm/opencl/bin/x86_64 - git clone -b rocm-3.7.x https://github.com/ROCmSoftwarePlatform/hipCUB.git + git clone -b rocm-4.1.x https://github.com/ROCmSoftwarePlatform/hipCUB.git mkdir hipCUB/build cd hipCUB/build CXX=hipcc cmake -D BUILD_TEST=off .. From 51212e62d968f441a94bafcc5ee3f59385d99498 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 19:55:53 -0400 Subject: [PATCH 032/104] correct/update docs and parameter names for finding neighbor lists --- python/lammps/core.py | 64 ++++++++++++++++++++++++++++--------------- python/lammps/data.py | 2 +- 2 files changed, 43 insertions(+), 23 deletions(-) diff --git a/python/lammps/core.py b/python/lammps/core.py index 3118cb3d99..823175e65a 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -1721,17 +1721,23 @@ class lammps(object): # ------------------------------------------------------------------------- - def find_pair_neighlist(self, style, exact=True, nsub=0, request=0): + def find_pair_neighlist(self, style, exact=True, nsub=0, reqid=0): """Find neighbor list index of pair style neighbor list - Try finding pair instance that matches style. If exact is set, the pair must - match style exactly. If exact is 0, style must only be contained. If pair is - of style pair/hybrid, style is instead matched the nsub-th hybrid sub-style. + Search for a neighbor list requested by a pair style instance that + matches "style". If exact is True, the pair style name must match + exactly. If exact is False, the pair style name is matched against + "style" as regular expression or substring. If the pair style is a + hybrid pair style, the style is instead matched against the hybrid + sub-styles. If the same pair style is used as substyle multiple + types, you must set nsub to a value n > 0 which indicates the nth + instance of that sub-style to be used (same as for the pair_coeff + command). The default value of 0 will fail to match in that case. - Once the pair instance has been identified, multiple neighbor list requests - may be found. Every neighbor list is uniquely identified by its request - index. Thus, providing this request index ensures that the correct neighbor - list index is returned. + Once the pair style instance has been identified, it may have + requested multiple neighbor lists. Those are uniquely identified by + a request ID > 0 as set by the pair style. Otherwise the request + ID is 0. :param style: name of pair style that should be searched for :type style: string @@ -1739,44 +1745,58 @@ class lammps(object): :type exact: bool, optional :param nsub: match nsub-th hybrid sub-style, defaults to 0 :type nsub: int, optional - :param request: index of neighbor list request, in case there are more than one, defaults to 0 - :type request: int, optional + :param reqid: list request id, > 0 in case there are more than one, defaults to 0 + :type reqid: int, optional :return: neighbor list index if found, otherwise -1 :rtype: int - """ + + """ style = style.encode() exact = int(exact) - idx = self.lib.lammps_find_pair_neighlist(self.lmp, style, exact, nsub, request) + idx = self.lib.lammps_find_pair_neighlist(self.lmp, style, exact, nsub, reqid) return idx # ------------------------------------------------------------------------- - def find_fix_neighlist(self, fixid, request=0): + def find_fix_neighlist(self, fixid, reqid=0): """Find neighbor list index of fix neighbor list + The fix instance requesting the neighbor list is uniquely identified + by the fix ID. In case the fix has requested multiple neighbor + lists, those are uniquely identified by a request ID > 0 as set by + the fix. Otherwise the request ID is 0 (the default). + :param fixid: name of fix :type fixid: string - :param request: index of neighbor list request, in case there are more than one, defaults to 0 - :type request: int, optional + :param reqid: id of neighbor list request, in case there are more than one request, defaults to 0 + :type reqid: int, optional :return: neighbor list index if found, otherwise -1 :rtype: int - """ + + """ fixid = fixid.encode() - idx = self.lib.lammps_find_fix_neighlist(self.lmp, fixid, request) + idx = self.lib.lammps_find_fix_neighlist(self.lmp, fixid, reqid) return idx # ------------------------------------------------------------------------- - def find_compute_neighlist(self, computeid, request=0): + def find_compute_neighlist(self, computeid, reqid=0): """Find neighbor list index of compute neighbor list + The compute instance requesting the neighbor list is uniquely + identified by the compute ID. In case the compute has requested + multiple neighbor lists, those are uniquely identified by a request + ID > 0 as set by the compute. Otherwise the request ID is 0 (the + default). + :param computeid: name of compute :type computeid: string - :param request: index of neighbor list request, in case there are more than one, defaults to 0 - :type request: int, optional + :param reqid: index of neighbor list request, in case there are more than one request, defaults to 0 + :type reqid: int, optional :return: neighbor list index if found, otherwise -1 :rtype: int - """ + + """ computeid = computeid.encode() - idx = self.lib.lammps_find_compute_neighlist(self.lmp, computeid, request) + idx = self.lib.lammps_find_compute_neighlist(self.lmp, computeid, reqid) return idx diff --git a/python/lammps/data.py b/python/lammps/data.py index 2cf100ed82..1613936ddf 100644 --- a/python/lammps/data.py +++ b/python/lammps/data.py @@ -52,7 +52,7 @@ class NeighList: def get(self, element): """ - :return: tuple with atom local index, numpy array of neighbor local atom indices + :return: tuple with atom local index, number of neighbors and ctypes pointer to neighbor's local atom indices :rtype: (int, int, ctypes.POINTER(c_int)) """ iatom, numneigh, neighbors = self.lmp.get_neighlist_element_neighbors(self.idx, element) From c74bb9b56bfcce915287937af8c4dcf27cca3eee Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 21:00:26 -0400 Subject: [PATCH 033/104] add more unit tests for neighbor list access --- unittest/python/CMakeLists.txt | 1 + unittest/python/python-commands.py | 230 ++++++++++++++++++++++++++--- 2 files changed, 209 insertions(+), 22 deletions(-) diff --git a/unittest/python/CMakeLists.txt b/unittest/python/CMakeLists.txt index d1db17c941..b51d6e340a 100644 --- a/unittest/python/CMakeLists.txt +++ b/unittest/python/CMakeLists.txt @@ -28,6 +28,7 @@ endif() if(Python_EXECUTABLE) # prepare to augment the environment so that the LAMMPS python module and the shared library is found. set(PYTHON_TEST_ENVIRONMENT PYTHONPATH=${LAMMPS_PYTHON_DIR}:$ENV{PYTHONPATH}) + list(APPEND PYTHON_TEST_ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}") if(APPLE) list(APPEND PYTHON_TEST_ENVIRONMENT "DYLD_LIBRARY_PATH=${CMAKE_BINARY_DIR}:$ENV{DYLD_LIBRARY_PATH};LAMMPS_CMAKE_CACHE=${CMAKE_BINARY_DIR}/CMakeCache.txt") else() diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index 3661feb8a0..1c388460d1 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -1,6 +1,17 @@ import sys,os,unittest -from lammps import lammps, LMP_VAR_ATOM +from lammps import lammps, LMP_VAR_ATOM, LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR + +has_manybody=False +try: + machine=None + if 'LAMMPS_MACHINE_NAME' in os.environ: + machine=os.environ['LAMMPS_MACHINE_NAME'] + lmp=lammps(name=machine) + has_manybody = lmp.has_style("pair","sw") + lmp.close() +except: + pass class PythonCommand(unittest.TestCase): @@ -85,35 +96,34 @@ create_atoms 1 single & natoms = self.lmp.get_natoms() self.assertEqual(natoms,2) - def testNeighborList(self): - self.lmp.command("units lj") - self.lmp.command("atom_style atomic") - self.lmp.command("atom_modify map array") - self.lmp.command("boundary f f f") - self.lmp.command("region box block 0 2 0 2 0 2") - self.lmp.command("create_box 1 box") - - x = [ - 1.0, 1.0, 1.0, - 1.0, 1.0, 1.5 - ] + def testNeighborListSimple(self): + self.lmp.commands_string(""" + units lj + atom_style atomic + atom_modify map array + boundary f f f + region box block 0 2 0 2 0 2 + create_box 1 box""") + x = [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.5 ] types = [1, 1] self.assertEqual(self.lmp.create_atoms(2, id=None, type=types, x=x), 2) nlocal = self.lmp.extract_global("nlocal") self.assertEqual(nlocal, 2) - self.lmp.command("mass 1 1.0") - self.lmp.command("velocity all create 3.0 87287") - self.lmp.command("pair_style lj/cut 2.5") - self.lmp.command("pair_coeff 1 1 1.0 1.0 2.5") - self.lmp.command("neighbor 0.1 bin") - self.lmp.command("neigh_modify every 20 delay 0 check no") + self.lmp.commands_string(""" + mass 1 1.0 + velocity all create 3.0 87287 + pair_style lj/cut 2.5 + pair_coeff 1 1 1.0 1.0 2.5 + neighbor 0.1 bin + neigh_modify every 20 delay 0 check no + run 0 post no""") - self.lmp.command("run 0") - - self.assertEqual(self.lmp.find_pair_neighlist("lj/cut"), 0) + idx = self.lmp.find_pair_neighlist("lj/cut") + self.assertEqual(0, 0) + self.assertEqual(self.lmp.find_pair_neighlist("morse"), -1) nlist = self.lmp.get_neighlist(0) self.assertEqual(len(nlist), 2) atom_i, numneigh_i, neighbors_i = nlist[0] @@ -127,6 +137,182 @@ create_atoms 1 single & self.assertEqual(1, neighbors_i[0]) + def testNeighborListHalf(self): + self.lmp.commands_string(""" + boundary f f f + units real + region box block -5 5 -5 5 -5 5 + create_box 1 box + mass 1 1.0 + pair_style lj/cut 4.0 + pair_coeff 1 1 0.2 2.0 + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 1, 1, 1] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + + self.assertEqual(self.lmp.find_pair_neighlist("lj/cut"),0) + nlist = self.lmp.get_neighlist(0) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(num,nlocal-1-i) + + @unittest.skipIf(not has_manybody,"Full neighbor list test for manybody potential") + def testNeighborListFull(self): + self.lmp.commands_string(""" + boundary f f f + units metal + region box block -5 5 -5 5 -5 5 + create_box 1 box + mass 1 1.0 + pair_style sw + pair_coeff * * Si.sw Si + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 1, 1, 1] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + + self.assertEqual(self.lmp.find_pair_neighlist("sw"),0) + nlist = self.lmp.get_neighlist(0) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(num,nlocal-1) + + @unittest.skipIf(not has_manybody,"Hybrid neighbor list test for manybody potential") + def testNeighborListHybrid(self): + self.lmp.commands_string(""" + boundary f f f + units metal + region box block -5 5 -5 5 -5 5 + create_box 2 box + mass * 1.0 + pair_style hybrid/overlay morse 4.0 lj/cut 4.0 lj/cut 4.0 sw + pair_coeff * * sw Si.sw Si NULL + pair_coeff 1 2 morse 0.2 2.0 2.0 + pair_coeff 2 2 lj/cut 1 0.1 2.0 + pair_coeff * * lj/cut 2 0.01 2.0 + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 2, 2, 2] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + + # valid and invalid lookups + self.assertNotEqual(self.lmp.find_pair_neighlist("sw"),-1) + self.assertNotEqual(self.lmp.find_pair_neighlist("morse"),-1) + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut",nsub=1),-1) + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut",nsub=2),-1) + self.assertEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) + self.assertEqual(self.lmp.find_pair_neighlist("hybrid/overlay"),-1) + self.assertNotEqual(self.lmp.get_neighlist(4).size,0) + self.assertEqual(self.lmp.get_neighlist(5).size,-1) + + # full neighbor list for 4 type 1 atoms + # all have 3 type 1 atom neighbors + nlist = self.lmp.get_neighlist(self.lmp.find_pair_neighlist("sw")) + self.assertEqual(nlist.size, 4) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(num,3) + + # half neighbor list for all pairs between type 1 and type 2 + # 4 type 1 atoms with 3 type 2 neighbors and 3 type 2 atoms without neighbors + nlist = self.lmp.get_neighlist(self.lmp.find_pair_neighlist("morse")) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + if (i < 4): self.assertEqual(num,3) + else: self.assertEqual(num,0) + + # half neighbor list between type 2 atoms only + # 3 pairs with 2, 1, 0 neighbors + nlist = self.lmp.get_neighlist(self.lmp.find_pair_neighlist("lj/cut",nsub=1)) + self.assertEqual(nlist.size, 3) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + self.assertEqual(num,2-i) + + # half neighbor list between all pairs. same as simple lj/cut case + nlist = self.lmp.get_neighlist(self.lmp.find_pair_neighlist("lj/cut",nsub=2)) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + self.assertEqual(num,nlocal-1-i) + + def testNeighborListCompute(self): + self.lmp.commands_string(""" + boundary f f f + units real + region box block -5 5 -5 5 -5 5 + create_box 1 box + mass 1 1.0 + pair_style lj/cut 4.0 + pair_coeff 1 1 0.2 2.0 + compute dist all pair/local dist + fix dist all ave/histo 1 1 1 0.0 3.0 4 c_dist mode vector + thermo_style custom f_dist[*] + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 1, 1, 1] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + # check compute data from histogram summary + nhisto = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=0) + nskip = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=1) + minval = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=2) + maxval = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=3) + # 21 pair distances counted, none skipped, smallest 1.0, largest 2.1 + self.assertEqual(nhisto,21) + self.assertEqual(nskip,0) + self.assertEqual(minval,1.0) + self.assertEqual(maxval,2.1) + + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) + self.assertNotEqual(self.lmp.find_compute_neighlist("dist"),-1) + + # the compute has a half neighbor list + nlist = self.lmp.get_neighlist(self.lmp.find_compute_neighlist("dist")) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, num, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(num,nlocal-1-i) + def test_extract_box_non_periodic(self): self.lmp.command("boundary f f f") self.lmp.command("region box block 0 2 0 2 0 2") From 7e70def4cc64d704866735e6ffbc59448f62e18b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 21:00:42 -0400 Subject: [PATCH 034/104] fix errors/typos in manual --- doc/src/Python_module.rst | 2 +- doc/src/fix_ave_histo.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/Python_module.rst b/doc/src/Python_module.rst index d2564986de..c19d4b0345 100644 --- a/doc/src/Python_module.rst +++ b/doc/src/Python_module.rst @@ -142,7 +142,7 @@ Style Constants Type Constants -------------- -.. py:data:: LMP_TYPE_SCALAR, LMP_TYLE_VECTOR, LMP_TYPE_ARRAY, LMP_SIZE_VECTOR, LMP_SIZE_ROWS, LMP_SIZE_COLS +.. py:data:: LMP_TYPE_SCALAR, LMP_TYPE_VECTOR, LMP_TYPE_ARRAY, LMP_SIZE_VECTOR, LMP_SIZE_ROWS, LMP_SIZE_COLS :type: int Constants in the :py:mod:`lammps` module to select what type of data diff --git a/doc/src/fix_ave_histo.rst b/doc/src/fix_ave_histo.rst index d50112ac48..3a2857f383 100644 --- a/doc/src/fix_ave_histo.rst +++ b/doc/src/fix_ave_histo.rst @@ -138,8 +138,8 @@ vector or columns of the array had been listed one by one. E.g. these .. code-block:: LAMMPS compute myCOM all com/chunk - fix 1 all ave/histo 100 1 100 c_myCOM[*] file tmp1.com mode vector - fix 2 all ave/histo 100 1 100 c_myCOM[1] c_myCOM[2] c_myCOM[3] file tmp2.com mode vector + fix 1 all ave/histo 100 1 100 -10.0 10.0 100 c_myCOM[*] file tmp1.com mode vector + fix 2 all ave/histo 100 1 100 -10.0 10.0 100 c_myCOM[1] c_myCOM[2] c_myCOM[3] file tmp2.com mode vector If the fix ave/histo/weight command is used, exactly two values must be specified. If the values are vectors, they must be the same From 85a5698c1b93d22c5e29de49dcc4fe66518945cf Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 21:40:45 -0400 Subject: [PATCH 035/104] add find method to neighbor list wrapper classes --- python/lammps/data.py | 19 +++++++++++++++++++ python/lammps/numpy_wrapper.py | 17 +++++++++++++++++ unittest/python/python-commands.py | 13 +++++++++++-- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/python/lammps/data.py b/python/lammps/data.py index 1613936ddf..892d628356 100644 --- a/python/lammps/data.py +++ b/python/lammps/data.py @@ -52,6 +52,8 @@ class NeighList: def get(self, element): """ + Access a specific neighbor list entry. "element" must be a number from 0 to the size-1 of the list + :return: tuple with atom local index, number of neighbors and ctypes pointer to neighbor's local atom indices :rtype: (int, int, ctypes.POINTER(c_int)) """ @@ -71,3 +73,20 @@ class NeighList: for ii in range(inum): yield self.get(ii) + + def find(self, iatom): + """ + Find the neighbor list for a specific (local) atom iatom. + If there is no list for iatom, (-1, None) is returned. + + :return: tuple with number of neighbors and ctypes pointer to neighbor's local atom indices + :rtype: (int, ctypes.POINTER(c_int)) + """ + + inum = self.size + for ii in range(inum): + idx, numneigh, neighbors = self.get(ii) + if idx == iatom: + return numneigh, neighbors + + return -1, None diff --git a/python/lammps/numpy_wrapper.py b/python/lammps/numpy_wrapper.py index ce64d68c90..1ecaf3163b 100644 --- a/python/lammps/numpy_wrapper.py +++ b/python/lammps/numpy_wrapper.py @@ -331,8 +331,25 @@ class NumPyNeighList(NeighList): def get(self, element): """ + Access a specific neighbor list entry. "element" must be a number from 0 to the size-1 of the list + :return: tuple with atom local index, numpy array of neighbor local atom indices :rtype: (int, numpy.array) """ iatom, neighbors = self.lmp.numpy.get_neighlist_element_neighbors(self.idx, element) return iatom, neighbors + + def find(self, iatom): + """ + Find the neighbor list for a specific (local) atom iatom. + If there is no list for iatom, None is returned. + + :return: numpy array of neighbor local atom indices + :rtype: numpy.array or None + """ + inum = self.size + for ii in range(inum): + idx, neighbors = self.get(ii) + if idx == iatom: + return neighbors + return None diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index 1c388460d1..530cea8b13 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -122,9 +122,9 @@ create_atoms 1 single & run 0 post no""") idx = self.lmp.find_pair_neighlist("lj/cut") - self.assertEqual(0, 0) + self.assertNotEqual(idx, -1) self.assertEqual(self.lmp.find_pair_neighlist("morse"), -1) - nlist = self.lmp.get_neighlist(0) + nlist = self.lmp.get_neighlist(idx) self.assertEqual(len(nlist), 2) atom_i, numneigh_i, neighbors_i = nlist[0] atom_j, numneigh_j, _ = nlist[1] @@ -167,6 +167,15 @@ create_atoms 1 single & self.assertEqual(idx,i) self.assertEqual(num,nlocal-1-i) + # look up neighbor list by atom index + num, neighs = nlist.find(2) + self.assertEqual(num,4) + self.assertIsNotNone(neighs,None) + # this one will fail + num, neighs = nlist.find(10) + self.assertEqual(num,-1) + self.assertIsNone(neighs,None) + @unittest.skipIf(not has_manybody,"Full neighbor list test for manybody potential") def testNeighborListFull(self): self.lmp.commands_string(""" From d3b2ccf9dd5b6f0f6265db73b12b5e6115cfd80f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 21:41:26 -0400 Subject: [PATCH 036/104] numpy version of neighbor list tests --- unittest/python/python-numpy.py | 237 +++++++++++++++++++++++++++++--- 1 file changed, 215 insertions(+), 22 deletions(-) diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index 9f1d5f12c8..f3a116b91b 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -4,6 +4,17 @@ from lammps import lammps, LAMMPS_INT, LMP_STYLE_GLOBAL, LMP_STYLE_LOCAL, \ LMP_VAR_ATOM from ctypes import c_void_p +has_manybody=False +try: + machine=None + if 'LAMMPS_MACHINE_NAME' in os.environ: + machine=os.environ['LAMMPS_MACHINE_NAME'] + lmp=lammps(name=machine) + has_manybody = lmp.has_style("pair","sw") + lmp.close() +except: + pass + try: import numpy NUMPY_INSTALLED = True @@ -137,36 +148,34 @@ class PythonNumpy(unittest.TestCase): self.assertTrue((x[1] == (1.0, 1.0, 1.5)).all()) self.assertEqual(len(v), 2) - def testNeighborList(self): - self.lmp.command("units lj") - self.lmp.command("atom_style atomic") - self.lmp.command("atom_modify map array") - self.lmp.command("boundary f f f") - self.lmp.command("region box block 0 2 0 2 0 2") - self.lmp.command("create_box 1 box") - - x = [ - 1.0, 1.0, 1.0, - 1.0, 1.0, 1.5 - ] + def testNeighborListSimple(self): + self.lmp.commands_string(""" + units lj + atom_style atomic + atom_modify map array + boundary f f f + region box block 0 2 0 2 0 2 + create_box 1 box""") + x = [ 1.0, 1.0, 1.0, 1.0, 1.0, 1.5 ] types = [1, 1] self.assertEqual(self.lmp.create_atoms(2, id=None, type=types, x=x), 2) nlocal = self.lmp.extract_global("nlocal") self.assertEqual(nlocal, 2) - self.lmp.command("mass 1 1.0") - self.lmp.command("velocity all create 3.0 87287") - self.lmp.command("pair_style lj/cut 2.5") - self.lmp.command("pair_coeff 1 1 1.0 1.0 2.5") - self.lmp.command("neighbor 0.1 bin") - self.lmp.command("neigh_modify every 20 delay 0 check no") + self.lmp.commands_string(""" + mass 1 1.0 + velocity all create 3.0 87287 + pair_style lj/cut 2.5 + pair_coeff 1 1 1.0 1.0 2.5 + neighbor 0.1 bin + neigh_modify every 20 delay 0 check no + run 0 post no""") - self.lmp.command("run 0") - - self.assertEqual(self.lmp.find_pair_neighlist("lj/cut"), 0) - nlist = self.lmp.numpy.get_neighlist(0) + idx = self.lmp.find_pair_neighlist("lj/cut") + self.assertNotEqual(idx, -1) + nlist = self.lmp.numpy.get_neighlist(idx) self.assertEqual(len(nlist), 2) atom_i, neighbors_i = nlist[0] atom_j, neighbors_j = nlist[1] @@ -180,6 +189,190 @@ class PythonNumpy(unittest.TestCase): self.assertIn(1, neighbors_i) self.assertNotIn(0, neighbors_j) + def testNeighborListHalf(self): + self.lmp.commands_string(""" + boundary f f f + units real + region box block -5 5 -5 5 -5 5 + create_box 1 box + mass 1 1.0 + pair_style lj/cut 4.0 + pair_coeff 1 1 0.2 2.0 + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 1, 1, 1] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + + self.assertEqual(self.lmp.find_pair_neighlist("lj/cut"),0) + nlist = self.lmp.numpy.get_neighlist(0) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(neighs.size,nlocal-1-i) + + # look up neighbor list by atom index + neighs = nlist.find(2) + self.assertEqual(neighs.size,4) + self.assertIsNotNone(neighs,None) + # this one will fail + neighs = nlist.find(10) + self.assertIsNone(neighs,None) + + @unittest.skipIf(not has_manybody,"Full neighbor list test for manybody potential") + def testNeighborListFull(self): + self.lmp.commands_string(""" + boundary f f f + units metal + region box block -5 5 -5 5 -5 5 + create_box 1 box + mass 1 1.0 + pair_style sw + pair_coeff * * Si.sw Si + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 1, 1, 1] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + + self.assertEqual(self.lmp.find_pair_neighlist("sw"),0) + nlist = self.lmp.numpy.get_neighlist(0) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(neighs.size,nlocal-1) + + @unittest.skipIf(not has_manybody,"Hybrid neighbor list test for manybody potential") + def testNeighborListHybrid(self): + self.lmp.commands_string(""" + boundary f f f + units metal + region box block -5 5 -5 5 -5 5 + create_box 2 box + mass * 1.0 + pair_style hybrid/overlay morse 4.0 lj/cut 4.0 lj/cut 4.0 sw + pair_coeff * * sw Si.sw Si NULL + pair_coeff 1 2 morse 0.2 2.0 2.0 + pair_coeff 2 2 lj/cut 1 0.1 2.0 + pair_coeff * * lj/cut 2 0.01 2.0 + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 2, 2, 2] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + + # valid and invalid lookups + self.assertNotEqual(self.lmp.find_pair_neighlist("sw"),-1) + self.assertNotEqual(self.lmp.find_pair_neighlist("morse"),-1) + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut",nsub=1),-1) + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut",nsub=2),-1) + self.assertEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) + self.assertEqual(self.lmp.find_pair_neighlist("hybrid/overlay"),-1) + self.assertNotEqual(self.lmp.numpy.get_neighlist(4).size,0) + self.assertEqual(self.lmp.numpy.get_neighlist(5).size,-1) + + # full neighbor list for 4 type 1 atoms + # all have 3 type 1 atom neighbors + nlist = self.lmp.numpy.get_neighlist(self.lmp.find_pair_neighlist("sw")) + self.assertEqual(nlist.size, 4) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(neighs.size,3) + + # half neighbor list for all pairs between type 1 and type 2 + # 4 type 1 atoms with 3 type 2 neighbors and 3 type 2 atoms without neighbors + nlist = self.lmp.numpy.get_neighlist(self.lmp.find_pair_neighlist("morse")) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + if (i < 4): self.assertEqual(neighs.size,3) + else: self.assertEqual(neighs.size,0) + + # half neighbor list between type 2 atoms only + # 3 pairs with 2, 1, 0 neighbors + nlist = self.lmp.numpy.get_neighlist(self.lmp.find_pair_neighlist("lj/cut",nsub=1)) + self.assertEqual(nlist.size, 3) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + self.assertEqual(neighs.size,2-i) + + # half neighbor list between all pairs. same as simple lj/cut case + nlist = self.lmp.numpy.get_neighlist(self.lmp.find_pair_neighlist("lj/cut",nsub=2)) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + self.assertEqual(neighs.size,nlocal-1-i) + + def testNeighborListCompute(self): + self.lmp.commands_string(""" + boundary f f f + units real + region box block -5 5 -5 5 -5 5 + create_box 1 box + mass 1 1.0 + pair_style lj/cut 4.0 + pair_coeff 1 1 0.2 2.0 + compute dist all pair/local dist + fix dist all ave/histo 1 1 1 0.0 3.0 4 c_dist mode vector + thermo_style custom f_dist[*] + """) + x = [ 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, + 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0 ] + tags = [1, 2, 3, 4, 5, 6, 7] + types = [1, 1, 1, 1, 1, 1, 1] + + self.assertEqual(self.lmp.create_atoms(7, id=tags, type=types, x=x), 7) + nlocal = self.lmp.extract_global("nlocal") + self.assertEqual(nlocal, 7) + + self.lmp.command("run 0 post no") + # check compute data from histogram summary + nhisto = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=0) + nskip = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=1) + minval = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=2) + maxval = self.lmp.extract_fix("dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,nrow=3) + # 21 pair distances counted, none skipped, smallest 1.0, largest 2.1 + self.assertEqual(nhisto,21) + self.assertEqual(nskip,0) + self.assertEqual(minval,1.0) + self.assertEqual(maxval,2.1) + + self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) + self.assertNotEqual(self.lmp.find_compute_neighlist("dist"),-1) + + # the compute has a half neighbor list + nlist = self.lmp.numpy.get_neighlist(self.lmp.find_compute_neighlist("dist")) + self.assertEqual(nlist.size, 7) + for i in range(0,nlist.size): + idx, neighs = nlist.get(i) + self.assertEqual(idx,i) + self.assertEqual(neighs.size,nlocal-1-i) + def test_extract_variable_equalstyle(self): self.lmp.command("variable a equal 100") a = self.lmp.numpy.extract_variable("a") From 678302bfcb33486ea6cf1320538b203796e02306 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Fri, 2 Apr 2021 22:08:39 -0400 Subject: [PATCH 037/104] avoid a floating point exception in RanMars::rayleigh() from taking log(0) --- src/random_mars.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/random_mars.cpp b/src/random_mars.cpp index 621d7d3008..78c6f93ba4 100644 --- a/src/random_mars.cpp +++ b/src/random_mars.cpp @@ -136,13 +136,16 @@ double RanMars::gaussian(double mu, double sigma) double RanMars::rayleigh(double sigma) { - double first,v1; + double v1; - if (sigma <= 0) error->all(FLERR,"Invalid Rayleigh parameter"); + if (sigma <= 0.0) error->all(FLERR,"Invalid Rayleigh parameter"); v1 = uniform(); - first = sigma*sqrt(-2.0*log(v1)); - return first; + // avoid a floating point exception due to log(0.0) + // and just return a very big number + if (v1 == 0.0) return 1.0e300; + + return sigma*sqrt(-2.0*log(v1)); } /* ---------------------------------------------------------------------- From b1faf17eeb4ee978e25a034f4804afdf176c2f46 Mon Sep 17 00:00:00 2001 From: Dan Bolintineanu Date: Sat, 3 Apr 2021 00:48:00 -0600 Subject: [PATCH 038/104] Updates fix wall/gran to mirror recent updates to pair granular. Also some minor changes related to the limit_damping option --- doc/src/pair_gran.rst | 4 +- doc/src/pair_granular.rst | 2 +- src/GRANULAR/fix_wall_gran.cpp | 174 ++- src/GRANULAR/pair_gran_hooke_history.cpp | 6 +- src/GRANULAR/pair_granular.cpp | 31 +- src/GRANULAR/pair_granular_corrected.cpp | 1821 ++++++++++++++++++++++ 6 files changed, 1968 insertions(+), 70 deletions(-) create mode 100644 src/GRANULAR/pair_granular_corrected.cpp diff --git a/doc/src/pair_gran.rst b/doc/src/pair_gran.rst index b918e38da6..7d6189fda1 100644 --- a/doc/src/pair_gran.rst +++ b/doc/src/pair_gran.rst @@ -36,7 +36,7 @@ Syntax * xmu = static yield criterion (unitless value between 0.0 and 1.0e4) * dampflag = 0 or 1 if tangential damping force is excluded or included -* keyword = *no_attraction* +* keyword = *limit_damping* .. parsed-literal:: @@ -61,6 +61,8 @@ Examples pair_style gran/hooke/history 200000.0 NULL 50.0 NULL 0.5 1 pair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 + pair_style gran/hooke 200000.0 70000.0 50.0 30.0 0.5 0 limit_damping + Description """"""""""" diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index 04c9d45afd..e0a33f31d0 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -24,7 +24,7 @@ Examples pair_coeff * * hooke 1000.0 50.0 tangential linear_history 500.0 1.0 0.4 damping mass_velocity pair_style granular - pair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 + pair_coeff * * hertz 1000.0 50.0 tangential mindlin 1000.0 1.0 0.4 limit_damping pair_style granular pair_coeff * * hertz/material 1e8 0.3 0.3 tangential mindlin_rescale NULL 1.0 0.4 damping tsuji diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index c9d00ccdd3..1d27e21162 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -53,7 +53,8 @@ enum{NONE,CONSTANT,EQUAL}; enum {NORMAL_HOOKE, NORMAL_HERTZ, HERTZ_MATERIAL, DMT, JKR}; enum {VELOCITY, MASS_VELOCITY, VISCOELASTIC, TSUJI}; enum {TANGENTIAL_NOHISTORY, TANGENTIAL_HISTORY, - TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE}; + TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE, + TANGENTIAL_MINDLIN_FORCE, TANGENTIAL_MINDLIN_RESCALE_FORCE}; enum {TWIST_NONE, TWIST_SDS, TWIST_MARSHALL}; enum {ROLL_NONE, ROLL_SDS}; @@ -216,7 +217,9 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : iarg += 4; } else if ((strcmp(arg[iarg+1], "linear_history") == 0) || (strcmp(arg[iarg+1], "mindlin") == 0) || - (strcmp(arg[iarg+1], "mindlin_rescale") == 0)) { + (strcmp(arg[iarg+1], "mindlin_rescale") == 0) || + (strcmp(arg[iarg+1], "mindlin/force") == 0) || + (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0)) { if (iarg + 4 >= narg) error->all(FLERR,"Illegal pair_coeff command, " "not enough parameters provided for tangential model"); @@ -226,8 +229,14 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : tangential_model = TANGENTIAL_MINDLIN; else if (strcmp(arg[iarg+1], "mindlin_rescale") == 0) tangential_model = TANGENTIAL_MINDLIN_RESCALE; + else if (strcmp(arg[iarg+1], "mindlin/force") == 0) + tangential_model = TANGENTIAL_MINDLIN_FORCE; + else if (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0) + tangential_model = TANGENTIAL_MINDLIN_RESCALE_FORCE; if ((tangential_model == TANGENTIAL_MINDLIN || - tangential_model == TANGENTIAL_MINDLIN_RESCALE) && + tangential_model == TANGENTIAL_MINDLIN_RESCALE || + tangential_model == TANGENTIAL_MINDLIN_FORCE || + tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) && (strcmp(arg[iarg+2], "NULL") == 0)) { if (normal_model == NORMAL_HERTZ || normal_model == NORMAL_HOOKE) { error->all(FLERR, "NULL setting for Mindlin tangential " @@ -306,14 +315,20 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : } } size_history = 3*tangential_history + 3*roll_history + twist_history; + //Unlike the pair style, the wall style does not have a 'touch' + //array. Hence, an additional entry in the history is used to + //determine if particles previously contacted for JKR cohesion purposes. if (normal_model == JKR) size_history += 1; - if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) size_history += 1; + if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || + tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) size_history += 1; } - if(normal_model == JKR) - error->all(FLERR,"Cannot limit damping with JRK model"); - if(normal_model == DMT) - error->all(FLERR,"Cannot limit damping with DMT model"); + if (limit_damping and normal_model == JKR) + error->all(FLERR,"Illegal pair_coeff command, " + "cannot limit damping with JRK model"); + if (limit_damping and normal_model == DMT) + error->all(FLERR,"Illegal pair_coeff command, " + "Cannot limit damping with DMT model"); // wallstyle args @@ -509,7 +524,8 @@ void FixWallGran::init() roll_history_index += 1; twist_history_index += 1; } - if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) { + if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || + tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) { roll_history_index += 1; twist_history_index += 1; } @@ -1120,7 +1136,8 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, double signtwist, magtwist, magtortwist, Mtcrit; double tortwist1, tortwist2, tortwist3; - double shrmag,rsht; + double shrmag,rsht,prjmag; + bool frameupdate; r = sqrt(rsq); E = normal_coeffs[0]; @@ -1195,12 +1212,18 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if(limit_damping and Fntot < 0.0) Fntot = 0.0; + if (limit_damping and Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects //**************************************** + // For linear, mindlin, mindlin_rescale: + // history = cumulative tangential displacement + // + // For mindlin/force, mindlin_rescale/force: + // history = cumulative tangential elastic force + // tangential component vt1 = vr1 - vn1; vt2 = vr2 - vn2; @@ -1242,69 +1265,115 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, int thist2 = thist1 + 1; if (tangential_history) { - if (tangential_model == TANGENTIAL_MINDLIN) { + if (tangential_model == TANGENTIAL_MINDLIN || + tangential_model == TANGENTIAL_MINDLIN_FORCE) { k_tangential *= a; } - else if (tangential_model == TANGENTIAL_MINDLIN_RESCALE) { + else if (tangential_model == + TANGENTIAL_MINDLIN_RESCALE || + tangential_model == + TANGENTIAL_MINDLIN_RESCALE_FORCE){ k_tangential *= a; - if (a < history[3]) { //On unloading, rescale the shear displacements + // on unloading, rescale the shear displacements/force + if (a < history[thist2+1]) { double factor = a/history[thist2+1]; history[thist0] *= factor; history[thist1] *= factor; history[thist2] *= factor; } } - shrmag = sqrt(history[thist0]*history[thist0] + - history[thist1]*history[thist1] + - history[thist2]*history[thist2]); + // rotate and update displacements. // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 if (history_update) { rsht = history[thist0]*nx + history[thist1]*ny + history[thist2]*nz; - if (fabs(rsht) < EPSILON) rsht = 0; - if (rsht > 0) { - // if rhst == shrmag, contacting pair has rotated 90 deg in one step, - // in which case you deserve a crash! - scalefac = shrmag/(shrmag - rsht); + if (tangential_model == TANGENTIAL_MINDLIN_FORCE || + tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) + frameupdate = fabs(rsht) > EPSILON*Fscrit; + else + frameupdate = fabs(rsht)*k_tangential > EPSILON*Fscrit; + if (frameupdate) { + shrmag = sqrt(history[thist0]*history[thist0] + + history[thist1]*history[thist1] + + history[thist2]*history[thist2]); + // projection history[thist0] -= rsht*nx; history[thist1] -= rsht*ny; history[thist2] -= rsht*nz; + // also rescale to preserve magnitude + prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + if (prjmag > 0) scalefac = shrmag/prjmag; + else scalefac = 0; history[thist0] *= scalefac; history[thist1] *= scalefac; history[thist2] *= scalefac; } // update history + if (tangential_model == TANGENTIAL_HISTORY || + tangential_model == TANGENTIAL_MINDLIN || + tangential_model == TANGENTIAL_MINDLIN_RESCALE) { history[thist0] += vtr1*dt; history[thist1] += vtr2*dt; history[thist2] += vtr3*dt; + } else{ + // tangential force + // see e.g. eq. 18 of Thornton et al, Pow. Tech. 2013, v223,p30-46 + history[thist0] -= k_tangential*vtr1*dt; + history[thist1] -= k_tangential*vtr2*dt; + history[thist2] -= k_tangential*vtr3*dt; + } + if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || + tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) + history[thist2+1] = a; } // tangential forces = history + tangential velocity damping - fs1 = -k_tangential*history[thist0] - damp_tangential*vtr1; - fs2 = -k_tangential*history[thist1] - damp_tangential*vtr2; - fs3 = -k_tangential*history[thist2] - damp_tangential*vtr3; + if (tangential_model == TANGENTIAL_HISTORY || + tangential_model == TANGENTIAL_MINDLIN || + tangential_model == TANGENTIAL_MINDLIN_RESCALE) { + fs1 = -k_tangential*history[thist0] - damp_tangential*vtr1; + fs2 = -k_tangential*history[thist1] - damp_tangential*vtr2; + fs3 = -k_tangential*history[thist2] - damp_tangential*vtr3; + } else { + fs1 = history[thist0] - damp_tangential*vtr1; + fs2 = history[thist1] - damp_tangential*vtr2; + fs3 = history[thist2] - damp_tangential*vtr3; + } // rescale frictional displacements and forces if needed Fscrit = tangential_coeffs[2] * Fncrit; fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); if (fs > Fscrit) { + shrmag = sqrt(history[thist0]*history[thist0] + + history[thist1]*history[thist1] + + history[thist2]*history[thist2]); if (shrmag != 0.0) { - history[thist0] = -1.0/k_tangential*(Fscrit*fs1/fs + - damp_tangential*vtr1); - history[thist1] = -1.0/k_tangential*(Fscrit*fs2/fs + - damp_tangential*vtr2); - history[thist2] = -1.0/k_tangential*(Fscrit*fs3/fs + - damp_tangential*vtr3); + if (tangential_model == TANGENTIAL_HISTORY || + tangential_model == TANGENTIAL_MINDLIN || + tangential_model == + TANGENTIAL_MINDLIN_RESCALE) { + history[thist0] = -1.0/k_tangential*(Fscrit*fs1/fs + + damp_tangential*vtr1); + history[thist1] = -1.0/k_tangential*(Fscrit*fs2/fs + + damp_tangential*vtr2); + history[thist2] = -1.0/k_tangential*(Fscrit*fs3/fs + + damp_tangential*vtr3); + } else { + history[thist0] = Fscrit*fs1/fs + damp_tangential*vtr1; + history[thist1] = Fscrit*fs2/fs + damp_tangential*vtr2; + history[thist2] = Fscrit*fs3/fs + damp_tangential*vtr3; + } fs1 *= Fscrit/fs; fs2 *= Fscrit/fs; fs3 *= Fscrit/fs; } else fs1 = fs2 = fs3 = 0.0; } } else { // classic pair gran/hooke (no history) - fs = meff*damp_tangential*vrel; - if (vrel != 0.0) Ft = MIN(Fne,fs) / vrel; + fs = damp_tangential*vrel; + if (vrel != 0.0) Ft = MIN(Fscrit,fs) / vrel; else Ft = 0.0; fs1 = -Ft*vtr1; fs2 = -Ft*vtr2; @@ -1315,14 +1384,14 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, // rolling resistance //**************************************** - if (roll_model != ROLL_NONE || twist_model != NONE) { + if (roll_model != ROLL_NONE || twist_model != TWIST_NONE) { relrot1 = omega[0]; relrot2 = omega[1]; relrot3 = omega[2]; } if (roll_model != ROLL_NONE) { - - // rolling velocity, see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) + // rolling velocity, + // see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) // This is different from the Marshall papers, // which use the Bagi/Kuhn formulation // for rolling velocity (see Wang et al for why the latter is wrong) @@ -1334,21 +1403,29 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, int rhist1 = rhist0 + 1; int rhist2 = rhist1 + 1; - // rolling displacement - rollmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - - rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; + k_roll = roll_coeffs[0]; + damp_roll = roll_coeffs[1]; + Frcrit = roll_coeffs[2] * Fncrit; if (history_update) { - if (fabs(rolldotn) < EPSILON) rolldotn = 0; - if (rolldotn > 0) { // rotate into tangential plane - scalefac = rollmag/(rollmag - rolldotn); + rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; + frameupdate = fabs(rolldotn)*k_roll > EPSILON*Frcrit; + if (frameupdate) { // rotate into tangential plane + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + // projection history[rhist0] -= rolldotn*nx; history[rhist1] -= rolldotn*ny; history[rhist2] -= rolldotn*nz; + // also rescale to preserve magnitude + prjmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + + if (prjmag > 0) scalefac = rollmag/prjmag; + else scalefac = 0; history[rhist0] *= scalefac; history[rhist1] *= scalefac; history[rhist2] *= scalefac; @@ -1358,17 +1435,16 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, history[rhist2] += vrl3*dt; } - k_roll = roll_coeffs[0]; - damp_roll = roll_coeffs[1]; fr1 = -k_roll*history[rhist0] - damp_roll*vrl1; fr2 = -k_roll*history[rhist1] - damp_roll*vrl2; fr3 = -k_roll*history[rhist2] - damp_roll*vrl3; // rescale frictional displacements and forces if needed - Frcrit = roll_coeffs[2] * Fncrit; - fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3); if (fr > Frcrit) { + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); if (rollmag != 0.0) { history[rhist0] = -1.0/k_roll*(Frcrit*fr1/fr + damp_roll*vrl1); history[rhist1] = -1.0/k_roll*(Frcrit*fr2/fr + damp_roll*vrl2); diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index a86af2116e..4f7a6e20ec 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -237,7 +237,7 @@ void PairGranHookeHistory::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -372,8 +372,8 @@ void PairGranHookeHistory::settings(int narg, char **arg) if (dampflag == 0) gammat = 0.0; limit_damping = 0; - if(narg == 7) { - if(strcmp(arg[6], "limit_damping") == 0) limit_damping = 1; + if (narg == 7) { + if (strcmp(arg[6], "limit_damping") == 0) limit_damping = 1; else error->all(FLERR,"Illegal pair_style command"); } diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index dc829879e8..8bf9b0c4ed 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -365,13 +365,13 @@ void PairGranular::compute(int eflag, int vflag) damp_normal = a*meff; } else if (damping_model[itype][jtype] == TSUJI) { damp_normal = sqrt(meff*knfac); - } + } else damp_normal = 0.0; damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal; Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if(limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; + if (limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects @@ -542,20 +542,17 @@ void PairGranular::compute(int eflag, int vflag) relrot1 = omega[i][0] - omega[j][0]; relrot2 = omega[i][1] - omega[j][1]; relrot3 = omega[i][2] - omega[j][2]; - // rolling velocity, - // see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) - // this is different from the Marshall papers, - // which use the Bagi/Kuhn formulation - // for rolling velocity (see Wang et al for why the latter is wrong) - // - 0.5*((radj-radi)/radsum)*vtr1; - // - 0.5*((radj-radi)/radsum)*vtr2; - // - 0.5*((radj-radi)/radsum)*vtr3; } //**************************************** // rolling resistance //**************************************** if (roll_model[itype][jtype] != ROLL_NONE) { + // rolling velocity, + // see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) + // this is different from the Marshall papers, + // which use the Bagi/Kuhn formulation + // for rolling velocity (see Wang et al for why the latter is wrong) vrl1 = Reff*(relrot2*nz - relrot3*ny); vrl2 = Reff*(relrot3*nx - relrot1*nz); vrl3 = Reff*(relrot1*ny - relrot2*nx); @@ -974,12 +971,12 @@ void PairGranular::coeff(int narg, char **arg) } else if (strcmp(arg[iarg], "limit_damping") == 0) { ld_flag = 1; iarg += 1; - } else error->all(FLERR, "Illegal pair coeff command"); + } else error->all(FLERR, "Illegal pair_coeff command"); } // error not to specify normal or tangential model if ((normal_model_one < 0) || (tangential_model_one < 0)) - error->all(FLERR, "Illegal pair coeff command, " + error->all(FLERR, "Illegal pair_coeff command, " "must specify normal or tangential contact model"); int count = 0; @@ -991,11 +988,13 @@ void PairGranular::coeff(int narg, char **arg) 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6); } else damp = normal_coeffs_one[1]; - if(ld_flag and normal_model_one == JKR) - error->all(FLERR,"Cannot limit damping with JKR model"); + if (ld_flag and normal_model_one == JKR) + error->all(FLERR,"Illegal pair_coeff command, " + "Cannot limit damping with JKR model"); - if(ld_flag and normal_model_one == DMT) - error->all(FLERR,"Cannot limit damping with DMT model"); + if (ld_flag and normal_model_one == DMT) + error->all(FLERR,"Illegal pair_coeff command, " + "Cannot limit damping with DMT model"); for (int i = ilo; i <= ihi; i++) { for (int j = MAX(jlo,i); j <= jhi; j++) { diff --git a/src/GRANULAR/pair_granular_corrected.cpp b/src/GRANULAR/pair_granular_corrected.cpp new file mode 100644 index 0000000000..bcf262aa2c --- /dev/null +++ b/src/GRANULAR/pair_granular_corrected.cpp @@ -0,0 +1,1821 @@ +/* ---------------------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + https://lammps.sandia.gov/, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +/* ---------------------------------------------------------------------- + Contributing authors: + Dan Bolintineanu (SNL), Ishan Srivastava (SNL), Jeremy Lechman(SNL) + Leo Silbert (SNL), Gary Grest (SNL) +----------------------------------------------------------------------- */ + +#include "pair_granular.h" + +#include +#include + +#include "atom.h" +#include "force.h" +#include "update.h" +#include "modify.h" +#include "fix.h" +#include "fix_dummy.h" +#include "fix_neigh_history.h" +#include "comm.h" +#include "neighbor.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "memory.h" +#include "error.h" +#include "math_const.h" +#include "math_special.h" + + +using namespace LAMMPS_NS; +using namespace MathConst; +using namespace MathSpecial; + +#define PI27SQ 266.47931882941264802866 // 27*PI**2 +#define THREEROOT3 5.19615242270663202362 // 3*sqrt(3) +#define SIXROOT6 14.69693845669906728801 // 6*sqrt(6) +#define INVROOT6 0.40824829046386307274 // 1/sqrt(6) +#define FOURTHIRDS 4.0/3.0 // 4/3 +#define THREEQUARTERS 0.75 // 3/4 + +#define EPSILON 1e-10 + +enum {HOOKE, HERTZ, HERTZ_MATERIAL, DMT, JKR}; +enum {VELOCITY, MASS_VELOCITY, VISCOELASTIC, TSUJI}; +enum {TANGENTIAL_NOHISTORY, TANGENTIAL_HISTORY, + TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE, + TANGENTIAL_MINDLIN_FORCE, TANGENTIAL_MINDLIN_RESCALE_FORCE}; +enum {TWIST_NONE, TWIST_SDS, TWIST_MARSHALL}; +enum {ROLL_NONE, ROLL_SDS}; + +/* ---------------------------------------------------------------------- */ + +PairGranular::PairGranular(LAMMPS *lmp) : Pair(lmp) +{ + single_enable = 1; + no_virial_fdotr_compute = 1; + centroidstressflag = CENTROID_NOTAVAIL; + + single_extra = 12; + svector = new double[single_extra]; + + neighprev = 0; + + nmax = 0; + mass_rigid = nullptr; + + onerad_dynamic = nullptr; + onerad_frozen = nullptr; + maxrad_dynamic = nullptr; + maxrad_frozen = nullptr; + + history_transfer_factors = nullptr; + + dt = update->dt; + + // set comm size needed by this Pair if used with fix rigid + + comm_forward = 1; + + use_history = 0; + beyond_contact = 0; + nondefault_history_transfer = 0; + tangential_history_index = 0; + roll_history_index = twist_history_index = 0; + + // create dummy fix as placeholder for FixNeighHistory + // this is so final order of Modify:fix will conform to input script + + fix_history = nullptr; + modify->add_fix("NEIGH_HISTORY_GRANULAR_DUMMY all DUMMY"); + fix_dummy = (FixDummy *) modify->fix[modify->nfix-1]; +} + +/* ---------------------------------------------------------------------- */ + +PairGranular::~PairGranular() +{ + delete [] svector; + + if (!fix_history) modify->delete_fix("NEIGH_HISTORY_GRANULAR_DUMMY"); + else modify->delete_fix("NEIGH_HISTORY_GRANULAR"); + + if (allocated) { + memory->destroy(setflag); + memory->destroy(cutsq); + memory->destroy(cutoff_type); + + memory->destroy(normal_coeffs); + memory->destroy(tangential_coeffs); + memory->destroy(roll_coeffs); + memory->destroy(twist_coeffs); + + memory->destroy(Emod); + memory->destroy(poiss); + + memory->destroy(normal_model); + memory->destroy(damping_model); + memory->destroy(tangential_model); + memory->destroy(roll_model); + memory->destroy(twist_model); + + delete [] onerad_dynamic; + delete [] onerad_frozen; + delete [] maxrad_dynamic; + delete [] maxrad_frozen; + } + + memory->destroy(mass_rigid); +} + +/* ---------------------------------------------------------------------- */ + +void PairGranular::compute(int eflag, int vflag) +{ + int i,j,ii,jj,inum,jnum,itype,jtype; + double xtmp,ytmp,ztmp,delx,dely,delz,fx,fy,fz,nx,ny,nz; + double radi,radj,radsum,rsq,r,rinv; + double Reff, delta, dR, dR2, dist_to_contact; + + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; + double wr1,wr2,wr3; + double vtr1,vtr2,vtr3,vrel; + + double knfac, damp_normal=0.0, damp_normal_prefactor; + double k_tangential, damp_tangential; + double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit; + double fs, fs1, fs2, fs3, tor1, tor2, tor3; + + double mi,mj,meff; + double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3; + + // for JKR + double R2, coh, F_pulloff, delta_pulloff, dist_pulloff, a, a2, E; + double t0, t1, t2, t3, t4, t5, t6; + double sqrt1, sqrt2, sqrt3; + + // rolling + double k_roll, damp_roll; + double torroll1, torroll2, torroll3; + double rollmag, rolldotn, scalefac; + double fr, fr1, fr2, fr3; + + // twisting + double k_twist, damp_twist, mu_twist; + double signtwist, magtwist, magtortwist, Mtcrit; + double tortwist1, tortwist2, tortwist3; + + double shrmag,rsht,prjmag; + bool frameupdate; + int *ilist,*jlist,*numneigh,**firstneigh; + int *touch,**firsttouch; + double *history,*allhistory,**firsthistory; + + bool touchflag = false; + const bool historyupdate = (update->setupflag) ? false : true; + + ev_init(eflag,vflag); + + // update rigid body info for owned & ghost atoms if using FixRigid masses + // body[i] = which body atom I is in, -1 if none + // mass_body = mass of each rigid body + + if (fix_rigid && neighbor->ago == 0) { + int tmp; + int *body = (int *) fix_rigid->extract("body",tmp); + double *mass_body = (double *) fix_rigid->extract("masstotal",tmp); + if (atom->nmax > nmax) { + memory->destroy(mass_rigid); + nmax = atom->nmax; + memory->create(mass_rigid,nmax,"pair:mass_rigid"); + } + int nlocal = atom->nlocal; + for (i = 0; i < nlocal; i++) + if (body[i] >= 0) mass_rigid[i] = mass_body[body[i]]; + else mass_rigid[i] = 0.0; + comm->forward_comm_pair(this); + } + + double **x = atom->x; + double **v = atom->v; + double **f = atom->f; + int *type = atom->type; + double **omega = atom->omega; + double **torque = atom->torque; + double *radius = atom->radius; + double *rmass = atom->rmass; + int *mask = atom->mask; + int nlocal = atom->nlocal; + + inum = list->inum; + ilist = list->ilist; + numneigh = list->numneigh; + firstneigh = list->firstneigh; + if (use_history) { + firsttouch = fix_history->firstflag; + firsthistory = fix_history->firstvalue; + } + + for (ii = 0; ii < inum; ii++) { + i = ilist[ii]; + itype = type[i]; + xtmp = x[i][0]; + ytmp = x[i][1]; + ztmp = x[i][2]; + itype = type[i]; + radi = radius[i]; + if (use_history) { + touch = firsttouch[i]; + allhistory = firsthistory[i]; + } + jlist = firstneigh[i]; + jnum = numneigh[i]; + + for (jj = 0; jj < jnum; jj++) { + j = jlist[jj]; + j &= NEIGHMASK; + + delx = xtmp - x[j][0]; + dely = ytmp - x[j][1]; + delz = ztmp - x[j][2]; + jtype = type[j]; + rsq = delx*delx + dely*dely + delz*delz; + radj = radius[j]; + radsum = radi + radj; + + E = normal_coeffs[itype][jtype][0]; + Reff = radi*radj/radsum; + touchflag = false; + + if (normal_model[itype][jtype] == JKR) { + E *= THREEQUARTERS; + if (touch[jj]) { + R2 = Reff*Reff; + coh = normal_coeffs[itype][jtype][3]; + a = cbrt(9.0*MY_PI*coh*R2/(4*E)); + delta_pulloff = a*a/Reff - 2*sqrt(MY_PI*coh*a/E); + dist_pulloff = radsum-delta_pulloff; + touchflag = (rsq < dist_pulloff*dist_pulloff); + } else { + touchflag = (rsq < radsum*radsum); + } + } else { + touchflag = (rsq < radsum*radsum); + } + + if (!touchflag) { + // unset non-touching neighbors + if (use_history) { + touch[jj] = 0; + history = &allhistory[size_history*jj]; + for (int k = 0; k < size_history; k++) history[k] = 0.0; + } + } else { + r = sqrt(rsq); + rinv = 1.0/r; + + nx = delx*rinv; + ny = dely*rinv; + nz = delz*rinv; + + // relative translational velocity + + vr1 = v[i][0] - v[j][0]; + vr2 = v[i][1] - v[j][1]; + vr3 = v[i][2] - v[j][2]; + + // normal component + + vnnr = vr1*nx + vr2*ny + vr3*nz; //v_R . n + vn1 = nx*vnnr; + vn2 = ny*vnnr; + vn3 = nz*vnnr; + + // meff = effective mass of pair of particles + // if I or J part of rigid body, use body mass + // if I or J is frozen, meff is other particle + + mi = rmass[i]; + mj = rmass[j]; + if (fix_rigid) { + if (mass_rigid[i] > 0.0) mi = mass_rigid[i]; + if (mass_rigid[j] > 0.0) mj = mass_rigid[j]; + } + + meff = mi*mj / (mi+mj); + if (mask[i] & freeze_group_bit) meff = mj; + if (mask[j] & freeze_group_bit) meff = mi; + + delta = radsum - r; + dR = delta*Reff; + + if (normal_model[itype][jtype] == JKR) { + touch[jj] = 1; + R2=Reff*Reff; + coh = normal_coeffs[itype][jtype][3]; + dR2 = dR*dR; + t0 = coh*coh*R2*R2*E; + t1 = PI27SQ*t0; + t2 = 8*dR*dR2*E*E*E; + t3 = 4*dR2*E; + // in case sqrt(0) < 0 due to precision issues + sqrt1 = MAX(0, t0*(t1+2*t2)); + t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1)); + t5 = t3/t4 + t4/E; + sqrt2 = MAX(0, 2*dR + t5); + t6 = sqrt(sqrt2); + sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6)); + a = INVROOT6*(t6 + sqrt(sqrt3)); + a2 = a*a; + knfac = normal_coeffs[itype][jtype][0]*a; + Fne = knfac*a2/Reff - MY_2PI*a2*sqrt(4*coh*E/(MY_PI*a)); + } else { + knfac = E; // Hooke + Fne = knfac*delta; + a = sqrt(dR); + if (normal_model[itype][jtype] != HOOKE) { + Fne *= a; + knfac *= a; + } + if (normal_model[itype][jtype] == DMT) + Fne -= 4*MY_PI*normal_coeffs[itype][jtype][3]*Reff; + } + + // NOTE: consider restricting Hooke to only have + // 'velocity' as an option for damping? + + if (damping_model[itype][jtype] == VELOCITY) { + damp_normal = 1; + } else if (damping_model[itype][jtype] == MASS_VELOCITY) { + damp_normal = meff; + } else if (damping_model[itype][jtype] == VISCOELASTIC) { + damp_normal = a*meff; + } else if (damping_model[itype][jtype] == TSUJI) { + damp_normal = sqrt(meff*knfac); + } + + damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal; + Fdamp = -damp_normal_prefactor*vnnr; + + Fntot = Fne + Fdamp; + + //**************************************** + // tangential force, including history effects + //**************************************** + + // For linear, mindlin, mindlin_rescale: + // history = cumulative tangential displacement + // + // For mindlin/force, mindlin_rescale/force: + // history = cumulative tangential elastic force + + // tangential component + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // relative rotational velocity + wr1 = (radi*omega[i][0] + radj*omega[j][0]); + wr2 = (radi*omega[i][1] + radj*omega[j][1]); + wr3 = (radi*omega[i][2] + radj*omega[j][2]); + + // relative tangential velocities + vtr1 = vt1 - (nz*wr2-ny*wr3); + vtr2 = vt2 - (nx*wr3-nz*wr1); + vtr3 = vt3 - (ny*wr1-nx*wr2); + vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; + vrel = sqrt(vrel); + + // if any history is needed + if (use_history) { + touch[jj] = 1; + history = &allhistory[size_history*jj]; + } + + if (normal_model[itype][jtype] == JKR) { + F_pulloff = 3*MY_PI*coh*Reff; + Fncrit = fabs(Fne + 2*F_pulloff); + } else if (normal_model[itype][jtype] == DMT) { + F_pulloff = 4*MY_PI*coh*Reff; + Fncrit = fabs(Fne + 2*F_pulloff); + } else { + Fncrit = fabs(Fntot); + } + Fscrit = tangential_coeffs[itype][jtype][2] * Fncrit; + + //------------------------------ + // tangential forces + //------------------------------ + k_tangential = tangential_coeffs[itype][jtype][0]; + damp_tangential = tangential_coeffs[itype][jtype][1] * + damp_normal_prefactor; + + if (tangential_history) { + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE) { + k_tangential *= a; + } else if (tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE_FORCE) { + k_tangential *= a; + // on unloading, rescale the shear displacements/force + if (a < history[3]) { + double factor = a/history[3]; + history[0] *= factor; + history[1] *= factor; + history[2] *= factor; + } + } + // rotate and update displacements / force. + // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 + if (historyupdate) { + rsht = history[0]*nx + history[1]*ny + history[2]*nz; + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE_FORCE) + frameupdate = fabs(rsht) > EPSILON*Fscrit; + else + frameupdate = fabs(rsht)*k_tangential > EPSILON*Fscrit; + if (frameupdate) { + shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + // projection + history[0] -= rsht*nx; + history[1] -= rsht*ny; + history[2] -= rsht*nz; + + // also rescale to preserve magnitude + prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + if (prjmag > 0) scalefac = shrmag/prjmag; + else scalefac = 0; + history[0] *= scalefac; + history[1] *= scalefac; + history[2] *= scalefac; + } + // update history + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { + // tangential displacement + history[0] += vtr1*dt; + history[1] += vtr2*dt; + history[2] += vtr3*dt; + } else { + // tangential force + // see e.g. eq. 18 of Thornton et al, Pow. Tech. 2013, v223,p30-46 + history[0] -= k_tangential*vtr1*dt; + history[1] -= k_tangential*vtr2*dt; + history[2] -= k_tangential*vtr3*dt; + } + if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE_FORCE) + history[3] = a; + } + + // tangential forces = history + tangential velocity damping + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { + fs1 = -k_tangential*history[0] - damp_tangential*vtr1; + fs2 = -k_tangential*history[1] - damp_tangential*vtr2; + fs3 = -k_tangential*history[2] - damp_tangential*vtr3; + } else { + fs1 = history[0] - damp_tangential*vtr1; + fs2 = history[1] - damp_tangential*vtr2; + fs3 = history[2] - damp_tangential*vtr3; + } + + // rescale frictional displacements and forces if needed + fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); + if (fs > Fscrit) { + shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + if (shrmag != 0.0) { + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == + TANGENTIAL_MINDLIN_RESCALE) { + history[0] = -1.0/k_tangential*(Fscrit*fs1/fs + + damp_tangential*vtr1); + history[1] = -1.0/k_tangential*(Fscrit*fs2/fs + + damp_tangential*vtr2); + history[2] = -1.0/k_tangential*(Fscrit*fs3/fs + + damp_tangential*vtr3); + } else { + history[0] = Fscrit*fs1/fs + damp_tangential*vtr1; + history[1] = Fscrit*fs2/fs + damp_tangential*vtr2; + history[2] = Fscrit*fs3/fs + damp_tangential*vtr3; + } + fs1 *= Fscrit/fs; + fs2 *= Fscrit/fs; + fs3 *= Fscrit/fs; + } else fs1 = fs2 = fs3 = 0.0; + } + } else { // classic pair gran/hooke (no history) + fs = damp_tangential*vrel; + if (vrel != 0.0) Ft = MIN(Fscrit,fs) / vrel; + else Ft = 0.0; + fs1 = -Ft*vtr1; + fs2 = -Ft*vtr2; + fs3 = -Ft*vtr3; + } + + if (roll_model[itype][jtype] != ROLL_NONE || + twist_model[itype][jtype] != TWIST_NONE) { + relrot1 = omega[i][0] - omega[j][0]; + relrot2 = omega[i][1] - omega[j][1]; + relrot3 = omega[i][2] - omega[j][2]; + // rolling velocity, + // see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) + // this is different from the Marshall papers, + // which use the Bagi/Kuhn formulation + // for rolling velocity (see Wang et al for why the latter is wrong) + // - 0.5*((radj-radi)/radsum)*vtr1; + // - 0.5*((radj-radi)/radsum)*vtr2; + // - 0.5*((radj-radi)/radsum)*vtr3; + } + //**************************************** + // rolling resistance + //**************************************** + + if (roll_model[itype][jtype] != ROLL_NONE) { + vrl1 = Reff*(relrot2*nz - relrot3*ny); + vrl2 = Reff*(relrot3*nx - relrot1*nz); + vrl3 = Reff*(relrot1*ny - relrot2*nx); + + int rhist0 = roll_history_index; + int rhist1 = rhist0 + 1; + int rhist2 = rhist1 + 1; + + k_roll = roll_coeffs[itype][jtype][0]; + damp_roll = roll_coeffs[itype][jtype][1]; + Frcrit = roll_coeffs[itype][jtype][2] * Fncrit; + + if (historyupdate) { + rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; + frameupdate = fabs(rolldotn)*k_roll > EPSILON*Frcrit; + if (frameupdate) { // rotate into tangential plane + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + // projection + history[rhist0] -= rolldotn*nx; + history[rhist1] -= rolldotn*ny; + history[rhist2] -= rolldotn*nz; + // also rescale to preserve magnitude + prjmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + if (prjmag > 0) scalefac = rollmag/prjmag; + else scalefac = 0; + history[rhist0] *= scalefac; + history[rhist1] *= scalefac; + history[rhist2] *= scalefac; + } + history[rhist0] += vrl1*dt; + history[rhist1] += vrl2*dt; + history[rhist2] += vrl3*dt; + } + + fr1 = -k_roll*history[rhist0] - damp_roll*vrl1; + fr2 = -k_roll*history[rhist1] - damp_roll*vrl2; + fr3 = -k_roll*history[rhist2] - damp_roll*vrl3; + + // rescale frictional displacements and forces if needed + + fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3); + if (fr > Frcrit) { + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + if (rollmag != 0.0) { + history[rhist0] = -1.0/k_roll*(Frcrit*fr1/fr + damp_roll*vrl1); + history[rhist1] = -1.0/k_roll*(Frcrit*fr2/fr + damp_roll*vrl2); + history[rhist2] = -1.0/k_roll*(Frcrit*fr3/fr + damp_roll*vrl3); + fr1 *= Frcrit/fr; + fr2 *= Frcrit/fr; + fr3 *= Frcrit/fr; + } else fr1 = fr2 = fr3 = 0.0; + } + } + + //**************************************** + // twisting torque, including history effects + //**************************************** + + if (twist_model[itype][jtype] != TWIST_NONE) { + // omega_T (eq 29 of Marshall) + magtwist = relrot1*nx + relrot2*ny + relrot3*nz; + if (twist_model[itype][jtype] == TWIST_MARSHALL) { + k_twist = 0.5*k_tangential*a*a;; // eq 32 of Marshall paper + damp_twist = 0.5*damp_tangential*a*a; + mu_twist = TWOTHIRDS*a*tangential_coeffs[itype][jtype][2]; + } else { + k_twist = twist_coeffs[itype][jtype][0]; + damp_twist = twist_coeffs[itype][jtype][1]; + mu_twist = twist_coeffs[itype][jtype][2]; + } + if (historyupdate) { + history[twist_history_index] += magtwist*dt; + } + magtortwist = -k_twist*history[twist_history_index] - + damp_twist*magtwist; // M_t torque (eq 30) + signtwist = (magtwist > 0) - (magtwist < 0); + Mtcrit = mu_twist*Fncrit; // critical torque (eq 44) + if (fabs(magtortwist) > Mtcrit) { + history[twist_history_index] = 1.0/k_twist*(Mtcrit*signtwist - + damp_twist*magtwist); + magtortwist = -Mtcrit * signtwist; // eq 34 + } + } + + // apply forces & torques + + fx = nx*Fntot + fs1; + fy = ny*Fntot + fs2; + fz = nz*Fntot + fs3; + + f[i][0] += fx; + f[i][1] += fy; + f[i][2] += fz; + + tor1 = ny*fs3 - nz*fs2; + tor2 = nz*fs1 - nx*fs3; + tor3 = nx*fs2 - ny*fs1; + + dist_to_contact = radi-0.5*delta; + torque[i][0] -= dist_to_contact*tor1; + torque[i][1] -= dist_to_contact*tor2; + torque[i][2] -= dist_to_contact*tor3; + + if (twist_model[itype][jtype] != TWIST_NONE) { + tortwist1 = magtortwist * nx; + tortwist2 = magtortwist * ny; + tortwist3 = magtortwist * nz; + + torque[i][0] += tortwist1; + torque[i][1] += tortwist2; + torque[i][2] += tortwist3; + } + + if (roll_model[itype][jtype] != ROLL_NONE) { + torroll1 = Reff*(ny*fr3 - nz*fr2); // n cross fr + torroll2 = Reff*(nz*fr1 - nx*fr3); + torroll3 = Reff*(nx*fr2 - ny*fr1); + + torque[i][0] += torroll1; + torque[i][1] += torroll2; + torque[i][2] += torroll3; + } + + if (force->newton_pair || j < nlocal) { + f[j][0] -= fx; + f[j][1] -= fy; + f[j][2] -= fz; + + dist_to_contact = radj-0.5*delta; + torque[j][0] -= dist_to_contact*tor1; + torque[j][1] -= dist_to_contact*tor2; + torque[j][2] -= dist_to_contact*tor3; + + if (twist_model[itype][jtype] != TWIST_NONE) { + torque[j][0] -= tortwist1; + torque[j][1] -= tortwist2; + torque[j][2] -= tortwist3; + } + if (roll_model[itype][jtype] != ROLL_NONE) { + torque[j][0] -= torroll1; + torque[j][1] -= torroll2; + torque[j][2] -= torroll3; + } + } + if (evflag) ev_tally_xyz(i,j,nlocal,force->newton_pair, + 0.0,0.0,fx,fy,fz,delx,dely,delz); + } + } + } +} + +/* ---------------------------------------------------------------------- + allocate all arrays +------------------------------------------------------------------------- */ + +void PairGranular::allocate() +{ + allocated = 1; + int n = atom->ntypes; + + memory->create(setflag,n+1,n+1,"pair:setflag"); + for (int i = 1; i <= n; i++) + for (int j = i; j <= n; j++) + setflag[i][j] = 0; + + memory->create(cutsq,n+1,n+1,"pair:cutsq"); + memory->create(cutoff_type,n+1,n+1,"pair:cutoff_type"); + memory->create(normal_coeffs,n+1,n+1,4,"pair:normal_coeffs"); + memory->create(tangential_coeffs,n+1,n+1,3,"pair:tangential_coeffs"); + memory->create(roll_coeffs,n+1,n+1,3,"pair:roll_coeffs"); + memory->create(twist_coeffs,n+1,n+1,3,"pair:twist_coeffs"); + + memory->create(Emod,n+1,n+1,"pair:Emod"); + memory->create(poiss,n+1,n+1,"pair:poiss"); + + memory->create(normal_model,n+1,n+1,"pair:normal_model"); + memory->create(damping_model,n+1,n+1,"pair:damping_model"); + memory->create(tangential_model,n+1,n+1,"pair:tangential_model"); + memory->create(roll_model,n+1,n+1,"pair:roll_model"); + memory->create(twist_model,n+1,n+1,"pair:twist_model"); + + onerad_dynamic = new double[n+1]; + onerad_frozen = new double[n+1]; + maxrad_dynamic = new double[n+1]; + maxrad_frozen = new double[n+1]; +} + +/* ---------------------------------------------------------------------- + global settings +------------------------------------------------------------------------- */ + +void PairGranular::settings(int narg, char **arg) +{ + if (narg == 1) { + cutoff_global = utils::numeric(FLERR,arg[0],false,lmp); + } else { + cutoff_global = -1; // will be set based on particle sizes, model choice + } + + normal_history = tangential_history = 0; + roll_history = twist_history = 0; +} + +/* ---------------------------------------------------------------------- + set coeffs for one or more type pairs +------------------------------------------------------------------------- */ + +void PairGranular::coeff(int narg, char **arg) +{ + int normal_model_one, damping_model_one; + int tangential_model_one, roll_model_one, twist_model_one; + + double normal_coeffs_one[4]; + double tangential_coeffs_one[4]; + double roll_coeffs_one[4]; + double twist_coeffs_one[4]; + + double cutoff_one = -1; + + if (narg < 2) + error->all(FLERR,"Incorrect args for pair coefficients"); + + if (!allocated) allocate(); + + int ilo,ihi,jlo,jhi; + utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); + utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); + + //Defaults + normal_model_one = tangential_model_one = -1; + roll_model_one = ROLL_NONE; + twist_model_one = TWIST_NONE; + damping_model_one = VISCOELASTIC; + + int iarg = 2; + while (iarg < narg) { + if (strcmp(arg[iarg], "hooke") == 0) { + if (iarg + 2 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for Hooke option"); + normal_model_one = HOOKE; + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // kn + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + iarg += 3; + } else if (strcmp(arg[iarg], "hertz") == 0) { + if (iarg + 2 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for Hertz option"); + normal_model_one = HERTZ; + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // kn + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + iarg += 3; + } else if (strcmp(arg[iarg], "hertz/material") == 0) { + if (iarg + 3 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for Hertz/material option"); + normal_model_one = HERTZ_MATERIAL; + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio + iarg += 4; + } else if (strcmp(arg[iarg], "dmt") == 0) { + if (iarg + 4 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for Hertz option"); + normal_model_one = DMT; + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio + normal_coeffs_one[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); // cohesion + iarg += 5; + } else if (strcmp(arg[iarg], "jkr") == 0) { + if (iarg + 4 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for JKR option"); + beyond_contact = 1; + normal_model_one = JKR; + normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E + normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping + normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio + normal_coeffs_one[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); // cohesion + iarg += 5; + } else if (strcmp(arg[iarg], "damping") == 0) { + if (iarg+1 >= narg) + error->all(FLERR, "Illegal pair_coeff command, " + "not enough parameters provided for damping model"); + if (strcmp(arg[iarg+1], "velocity") == 0) { + damping_model_one = VELOCITY; + iarg += 1; + } else if (strcmp(arg[iarg+1], "mass_velocity") == 0) { + damping_model_one = MASS_VELOCITY; + iarg += 1; + } else if (strcmp(arg[iarg+1], "viscoelastic") == 0) { + damping_model_one = VISCOELASTIC; + iarg += 1; + } else if (strcmp(arg[iarg+1], "tsuji") == 0) { + damping_model_one = TSUJI; + iarg += 1; + } else error->all(FLERR, "Illegal pair_coeff command, " + "unrecognized damping model"); + iarg += 1; + } else if (strcmp(arg[iarg], "tangential") == 0) { + if (iarg + 1 >= narg) + error->all(FLERR,"Illegal pair_coeff command, must specify " + "tangential model after tangential keyword"); + if (strcmp(arg[iarg+1], "linear_nohistory") == 0) { + if (iarg + 3 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for tangential model"); + tangential_model_one = TANGENTIAL_NOHISTORY; + tangential_coeffs_one[0] = 0; + // gammat and friction coeff + tangential_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + tangential_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + iarg += 4; + } else if ((strcmp(arg[iarg+1], "linear_history") == 0) || + (strcmp(arg[iarg+1], "mindlin") == 0) || + (strcmp(arg[iarg+1], "mindlin_rescale") == 0) || + (strcmp(arg[iarg+1], "mindlin/force") == 0) || + (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0)) { + if (iarg + 4 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for tangential model"); + if (strcmp(arg[iarg+1], "linear_history") == 0) + tangential_model_one = TANGENTIAL_HISTORY; + else if (strcmp(arg[iarg+1], "mindlin") == 0) + tangential_model_one = TANGENTIAL_MINDLIN; + else if (strcmp(arg[iarg+1], "mindlin_rescale") == 0) + tangential_model_one = TANGENTIAL_MINDLIN_RESCALE; + else if (strcmp(arg[iarg+1], "mindlin/force") == 0) + tangential_model_one = TANGENTIAL_MINDLIN_FORCE; + else if (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0) + tangential_model_one = TANGENTIAL_MINDLIN_RESCALE_FORCE; + tangential_history = 1; + if ((tangential_model_one == TANGENTIAL_MINDLIN || + tangential_model_one == TANGENTIAL_MINDLIN_RESCALE || + tangential_model_one == TANGENTIAL_MINDLIN_FORCE || + tangential_model_one == TANGENTIAL_MINDLIN_RESCALE_FORCE) && + (strcmp(arg[iarg+2], "NULL") == 0)) { + if (normal_model_one == HERTZ || normal_model_one == HOOKE) { + error->all(FLERR, "NULL setting for Mindlin tangential " + "stiffness requires a normal contact model that " + "specifies material properties"); + } + tangential_coeffs_one[0] = -1; + } else { + tangential_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // kt + } + // gammat and friction coeff + tangential_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + tangential_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + iarg += 5; + } else { + error->all(FLERR, "Illegal pair_coeff command, " + "tangential model not recognized"); + } + } else if (strcmp(arg[iarg], "rolling") == 0) { + if (iarg + 1 >= narg) + error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); + if (strcmp(arg[iarg+1], "none") == 0) { + roll_model_one = ROLL_NONE; + iarg += 2; + } else if (strcmp(arg[iarg+1], "sds") == 0) { + if (iarg + 4 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for rolling model"); + roll_model_one = ROLL_SDS; + roll_history = 1; + // kR and gammaR and rolling friction coeff + roll_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + roll_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + roll_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + iarg += 5; + } else { + error->all(FLERR, "Illegal pair_coeff command, " + "rolling friction model not recognized"); + } + } else if (strcmp(arg[iarg], "twisting") == 0) { + if (iarg + 1 >= narg) + error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); + if (strcmp(arg[iarg+1], "none") == 0) { + twist_model_one = TWIST_NONE; + iarg += 2; + } else if (strcmp(arg[iarg+1], "marshall") == 0) { + twist_model_one = TWIST_MARSHALL; + twist_history = 1; + iarg += 2; + } else if (strcmp(arg[iarg+1], "sds") == 0) { + if (iarg + 4 >= narg) + error->all(FLERR,"Illegal pair_coeff command, " + "not enough parameters provided for twist model"); + twist_model_one = TWIST_SDS; + twist_history = 1; + // kt and gammat and friction coeff + twist_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); + twist_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); + twist_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); + iarg += 5; + } else { + error->all(FLERR, "Illegal pair_coeff command, " + "twisting friction model not recognized"); + } + } else if (strcmp(arg[iarg], "cutoff") == 0) { + if (iarg + 1 >= narg) + error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); + cutoff_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); + iarg += 2; + } else error->all(FLERR, "Illegal pair coeff command"); + } + + // error not to specify normal or tangential model + if ((normal_model_one < 0) || (tangential_model_one < 0)) + error->all(FLERR, "Illegal pair coeff command, " + "must specify normal or tangential contact model"); + + int count = 0; + double damp; + if (damping_model_one == TSUJI) { + double cor; + cor = normal_coeffs_one[1]; + damp = 1.2728-4.2783*cor+11.087*square(cor)-22.348*cube(cor)+ + 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6); + } else damp = normal_coeffs_one[1]; + + for (int i = ilo; i <= ihi; i++) { + for (int j = MAX(jlo,i); j <= jhi; j++) { + normal_model[i][j] = normal_model[j][i] = normal_model_one; + normal_coeffs[i][j][1] = normal_coeffs[j][i][1] = damp; + if (normal_model_one != HERTZ && normal_model_one != HOOKE) { + Emod[i][j] = Emod[j][i] = normal_coeffs_one[0]; + poiss[i][j] = poiss[j][i] = normal_coeffs_one[2]; + normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = + FOURTHIRDS*mix_stiffnessE(Emod[i][j],Emod[i][j], + poiss[i][j],poiss[i][j]); + } else { + normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = normal_coeffs_one[0]; + } + if ((normal_model_one == JKR) || (normal_model_one == DMT)) + normal_coeffs[i][j][3] = normal_coeffs[j][i][3] = normal_coeffs_one[3]; + + damping_model[i][j] = damping_model[j][i] = damping_model_one; + + tangential_model[i][j] = tangential_model[j][i] = tangential_model_one; + if (tangential_coeffs_one[0] == -1) { + tangential_coeffs[i][j][0] = tangential_coeffs[j][i][0] = + 8*mix_stiffnessG(Emod[i][j],Emod[i][j],poiss[i][j],poiss[i][j]); + } else { + tangential_coeffs[i][j][0] = tangential_coeffs[j][i][0] = + tangential_coeffs_one[0]; + } + for (int k = 1; k < 3; k++) + tangential_coeffs[i][j][k] = tangential_coeffs[j][i][k] = + tangential_coeffs_one[k]; + + roll_model[i][j] = roll_model[j][i] = roll_model_one; + if (roll_model_one != ROLL_NONE) + for (int k = 0; k < 3; k++) + roll_coeffs[i][j][k] = roll_coeffs[j][i][k] = roll_coeffs_one[k]; + + twist_model[i][j] = twist_model[j][i] = twist_model_one; + if (twist_model_one != TWIST_NONE && twist_model_one != TWIST_MARSHALL) + for (int k = 0; k < 3; k++) + twist_coeffs[i][j][k] = twist_coeffs[j][i][k] = twist_coeffs_one[k]; + + cutoff_type[i][j] = cutoff_type[j][i] = cutoff_one; + + setflag[i][j] = 1; + count++; + } + } + + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); +} + +/* ---------------------------------------------------------------------- + init specific to this pair style +------------------------------------------------------------------------- */ + +void PairGranular::init_style() +{ + int i; + + // error and warning checks + + if (!atom->radius_flag || !atom->rmass_flag) + error->all(FLERR,"Pair granular requires atom attributes radius, rmass"); + if (comm->ghost_velocity == 0) + error->all(FLERR,"Pair granular requires ghost atoms store velocity"); + + // determine whether we need a granular neigh list, how large it needs to be + + use_history = normal_history || tangential_history || + roll_history || twist_history; + + // for JKR, will need fix/neigh/history to keep track of touch arrays + + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + if (normal_model[i][j] == JKR) use_history = 1; + + size_history = 3*tangential_history + 3*roll_history + twist_history; + + // determine location of tangential/roll/twist histories in array + + if (roll_history) { + if (tangential_history) roll_history_index = 3; + else roll_history_index = 0; + } + if (twist_history) { + if (tangential_history) { + if (roll_history) twist_history_index = 6; + else twist_history_index = 3; + } else { + if (roll_history) twist_history_index = 3; + else twist_history_index = 0; + } + } + for (int i = 1; i <= atom->ntypes; i++) + for (int j = i; j <= atom->ntypes; j++) + if (tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE || + tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE_FORCE) { + size_history += 1; + roll_history_index += 1; + twist_history_index += 1; + nondefault_history_transfer = 1; + history_transfer_factors = new int[size_history]; + for (int ii = 0; ii < size_history; ++ii) + history_transfer_factors[ii] = -1; + history_transfer_factors[3] = 1; + break; + } + + int irequest = neighbor->request(this,instance_me); + neighbor->requests[irequest]->size = 1; + if (use_history) neighbor->requests[irequest]->history = 1; + + dt = update->dt; + + // if history is stored and first init, create Fix to store history + // it replaces FixDummy, created in the constructor + // this is so its order in the fix list is preserved + + if (use_history && fix_history == nullptr) { + modify->replace_fix("NEIGH_HISTORY_GRANULAR_DUMMY","NEIGH_HISTORY_GRANULAR" + " all NEIGH_HISTORY " + std::to_string(size_history),1); + int ifix = modify->find_fix("NEIGH_HISTORY_GRANULAR"); + fix_history = (FixNeighHistory *) modify->fix[ifix]; + fix_history->pair = this; + } + + // check for FixFreeze and set freeze_group_bit + + for (i = 0; i < modify->nfix; i++) + if (strcmp(modify->fix[i]->style,"freeze") == 0) break; + if (i < modify->nfix) freeze_group_bit = modify->fix[i]->groupbit; + else freeze_group_bit = 0; + + // check for FixRigid so can extract rigid body masses + + fix_rigid = nullptr; + for (i = 0; i < modify->nfix; i++) + if (modify->fix[i]->rigid_flag) break; + if (i < modify->nfix) fix_rigid = modify->fix[i]; + + // check for FixPour and FixDeposit so can extract particle radii + + int ipour; + for (ipour = 0; ipour < modify->nfix; ipour++) + if (strcmp(modify->fix[ipour]->style,"pour") == 0) break; + if (ipour == modify->nfix) ipour = -1; + + int idep; + for (idep = 0; idep < modify->nfix; idep++) + if (strcmp(modify->fix[idep]->style,"deposit") == 0) break; + if (idep == modify->nfix) idep = -1; + + // set maxrad_dynamic and maxrad_frozen for each type + // include future FixPour and FixDeposit particles as dynamic + + int itype; + for (i = 1; i <= atom->ntypes; i++) { + onerad_dynamic[i] = onerad_frozen[i] = 0.0; + if (ipour >= 0) { + itype = i; + double radmax = *((double *) modify->fix[ipour]->extract("radius",itype)); + onerad_dynamic[i] = radmax; + } + if (idep >= 0) { + itype = i; + double radmax = *((double *) modify->fix[idep]->extract("radius",itype)); + onerad_dynamic[i] = radmax; + } + } + + double *radius = atom->radius; + int *mask = atom->mask; + int *type = atom->type; + int nlocal = atom->nlocal; + + for (i = 0; i < nlocal; i++) { + double radius_cut = radius[i]; + if (mask[i] & freeze_group_bit) { + onerad_frozen[type[i]] = MAX(onerad_frozen[type[i]],radius_cut); + } else { + onerad_dynamic[type[i]] = MAX(onerad_dynamic[type[i]],radius_cut); + } + } + + MPI_Allreduce(&onerad_dynamic[1],&maxrad_dynamic[1],atom->ntypes, + MPI_DOUBLE,MPI_MAX,world); + MPI_Allreduce(&onerad_frozen[1],&maxrad_frozen[1],atom->ntypes, + MPI_DOUBLE,MPI_MAX,world); + + // set fix which stores history info + + if (size_history > 0) { + int ifix = modify->find_fix("NEIGH_HISTORY_GRANULAR"); + if (ifix < 0) error->all(FLERR,"Could not find pair fix neigh history ID"); + fix_history = (FixNeighHistory *) modify->fix[ifix]; + } +} + +/* ---------------------------------------------------------------------- + init for one type pair i,j and corresponding j,i +------------------------------------------------------------------------- */ + +double PairGranular::init_one(int i, int j) +{ + double cutoff=0.0; + + if (setflag[i][j] == 0) { + if ((normal_model[i][i] != normal_model[j][j]) || + (damping_model[i][i] != damping_model[j][j]) || + (tangential_model[i][i] != tangential_model[j][j]) || + (roll_model[i][i] != roll_model[j][j]) || + (twist_model[i][i] != twist_model[j][j])) { + + char str[512]; + sprintf(str,"Granular pair style functional forms are different, " + "cannot mix coefficients for types %d and %d. \n" + "This combination must be set explicitly " + "via pair_coeff command",i,j); + error->one(FLERR,str); + } + + if (normal_model[i][j] == HERTZ || normal_model[i][j] == HOOKE) + normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = + mix_geom(normal_coeffs[i][i][0], normal_coeffs[j][j][0]); + else + normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = + mix_stiffnessE(Emod[i][i], Emod[j][j], poiss[i][i], poiss[j][j]); + + normal_coeffs[i][j][1] = normal_coeffs[j][i][1] = + mix_geom(normal_coeffs[i][i][1], normal_coeffs[j][j][1]); + if ((normal_model[i][j] == JKR) || (normal_model[i][j] == DMT)) + normal_coeffs[i][j][3] = normal_coeffs[j][i][3] = + mix_geom(normal_coeffs[i][i][3], normal_coeffs[j][j][3]); + + for (int k = 0; k < 3; k++) + tangential_coeffs[i][j][k] = tangential_coeffs[j][i][k] = + mix_geom(tangential_coeffs[i][i][k], tangential_coeffs[j][j][k]); + + if (roll_model[i][j] != ROLL_NONE) { + for (int k = 0; k < 3; k++) + roll_coeffs[i][j][k] = roll_coeffs[j][i][k] = + mix_geom(roll_coeffs[i][i][k], roll_coeffs[j][j][k]); + } + + if (twist_model[i][j] != TWIST_NONE && twist_model[i][j] != TWIST_MARSHALL) { + for (int k = 0; k < 3; k++) + twist_coeffs[i][j][k] = twist_coeffs[j][i][k] = + mix_geom(twist_coeffs[i][i][k], twist_coeffs[j][j][k]); + } + } + + // It is possible that cut[i][j] at this point is still 0.0. + // This can happen when + // there is a future fix_pour after the current run. A cut[i][j] = 0.0 creates + // problems because neighbor.cpp uses min(cut[i][j]) to decide on the bin size + // To avoid this issue, for cases involving cut[i][j] = 0.0 (possible only + // if there is no current information about radius/cutoff of type i and j). + // we assign cutoff = max(cut[i][j]) for i,j such that cut[i][j] > 0.0. + + double pulloff; + + if (cutoff_type[i][j] < 0 && cutoff_global < 0) { + if (((maxrad_dynamic[i] > 0.0) && (maxrad_dynamic[j] > 0.0)) || + ((maxrad_dynamic[i] > 0.0) && (maxrad_frozen[j] > 0.0)) || + // radius info about both i and j exist + ((maxrad_frozen[i] > 0.0) && (maxrad_dynamic[j] > 0.0))) { + cutoff = maxrad_dynamic[i]+maxrad_dynamic[j]; + pulloff = 0.0; + if (normal_model[i][j] == JKR) { + pulloff = pulloff_distance(maxrad_dynamic[i], maxrad_dynamic[j], i, j); + cutoff += pulloff; + } + + if (normal_model[i][j] == JKR) + pulloff = pulloff_distance(maxrad_frozen[i], maxrad_dynamic[j], i, j); + cutoff = MAX(cutoff, maxrad_frozen[i]+maxrad_dynamic[j]+pulloff); + + if (normal_model[i][j] == JKR) + pulloff = pulloff_distance(maxrad_dynamic[i], maxrad_frozen[j], i, j); + cutoff = MAX(cutoff,maxrad_dynamic[i]+maxrad_frozen[j]+pulloff); + + } else { + + // radius info about either i or j does not exist + // (i.e. not present and not about to get poured; + // set to largest value to not interfere with neighbor list) + + double cutmax = 0.0; + for (int k = 1; k <= atom->ntypes; k++) { + cutmax = MAX(cutmax,2.0*maxrad_dynamic[k]); + cutmax = MAX(cutmax,2.0*maxrad_frozen[k]); + } + cutoff = cutmax; + } + } else if (cutoff_type[i][j] > 0) { + cutoff = cutoff_type[i][j]; + } else if (cutoff_global > 0) { + cutoff = cutoff_global; + } + + return cutoff; +} + +/* ---------------------------------------------------------------------- + proc 0 writes to restart file +------------------------------------------------------------------------- */ + +void PairGranular::write_restart(FILE *fp) +{ + int i,j; + for (i = 1; i <= atom->ntypes; i++) { + for (j = i; j <= atom->ntypes; j++) { + fwrite(&setflag[i][j],sizeof(int),1,fp); + if (setflag[i][j]) { + fwrite(&normal_model[i][j],sizeof(int),1,fp); + fwrite(&damping_model[i][j],sizeof(int),1,fp); + fwrite(&tangential_model[i][j],sizeof(int),1,fp); + fwrite(&roll_model[i][j],sizeof(int),1,fp); + fwrite(&twist_model[i][j],sizeof(int),1,fp); + fwrite(normal_coeffs[i][j],sizeof(double),4,fp); + fwrite(tangential_coeffs[i][j],sizeof(double),3,fp); + fwrite(roll_coeffs[i][j],sizeof(double),3,fp); + fwrite(twist_coeffs[i][j],sizeof(double),3,fp); + fwrite(&cutoff_type[i][j],sizeof(double),1,fp); + } + } + } +} + +/* ---------------------------------------------------------------------- + proc 0 reads from restart file, bcasts +------------------------------------------------------------------------- */ + +void PairGranular::read_restart(FILE *fp) +{ + allocate(); + int i,j; + int me = comm->me; + for (i = 1; i <= atom->ntypes; i++) { + for (j = i; j <= atom->ntypes; j++) { + if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); + MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); + if (setflag[i][j]) { + if (me == 0) { + utils::sfread(FLERR,&normal_model[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&damping_model[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&tangential_model[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&roll_model[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,&twist_model[i][j],sizeof(int),1,fp,nullptr,error); + utils::sfread(FLERR,normal_coeffs[i][j],sizeof(double),4,fp,nullptr,error); + utils::sfread(FLERR,tangential_coeffs[i][j],sizeof(double),3,fp,nullptr,error); + utils::sfread(FLERR,roll_coeffs[i][j],sizeof(double),3,fp,nullptr,error); + utils::sfread(FLERR,twist_coeffs[i][j],sizeof(double),3,fp,nullptr,error); + utils::sfread(FLERR,&cutoff_type[i][j],sizeof(double),1,fp,nullptr,error); + } + MPI_Bcast(&normal_model[i][j],1,MPI_INT,0,world); + MPI_Bcast(&damping_model[i][j],1,MPI_INT,0,world); + MPI_Bcast(&tangential_model[i][j],1,MPI_INT,0,world); + MPI_Bcast(&roll_model[i][j],1,MPI_INT,0,world); + MPI_Bcast(&twist_model[i][j],1,MPI_INT,0,world); + MPI_Bcast(normal_coeffs[i][j],4,MPI_DOUBLE,0,world); + MPI_Bcast(tangential_coeffs[i][j],3,MPI_DOUBLE,0,world); + MPI_Bcast(roll_coeffs[i][j],3,MPI_DOUBLE,0,world); + MPI_Bcast(twist_coeffs[i][j],3,MPI_DOUBLE,0,world); + MPI_Bcast(&cutoff_type[i][j],1,MPI_DOUBLE,0,world); + } + } + } +} + +/* ---------------------------------------------------------------------- */ + +void PairGranular::reset_dt() +{ + dt = update->dt; +} + +/* ---------------------------------------------------------------------- */ + +double PairGranular::single(int i, int j, int itype, int jtype, + double rsq, double /* factor_coul */, + double /* factor_lj */, double &fforce) +{ + double radi,radj,radsum; + double r,rinv,delx,dely,delz, nx, ny, nz, Reff; + double dR, dR2; + double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3,wr1,wr2,wr3; + double vtr1,vtr2,vtr3,vrel; + double mi,mj,meff; + double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3; + + double knfac, damp_normal, damp_normal_prefactor; + double k_tangential, damp_tangential; + double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit; + double fs, fs1, fs2, fs3; + + // for JKR + double R2, coh, F_pulloff, delta_pulloff, dist_pulloff, a, a2, E; + double delta, t0, t1, t2, t3, t4, t5, t6; + double sqrt1, sqrt2, sqrt3; + + // rolling + double k_roll, damp_roll; + double rollmag; + double fr, fr1, fr2, fr3; + + // twisting + double k_twist, damp_twist, mu_twist; + double signtwist, magtwist, magtortwist, Mtcrit; + + double shrmag; + int jnum; + int *jlist; + double *history,*allhistory; + + int nall = atom->nlocal + atom->nghost; + if ((i >= nall) || (j >= nall)) + error->all(FLERR,"Not enough atoms for pair granular single function"); + + double *radius = atom->radius; + radi = radius[i]; + radj = radius[j]; + radsum = radi + radj; + Reff = (radsum > 0.0) ? radi*radj/radsum : 0.0; + + bool touchflag; + E = normal_coeffs[itype][jtype][0]; + if (normal_model[itype][jtype] == JKR) { + E *= THREEQUARTERS; + R2 = Reff*Reff; + coh = normal_coeffs[itype][jtype][3]; + a = cbrt(9.0*MY_PI*coh*R2/(4*E)); + delta_pulloff = a*a/Reff - 2*sqrt(MY_PI*coh*a/E); + dist_pulloff = radsum+delta_pulloff; + touchflag = (rsq <= dist_pulloff*dist_pulloff); + } else touchflag = (rsq <= radsum*radsum); + + if (!touchflag) { + fforce = 0.0; + for (int m = 0; m < single_extra; m++) svector[m] = 0.0; + return 0.0; + } + + double **x = atom->x; + delx = x[i][0] - x[j][0]; + dely = x[i][1] - x[j][1]; + delz = x[i][2] - x[j][2]; + r = sqrt(rsq); + rinv = 1.0/r; + + nx = delx*rinv; + ny = dely*rinv; + nz = delz*rinv; + + // relative translational velocity + + double **v = atom->v; + vr1 = v[i][0] - v[j][0]; + vr2 = v[i][1] - v[j][1]; + vr3 = v[i][2] - v[j][2]; + + // normal component + + vnnr = vr1*nx + vr2*ny + vr3*nz; + vn1 = nx*vnnr; + vn2 = ny*vnnr; + vn3 = nz*vnnr; + + // tangential component + + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // relative rotational velocity + + double **omega = atom->omega; + wr1 = (radi*omega[i][0] + radj*omega[j][0]); + wr2 = (radi*omega[i][1] + radj*omega[j][1]); + wr3 = (radi*omega[i][2] + radj*omega[j][2]); + + // meff = effective mass of pair of particles + // if I or J part of rigid body, use body mass + // if I or J is frozen, meff is other particle + + double *rmass = atom->rmass; + int *mask = atom->mask; + + mi = rmass[i]; + mj = rmass[j]; + if (fix_rigid) { + // NOTE: ensure mass_rigid is current for owned+ghost atoms? + if (mass_rigid[i] > 0.0) mi = mass_rigid[i]; + if (mass_rigid[j] > 0.0) mj = mass_rigid[j]; + } + + meff = mi*mj / (mi+mj); + if (mask[i] & freeze_group_bit) meff = mj; + if (mask[j] & freeze_group_bit) meff = mi; + + delta = radsum - r; + dR = delta*Reff; + if (normal_model[itype][jtype] == JKR) { + dR2 = dR*dR; + t0 = coh*coh*R2*R2*E; + t1 = PI27SQ*t0; + t2 = 8*dR*dR2*E*E*E; + t3 = 4*dR2*E; + // in case sqrt(0) < 0 due to precision issues + sqrt1 = MAX(0, t0*(t1+2*t2)); + t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1)); + t5 = t3/t4 + t4/E; + sqrt2 = MAX(0, 2*dR + t5); + t6 = sqrt(sqrt2); + sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6)); + a = INVROOT6*(t6 + sqrt(sqrt3)); + a2 = a*a; + knfac = normal_coeffs[itype][jtype][0]*a; + Fne = knfac*a2/Reff - MY_2PI*a2*sqrt(4*coh*E/(MY_PI*a)); + } else { + knfac = E; + Fne = knfac*delta; + a = sqrt(dR); + if (normal_model[itype][jtype] != HOOKE) { + Fne *= a; + knfac *= a; + } + if (normal_model[itype][jtype] == DMT) + Fne -= 4*MY_PI*normal_coeffs[itype][jtype][3]*Reff; + } + + if (damping_model[itype][jtype] == VELOCITY) { + damp_normal = 1; + } else if (damping_model[itype][jtype] == MASS_VELOCITY) { + damp_normal = meff; + } else if (damping_model[itype][jtype] == VISCOELASTIC) { + damp_normal = a*meff; + } else if (damping_model[itype][jtype] == TSUJI) { + damp_normal = sqrt(meff*knfac); + } else damp_normal = 0.0; + + damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal; + Fdamp = -damp_normal_prefactor*vnnr; + + Fntot = Fne + Fdamp; + + jnum = list->numneigh[i]; + jlist = list->firstneigh[i]; + + if (use_history) { + if ((fix_history == nullptr) || (fix_history->firstvalue == nullptr)) + error->one(FLERR,"Pair granular single computation needs history"); + allhistory = fix_history->firstvalue[i]; + for (int jj = 0; jj < jnum; jj++) { + neighprev++; + if (neighprev >= jnum) neighprev = 0; + if (jlist[neighprev] == j) break; + } + history = &allhistory[size_history*neighprev]; + } + + //**************************************** + // tangential force, including history effects + //**************************************** + + // For linear, mindlin, mindlin_rescale: + // history = cumulative tangential displacement + // + // For mindlin/force, mindlin_rescale/force: + // history = cumulative tangential elastic force + + // tangential component + vt1 = vr1 - vn1; + vt2 = vr2 - vn2; + vt3 = vr3 - vn3; + + // relative rotational velocity + wr1 = (radi*omega[i][0] + radj*omega[j][0]); + wr2 = (radi*omega[i][1] + radj*omega[j][1]); + wr3 = (radi*omega[i][2] + radj*omega[j][2]); + + // relative tangential velocities + vtr1 = vt1 - (nz*wr2-ny*wr3); + vtr2 = vt2 - (nx*wr3-nz*wr1); + vtr3 = vt3 - (ny*wr1-nx*wr2); + vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; + vrel = sqrt(vrel); + + if (normal_model[itype][jtype] == JKR) { + F_pulloff = 3*MY_PI*coh*Reff; + Fncrit = fabs(Fne + 2*F_pulloff); + } else if (normal_model[itype][jtype] == DMT) { + F_pulloff = 4*MY_PI*coh*Reff; + Fncrit = fabs(Fne + 2*F_pulloff); + } else { + Fncrit = fabs(Fntot); + } + Fscrit = tangential_coeffs[itype][jtype][2] * Fncrit; + + //------------------------------ + // tangential forces + //------------------------------ + k_tangential = tangential_coeffs[itype][jtype][0]; + damp_tangential = tangential_coeffs[itype][jtype][1]*damp_normal_prefactor; + + if (tangential_history) { + if (tangential_model[itype][jtype] != TANGENTIAL_HISTORY) { + k_tangential *= a; + } + + shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + + history[2]*history[2]); + + // tangential forces = history + tangential velocity damping + if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || + tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { + fs1 = -k_tangential*history[0] - damp_tangential*vtr1; + fs2 = -k_tangential*history[1] - damp_tangential*vtr2; + fs3 = -k_tangential*history[2] - damp_tangential*vtr3; + } else { + fs1 = history[0] - damp_tangential*vtr1; + fs2 = history[1] - damp_tangential*vtr2; + fs3 = history[2] - damp_tangential*vtr3; + } + + // rescale frictional forces if needed + fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); + if (fs > Fscrit) { + if (shrmag != 0.0) { + fs1 *= Fscrit/fs; + fs2 *= Fscrit/fs; + fs3 *= Fscrit/fs; + fs *= Fscrit/fs; + } else fs1 = fs2 = fs3 = fs = 0.0; + } + + // classic pair gran/hooke (no history) + } else { + fs = damp_tangential*vrel; + if (vrel != 0.0) Ft = MIN(Fscrit,fs) / vrel; + else Ft = 0.0; + fs1 = -Ft*vtr1; + fs2 = -Ft*vtr2; + fs3 = -Ft*vtr3; + fs = Ft*vrel; + } + + //**************************************** + // rolling resistance + //**************************************** + + if ((roll_model[itype][jtype] != ROLL_NONE) + || (twist_model[itype][jtype] != TWIST_NONE)) { + relrot1 = omega[i][0] - omega[j][0]; + relrot2 = omega[i][1] - omega[j][1]; + relrot3 = omega[i][2] - omega[j][2]; + + // rolling velocity, see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) + // this is different from the Marshall papers, + // which use the Bagi/Kuhn formulation + // for rolling velocity (see Wang et al for why the latter is wrong) + + vrl1 = Reff*(relrot2*nz - relrot3*ny); //- 0.5*((radj-radi)/radsum)*vtr1; + vrl2 = Reff*(relrot3*nx - relrot1*nz); //- 0.5*((radj-radi)/radsum)*vtr2; + vrl3 = Reff*(relrot1*ny - relrot2*nx); //- 0.5*((radj-radi)/radsum)*vtr3; + + int rhist0 = roll_history_index; + int rhist1 = rhist0 + 1; + int rhist2 = rhist1 + 1; + + // rolling displacement + rollmag = sqrt(history[rhist0]*history[rhist0] + + history[rhist1]*history[rhist1] + + history[rhist2]*history[rhist2]); + + k_roll = roll_coeffs[itype][jtype][0]; + damp_roll = roll_coeffs[itype][jtype][1]; + fr1 = -k_roll*history[rhist0] - damp_roll*vrl1; + fr2 = -k_roll*history[rhist1] - damp_roll*vrl2; + fr3 = -k_roll*history[rhist2] - damp_roll*vrl3; + + // rescale frictional displacements and forces if needed + Frcrit = roll_coeffs[itype][jtype][2] * Fncrit; + + fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3); + if (fr > Frcrit) { + if (rollmag != 0.0) { + fr1 *= Frcrit/fr; + fr2 *= Frcrit/fr; + fr3 *= Frcrit/fr; + fr *= Frcrit/fr; + } else fr1 = fr2 = fr3 = fr = 0.0; + } + } else fr1 = fr2 = fr3 = fr = 0.0; + + //**************************************** + // twisting torque, including history effects + //**************************************** + + if (twist_model[itype][jtype] != TWIST_NONE) { + // omega_T (eq 29 of Marshall) + magtwist = relrot1*nx + relrot2*ny + relrot3*nz; + if (twist_model[itype][jtype] == TWIST_MARSHALL) { + k_twist = 0.5*k_tangential*a*a;; //eq 32 + damp_twist = 0.5*damp_tangential*a*a; + mu_twist = TWOTHIRDS*a*tangential_coeffs[itype][jtype][2];; + } else { + k_twist = twist_coeffs[itype][jtype][0]; + damp_twist = twist_coeffs[itype][jtype][1]; + mu_twist = twist_coeffs[itype][jtype][2]; + } + // M_t torque (eq 30) + magtortwist = -k_twist*history[twist_history_index] - damp_twist*magtwist; + signtwist = (magtwist > 0) - (magtwist < 0); + Mtcrit = mu_twist*Fncrit; // critical torque (eq 44) + if (fabs(magtortwist) > Mtcrit) { + magtortwist = -Mtcrit * signtwist; // eq 34 + } else magtortwist = 0.0; + } else magtortwist = 0.0; + + // set force and return no energy + + fforce = Fntot*rinv; + + // set single_extra quantities + + svector[0] = fs1; + svector[1] = fs2; + svector[2] = fs3; + svector[3] = fs; + svector[4] = fr1; + svector[5] = fr2; + svector[6] = fr3; + svector[7] = fr; + svector[8] = magtortwist; + svector[9] = delx; + svector[10] = dely; + svector[11] = delz; + return 0.0; +} + +/* ---------------------------------------------------------------------- */ + +int PairGranular::pack_forward_comm(int n, int *list, double *buf, + int /* pbc_flag */, int * /* pbc */) +{ + int i,j,m; + + m = 0; + for (i = 0; i < n; i++) { + j = list[i]; + buf[m++] = mass_rigid[j]; + } + return m; +} + +/* ---------------------------------------------------------------------- */ + +void PairGranular::unpack_forward_comm(int n, int first, double *buf) +{ + int i,m,last; + + m = 0; + last = first + n; + for (i = first; i < last; i++) + mass_rigid[i] = buf[m++]; +} + +/* ---------------------------------------------------------------------- + memory usage of local atom-based arrays +------------------------------------------------------------------------- */ + +double PairGranular::memory_usage() +{ + double bytes = (double)nmax * sizeof(double); + return bytes; +} + +/* ---------------------------------------------------------------------- + mixing of Young's modulus (E) +------------------------------------------------------------------------- */ + +double PairGranular::mix_stiffnessE(double Eii, double Ejj, + double poisii, double poisjj) +{ + return 1/((1-poisii*poisii)/Eii+(1-poisjj*poisjj)/Ejj); +} + +/* ---------------------------------------------------------------------- + mixing of shear modulus (G) +------------------------------------------------------------------------ */ + +double PairGranular::mix_stiffnessG(double Eii, double Ejj, + double poisii, double poisjj) +{ + return 1/((2*(2-poisii)*(1+poisii)/Eii) + (2*(2-poisjj)*(1+poisjj)/Ejj)); +} + +/* ---------------------------------------------------------------------- + mixing of everything else +------------------------------------------------------------------------- */ + +double PairGranular::mix_geom(double valii, double valjj) +{ + return sqrt(valii*valjj); +} + + +/* ---------------------------------------------------------------------- + compute pull-off distance (beyond contact) for a given radius and atom type +------------------------------------------------------------------------- */ + +double PairGranular::pulloff_distance(double radi, double radj, + int itype, int jtype) +{ + double E, coh, a, Reff; + Reff = radi*radj/(radi+radj); + if (Reff <= 0) return 0; + coh = normal_coeffs[itype][jtype][3]; + E = normal_coeffs[itype][jtype][0]*THREEQUARTERS; + a = cbrt(9*MY_PI*coh*Reff*Reff/(4*E)); + return a*a/Reff - 2*sqrt(MY_PI*coh*a/E); +} + +/* ---------------------------------------------------------------------- + transfer history during fix/neigh/history exchange + only needed if any history entries i-j are not just negative of j-i entries +------------------------------------------------------------------------- */ + +void PairGranular::transfer_history(double* source, double* target) +{ + for (int i = 0; i < size_history; i++) + target[i] = history_transfer_factors[i]*source[i]; +} From 46f98ec4dc85d04d0f5e65cb2155e6b3e3a24fcb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 10:23:16 -0400 Subject: [PATCH 039/104] make compatible with const data pointers as arguments --- src/library.cpp | 18 +++++++++++------- src/library.h | 14 +++++++------- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index 7dbe5f9467..ac059f53ae 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -3822,8 +3822,8 @@ X(1),Y(1),Z(1),X(2),Y(2),Z(2),...,X(N),Y(N),Z(N). * \return number of atoms created on success; -1 on failure (no box, no atom IDs, etc.) */ -int lammps_create_atoms(void *handle, int n, tagint *id, int *type, - double *x, double *v, imageint *image, +int lammps_create_atoms(void *handle, int n, const tagint *id, const int *type, + const double *x, const double *v, const imageint *image, int bexpand) { LAMMPS *lmp = (LAMMPS *) handle; @@ -3859,13 +3859,17 @@ int lammps_create_atoms(void *handle, int n, tagint *id, int *type, int nlocal_prev = nlocal; double xdata[3]; + imageint idata, *img; for (int i = 0; i < n; i++) { xdata[0] = x[3*i]; xdata[1] = x[3*i+1]; xdata[2] = x[3*i+2]; - imageint * img = image ? image + i : nullptr; - tagint tag = id ? id[i] : 0; + if (image) { + idata = image[i]; + img = &idata; + } else img = nullptr; + const tagint tag = id ? id[i] : 0; // create atom only on MPI rank that would own it @@ -3943,7 +3947,7 @@ int lammps_create_atoms(void *handle, int n, tagint *id, int *type, * multiple requests from the same pair style instance * \return return neighbor list index if found, otherwise -1 */ -int lammps_find_pair_neighlist(void *handle, char *style, int exact, int nsub, int reqid) { +int lammps_find_pair_neighlist(void *handle, const char *style, int exact, int nsub, int reqid) { LAMMPS *lmp = (LAMMPS *) handle; Pair *pair = lmp->force->pair_match(style, exact, nsub); @@ -3973,7 +3977,7 @@ int lammps_find_pair_neighlist(void *handle, char *style, int exact, int nsub, i * multiple requests from the same fix * \return return neighbor list index if found, otherwise -1 */ -int lammps_find_fix_neighlist(void *handle, char *id, int reqid) { +int lammps_find_fix_neighlist(void *handle, const char *id, int reqid) { LAMMPS *lmp = (LAMMPS *) handle; const int ifix = lmp->modify->find_fix(id); if (ifix < 0) return -1; @@ -4003,7 +4007,7 @@ int lammps_find_fix_neighlist(void *handle, char *id, int reqid) { * multiple requests from the same compute * \return return neighbor list index if found, otherwise -1 */ -int lammps_find_compute_neighlist(void* handle, char *id, int reqid) { +int lammps_find_compute_neighlist(void* handle, const char *id, int reqid) { LAMMPS *lmp = (LAMMPS *) handle; const int icompute = lmp->modify->find_compute(id); if (icompute < 0) return -1; diff --git a/src/library.h b/src/library.h index 11cd72388a..3500e1b65e 100644 --- a/src/library.h +++ b/src/library.h @@ -160,20 +160,20 @@ void lammps_scatter(void *handle, char *name, int type, int count, void *data); void lammps_scatter_subset(void *handle, char *name, int type, int count, int ndata, int *ids, void *data); #if !defined(LAMMPS_BIGBIG) -int lammps_create_atoms(void *handle, int n, int *id, int *type, - double *x, double *v, int *image, int bexpand); +int lammps_create_atoms(void *handle, int n, const int *id, const int *type, + const double *x, const double *v, const int *image, int bexpand); #else -int lammps_create_atoms(void *handle, int n, int64_t *id, int *type, - double *x, double *v, int64_t* image, int bexpand); +int lammps_create_atoms(void *handle, int n, const int64_t *id, const int *type, + const double *x, const double *v, const int64_t* image, int bexpand); #endif /* ---------------------------------------------------------------------- * Library functions for accessing neighbor lists * ---------------------------------------------------------------------- */ -int lammps_find_pair_neighlist(void *handle, char *style, int exact, int nsub, int request); -int lammps_find_fix_neighlist(void *handle, char *id, int request); -int lammps_find_compute_neighlist(void *handle, char *id, int request); +int lammps_find_pair_neighlist(void *handle, const char *style, int exact, int nsub, int request); +int lammps_find_fix_neighlist(void *handle, const char *id, int request); +int lammps_find_compute_neighlist(void *handle, const char *id, int request); int lammps_neighlist_num_elements(void *handle, int idx); void lammps_neighlist_element_neighbors(void *handle, int idx, int element, int *iatom, int *numneigh, int **neighbors); From 432ccffb3e7a719d5b0db9cc8a992ef105f2266a Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 09:58:20 -0400 Subject: [PATCH 040/104] find manybody potentials --- unittest/c-library/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/unittest/c-library/CMakeLists.txt b/unittest/c-library/CMakeLists.txt index 121c42f7fd..3c24cdcff4 100644 --- a/unittest/c-library/CMakeLists.txt +++ b/unittest/c-library/CMakeLists.txt @@ -11,6 +11,7 @@ add_executable(test_library_properties test_library_properties.cpp test_main.cpp target_link_libraries(test_library_properties PRIVATE lammps GTest::GTest GTest::GMock) target_compile_definitions(test_library_properties PRIVATE -DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR}) add_test(LibraryProperties test_library_properties) +set_tests_properties(LibraryProperties PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}") set(TEST_CONFIG_DEFS "-DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR};-DLAMMPS_${LAMMPS_SIZES}") set(PKG_COUNT 0) From 5520d6edd737af74792386e0c7f4759757a9ff90 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 10:24:46 -0400 Subject: [PATCH 041/104] confirm that no incompatible neighbor lists are found --- unittest/python/python-commands.py | 2 ++ unittest/python/python-numpy.py | 2 ++ 2 files changed, 4 insertions(+) diff --git a/unittest/python/python-commands.py b/unittest/python/python-commands.py index 530cea8b13..f3526d6d4b 100644 --- a/unittest/python/python-commands.py +++ b/unittest/python/python-commands.py @@ -313,6 +313,8 @@ create_atoms 1 single & self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) self.assertNotEqual(self.lmp.find_compute_neighlist("dist"),-1) + self.assertEqual(self.lmp.find_compute_neighlist("xxx"),-1) + self.assertEqual(self.lmp.find_fix_neighlist("dist"),-1) # the compute has a half neighbor list nlist = self.lmp.get_neighlist(self.lmp.find_compute_neighlist("dist")) diff --git a/unittest/python/python-numpy.py b/unittest/python/python-numpy.py index f3a116b91b..dc121691ab 100644 --- a/unittest/python/python-numpy.py +++ b/unittest/python/python-numpy.py @@ -364,6 +364,8 @@ class PythonNumpy(unittest.TestCase): self.assertNotEqual(self.lmp.find_pair_neighlist("lj/cut"),-1) self.assertNotEqual(self.lmp.find_compute_neighlist("dist"),-1) + self.assertEqual(self.lmp.find_compute_neighlist("xxx"),-1) + self.assertEqual(self.lmp.find_fix_neighlist("dist"),-1) # the compute has a half neighbor list nlist = self.lmp.numpy.get_neighlist(self.lmp.find_compute_neighlist("dist")) From cea4298946f8be5a7c605e6d1f9d55abb32ca8cd Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 09:59:09 -0400 Subject: [PATCH 042/104] silence LAMMPS output, if requested --- unittest/c-library/test_library_properties.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index 182beee7d0..2b2b1cd58e 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -160,7 +160,9 @@ TEST_F(LibraryProperties, box) boxlo[0] = -6.1; boxhi[1] = 7.3; xy = 0.1; + if (!verbose) ::testing::internal::CaptureStdout(); lammps_reset_box(lmp, boxlo, boxhi, xy, yz, xz); + if (!verbose) ::testing::internal::GetCapturedStdout(); lammps_extract_box(lmp, boxlo, boxhi, &xy, &yz, &xz, pflags, &boxflag); EXPECT_DOUBLE_EQ(boxlo[0], -6.1); EXPECT_DOUBLE_EQ(boxlo[1], -7.692866); From 1a48667026821125717e3410d268e96cf428747b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 10:00:14 -0400 Subject: [PATCH 043/104] add minimal test for neighbor list functions --- .../c-library/test_library_properties.cpp | 54 +++++++++++++++++++ 1 file changed, 54 insertions(+) diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index 2b2b1cd58e..19e881e32b 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -315,6 +315,60 @@ TEST_F(LibraryProperties, global) EXPECT_DOUBLE_EQ((*d_ptr), 0.1); }; +TEST_F(LibraryProperties, neighlist) +{ + if (!lammps_has_style(lmp, "pair", "sw")) GTEST_SKIP(); + const char sysinit[] = "boundary f f f\n" + "units real\n" + "region box block -5 5 -5 5 -5 5\n" + "create_box 2 box\n" + "mass 1 1.0\n" + "mass 2 1.0\n" + "pair_style hybrid/overlay lj/cut 4.0 lj/cut 4.0 morse 4.0 sw\n" + "pair_coeff * * sw Si.sw Si NULL\n" + "pair_coeff 1 2 morse 0.2 2.0 2.0\n" + "pair_coeff 2 2 lj/cut 1 0.1 2.0\n" + "pair_coeff * * lj/cut 2 0.01 2.0\n" + "compute dist all pair/local dist\n" + "fix dist all ave/histo 1 1 1 0.0 3.0 4 c_dist mode vector\n" + "thermo_style custom f_dist[*]"; + + const double pos[] = {0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, + 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, -1.1, 0.0, 0.0, 1.0}; + const tagint ids[] = {1, 2, 3, 4, 5, 6, 7}; + const int types[] = {1, 1, 1, 1, 2, 2, 2}; + + const int numatoms = sizeof(ids) / sizeof(tagint); + + if (!verbose) ::testing::internal::CaptureStdout(); + lammps_commands_string(lmp, sysinit); + lammps_create_atoms(lmp, numatoms, ids, types, pos, nullptr, nullptr, 0); + lammps_command(lmp, "run 0 post no"); + if (!verbose) ::testing::internal::GetCapturedStdout(); + + int nhisto = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,0,0); + int nskip = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,1,0); + double minval = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,2,0); + double maxval = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,3,0); + // 21 pair distances counted, none skipped, smallest 1.0, largest 2.1 + EXPECT_EQ(nhisto,21); + EXPECT_EQ(nskip,0); + EXPECT_DOUBLE_EQ(minval,1.0); + EXPECT_DOUBLE_EQ(maxval,2.1); + + const int nlocal = lammps_extract_setting(lmp, "nlocal"); + EXPECT_EQ(nlocal, numatoms); + EXPECT_NE(lammps_find_pair_neighlist(lmp, "sw", 1, 0, 0), -1); + EXPECT_NE(lammps_find_pair_neighlist(lmp, "morse", 1, 0, 0), -1); + EXPECT_NE(lammps_find_pair_neighlist(lmp, "lj/cut", 1, 1, 0), -1); + EXPECT_NE(lammps_find_pair_neighlist(lmp, "lj/cut", 1, 2, 0), -1); + EXPECT_EQ(lammps_find_pair_neighlist(lmp, "lj/cut", 1, 0, 0), -1); + EXPECT_EQ(lammps_find_pair_neighlist(lmp, "hybrid/overlay", 1, 0, 0), -1); + EXPECT_NE(lammps_find_compute_neighlist(lmp, "dist", 0),-1); + EXPECT_EQ(lammps_find_fix_neighlist(lmp, "dist", 0),-1); + EXPECT_EQ(lammps_find_compute_neighlist(lmp, "xxx", 0),-1); +}; + class AtomProperties : public ::testing::Test { protected: void *lmp; From 6205375c0317ec93fe1bb4715cef61bff1f969eb Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 10:04:16 -0400 Subject: [PATCH 044/104] allow const char for compute/fix id arguments --- src/library.cpp | 4 ++-- src/library.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/library.cpp b/src/library.cpp index ac059f53ae..8f23ffcb6c 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -1615,7 +1615,7 @@ lists the available options. * \return pointer (cast to ``void *``) to the location of the * requested data or ``NULL`` if not found. */ -void *lammps_extract_compute(void *handle, char *id, int style, int type) +void *lammps_extract_compute(void *handle, const char *id, int style, int type) { LAMMPS *lmp = (LAMMPS *) handle; @@ -1801,7 +1801,7 @@ The following table lists the available options. * \return pointer (cast to ``void *``) to the location of the * requested data or ``NULL`` if not found. */ -void *lammps_extract_fix(void *handle, char *id, int style, int type, +void *lammps_extract_fix(void *handle, const char *id, int style, int type, int nrow, int ncol) { LAMMPS *lmp = (LAMMPS *) handle; diff --git a/src/library.h b/src/library.h index 3500e1b65e..8db19f7eb2 100644 --- a/src/library.h +++ b/src/library.h @@ -138,8 +138,8 @@ void *lammps_extract_atom(void *handle, const char *name); * Library functions to access data from computes, fixes, variables in LAMMPS * ---------------------------------------------------------------------- */ -void *lammps_extract_compute(void *handle, char *id, int, int); -void *lammps_extract_fix(void *handle, char *, int, int, int, int); +void *lammps_extract_compute(void *handle, const char *, int, int); +void *lammps_extract_fix(void *handle, const char *, int, int, int, int); void *lammps_extract_variable(void *handle, const char *, const char *); int lammps_set_variable(void *, char *, char *); From cfc39b5a7338e8e621542cfaea10c29adbbd08c7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 10:44:07 -0400 Subject: [PATCH 045/104] complete porting python neighborlist test to c-library version --- .../c-library/test_library_properties.cpp | 56 +++++++++++++++++++ 1 file changed, 56 insertions(+) diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index 19e881e32b..de40c85617 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -367,6 +367,62 @@ TEST_F(LibraryProperties, neighlist) EXPECT_NE(lammps_find_compute_neighlist(lmp, "dist", 0),-1); EXPECT_EQ(lammps_find_fix_neighlist(lmp, "dist", 0),-1); EXPECT_EQ(lammps_find_compute_neighlist(lmp, "xxx", 0),-1); + + // full neighbor list for 4 type 1 atoms + // all have 3 type 1 atom neighbors + int idx = lammps_find_pair_neighlist(lmp, "sw", 1, 0, 0); + int num = lammps_neighlist_num_elements(lmp, idx); + EXPECT_EQ(num, 4); + int iatom, inum, *neighbors; + for (int i=0; i < num; ++i) { + lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); + EXPECT_EQ(iatom,i); + EXPECT_EQ(inum,3); + EXPECT_NE(neighbors,nullptr); + } + + // half neighbor list for all pairs between type 1 and type 2 + // 4 type 1 atoms with 3 type 2 neighbors and 3 type 2 atoms without neighbors + idx = lammps_find_pair_neighlist(lmp, "morse", 0, 0, 0); + num = lammps_neighlist_num_elements(lmp, idx); + EXPECT_EQ(num, nlocal); + for (int i=0; i < num; ++i) { + lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); + if (i < 4) EXPECT_EQ(inum, 3); + else EXPECT_EQ(inum,0); + EXPECT_NE(neighbors,nullptr); + } + + // half neighbor list between type 2 atoms only + // 3 pairs with 2, 1, 0 neighbors + idx = lammps_find_pair_neighlist(lmp, "lj/cut", 1, 1, 0); + num = lammps_neighlist_num_elements(lmp, idx); + EXPECT_EQ(num, 3); + for (int i=0; i < num; ++i) { + lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); + EXPECT_EQ(inum,2-i); + EXPECT_NE(neighbors,nullptr); + } + + // half neighbor list between all pairs. same as simple lj/cut case + idx = lammps_find_pair_neighlist(lmp, "lj/cut", 1, 2, 0); + num = lammps_neighlist_num_elements(lmp, idx); + EXPECT_EQ(num, nlocal); + for (int i=0; i < num; ++i) { + lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); + EXPECT_EQ(inum,nlocal-1-i); + EXPECT_NE(neighbors,nullptr); + } + + // the compute has a half neighbor list + idx = lammps_find_compute_neighlist(lmp, "dist", 0); + num = lammps_neighlist_num_elements(lmp, idx); + EXPECT_EQ(num, nlocal); + for (int i=0; i < num; ++i) { + lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); + EXPECT_EQ(inum,nlocal-1-i); + EXPECT_NE(neighbors,nullptr); + } }; class AtomProperties : public ::testing::Test { From 7244ccf8b14c784aef356735df242f92368db681 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 11:04:02 -0400 Subject: [PATCH 046/104] update format --- .../c-library/test_library_properties.cpp | 61 ++++++++++--------- 1 file changed, 33 insertions(+), 28 deletions(-) diff --git a/unittest/c-library/test_library_properties.cpp b/unittest/c-library/test_library_properties.cpp index de40c85617..07e920bda7 100644 --- a/unittest/c-library/test_library_properties.cpp +++ b/unittest/c-library/test_library_properties.cpp @@ -346,15 +346,18 @@ TEST_F(LibraryProperties, neighlist) lammps_command(lmp, "run 0 post no"); if (!verbose) ::testing::internal::GetCapturedStdout(); - int nhisto = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,0,0); - int nskip = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,1,0); - double minval = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,2,0); - double maxval = *(double *)lammps_extract_fix(lmp,"dist",LMP_STYLE_GLOBAL,LMP_TYPE_VECTOR,3,0); + int nhisto = + *(double *)lammps_extract_fix(lmp, "dist", LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, 0, 0); + int nskip = *(double *)lammps_extract_fix(lmp, "dist", LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, 1, 0); + double minval = + *(double *)lammps_extract_fix(lmp, "dist", LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, 2, 0); + double maxval = + *(double *)lammps_extract_fix(lmp, "dist", LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR, 3, 0); // 21 pair distances counted, none skipped, smallest 1.0, largest 2.1 - EXPECT_EQ(nhisto,21); - EXPECT_EQ(nskip,0); - EXPECT_DOUBLE_EQ(minval,1.0); - EXPECT_DOUBLE_EQ(maxval,2.1); + EXPECT_EQ(nhisto, 21); + EXPECT_EQ(nskip, 0); + EXPECT_DOUBLE_EQ(minval, 1.0); + EXPECT_DOUBLE_EQ(maxval, 2.1); const int nlocal = lammps_extract_setting(lmp, "nlocal"); EXPECT_EQ(nlocal, numatoms); @@ -364,9 +367,9 @@ TEST_F(LibraryProperties, neighlist) EXPECT_NE(lammps_find_pair_neighlist(lmp, "lj/cut", 1, 2, 0), -1); EXPECT_EQ(lammps_find_pair_neighlist(lmp, "lj/cut", 1, 0, 0), -1); EXPECT_EQ(lammps_find_pair_neighlist(lmp, "hybrid/overlay", 1, 0, 0), -1); - EXPECT_NE(lammps_find_compute_neighlist(lmp, "dist", 0),-1); - EXPECT_EQ(lammps_find_fix_neighlist(lmp, "dist", 0),-1); - EXPECT_EQ(lammps_find_compute_neighlist(lmp, "xxx", 0),-1); + EXPECT_NE(lammps_find_compute_neighlist(lmp, "dist", 0), -1); + EXPECT_EQ(lammps_find_fix_neighlist(lmp, "dist", 0), -1); + EXPECT_EQ(lammps_find_compute_neighlist(lmp, "xxx", 0), -1); // full neighbor list for 4 type 1 atoms // all have 3 type 1 atom neighbors @@ -374,11 +377,11 @@ TEST_F(LibraryProperties, neighlist) int num = lammps_neighlist_num_elements(lmp, idx); EXPECT_EQ(num, 4); int iatom, inum, *neighbors; - for (int i=0; i < num; ++i) { + for (int i = 0; i < num; ++i) { lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); - EXPECT_EQ(iatom,i); - EXPECT_EQ(inum,3); - EXPECT_NE(neighbors,nullptr); + EXPECT_EQ(iatom, i); + EXPECT_EQ(inum, 3); + EXPECT_NE(neighbors, nullptr); } // half neighbor list for all pairs between type 1 and type 2 @@ -386,11 +389,13 @@ TEST_F(LibraryProperties, neighlist) idx = lammps_find_pair_neighlist(lmp, "morse", 0, 0, 0); num = lammps_neighlist_num_elements(lmp, idx); EXPECT_EQ(num, nlocal); - for (int i=0; i < num; ++i) { + for (int i = 0; i < num; ++i) { lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); - if (i < 4) EXPECT_EQ(inum, 3); - else EXPECT_EQ(inum,0); - EXPECT_NE(neighbors,nullptr); + if (i < 4) + EXPECT_EQ(inum, 3); + else + EXPECT_EQ(inum, 0); + EXPECT_NE(neighbors, nullptr); } // half neighbor list between type 2 atoms only @@ -398,30 +403,30 @@ TEST_F(LibraryProperties, neighlist) idx = lammps_find_pair_neighlist(lmp, "lj/cut", 1, 1, 0); num = lammps_neighlist_num_elements(lmp, idx); EXPECT_EQ(num, 3); - for (int i=0; i < num; ++i) { + for (int i = 0; i < num; ++i) { lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); - EXPECT_EQ(inum,2-i); - EXPECT_NE(neighbors,nullptr); + EXPECT_EQ(inum, 2 - i); + EXPECT_NE(neighbors, nullptr); } // half neighbor list between all pairs. same as simple lj/cut case idx = lammps_find_pair_neighlist(lmp, "lj/cut", 1, 2, 0); num = lammps_neighlist_num_elements(lmp, idx); EXPECT_EQ(num, nlocal); - for (int i=0; i < num; ++i) { + for (int i = 0; i < num; ++i) { lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); - EXPECT_EQ(inum,nlocal-1-i); - EXPECT_NE(neighbors,nullptr); + EXPECT_EQ(inum, nlocal - 1 - i); + EXPECT_NE(neighbors, nullptr); } // the compute has a half neighbor list idx = lammps_find_compute_neighlist(lmp, "dist", 0); num = lammps_neighlist_num_elements(lmp, idx); EXPECT_EQ(num, nlocal); - for (int i=0; i < num; ++i) { + for (int i = 0; i < num; ++i) { lammps_neighlist_element_neighbors(lmp, idx, i, &iatom, &inum, &neighbors); - EXPECT_EQ(inum,nlocal-1-i); - EXPECT_NE(neighbors,nullptr); + EXPECT_EQ(inum, nlocal - 1 - i); + EXPECT_NE(neighbors, nullptr); } }; From a4a23f3ef18cf0a82de27208e13e09ad2fea3011 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 11:04:24 -0400 Subject: [PATCH 047/104] add an example for looking up and looping over a neighbor list --- doc/src/Python_neighbor.rst | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/doc/src/Python_neighbor.rst b/doc/src/Python_neighbor.rst index cba117ad20..416fcb30a8 100644 --- a/doc/src/Python_neighbor.rst +++ b/doc/src/Python_neighbor.rst @@ -1,6 +1,43 @@ Neighbor list access ==================== +Access to neighbor lists is handled through a couple of wrapper classes +that allows to treat it like either a python list or a NumPy array. The +access procedure is similar to that of the C-library interface: use one +of the "find" functions to look up the index of the neighbor list in the +global table of neighbor lists and then get access to the neigbor list +data. The code sample below demonstrates reading the neighbor list data +using the NumPy access method. + +.. code-block:: python + + from lammps import lammps + import numpy as np + + lmp = lammps() + lmp.commands_string(""" + region box block -2 2 -2 2 -2 2 + lattice fcc 1.0 + create_box 1 box + create_atoms 1 box + mass 1 1.0 + pair_style lj/cut 2.5 + pair_coeff 1 1 1.0 1.0 + run 0 post no""") + + # look up the neighbor list + nlidx = lmp.find_pair_neighlist('lj/cut') + nl = lmp.numpy.get_neighlist(nlidx) + tags = lmp.extract_atom('id') + print("half neighbor list with {} entries".format(nl.size)) + # print neighbor list contents + for i in range(0,nl.size): + idx, nlist = nl.get(i) + print("\natom {} with ID {} has {} neighbors:".format(idx,tags[idx],nlist.size)) + if nlist.size > 0: + for n in np.nditer(nlist): + print(" atom {} with ID {}".format(n,tags[n])) + **Methods:** * :py:meth:`lammps.get_neighlist() `: Get neighbor list for given index From 17355f967a383968d7f618afde28b38ecbe4bce4 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 11:11:18 -0400 Subject: [PATCH 048/104] address spelling and manual processing issues --- doc/src/Library_scatter.rst | 2 +- doc/src/Python_neighbor.rst | 2 +- doc/utils/sphinx-config/false_positives.txt | 1 + python/lammps/core.py | 4 ++-- src/library.cpp | 4 ++-- 5 files changed, 7 insertions(+), 6 deletions(-) diff --git a/doc/src/Library_scatter.rst b/doc/src/Library_scatter.rst index 40a79c2d9b..b45f45f6fb 100644 --- a/doc/src/Library_scatter.rst +++ b/doc/src/Library_scatter.rst @@ -76,7 +76,7 @@ It documents the following functions: ----------------------- -.. doxygenfunction:: lammps_create_atoms(void *handle, int n, int *id, int *type, double *x, double *v, int *image, int bexpand) +.. doxygenfunction:: lammps_create_atoms(void *handle, int n, const int *id, const int *type, const double *x, const double *v, const int *image, int bexpand) :project: progguide diff --git a/doc/src/Python_neighbor.rst b/doc/src/Python_neighbor.rst index 416fcb30a8..00c4cc8996 100644 --- a/doc/src/Python_neighbor.rst +++ b/doc/src/Python_neighbor.rst @@ -5,7 +5,7 @@ Access to neighbor lists is handled through a couple of wrapper classes that allows to treat it like either a python list or a NumPy array. The access procedure is similar to that of the C-library interface: use one of the "find" functions to look up the index of the neighbor list in the -global table of neighbor lists and then get access to the neigbor list +global table of neighbor lists and then get access to the neighbor list data. The code sample below demonstrates reading the neighbor list data using the NumPy access method. diff --git a/doc/utils/sphinx-config/false_positives.txt b/doc/utils/sphinx-config/false_positives.txt index 38a6971f4c..c10e978428 100644 --- a/doc/utils/sphinx-config/false_positives.txt +++ b/doc/utils/sphinx-config/false_positives.txt @@ -2681,6 +2681,7 @@ representable Reproducibility reproducibility repuls +reqid rescale rescaled rescales diff --git a/python/lammps/core.py b/python/lammps/core.py index 11adecdca1..1f606f67f4 100644 --- a/python/lammps/core.py +++ b/python/lammps/core.py @@ -1753,9 +1753,9 @@ class lammps(object): Search for a neighbor list requested by a pair style instance that matches "style". If exact is True, the pair style name must match exactly. If exact is False, the pair style name is matched against - "style" as regular expression or substring. If the pair style is a + "style" as regular expression or sub-string. If the pair style is a hybrid pair style, the style is instead matched against the hybrid - sub-styles. If the same pair style is used as substyle multiple + sub-styles. If the same pair style is used as sub-style multiple types, you must set nsub to a value n > 0 which indicates the nth instance of that sub-style to be used (same as for the pair_coeff command). The default value of 0 will fail to match in that case. diff --git a/src/library.cpp b/src/library.cpp index 8f23ffcb6c..b72c8d7220 100644 --- a/src/library.cpp +++ b/src/library.cpp @@ -3926,7 +3926,7 @@ int lammps_create_atoms(void *handle, int n, const tagint *id, const int *type, * This function determines which of the available neighbor lists for * pair styles matches the given conditions. It first matches the style * name. If exact is 1 the name must match exactly, if exact is 0, a - * regular expression or substring match is done. If the pair style is + * regular expression or sub-string match is done. If the pair style is * hybrid or hybrid/overlay the style is matched against the sub styles * instead. * If a the same pair style is used multiple times as a sub-style, the @@ -3941,7 +3941,7 @@ int lammps_create_atoms(void *handle, int n, const tagint *id, const int *type, * \param handle pointer to a previously created LAMMPS instance cast to ``void *``. * \param style String used to search for pair style instance * \param exact Flag to control whether style should match exactly or only - * a regular expression / substring match is applied. + * a regular expression / sub-string match is applied. * \param nsub match nsub-th hybrid sub-style instance of the same style * \param reqid request id to identify neighbor list in case there are * multiple requests from the same pair style instance From b2e9ffa67371f340ebae59e1285b26e1945b8f07 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sat, 3 Apr 2021 11:15:00 -0400 Subject: [PATCH 049/104] add missing entry to standard packages list --- doc/src/Packages_standard.rst | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/src/Packages_standard.rst b/doc/src/Packages_standard.rst index ab9be69ab3..81623c8d4a 100644 --- a/doc/src/Packages_standard.rst +++ b/doc/src/Packages_standard.rst @@ -71,6 +71,8 @@ package: +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`PERI ` | Peridynamics models | :doc:`pair_style peri ` | peri | no | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ +| :ref:`PLUGIN ` | Plugin loader command | :doc:`plugin ` | plugins | no | ++----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`POEMS ` | coupled rigid body motion | :doc:`fix poems ` | rigid | int | +----------------------------------+--------------------------------------+----------------------------------------------------+------------------------------------------------------+---------+ | :ref:`PYTHON ` | embed Python code in an input script | :doc:`python ` | python | sys | From 5e0b017d30281b7fb94e23a4c53d84defb7467d2 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 20:51:58 -0400 Subject: [PATCH 050/104] update information about adding unit tests to reflect recent changes --- doc/src/Developer_unittest.rst | 45 ++++++++++++++++++++++------------ 1 file changed, 29 insertions(+), 16 deletions(-) diff --git a/doc/src/Developer_unittest.rst b/doc/src/Developer_unittest.rst index 4487dff11c..52753ee1b4 100644 --- a/doc/src/Developer_unittest.rst +++ b/doc/src/Developer_unittest.rst @@ -4,10 +4,10 @@ Adding tests for unit testing This section discusses adding or expanding tests for the unit test infrastructure included into the LAMMPS source code distribution. Unlike example inputs, unit tests focus on testing the "local" behavior -of individual features, tend to run very fast, and should be set up to -cover as much of the added code as possible. When contributing code to -the distribution, the LAMMPS developers will appreciate if additions -to the integrated unit test facility are included. +of individual features, tend to run fast, and should be set up to cover +as much of the added code as possible. When contributing code to the +distribution, the LAMMPS developers will appreciate if additions to the +integrated unit test facility are included. Given the complex nature of MD simulations where many operations can only be performed when suitable "real" simulation environment has been @@ -50,6 +50,9 @@ available: * - File name: - Test name: - Description: + * - ``test_argutils.cpp`` + - ArgInfo + - Tests for ``ArgInfo`` class used by LAMMPS * - ``test_fmtlib.cpp`` - FmtLib - Tests for ``fmtlib::`` functions used by LAMMPS @@ -155,23 +158,27 @@ have the desired effect: { ASSERT_EQ(lmp->update->ntimestep, 0); - if (!verbose) ::testing::internal::CaptureStdout(); - lmp->input->one("reset_timestep 10"); - if (!verbose) ::testing::internal::GetCapturedStdout(); + BEGIN_HIDE_OUTPUT(); + command("reset_timestep 10"); + END_HIDE_OUTPUT(); ASSERT_EQ(lmp->update->ntimestep, 10); - if (!verbose) ::testing::internal::CaptureStdout(); - lmp->input->one("reset_timestep 0"); - if (!verbose) ::testing::internal::GetCapturedStdout(); + BEGIN_HIDE_OUTPUT(); + command("reset_timestep 0"); + END_HIDE_OUTPUT(); ASSERT_EQ(lmp->update->ntimestep, 0); + + TEST_FAILURE(".*ERROR: Timestep must be >= 0.*", command("reset_timestep -10");); + TEST_FAILURE(".*ERROR: Illegal reset_timestep .*", command("reset_timestep");); + TEST_FAILURE(".*ERROR: Illegal reset_timestep .*", command("reset_timestep 10 10");); + TEST_FAILURE(".*ERROR: Expected integer .*", command("reset_timestep xxx");); } -Please note the use of the (global) verbose variable to control whether -the LAMMPS command will be silent by capturing the output or not. In -the default case, verbose == false, the test output will be compact and -not mixed with LAMMPS output. However setting the verbose flag (via -setting the ``TEST_ARGS`` environment variable, ``TEST_ARGS=-v``) can be -helpful to understand why tests fail unexpectedly. +Please note the use of the ``BEGIN_HIDE_OUTPUT`` and ``END_HIDE_OUTPUT`` +functions that will capture output from running LAMMPS. This is normally +discarded but by setting the verbose flag (via setting the ``TEST_ARGS`` +environment variable, ``TEST_ARGS=-v``) it can be printed and used to +understand why tests fail unexpectedly. Another complexity of these tests stems from the need to capture situations where LAMMPS will stop with an error, i.e. handle so-called @@ -210,6 +217,12 @@ The following test programs are currently available: * - ``test_lattice_region.cpp`` - LatticeRegion - Tests to validate the :doc:`lattice ` and :doc:`region ` commands + * - ``test_groups.cpp`` + - GroupTest + - Tests to validate the :doc:`group ` command + * - ``test_variables.cpp`` + - VariableTest + - Tests to validate the :doc:`variable ` command * - ``test_kim_commands.cpp`` - KimCommands - Tests for several commands from the :ref:`KIM package ` From d1b6aaa3f3a6e1524864c6d582b9a0220ea5980c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 20:57:29 -0400 Subject: [PATCH 051/104] plugins also have a .so suffix on MacOS (unlike shared libs) --- unittest/commands/test_simple_commands.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/unittest/commands/test_simple_commands.cpp b/unittest/commands/test_simple_commands.cpp index 9173909806..9bd6e74c9b 100644 --- a/unittest/commands/test_simple_commands.cpp +++ b/unittest/commands/test_simple_commands.cpp @@ -328,11 +328,7 @@ TEST_F(SimpleCommandsTest, Units) #if defined(LMP_PLUGIN) TEST_F(SimpleCommandsTest, Plugin) { -#if defined(__APPLE__) - std::string loadfmt("plugin load {}plugin.dylib"); -#else std::string loadfmt("plugin load {}plugin.so"); -#endif ::testing::internal::CaptureStdout(); lmp->input->one(fmt::format(loadfmt, "hello")); auto text = ::testing::internal::GetCapturedStdout(); From 36c6410fd8fff5a583b8429f4a1c78cecdb87772 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 21:14:12 -0400 Subject: [PATCH 052/104] make skip() function argument optional and default to 1 --- src/tokenizer.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/tokenizer.h b/src/tokenizer.h index 2db9870866..b3bbf05296 100644 --- a/src/tokenizer.h +++ b/src/tokenizer.h @@ -41,7 +41,7 @@ public: Tokenizer& operator=(Tokenizer&&) = default; void reset(); - void skip(int n); + void skip(int n=1); bool has_next() const; bool contains(const std::string &str) const; std::string next(); @@ -104,7 +104,7 @@ public: bool has_next() const; bool contains(const std::string &value) const; - void skip(int ntokens); + void skip(int ntokens=1); size_t count(); }; From 1e7e930d55ca27103cdc601860c6c53fbfaeef8f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 21:14:40 -0400 Subject: [PATCH 053/104] generalize match to fit all rigid/small derived fixes --- src/velocity.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/velocity.cpp b/src/velocity.cpp index b8d2e5229a..f4483074aa 100644 --- a/src/velocity.cpp +++ b/src/velocity.cpp @@ -108,7 +108,7 @@ void Velocity::command(int narg, char **arg) int initcomm = 0; if (style == ZERO && rfix >= 0 && - utils::strmatch(modify->fix[rfix]->style,"^rigid/small")) initcomm = 1; + utils::strmatch(modify->fix[rfix]->style,"^rigid.*/small.*")) initcomm = 1; if ((style == CREATE || style == SET) && temperature && strcmp(temperature->style,"temp/cs") == 0) initcomm = 1; From 67d4302fc7befe67ff157b4e1584067efabea171 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 21:51:06 -0400 Subject: [PATCH 054/104] add tests for tokenizer skip() function and throwing an exception --- unittest/utils/test_tokenizer.cpp | 44 +++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/unittest/utils/test_tokenizer.cpp b/unittest/utils/test_tokenizer.cpp index 69ec7a55d2..ec097abf62 100644 --- a/unittest/utils/test_tokenizer.cpp +++ b/unittest/utils/test_tokenizer.cpp @@ -43,6 +43,18 @@ TEST(Tokenizer, two_words) ASSERT_EQ(t.count(), 2); } +TEST(Tokenizer, skip) +{ + Tokenizer t("test word", " "); + ASSERT_TRUE(t.has_next()); + t.skip(); + ASSERT_TRUE(t.has_next()); + t.skip(1); + ASSERT_FALSE(t.has_next()); + ASSERT_EQ(t.count(), 2); + ASSERT_THROW(t.skip(), TokenizerException); +} + TEST(Tokenizer, prefix_separators) { Tokenizer t(" test word", " "); @@ -63,6 +75,18 @@ TEST(Tokenizer, iterate_words) ASSERT_EQ(t.count(), 2); } +TEST(Tokenizer, copy_constructor) +{ + Tokenizer t(" test word ", " "); + ASSERT_THAT(t.next(), Eq("test")); + ASSERT_THAT(t.next(), Eq("word")); + ASSERT_EQ(t.count(), 2); + Tokenizer u(t); + ASSERT_THAT(u.next(), Eq("test")); + ASSERT_THAT(u.next(), Eq("word")); + ASSERT_EQ(u.count(), 2); +} + TEST(Tokenizer, no_separator_path) { Tokenizer t("one", ":"); @@ -139,6 +163,26 @@ TEST(ValueTokenizer, empty_string) ASSERT_FALSE(values.has_next()); } +TEST(ValueTokenizer, two_words) +{ + ValueTokenizer t("test word", " "); + ASSERT_THAT(t.next_string(), Eq("test")); + ASSERT_THAT(t.next_string(), Eq("word")); + ASSERT_THROW(t.next_string(), TokenizerException); +} + +TEST(ValueTokenizer, skip) +{ + ValueTokenizer t("test word", " "); + ASSERT_TRUE(t.has_next()); + t.skip(); + ASSERT_TRUE(t.has_next()); + t.skip(1); + ASSERT_FALSE(t.has_next()); + ASSERT_EQ(t.count(), 2); + ASSERT_THROW(t.skip(), TokenizerException); +} + TEST(ValueTokenizer, bad_integer) { ValueTokenizer values("f10"); From a858c07e8a7ff8c11a939fbb6a9c3e9430634ca9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 21:51:48 -0400 Subject: [PATCH 055/104] add unit tests for empty id, invalid timespecs, and merge sort --- unittest/utils/test_utils.cpp | 44 +++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/unittest/utils/test_utils.cpp b/unittest/utils/test_utils.cpp index 81dda11615..0c6e38e342 100644 --- a/unittest/utils/test_utils.cpp +++ b/unittest/utils/test_utils.cpp @@ -331,6 +331,11 @@ TEST(Utils, valid_id7) ASSERT_TRUE(utils::is_id("___")); } +TEST(Utils, empty_id) +{ + ASSERT_FALSE(utils::is_id("")); +} + TEST(Utils, invalid_id1) { ASSERT_FALSE(utils::is_id("+abc")); @@ -780,6 +785,11 @@ TEST(Utils, unit_conversion) ASSERT_DOUBLE_EQ(factor, 1.0 / 23.060549); } +TEST(Utils, timespec2seconds_off) +{ + ASSERT_DOUBLE_EQ(utils::timespec2seconds("off"), -1.0); +} + TEST(Utils, timespec2seconds_ss) { ASSERT_DOUBLE_EQ(utils::timespec2seconds("45"), 45.0); @@ -795,6 +805,11 @@ TEST(Utils, timespec2seconds_hhmmss) ASSERT_DOUBLE_EQ(utils::timespec2seconds("2:10:45"), 7845.0); } +TEST(Utils, timespec2seconds_invalid) +{ + ASSERT_DOUBLE_EQ(utils::timespec2seconds("2:aa:45"), -1.0); +} + TEST(Utils, date2num) { ASSERT_EQ(utils::date2num("1Jan05"), 20050101); @@ -810,3 +825,32 @@ TEST(Utils, date2num) ASSERT_EQ(utils::date2num("30November 02"), 20021130); ASSERT_EQ(utils::date2num("31December100"), 1001231); } + +static int compare(int a, int b, void *) +{ + if (a < b) + return -1; + else if (a > b) + return 1; + else + return 0; +} + +TEST(Utils, merge_sort) +{ + int data[] = {773, 405, 490, 830, 632, 96, 428, 728, 912, 840, 878, 745, 213, 219, 249, 380, + 894, 758, 575, 690, 61, 849, 19, 577, 338, 569, 898, 873, 448, 940, 431, 780, + 472, 289, 65, 491, 641, 37, 367, 33, 407, 854, 594, 611, 845, 136, 107, 592, + 275, 865, 158, 626, 399, 703, 686, 734, 188, 559, 781, 558, 737, 281, 638, 664, + 533, 529, 62, 969, 595, 661, 837, 463, 624, 568, 615, 936, 206, 637, 91, 694, + 214, 872, 468, 66, 775, 949, 486, 576, 255, 961, 480, 138, 177, 509, 333, 705, + 10, 375, 321, 952, 210, 111, 475, 268, 708, 864, 244, 121, 988, 540, 942, 682, + 750, 473, 478, 714, 955, 911, 482, 384, 144, 757, 697, 791, 420, 605, 447, 320}; + + const int num = sizeof(data) / sizeof(int); + utils::merge_sort(data, num, nullptr, &compare); + bool sorted = true; + for (int i = 1; i < num; ++i) + if (data[i - 1] > data[i]) sorted = false; + ASSERT_TRUE(sorted); +} From e00e2676fca98a56f87775fa7820aab19a6019b3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Sun, 4 Apr 2021 22:23:13 -0400 Subject: [PATCH 056/104] add tests for utils::open_potential() --- .../formats/test_potential_file_reader.cpp | 62 +++++++++++++++++++ 1 file changed, 62 insertions(+) diff --git a/unittest/formats/test_potential_file_reader.cpp b/unittest/formats/test_potential_file_reader.cpp index 1e3d96d6d7..f270f6e1f1 100644 --- a/unittest/formats/test_potential_file_reader.cpp +++ b/unittest/formats/test_potential_file_reader.cpp @@ -28,6 +28,7 @@ #include "potential_file_reader.h" #include "gmock/gmock.h" #include "gtest/gtest.h" + #include "../testing/core.h" #include @@ -257,6 +258,67 @@ TEST_F(PotentialFileReaderTest, UnitConvert) delete reader; } +class OpenPotentialTest : public LAMMPSTest { +}; + +// open for native units +TEST_F(OpenPotentialTest, Sw_native) +{ + int convert_flag = utils::get_supported_conversions(utils::ENERGY); + BEGIN_CAPTURE_OUTPUT(); + command("units metal"); + FILE *fp = utils::open_potential("Si.sw", lmp, &convert_flag); + auto text = END_CAPTURE_OUTPUT(); + double conv = utils::get_conversion_factor(utils::ENERGY, convert_flag); + + ASSERT_NE(fp, nullptr); + ASSERT_DOUBLE_EQ(conv, 1.0); + fclose(fp); +} + +// open with supported conversion enabled +TEST_F(OpenPotentialTest, Sw_conv) +{ + int convert_flag = utils::get_supported_conversions(utils::ENERGY); + ASSERT_EQ(convert_flag, utils::METAL2REAL | utils::REAL2METAL); + BEGIN_HIDE_OUTPUT(); + command("units real"); + FILE *fp = utils::open_potential("Si.sw", lmp, &convert_flag); + auto text = END_CAPTURE_OUTPUT(); + double conv = utils::get_conversion_factor(utils::ENERGY, convert_flag); + + ASSERT_NE(fp, nullptr); + ASSERT_EQ(convert_flag, utils::METAL2REAL); + ASSERT_DOUBLE_EQ(conv, 23.060549); + fclose(fp); +} + +// open with conversion disabled +TEST_F(OpenPotentialTest, Sw_noconv) +{ + BEGIN_HIDE_OUTPUT(); + command("units real"); + END_HIDE_OUTPUT(); + TEST_FAILURE(".*potential.*requires metal units but real.*", + utils::open_potential("Si.sw", lmp, nullptr);); + BEGIN_HIDE_OUTPUT(); + command("units lj"); + END_HIDE_OUTPUT(); + int convert_flag = utils::get_supported_conversions(utils::UNKNOWN); + ASSERT_EQ(convert_flag, utils::NOCONVERT); +} + +// open non-existing potential +TEST_F(OpenPotentialTest, No_file) +{ + int convert_flag = utils::get_supported_conversions(utils::ENERGY); + BEGIN_HIDE_OUTPUT(); + command("units metal"); + FILE *fp = utils::open_potential("Unknown.sw", lmp, &convert_flag); + END_HIDE_OUTPUT(); + ASSERT_EQ(fp,nullptr); +} + int main(int argc, char **argv) { MPI_Init(&argc, &argv); From 773ec40d3a83008e0e9bcfc0d51443ba9b6e2dd0 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Mon, 5 Apr 2021 11:37:35 -0600 Subject: [PATCH 057/104] Misc small fixes --- src/GRANULAR/fix_wall_gran.cpp | 11 +- src/GRANULAR/pair_gran_hertz_history.cpp | 4 +- src/GRANULAR/pair_gran_hooke.cpp | 4 +- src/GRANULAR/pair_granular.cpp | 2 +- src/GRANULAR/pair_granular_corrected.cpp | 1821 ---------------------- 5 files changed, 10 insertions(+), 1832 deletions(-) delete mode 100644 src/GRANULAR/pair_granular_corrected.cpp diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index 1d27e21162..7ce8e49008 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -376,7 +376,6 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : wiggle = 0; wshear = 0; peratom_flag = 0; - limit_damping = 0; while (iarg < narg) { if (strcmp(arg[iarg],"wiggle") == 0) { @@ -792,7 +791,7 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -885,7 +884,7 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -1017,7 +1016,7 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, if (rwall == 0.0) polyhertz = sqrt((radius-r)*radius); else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); ccel *= polyhertz; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -1303,8 +1302,8 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, history[thist2] -= rsht*nz; // also rescale to preserve magnitude - prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); + prjmag = sqrt(history[thist0]*history[thist0] + + history[thist1]*history[thist1] + history[thist2]*history[thist2]); if (prjmag > 0) scalefac = shrmag/prjmag; else scalefac = 0; history[thist0] *= scalefac; diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index 40c6c3a41d..e21ec727d6 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -181,7 +181,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -389,7 +389,7 @@ double PairGranHertzHistory::single(int i, int j, int /*itype*/, int /*jtype*/, ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke.cpp b/src/GRANULAR/pair_gran_hooke.cpp index 0e3ffc7293..c28bbd007f 100644 --- a/src/GRANULAR/pair_gran_hooke.cpp +++ b/src/GRANULAR/pair_gran_hooke.cpp @@ -158,7 +158,7 @@ void PairGranHooke::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities @@ -300,7 +300,7 @@ double PairGranHooke::single(int i, int j, int /*itype*/, int /*jtype*/, double damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping and ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 8bf9b0c4ed..ac98a6e27c 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -1547,7 +1547,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if(limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; + if (limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; jnum = list->numneigh[i]; jlist = list->firstneigh[i]; diff --git a/src/GRANULAR/pair_granular_corrected.cpp b/src/GRANULAR/pair_granular_corrected.cpp deleted file mode 100644 index bcf262aa2c..0000000000 --- a/src/GRANULAR/pair_granular_corrected.cpp +++ /dev/null @@ -1,1821 +0,0 @@ -/* ---------------------------------------------------------------------- - LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator - https://lammps.sandia.gov/, Sandia National Laboratories - Steve Plimpton, sjplimp@sandia.gov - - Copyright (2003) Sandia Corporation. Under the terms of Contract - DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains - certain rights in this software. This software is distributed under - the GNU General Public License. - - See the README file in the top-level LAMMPS directory. -------------------------------------------------------------------------- */ - -/* ---------------------------------------------------------------------- - Contributing authors: - Dan Bolintineanu (SNL), Ishan Srivastava (SNL), Jeremy Lechman(SNL) - Leo Silbert (SNL), Gary Grest (SNL) ------------------------------------------------------------------------ */ - -#include "pair_granular.h" - -#include -#include - -#include "atom.h" -#include "force.h" -#include "update.h" -#include "modify.h" -#include "fix.h" -#include "fix_dummy.h" -#include "fix_neigh_history.h" -#include "comm.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "neigh_request.h" -#include "memory.h" -#include "error.h" -#include "math_const.h" -#include "math_special.h" - - -using namespace LAMMPS_NS; -using namespace MathConst; -using namespace MathSpecial; - -#define PI27SQ 266.47931882941264802866 // 27*PI**2 -#define THREEROOT3 5.19615242270663202362 // 3*sqrt(3) -#define SIXROOT6 14.69693845669906728801 // 6*sqrt(6) -#define INVROOT6 0.40824829046386307274 // 1/sqrt(6) -#define FOURTHIRDS 4.0/3.0 // 4/3 -#define THREEQUARTERS 0.75 // 3/4 - -#define EPSILON 1e-10 - -enum {HOOKE, HERTZ, HERTZ_MATERIAL, DMT, JKR}; -enum {VELOCITY, MASS_VELOCITY, VISCOELASTIC, TSUJI}; -enum {TANGENTIAL_NOHISTORY, TANGENTIAL_HISTORY, - TANGENTIAL_MINDLIN, TANGENTIAL_MINDLIN_RESCALE, - TANGENTIAL_MINDLIN_FORCE, TANGENTIAL_MINDLIN_RESCALE_FORCE}; -enum {TWIST_NONE, TWIST_SDS, TWIST_MARSHALL}; -enum {ROLL_NONE, ROLL_SDS}; - -/* ---------------------------------------------------------------------- */ - -PairGranular::PairGranular(LAMMPS *lmp) : Pair(lmp) -{ - single_enable = 1; - no_virial_fdotr_compute = 1; - centroidstressflag = CENTROID_NOTAVAIL; - - single_extra = 12; - svector = new double[single_extra]; - - neighprev = 0; - - nmax = 0; - mass_rigid = nullptr; - - onerad_dynamic = nullptr; - onerad_frozen = nullptr; - maxrad_dynamic = nullptr; - maxrad_frozen = nullptr; - - history_transfer_factors = nullptr; - - dt = update->dt; - - // set comm size needed by this Pair if used with fix rigid - - comm_forward = 1; - - use_history = 0; - beyond_contact = 0; - nondefault_history_transfer = 0; - tangential_history_index = 0; - roll_history_index = twist_history_index = 0; - - // create dummy fix as placeholder for FixNeighHistory - // this is so final order of Modify:fix will conform to input script - - fix_history = nullptr; - modify->add_fix("NEIGH_HISTORY_GRANULAR_DUMMY all DUMMY"); - fix_dummy = (FixDummy *) modify->fix[modify->nfix-1]; -} - -/* ---------------------------------------------------------------------- */ - -PairGranular::~PairGranular() -{ - delete [] svector; - - if (!fix_history) modify->delete_fix("NEIGH_HISTORY_GRANULAR_DUMMY"); - else modify->delete_fix("NEIGH_HISTORY_GRANULAR"); - - if (allocated) { - memory->destroy(setflag); - memory->destroy(cutsq); - memory->destroy(cutoff_type); - - memory->destroy(normal_coeffs); - memory->destroy(tangential_coeffs); - memory->destroy(roll_coeffs); - memory->destroy(twist_coeffs); - - memory->destroy(Emod); - memory->destroy(poiss); - - memory->destroy(normal_model); - memory->destroy(damping_model); - memory->destroy(tangential_model); - memory->destroy(roll_model); - memory->destroy(twist_model); - - delete [] onerad_dynamic; - delete [] onerad_frozen; - delete [] maxrad_dynamic; - delete [] maxrad_frozen; - } - - memory->destroy(mass_rigid); -} - -/* ---------------------------------------------------------------------- */ - -void PairGranular::compute(int eflag, int vflag) -{ - int i,j,ii,jj,inum,jnum,itype,jtype; - double xtmp,ytmp,ztmp,delx,dely,delz,fx,fy,fz,nx,ny,nz; - double radi,radj,radsum,rsq,r,rinv; - double Reff, delta, dR, dR2, dist_to_contact; - - double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3; - double wr1,wr2,wr3; - double vtr1,vtr2,vtr3,vrel; - - double knfac, damp_normal=0.0, damp_normal_prefactor; - double k_tangential, damp_tangential; - double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit; - double fs, fs1, fs2, fs3, tor1, tor2, tor3; - - double mi,mj,meff; - double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3; - - // for JKR - double R2, coh, F_pulloff, delta_pulloff, dist_pulloff, a, a2, E; - double t0, t1, t2, t3, t4, t5, t6; - double sqrt1, sqrt2, sqrt3; - - // rolling - double k_roll, damp_roll; - double torroll1, torroll2, torroll3; - double rollmag, rolldotn, scalefac; - double fr, fr1, fr2, fr3; - - // twisting - double k_twist, damp_twist, mu_twist; - double signtwist, magtwist, magtortwist, Mtcrit; - double tortwist1, tortwist2, tortwist3; - - double shrmag,rsht,prjmag; - bool frameupdate; - int *ilist,*jlist,*numneigh,**firstneigh; - int *touch,**firsttouch; - double *history,*allhistory,**firsthistory; - - bool touchflag = false; - const bool historyupdate = (update->setupflag) ? false : true; - - ev_init(eflag,vflag); - - // update rigid body info for owned & ghost atoms if using FixRigid masses - // body[i] = which body atom I is in, -1 if none - // mass_body = mass of each rigid body - - if (fix_rigid && neighbor->ago == 0) { - int tmp; - int *body = (int *) fix_rigid->extract("body",tmp); - double *mass_body = (double *) fix_rigid->extract("masstotal",tmp); - if (atom->nmax > nmax) { - memory->destroy(mass_rigid); - nmax = atom->nmax; - memory->create(mass_rigid,nmax,"pair:mass_rigid"); - } - int nlocal = atom->nlocal; - for (i = 0; i < nlocal; i++) - if (body[i] >= 0) mass_rigid[i] = mass_body[body[i]]; - else mass_rigid[i] = 0.0; - comm->forward_comm_pair(this); - } - - double **x = atom->x; - double **v = atom->v; - double **f = atom->f; - int *type = atom->type; - double **omega = atom->omega; - double **torque = atom->torque; - double *radius = atom->radius; - double *rmass = atom->rmass; - int *mask = atom->mask; - int nlocal = atom->nlocal; - - inum = list->inum; - ilist = list->ilist; - numneigh = list->numneigh; - firstneigh = list->firstneigh; - if (use_history) { - firsttouch = fix_history->firstflag; - firsthistory = fix_history->firstvalue; - } - - for (ii = 0; ii < inum; ii++) { - i = ilist[ii]; - itype = type[i]; - xtmp = x[i][0]; - ytmp = x[i][1]; - ztmp = x[i][2]; - itype = type[i]; - radi = radius[i]; - if (use_history) { - touch = firsttouch[i]; - allhistory = firsthistory[i]; - } - jlist = firstneigh[i]; - jnum = numneigh[i]; - - for (jj = 0; jj < jnum; jj++) { - j = jlist[jj]; - j &= NEIGHMASK; - - delx = xtmp - x[j][0]; - dely = ytmp - x[j][1]; - delz = ztmp - x[j][2]; - jtype = type[j]; - rsq = delx*delx + dely*dely + delz*delz; - radj = radius[j]; - radsum = radi + radj; - - E = normal_coeffs[itype][jtype][0]; - Reff = radi*radj/radsum; - touchflag = false; - - if (normal_model[itype][jtype] == JKR) { - E *= THREEQUARTERS; - if (touch[jj]) { - R2 = Reff*Reff; - coh = normal_coeffs[itype][jtype][3]; - a = cbrt(9.0*MY_PI*coh*R2/(4*E)); - delta_pulloff = a*a/Reff - 2*sqrt(MY_PI*coh*a/E); - dist_pulloff = radsum-delta_pulloff; - touchflag = (rsq < dist_pulloff*dist_pulloff); - } else { - touchflag = (rsq < radsum*radsum); - } - } else { - touchflag = (rsq < radsum*radsum); - } - - if (!touchflag) { - // unset non-touching neighbors - if (use_history) { - touch[jj] = 0; - history = &allhistory[size_history*jj]; - for (int k = 0; k < size_history; k++) history[k] = 0.0; - } - } else { - r = sqrt(rsq); - rinv = 1.0/r; - - nx = delx*rinv; - ny = dely*rinv; - nz = delz*rinv; - - // relative translational velocity - - vr1 = v[i][0] - v[j][0]; - vr2 = v[i][1] - v[j][1]; - vr3 = v[i][2] - v[j][2]; - - // normal component - - vnnr = vr1*nx + vr2*ny + vr3*nz; //v_R . n - vn1 = nx*vnnr; - vn2 = ny*vnnr; - vn3 = nz*vnnr; - - // meff = effective mass of pair of particles - // if I or J part of rigid body, use body mass - // if I or J is frozen, meff is other particle - - mi = rmass[i]; - mj = rmass[j]; - if (fix_rigid) { - if (mass_rigid[i] > 0.0) mi = mass_rigid[i]; - if (mass_rigid[j] > 0.0) mj = mass_rigid[j]; - } - - meff = mi*mj / (mi+mj); - if (mask[i] & freeze_group_bit) meff = mj; - if (mask[j] & freeze_group_bit) meff = mi; - - delta = radsum - r; - dR = delta*Reff; - - if (normal_model[itype][jtype] == JKR) { - touch[jj] = 1; - R2=Reff*Reff; - coh = normal_coeffs[itype][jtype][3]; - dR2 = dR*dR; - t0 = coh*coh*R2*R2*E; - t1 = PI27SQ*t0; - t2 = 8*dR*dR2*E*E*E; - t3 = 4*dR2*E; - // in case sqrt(0) < 0 due to precision issues - sqrt1 = MAX(0, t0*(t1+2*t2)); - t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1)); - t5 = t3/t4 + t4/E; - sqrt2 = MAX(0, 2*dR + t5); - t6 = sqrt(sqrt2); - sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6)); - a = INVROOT6*(t6 + sqrt(sqrt3)); - a2 = a*a; - knfac = normal_coeffs[itype][jtype][0]*a; - Fne = knfac*a2/Reff - MY_2PI*a2*sqrt(4*coh*E/(MY_PI*a)); - } else { - knfac = E; // Hooke - Fne = knfac*delta; - a = sqrt(dR); - if (normal_model[itype][jtype] != HOOKE) { - Fne *= a; - knfac *= a; - } - if (normal_model[itype][jtype] == DMT) - Fne -= 4*MY_PI*normal_coeffs[itype][jtype][3]*Reff; - } - - // NOTE: consider restricting Hooke to only have - // 'velocity' as an option for damping? - - if (damping_model[itype][jtype] == VELOCITY) { - damp_normal = 1; - } else if (damping_model[itype][jtype] == MASS_VELOCITY) { - damp_normal = meff; - } else if (damping_model[itype][jtype] == VISCOELASTIC) { - damp_normal = a*meff; - } else if (damping_model[itype][jtype] == TSUJI) { - damp_normal = sqrt(meff*knfac); - } - - damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal; - Fdamp = -damp_normal_prefactor*vnnr; - - Fntot = Fne + Fdamp; - - //**************************************** - // tangential force, including history effects - //**************************************** - - // For linear, mindlin, mindlin_rescale: - // history = cumulative tangential displacement - // - // For mindlin/force, mindlin_rescale/force: - // history = cumulative tangential elastic force - - // tangential component - vt1 = vr1 - vn1; - vt2 = vr2 - vn2; - vt3 = vr3 - vn3; - - // relative rotational velocity - wr1 = (radi*omega[i][0] + radj*omega[j][0]); - wr2 = (radi*omega[i][1] + radj*omega[j][1]); - wr3 = (radi*omega[i][2] + radj*omega[j][2]); - - // relative tangential velocities - vtr1 = vt1 - (nz*wr2-ny*wr3); - vtr2 = vt2 - (nx*wr3-nz*wr1); - vtr3 = vt3 - (ny*wr1-nx*wr2); - vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; - vrel = sqrt(vrel); - - // if any history is needed - if (use_history) { - touch[jj] = 1; - history = &allhistory[size_history*jj]; - } - - if (normal_model[itype][jtype] == JKR) { - F_pulloff = 3*MY_PI*coh*Reff; - Fncrit = fabs(Fne + 2*F_pulloff); - } else if (normal_model[itype][jtype] == DMT) { - F_pulloff = 4*MY_PI*coh*Reff; - Fncrit = fabs(Fne + 2*F_pulloff); - } else { - Fncrit = fabs(Fntot); - } - Fscrit = tangential_coeffs[itype][jtype][2] * Fncrit; - - //------------------------------ - // tangential forces - //------------------------------ - k_tangential = tangential_coeffs[itype][jtype][0]; - damp_tangential = tangential_coeffs[itype][jtype][1] * - damp_normal_prefactor; - - if (tangential_history) { - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE) { - k_tangential *= a; - } else if (tangential_model[itype][jtype] == - TANGENTIAL_MINDLIN_RESCALE || - tangential_model[itype][jtype] == - TANGENTIAL_MINDLIN_RESCALE_FORCE) { - k_tangential *= a; - // on unloading, rescale the shear displacements/force - if (a < history[3]) { - double factor = a/history[3]; - history[0] *= factor; - history[1] *= factor; - history[2] *= factor; - } - } - // rotate and update displacements / force. - // see e.g. eq. 17 of Luding, Gran. Matter 2008, v10,p235 - if (historyupdate) { - rsht = history[0]*nx + history[1]*ny + history[2]*nz; - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_FORCE || - tangential_model[itype][jtype] == - TANGENTIAL_MINDLIN_RESCALE_FORCE) - frameupdate = fabs(rsht) > EPSILON*Fscrit; - else - frameupdate = fabs(rsht)*k_tangential > EPSILON*Fscrit; - if (frameupdate) { - shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - // projection - history[0] -= rsht*nx; - history[1] -= rsht*ny; - history[2] -= rsht*nz; - - // also rescale to preserve magnitude - prjmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - if (prjmag > 0) scalefac = shrmag/prjmag; - else scalefac = 0; - history[0] *= scalefac; - history[1] *= scalefac; - history[2] *= scalefac; - } - // update history - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { - // tangential displacement - history[0] += vtr1*dt; - history[1] += vtr2*dt; - history[2] += vtr3*dt; - } else { - // tangential force - // see e.g. eq. 18 of Thornton et al, Pow. Tech. 2013, v223,p30-46 - history[0] -= k_tangential*vtr1*dt; - history[1] -= k_tangential*vtr2*dt; - history[2] -= k_tangential*vtr3*dt; - } - if (tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE || - tangential_model[itype][jtype] == - TANGENTIAL_MINDLIN_RESCALE_FORCE) - history[3] = a; - } - - // tangential forces = history + tangential velocity damping - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { - fs1 = -k_tangential*history[0] - damp_tangential*vtr1; - fs2 = -k_tangential*history[1] - damp_tangential*vtr2; - fs3 = -k_tangential*history[2] - damp_tangential*vtr3; - } else { - fs1 = history[0] - damp_tangential*vtr1; - fs2 = history[1] - damp_tangential*vtr2; - fs3 = history[2] - damp_tangential*vtr3; - } - - // rescale frictional displacements and forces if needed - fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); - if (fs > Fscrit) { - shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - if (shrmag != 0.0) { - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || - tangential_model[itype][jtype] == - TANGENTIAL_MINDLIN_RESCALE) { - history[0] = -1.0/k_tangential*(Fscrit*fs1/fs + - damp_tangential*vtr1); - history[1] = -1.0/k_tangential*(Fscrit*fs2/fs + - damp_tangential*vtr2); - history[2] = -1.0/k_tangential*(Fscrit*fs3/fs + - damp_tangential*vtr3); - } else { - history[0] = Fscrit*fs1/fs + damp_tangential*vtr1; - history[1] = Fscrit*fs2/fs + damp_tangential*vtr2; - history[2] = Fscrit*fs3/fs + damp_tangential*vtr3; - } - fs1 *= Fscrit/fs; - fs2 *= Fscrit/fs; - fs3 *= Fscrit/fs; - } else fs1 = fs2 = fs3 = 0.0; - } - } else { // classic pair gran/hooke (no history) - fs = damp_tangential*vrel; - if (vrel != 0.0) Ft = MIN(Fscrit,fs) / vrel; - else Ft = 0.0; - fs1 = -Ft*vtr1; - fs2 = -Ft*vtr2; - fs3 = -Ft*vtr3; - } - - if (roll_model[itype][jtype] != ROLL_NONE || - twist_model[itype][jtype] != TWIST_NONE) { - relrot1 = omega[i][0] - omega[j][0]; - relrot2 = omega[i][1] - omega[j][1]; - relrot3 = omega[i][2] - omega[j][2]; - // rolling velocity, - // see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) - // this is different from the Marshall papers, - // which use the Bagi/Kuhn formulation - // for rolling velocity (see Wang et al for why the latter is wrong) - // - 0.5*((radj-radi)/radsum)*vtr1; - // - 0.5*((radj-radi)/radsum)*vtr2; - // - 0.5*((radj-radi)/radsum)*vtr3; - } - //**************************************** - // rolling resistance - //**************************************** - - if (roll_model[itype][jtype] != ROLL_NONE) { - vrl1 = Reff*(relrot2*nz - relrot3*ny); - vrl2 = Reff*(relrot3*nx - relrot1*nz); - vrl3 = Reff*(relrot1*ny - relrot2*nx); - - int rhist0 = roll_history_index; - int rhist1 = rhist0 + 1; - int rhist2 = rhist1 + 1; - - k_roll = roll_coeffs[itype][jtype][0]; - damp_roll = roll_coeffs[itype][jtype][1]; - Frcrit = roll_coeffs[itype][jtype][2] * Fncrit; - - if (historyupdate) { - rolldotn = history[rhist0]*nx + history[rhist1]*ny + history[rhist2]*nz; - frameupdate = fabs(rolldotn)*k_roll > EPSILON*Frcrit; - if (frameupdate) { // rotate into tangential plane - rollmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - // projection - history[rhist0] -= rolldotn*nx; - history[rhist1] -= rolldotn*ny; - history[rhist2] -= rolldotn*nz; - // also rescale to preserve magnitude - prjmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - if (prjmag > 0) scalefac = rollmag/prjmag; - else scalefac = 0; - history[rhist0] *= scalefac; - history[rhist1] *= scalefac; - history[rhist2] *= scalefac; - } - history[rhist0] += vrl1*dt; - history[rhist1] += vrl2*dt; - history[rhist2] += vrl3*dt; - } - - fr1 = -k_roll*history[rhist0] - damp_roll*vrl1; - fr2 = -k_roll*history[rhist1] - damp_roll*vrl2; - fr3 = -k_roll*history[rhist2] - damp_roll*vrl3; - - // rescale frictional displacements and forces if needed - - fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3); - if (fr > Frcrit) { - rollmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - if (rollmag != 0.0) { - history[rhist0] = -1.0/k_roll*(Frcrit*fr1/fr + damp_roll*vrl1); - history[rhist1] = -1.0/k_roll*(Frcrit*fr2/fr + damp_roll*vrl2); - history[rhist2] = -1.0/k_roll*(Frcrit*fr3/fr + damp_roll*vrl3); - fr1 *= Frcrit/fr; - fr2 *= Frcrit/fr; - fr3 *= Frcrit/fr; - } else fr1 = fr2 = fr3 = 0.0; - } - } - - //**************************************** - // twisting torque, including history effects - //**************************************** - - if (twist_model[itype][jtype] != TWIST_NONE) { - // omega_T (eq 29 of Marshall) - magtwist = relrot1*nx + relrot2*ny + relrot3*nz; - if (twist_model[itype][jtype] == TWIST_MARSHALL) { - k_twist = 0.5*k_tangential*a*a;; // eq 32 of Marshall paper - damp_twist = 0.5*damp_tangential*a*a; - mu_twist = TWOTHIRDS*a*tangential_coeffs[itype][jtype][2]; - } else { - k_twist = twist_coeffs[itype][jtype][0]; - damp_twist = twist_coeffs[itype][jtype][1]; - mu_twist = twist_coeffs[itype][jtype][2]; - } - if (historyupdate) { - history[twist_history_index] += magtwist*dt; - } - magtortwist = -k_twist*history[twist_history_index] - - damp_twist*magtwist; // M_t torque (eq 30) - signtwist = (magtwist > 0) - (magtwist < 0); - Mtcrit = mu_twist*Fncrit; // critical torque (eq 44) - if (fabs(magtortwist) > Mtcrit) { - history[twist_history_index] = 1.0/k_twist*(Mtcrit*signtwist - - damp_twist*magtwist); - magtortwist = -Mtcrit * signtwist; // eq 34 - } - } - - // apply forces & torques - - fx = nx*Fntot + fs1; - fy = ny*Fntot + fs2; - fz = nz*Fntot + fs3; - - f[i][0] += fx; - f[i][1] += fy; - f[i][2] += fz; - - tor1 = ny*fs3 - nz*fs2; - tor2 = nz*fs1 - nx*fs3; - tor3 = nx*fs2 - ny*fs1; - - dist_to_contact = radi-0.5*delta; - torque[i][0] -= dist_to_contact*tor1; - torque[i][1] -= dist_to_contact*tor2; - torque[i][2] -= dist_to_contact*tor3; - - if (twist_model[itype][jtype] != TWIST_NONE) { - tortwist1 = magtortwist * nx; - tortwist2 = magtortwist * ny; - tortwist3 = magtortwist * nz; - - torque[i][0] += tortwist1; - torque[i][1] += tortwist2; - torque[i][2] += tortwist3; - } - - if (roll_model[itype][jtype] != ROLL_NONE) { - torroll1 = Reff*(ny*fr3 - nz*fr2); // n cross fr - torroll2 = Reff*(nz*fr1 - nx*fr3); - torroll3 = Reff*(nx*fr2 - ny*fr1); - - torque[i][0] += torroll1; - torque[i][1] += torroll2; - torque[i][2] += torroll3; - } - - if (force->newton_pair || j < nlocal) { - f[j][0] -= fx; - f[j][1] -= fy; - f[j][2] -= fz; - - dist_to_contact = radj-0.5*delta; - torque[j][0] -= dist_to_contact*tor1; - torque[j][1] -= dist_to_contact*tor2; - torque[j][2] -= dist_to_contact*tor3; - - if (twist_model[itype][jtype] != TWIST_NONE) { - torque[j][0] -= tortwist1; - torque[j][1] -= tortwist2; - torque[j][2] -= tortwist3; - } - if (roll_model[itype][jtype] != ROLL_NONE) { - torque[j][0] -= torroll1; - torque[j][1] -= torroll2; - torque[j][2] -= torroll3; - } - } - if (evflag) ev_tally_xyz(i,j,nlocal,force->newton_pair, - 0.0,0.0,fx,fy,fz,delx,dely,delz); - } - } - } -} - -/* ---------------------------------------------------------------------- - allocate all arrays -------------------------------------------------------------------------- */ - -void PairGranular::allocate() -{ - allocated = 1; - int n = atom->ntypes; - - memory->create(setflag,n+1,n+1,"pair:setflag"); - for (int i = 1; i <= n; i++) - for (int j = i; j <= n; j++) - setflag[i][j] = 0; - - memory->create(cutsq,n+1,n+1,"pair:cutsq"); - memory->create(cutoff_type,n+1,n+1,"pair:cutoff_type"); - memory->create(normal_coeffs,n+1,n+1,4,"pair:normal_coeffs"); - memory->create(tangential_coeffs,n+1,n+1,3,"pair:tangential_coeffs"); - memory->create(roll_coeffs,n+1,n+1,3,"pair:roll_coeffs"); - memory->create(twist_coeffs,n+1,n+1,3,"pair:twist_coeffs"); - - memory->create(Emod,n+1,n+1,"pair:Emod"); - memory->create(poiss,n+1,n+1,"pair:poiss"); - - memory->create(normal_model,n+1,n+1,"pair:normal_model"); - memory->create(damping_model,n+1,n+1,"pair:damping_model"); - memory->create(tangential_model,n+1,n+1,"pair:tangential_model"); - memory->create(roll_model,n+1,n+1,"pair:roll_model"); - memory->create(twist_model,n+1,n+1,"pair:twist_model"); - - onerad_dynamic = new double[n+1]; - onerad_frozen = new double[n+1]; - maxrad_dynamic = new double[n+1]; - maxrad_frozen = new double[n+1]; -} - -/* ---------------------------------------------------------------------- - global settings -------------------------------------------------------------------------- */ - -void PairGranular::settings(int narg, char **arg) -{ - if (narg == 1) { - cutoff_global = utils::numeric(FLERR,arg[0],false,lmp); - } else { - cutoff_global = -1; // will be set based on particle sizes, model choice - } - - normal_history = tangential_history = 0; - roll_history = twist_history = 0; -} - -/* ---------------------------------------------------------------------- - set coeffs for one or more type pairs -------------------------------------------------------------------------- */ - -void PairGranular::coeff(int narg, char **arg) -{ - int normal_model_one, damping_model_one; - int tangential_model_one, roll_model_one, twist_model_one; - - double normal_coeffs_one[4]; - double tangential_coeffs_one[4]; - double roll_coeffs_one[4]; - double twist_coeffs_one[4]; - - double cutoff_one = -1; - - if (narg < 2) - error->all(FLERR,"Incorrect args for pair coefficients"); - - if (!allocated) allocate(); - - int ilo,ihi,jlo,jhi; - utils::bounds(FLERR,arg[0],1,atom->ntypes,ilo,ihi,error); - utils::bounds(FLERR,arg[1],1,atom->ntypes,jlo,jhi,error); - - //Defaults - normal_model_one = tangential_model_one = -1; - roll_model_one = ROLL_NONE; - twist_model_one = TWIST_NONE; - damping_model_one = VISCOELASTIC; - - int iarg = 2; - while (iarg < narg) { - if (strcmp(arg[iarg], "hooke") == 0) { - if (iarg + 2 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for Hooke option"); - normal_model_one = HOOKE; - normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // kn - normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping - iarg += 3; - } else if (strcmp(arg[iarg], "hertz") == 0) { - if (iarg + 2 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for Hertz option"); - normal_model_one = HERTZ; - normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // kn - normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping - iarg += 3; - } else if (strcmp(arg[iarg], "hertz/material") == 0) { - if (iarg + 3 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for Hertz/material option"); - normal_model_one = HERTZ_MATERIAL; - normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E - normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping - normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio - iarg += 4; - } else if (strcmp(arg[iarg], "dmt") == 0) { - if (iarg + 4 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for Hertz option"); - normal_model_one = DMT; - normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E - normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping - normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio - normal_coeffs_one[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); // cohesion - iarg += 5; - } else if (strcmp(arg[iarg], "jkr") == 0) { - if (iarg + 4 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for JKR option"); - beyond_contact = 1; - normal_model_one = JKR; - normal_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+1],false,lmp); // E - normal_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // damping - normal_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); // Poisson's ratio - normal_coeffs_one[3] = utils::numeric(FLERR,arg[iarg+4],false,lmp); // cohesion - iarg += 5; - } else if (strcmp(arg[iarg], "damping") == 0) { - if (iarg+1 >= narg) - error->all(FLERR, "Illegal pair_coeff command, " - "not enough parameters provided for damping model"); - if (strcmp(arg[iarg+1], "velocity") == 0) { - damping_model_one = VELOCITY; - iarg += 1; - } else if (strcmp(arg[iarg+1], "mass_velocity") == 0) { - damping_model_one = MASS_VELOCITY; - iarg += 1; - } else if (strcmp(arg[iarg+1], "viscoelastic") == 0) { - damping_model_one = VISCOELASTIC; - iarg += 1; - } else if (strcmp(arg[iarg+1], "tsuji") == 0) { - damping_model_one = TSUJI; - iarg += 1; - } else error->all(FLERR, "Illegal pair_coeff command, " - "unrecognized damping model"); - iarg += 1; - } else if (strcmp(arg[iarg], "tangential") == 0) { - if (iarg + 1 >= narg) - error->all(FLERR,"Illegal pair_coeff command, must specify " - "tangential model after tangential keyword"); - if (strcmp(arg[iarg+1], "linear_nohistory") == 0) { - if (iarg + 3 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for tangential model"); - tangential_model_one = TANGENTIAL_NOHISTORY; - tangential_coeffs_one[0] = 0; - // gammat and friction coeff - tangential_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+2],false,lmp); - tangential_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+3],false,lmp); - iarg += 4; - } else if ((strcmp(arg[iarg+1], "linear_history") == 0) || - (strcmp(arg[iarg+1], "mindlin") == 0) || - (strcmp(arg[iarg+1], "mindlin_rescale") == 0) || - (strcmp(arg[iarg+1], "mindlin/force") == 0) || - (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0)) { - if (iarg + 4 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for tangential model"); - if (strcmp(arg[iarg+1], "linear_history") == 0) - tangential_model_one = TANGENTIAL_HISTORY; - else if (strcmp(arg[iarg+1], "mindlin") == 0) - tangential_model_one = TANGENTIAL_MINDLIN; - else if (strcmp(arg[iarg+1], "mindlin_rescale") == 0) - tangential_model_one = TANGENTIAL_MINDLIN_RESCALE; - else if (strcmp(arg[iarg+1], "mindlin/force") == 0) - tangential_model_one = TANGENTIAL_MINDLIN_FORCE; - else if (strcmp(arg[iarg+1], "mindlin_rescale/force") == 0) - tangential_model_one = TANGENTIAL_MINDLIN_RESCALE_FORCE; - tangential_history = 1; - if ((tangential_model_one == TANGENTIAL_MINDLIN || - tangential_model_one == TANGENTIAL_MINDLIN_RESCALE || - tangential_model_one == TANGENTIAL_MINDLIN_FORCE || - tangential_model_one == TANGENTIAL_MINDLIN_RESCALE_FORCE) && - (strcmp(arg[iarg+2], "NULL") == 0)) { - if (normal_model_one == HERTZ || normal_model_one == HOOKE) { - error->all(FLERR, "NULL setting for Mindlin tangential " - "stiffness requires a normal contact model that " - "specifies material properties"); - } - tangential_coeffs_one[0] = -1; - } else { - tangential_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); // kt - } - // gammat and friction coeff - tangential_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); - tangential_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); - iarg += 5; - } else { - error->all(FLERR, "Illegal pair_coeff command, " - "tangential model not recognized"); - } - } else if (strcmp(arg[iarg], "rolling") == 0) { - if (iarg + 1 >= narg) - error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); - if (strcmp(arg[iarg+1], "none") == 0) { - roll_model_one = ROLL_NONE; - iarg += 2; - } else if (strcmp(arg[iarg+1], "sds") == 0) { - if (iarg + 4 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for rolling model"); - roll_model_one = ROLL_SDS; - roll_history = 1; - // kR and gammaR and rolling friction coeff - roll_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); - roll_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); - roll_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); - iarg += 5; - } else { - error->all(FLERR, "Illegal pair_coeff command, " - "rolling friction model not recognized"); - } - } else if (strcmp(arg[iarg], "twisting") == 0) { - if (iarg + 1 >= narg) - error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); - if (strcmp(arg[iarg+1], "none") == 0) { - twist_model_one = TWIST_NONE; - iarg += 2; - } else if (strcmp(arg[iarg+1], "marshall") == 0) { - twist_model_one = TWIST_MARSHALL; - twist_history = 1; - iarg += 2; - } else if (strcmp(arg[iarg+1], "sds") == 0) { - if (iarg + 4 >= narg) - error->all(FLERR,"Illegal pair_coeff command, " - "not enough parameters provided for twist model"); - twist_model_one = TWIST_SDS; - twist_history = 1; - // kt and gammat and friction coeff - twist_coeffs_one[0] = utils::numeric(FLERR,arg[iarg+2],false,lmp); - twist_coeffs_one[1] = utils::numeric(FLERR,arg[iarg+3],false,lmp); - twist_coeffs_one[2] = utils::numeric(FLERR,arg[iarg+4],false,lmp); - iarg += 5; - } else { - error->all(FLERR, "Illegal pair_coeff command, " - "twisting friction model not recognized"); - } - } else if (strcmp(arg[iarg], "cutoff") == 0) { - if (iarg + 1 >= narg) - error->all(FLERR, "Illegal pair_coeff command, not enough parameters"); - cutoff_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); - iarg += 2; - } else error->all(FLERR, "Illegal pair coeff command"); - } - - // error not to specify normal or tangential model - if ((normal_model_one < 0) || (tangential_model_one < 0)) - error->all(FLERR, "Illegal pair coeff command, " - "must specify normal or tangential contact model"); - - int count = 0; - double damp; - if (damping_model_one == TSUJI) { - double cor; - cor = normal_coeffs_one[1]; - damp = 1.2728-4.2783*cor+11.087*square(cor)-22.348*cube(cor)+ - 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6); - } else damp = normal_coeffs_one[1]; - - for (int i = ilo; i <= ihi; i++) { - for (int j = MAX(jlo,i); j <= jhi; j++) { - normal_model[i][j] = normal_model[j][i] = normal_model_one; - normal_coeffs[i][j][1] = normal_coeffs[j][i][1] = damp; - if (normal_model_one != HERTZ && normal_model_one != HOOKE) { - Emod[i][j] = Emod[j][i] = normal_coeffs_one[0]; - poiss[i][j] = poiss[j][i] = normal_coeffs_one[2]; - normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = - FOURTHIRDS*mix_stiffnessE(Emod[i][j],Emod[i][j], - poiss[i][j],poiss[i][j]); - } else { - normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = normal_coeffs_one[0]; - } - if ((normal_model_one == JKR) || (normal_model_one == DMT)) - normal_coeffs[i][j][3] = normal_coeffs[j][i][3] = normal_coeffs_one[3]; - - damping_model[i][j] = damping_model[j][i] = damping_model_one; - - tangential_model[i][j] = tangential_model[j][i] = tangential_model_one; - if (tangential_coeffs_one[0] == -1) { - tangential_coeffs[i][j][0] = tangential_coeffs[j][i][0] = - 8*mix_stiffnessG(Emod[i][j],Emod[i][j],poiss[i][j],poiss[i][j]); - } else { - tangential_coeffs[i][j][0] = tangential_coeffs[j][i][0] = - tangential_coeffs_one[0]; - } - for (int k = 1; k < 3; k++) - tangential_coeffs[i][j][k] = tangential_coeffs[j][i][k] = - tangential_coeffs_one[k]; - - roll_model[i][j] = roll_model[j][i] = roll_model_one; - if (roll_model_one != ROLL_NONE) - for (int k = 0; k < 3; k++) - roll_coeffs[i][j][k] = roll_coeffs[j][i][k] = roll_coeffs_one[k]; - - twist_model[i][j] = twist_model[j][i] = twist_model_one; - if (twist_model_one != TWIST_NONE && twist_model_one != TWIST_MARSHALL) - for (int k = 0; k < 3; k++) - twist_coeffs[i][j][k] = twist_coeffs[j][i][k] = twist_coeffs_one[k]; - - cutoff_type[i][j] = cutoff_type[j][i] = cutoff_one; - - setflag[i][j] = 1; - count++; - } - } - - if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); -} - -/* ---------------------------------------------------------------------- - init specific to this pair style -------------------------------------------------------------------------- */ - -void PairGranular::init_style() -{ - int i; - - // error and warning checks - - if (!atom->radius_flag || !atom->rmass_flag) - error->all(FLERR,"Pair granular requires atom attributes radius, rmass"); - if (comm->ghost_velocity == 0) - error->all(FLERR,"Pair granular requires ghost atoms store velocity"); - - // determine whether we need a granular neigh list, how large it needs to be - - use_history = normal_history || tangential_history || - roll_history || twist_history; - - // for JKR, will need fix/neigh/history to keep track of touch arrays - - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - if (normal_model[i][j] == JKR) use_history = 1; - - size_history = 3*tangential_history + 3*roll_history + twist_history; - - // determine location of tangential/roll/twist histories in array - - if (roll_history) { - if (tangential_history) roll_history_index = 3; - else roll_history_index = 0; - } - if (twist_history) { - if (tangential_history) { - if (roll_history) twist_history_index = 6; - else twist_history_index = 3; - } else { - if (roll_history) twist_history_index = 3; - else twist_history_index = 0; - } - } - for (int i = 1; i <= atom->ntypes; i++) - for (int j = i; j <= atom->ntypes; j++) - if (tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE || - tangential_model[i][j] == TANGENTIAL_MINDLIN_RESCALE_FORCE) { - size_history += 1; - roll_history_index += 1; - twist_history_index += 1; - nondefault_history_transfer = 1; - history_transfer_factors = new int[size_history]; - for (int ii = 0; ii < size_history; ++ii) - history_transfer_factors[ii] = -1; - history_transfer_factors[3] = 1; - break; - } - - int irequest = neighbor->request(this,instance_me); - neighbor->requests[irequest]->size = 1; - if (use_history) neighbor->requests[irequest]->history = 1; - - dt = update->dt; - - // if history is stored and first init, create Fix to store history - // it replaces FixDummy, created in the constructor - // this is so its order in the fix list is preserved - - if (use_history && fix_history == nullptr) { - modify->replace_fix("NEIGH_HISTORY_GRANULAR_DUMMY","NEIGH_HISTORY_GRANULAR" - " all NEIGH_HISTORY " + std::to_string(size_history),1); - int ifix = modify->find_fix("NEIGH_HISTORY_GRANULAR"); - fix_history = (FixNeighHistory *) modify->fix[ifix]; - fix_history->pair = this; - } - - // check for FixFreeze and set freeze_group_bit - - for (i = 0; i < modify->nfix; i++) - if (strcmp(modify->fix[i]->style,"freeze") == 0) break; - if (i < modify->nfix) freeze_group_bit = modify->fix[i]->groupbit; - else freeze_group_bit = 0; - - // check for FixRigid so can extract rigid body masses - - fix_rigid = nullptr; - for (i = 0; i < modify->nfix; i++) - if (modify->fix[i]->rigid_flag) break; - if (i < modify->nfix) fix_rigid = modify->fix[i]; - - // check for FixPour and FixDeposit so can extract particle radii - - int ipour; - for (ipour = 0; ipour < modify->nfix; ipour++) - if (strcmp(modify->fix[ipour]->style,"pour") == 0) break; - if (ipour == modify->nfix) ipour = -1; - - int idep; - for (idep = 0; idep < modify->nfix; idep++) - if (strcmp(modify->fix[idep]->style,"deposit") == 0) break; - if (idep == modify->nfix) idep = -1; - - // set maxrad_dynamic and maxrad_frozen for each type - // include future FixPour and FixDeposit particles as dynamic - - int itype; - for (i = 1; i <= atom->ntypes; i++) { - onerad_dynamic[i] = onerad_frozen[i] = 0.0; - if (ipour >= 0) { - itype = i; - double radmax = *((double *) modify->fix[ipour]->extract("radius",itype)); - onerad_dynamic[i] = radmax; - } - if (idep >= 0) { - itype = i; - double radmax = *((double *) modify->fix[idep]->extract("radius",itype)); - onerad_dynamic[i] = radmax; - } - } - - double *radius = atom->radius; - int *mask = atom->mask; - int *type = atom->type; - int nlocal = atom->nlocal; - - for (i = 0; i < nlocal; i++) { - double radius_cut = radius[i]; - if (mask[i] & freeze_group_bit) { - onerad_frozen[type[i]] = MAX(onerad_frozen[type[i]],radius_cut); - } else { - onerad_dynamic[type[i]] = MAX(onerad_dynamic[type[i]],radius_cut); - } - } - - MPI_Allreduce(&onerad_dynamic[1],&maxrad_dynamic[1],atom->ntypes, - MPI_DOUBLE,MPI_MAX,world); - MPI_Allreduce(&onerad_frozen[1],&maxrad_frozen[1],atom->ntypes, - MPI_DOUBLE,MPI_MAX,world); - - // set fix which stores history info - - if (size_history > 0) { - int ifix = modify->find_fix("NEIGH_HISTORY_GRANULAR"); - if (ifix < 0) error->all(FLERR,"Could not find pair fix neigh history ID"); - fix_history = (FixNeighHistory *) modify->fix[ifix]; - } -} - -/* ---------------------------------------------------------------------- - init for one type pair i,j and corresponding j,i -------------------------------------------------------------------------- */ - -double PairGranular::init_one(int i, int j) -{ - double cutoff=0.0; - - if (setflag[i][j] == 0) { - if ((normal_model[i][i] != normal_model[j][j]) || - (damping_model[i][i] != damping_model[j][j]) || - (tangential_model[i][i] != tangential_model[j][j]) || - (roll_model[i][i] != roll_model[j][j]) || - (twist_model[i][i] != twist_model[j][j])) { - - char str[512]; - sprintf(str,"Granular pair style functional forms are different, " - "cannot mix coefficients for types %d and %d. \n" - "This combination must be set explicitly " - "via pair_coeff command",i,j); - error->one(FLERR,str); - } - - if (normal_model[i][j] == HERTZ || normal_model[i][j] == HOOKE) - normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = - mix_geom(normal_coeffs[i][i][0], normal_coeffs[j][j][0]); - else - normal_coeffs[i][j][0] = normal_coeffs[j][i][0] = - mix_stiffnessE(Emod[i][i], Emod[j][j], poiss[i][i], poiss[j][j]); - - normal_coeffs[i][j][1] = normal_coeffs[j][i][1] = - mix_geom(normal_coeffs[i][i][1], normal_coeffs[j][j][1]); - if ((normal_model[i][j] == JKR) || (normal_model[i][j] == DMT)) - normal_coeffs[i][j][3] = normal_coeffs[j][i][3] = - mix_geom(normal_coeffs[i][i][3], normal_coeffs[j][j][3]); - - for (int k = 0; k < 3; k++) - tangential_coeffs[i][j][k] = tangential_coeffs[j][i][k] = - mix_geom(tangential_coeffs[i][i][k], tangential_coeffs[j][j][k]); - - if (roll_model[i][j] != ROLL_NONE) { - for (int k = 0; k < 3; k++) - roll_coeffs[i][j][k] = roll_coeffs[j][i][k] = - mix_geom(roll_coeffs[i][i][k], roll_coeffs[j][j][k]); - } - - if (twist_model[i][j] != TWIST_NONE && twist_model[i][j] != TWIST_MARSHALL) { - for (int k = 0; k < 3; k++) - twist_coeffs[i][j][k] = twist_coeffs[j][i][k] = - mix_geom(twist_coeffs[i][i][k], twist_coeffs[j][j][k]); - } - } - - // It is possible that cut[i][j] at this point is still 0.0. - // This can happen when - // there is a future fix_pour after the current run. A cut[i][j] = 0.0 creates - // problems because neighbor.cpp uses min(cut[i][j]) to decide on the bin size - // To avoid this issue, for cases involving cut[i][j] = 0.0 (possible only - // if there is no current information about radius/cutoff of type i and j). - // we assign cutoff = max(cut[i][j]) for i,j such that cut[i][j] > 0.0. - - double pulloff; - - if (cutoff_type[i][j] < 0 && cutoff_global < 0) { - if (((maxrad_dynamic[i] > 0.0) && (maxrad_dynamic[j] > 0.0)) || - ((maxrad_dynamic[i] > 0.0) && (maxrad_frozen[j] > 0.0)) || - // radius info about both i and j exist - ((maxrad_frozen[i] > 0.0) && (maxrad_dynamic[j] > 0.0))) { - cutoff = maxrad_dynamic[i]+maxrad_dynamic[j]; - pulloff = 0.0; - if (normal_model[i][j] == JKR) { - pulloff = pulloff_distance(maxrad_dynamic[i], maxrad_dynamic[j], i, j); - cutoff += pulloff; - } - - if (normal_model[i][j] == JKR) - pulloff = pulloff_distance(maxrad_frozen[i], maxrad_dynamic[j], i, j); - cutoff = MAX(cutoff, maxrad_frozen[i]+maxrad_dynamic[j]+pulloff); - - if (normal_model[i][j] == JKR) - pulloff = pulloff_distance(maxrad_dynamic[i], maxrad_frozen[j], i, j); - cutoff = MAX(cutoff,maxrad_dynamic[i]+maxrad_frozen[j]+pulloff); - - } else { - - // radius info about either i or j does not exist - // (i.e. not present and not about to get poured; - // set to largest value to not interfere with neighbor list) - - double cutmax = 0.0; - for (int k = 1; k <= atom->ntypes; k++) { - cutmax = MAX(cutmax,2.0*maxrad_dynamic[k]); - cutmax = MAX(cutmax,2.0*maxrad_frozen[k]); - } - cutoff = cutmax; - } - } else if (cutoff_type[i][j] > 0) { - cutoff = cutoff_type[i][j]; - } else if (cutoff_global > 0) { - cutoff = cutoff_global; - } - - return cutoff; -} - -/* ---------------------------------------------------------------------- - proc 0 writes to restart file -------------------------------------------------------------------------- */ - -void PairGranular::write_restart(FILE *fp) -{ - int i,j; - for (i = 1; i <= atom->ntypes; i++) { - for (j = i; j <= atom->ntypes; j++) { - fwrite(&setflag[i][j],sizeof(int),1,fp); - if (setflag[i][j]) { - fwrite(&normal_model[i][j],sizeof(int),1,fp); - fwrite(&damping_model[i][j],sizeof(int),1,fp); - fwrite(&tangential_model[i][j],sizeof(int),1,fp); - fwrite(&roll_model[i][j],sizeof(int),1,fp); - fwrite(&twist_model[i][j],sizeof(int),1,fp); - fwrite(normal_coeffs[i][j],sizeof(double),4,fp); - fwrite(tangential_coeffs[i][j],sizeof(double),3,fp); - fwrite(roll_coeffs[i][j],sizeof(double),3,fp); - fwrite(twist_coeffs[i][j],sizeof(double),3,fp); - fwrite(&cutoff_type[i][j],sizeof(double),1,fp); - } - } - } -} - -/* ---------------------------------------------------------------------- - proc 0 reads from restart file, bcasts -------------------------------------------------------------------------- */ - -void PairGranular::read_restart(FILE *fp) -{ - allocate(); - int i,j; - int me = comm->me; - for (i = 1; i <= atom->ntypes; i++) { - for (j = i; j <= atom->ntypes; j++) { - if (me == 0) utils::sfread(FLERR,&setflag[i][j],sizeof(int),1,fp,nullptr,error); - MPI_Bcast(&setflag[i][j],1,MPI_INT,0,world); - if (setflag[i][j]) { - if (me == 0) { - utils::sfread(FLERR,&normal_model[i][j],sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&damping_model[i][j],sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&tangential_model[i][j],sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&roll_model[i][j],sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,&twist_model[i][j],sizeof(int),1,fp,nullptr,error); - utils::sfread(FLERR,normal_coeffs[i][j],sizeof(double),4,fp,nullptr,error); - utils::sfread(FLERR,tangential_coeffs[i][j],sizeof(double),3,fp,nullptr,error); - utils::sfread(FLERR,roll_coeffs[i][j],sizeof(double),3,fp,nullptr,error); - utils::sfread(FLERR,twist_coeffs[i][j],sizeof(double),3,fp,nullptr,error); - utils::sfread(FLERR,&cutoff_type[i][j],sizeof(double),1,fp,nullptr,error); - } - MPI_Bcast(&normal_model[i][j],1,MPI_INT,0,world); - MPI_Bcast(&damping_model[i][j],1,MPI_INT,0,world); - MPI_Bcast(&tangential_model[i][j],1,MPI_INT,0,world); - MPI_Bcast(&roll_model[i][j],1,MPI_INT,0,world); - MPI_Bcast(&twist_model[i][j],1,MPI_INT,0,world); - MPI_Bcast(normal_coeffs[i][j],4,MPI_DOUBLE,0,world); - MPI_Bcast(tangential_coeffs[i][j],3,MPI_DOUBLE,0,world); - MPI_Bcast(roll_coeffs[i][j],3,MPI_DOUBLE,0,world); - MPI_Bcast(twist_coeffs[i][j],3,MPI_DOUBLE,0,world); - MPI_Bcast(&cutoff_type[i][j],1,MPI_DOUBLE,0,world); - } - } - } -} - -/* ---------------------------------------------------------------------- */ - -void PairGranular::reset_dt() -{ - dt = update->dt; -} - -/* ---------------------------------------------------------------------- */ - -double PairGranular::single(int i, int j, int itype, int jtype, - double rsq, double /* factor_coul */, - double /* factor_lj */, double &fforce) -{ - double radi,radj,radsum; - double r,rinv,delx,dely,delz, nx, ny, nz, Reff; - double dR, dR2; - double vr1,vr2,vr3,vnnr,vn1,vn2,vn3,vt1,vt2,vt3,wr1,wr2,wr3; - double vtr1,vtr2,vtr3,vrel; - double mi,mj,meff; - double relrot1,relrot2,relrot3,vrl1,vrl2,vrl3; - - double knfac, damp_normal, damp_normal_prefactor; - double k_tangential, damp_tangential; - double Fne, Ft, Fdamp, Fntot, Fncrit, Fscrit, Frcrit; - double fs, fs1, fs2, fs3; - - // for JKR - double R2, coh, F_pulloff, delta_pulloff, dist_pulloff, a, a2, E; - double delta, t0, t1, t2, t3, t4, t5, t6; - double sqrt1, sqrt2, sqrt3; - - // rolling - double k_roll, damp_roll; - double rollmag; - double fr, fr1, fr2, fr3; - - // twisting - double k_twist, damp_twist, mu_twist; - double signtwist, magtwist, magtortwist, Mtcrit; - - double shrmag; - int jnum; - int *jlist; - double *history,*allhistory; - - int nall = atom->nlocal + atom->nghost; - if ((i >= nall) || (j >= nall)) - error->all(FLERR,"Not enough atoms for pair granular single function"); - - double *radius = atom->radius; - radi = radius[i]; - radj = radius[j]; - radsum = radi + radj; - Reff = (radsum > 0.0) ? radi*radj/radsum : 0.0; - - bool touchflag; - E = normal_coeffs[itype][jtype][0]; - if (normal_model[itype][jtype] == JKR) { - E *= THREEQUARTERS; - R2 = Reff*Reff; - coh = normal_coeffs[itype][jtype][3]; - a = cbrt(9.0*MY_PI*coh*R2/(4*E)); - delta_pulloff = a*a/Reff - 2*sqrt(MY_PI*coh*a/E); - dist_pulloff = radsum+delta_pulloff; - touchflag = (rsq <= dist_pulloff*dist_pulloff); - } else touchflag = (rsq <= radsum*radsum); - - if (!touchflag) { - fforce = 0.0; - for (int m = 0; m < single_extra; m++) svector[m] = 0.0; - return 0.0; - } - - double **x = atom->x; - delx = x[i][0] - x[j][0]; - dely = x[i][1] - x[j][1]; - delz = x[i][2] - x[j][2]; - r = sqrt(rsq); - rinv = 1.0/r; - - nx = delx*rinv; - ny = dely*rinv; - nz = delz*rinv; - - // relative translational velocity - - double **v = atom->v; - vr1 = v[i][0] - v[j][0]; - vr2 = v[i][1] - v[j][1]; - vr3 = v[i][2] - v[j][2]; - - // normal component - - vnnr = vr1*nx + vr2*ny + vr3*nz; - vn1 = nx*vnnr; - vn2 = ny*vnnr; - vn3 = nz*vnnr; - - // tangential component - - vt1 = vr1 - vn1; - vt2 = vr2 - vn2; - vt3 = vr3 - vn3; - - // relative rotational velocity - - double **omega = atom->omega; - wr1 = (radi*omega[i][0] + radj*omega[j][0]); - wr2 = (radi*omega[i][1] + radj*omega[j][1]); - wr3 = (radi*omega[i][2] + radj*omega[j][2]); - - // meff = effective mass of pair of particles - // if I or J part of rigid body, use body mass - // if I or J is frozen, meff is other particle - - double *rmass = atom->rmass; - int *mask = atom->mask; - - mi = rmass[i]; - mj = rmass[j]; - if (fix_rigid) { - // NOTE: ensure mass_rigid is current for owned+ghost atoms? - if (mass_rigid[i] > 0.0) mi = mass_rigid[i]; - if (mass_rigid[j] > 0.0) mj = mass_rigid[j]; - } - - meff = mi*mj / (mi+mj); - if (mask[i] & freeze_group_bit) meff = mj; - if (mask[j] & freeze_group_bit) meff = mi; - - delta = radsum - r; - dR = delta*Reff; - if (normal_model[itype][jtype] == JKR) { - dR2 = dR*dR; - t0 = coh*coh*R2*R2*E; - t1 = PI27SQ*t0; - t2 = 8*dR*dR2*E*E*E; - t3 = 4*dR2*E; - // in case sqrt(0) < 0 due to precision issues - sqrt1 = MAX(0, t0*(t1+2*t2)); - t4 = cbrt(t1+t2+THREEROOT3*MY_PI*sqrt(sqrt1)); - t5 = t3/t4 + t4/E; - sqrt2 = MAX(0, 2*dR + t5); - t6 = sqrt(sqrt2); - sqrt3 = MAX(0, 4*dR - t5 + SIXROOT6*coh*MY_PI*R2/(E*t6)); - a = INVROOT6*(t6 + sqrt(sqrt3)); - a2 = a*a; - knfac = normal_coeffs[itype][jtype][0]*a; - Fne = knfac*a2/Reff - MY_2PI*a2*sqrt(4*coh*E/(MY_PI*a)); - } else { - knfac = E; - Fne = knfac*delta; - a = sqrt(dR); - if (normal_model[itype][jtype] != HOOKE) { - Fne *= a; - knfac *= a; - } - if (normal_model[itype][jtype] == DMT) - Fne -= 4*MY_PI*normal_coeffs[itype][jtype][3]*Reff; - } - - if (damping_model[itype][jtype] == VELOCITY) { - damp_normal = 1; - } else if (damping_model[itype][jtype] == MASS_VELOCITY) { - damp_normal = meff; - } else if (damping_model[itype][jtype] == VISCOELASTIC) { - damp_normal = a*meff; - } else if (damping_model[itype][jtype] == TSUJI) { - damp_normal = sqrt(meff*knfac); - } else damp_normal = 0.0; - - damp_normal_prefactor = normal_coeffs[itype][jtype][1]*damp_normal; - Fdamp = -damp_normal_prefactor*vnnr; - - Fntot = Fne + Fdamp; - - jnum = list->numneigh[i]; - jlist = list->firstneigh[i]; - - if (use_history) { - if ((fix_history == nullptr) || (fix_history->firstvalue == nullptr)) - error->one(FLERR,"Pair granular single computation needs history"); - allhistory = fix_history->firstvalue[i]; - for (int jj = 0; jj < jnum; jj++) { - neighprev++; - if (neighprev >= jnum) neighprev = 0; - if (jlist[neighprev] == j) break; - } - history = &allhistory[size_history*neighprev]; - } - - //**************************************** - // tangential force, including history effects - //**************************************** - - // For linear, mindlin, mindlin_rescale: - // history = cumulative tangential displacement - // - // For mindlin/force, mindlin_rescale/force: - // history = cumulative tangential elastic force - - // tangential component - vt1 = vr1 - vn1; - vt2 = vr2 - vn2; - vt3 = vr3 - vn3; - - // relative rotational velocity - wr1 = (radi*omega[i][0] + radj*omega[j][0]); - wr2 = (radi*omega[i][1] + radj*omega[j][1]); - wr3 = (radi*omega[i][2] + radj*omega[j][2]); - - // relative tangential velocities - vtr1 = vt1 - (nz*wr2-ny*wr3); - vtr2 = vt2 - (nx*wr3-nz*wr1); - vtr3 = vt3 - (ny*wr1-nx*wr2); - vrel = vtr1*vtr1 + vtr2*vtr2 + vtr3*vtr3; - vrel = sqrt(vrel); - - if (normal_model[itype][jtype] == JKR) { - F_pulloff = 3*MY_PI*coh*Reff; - Fncrit = fabs(Fne + 2*F_pulloff); - } else if (normal_model[itype][jtype] == DMT) { - F_pulloff = 4*MY_PI*coh*Reff; - Fncrit = fabs(Fne + 2*F_pulloff); - } else { - Fncrit = fabs(Fntot); - } - Fscrit = tangential_coeffs[itype][jtype][2] * Fncrit; - - //------------------------------ - // tangential forces - //------------------------------ - k_tangential = tangential_coeffs[itype][jtype][0]; - damp_tangential = tangential_coeffs[itype][jtype][1]*damp_normal_prefactor; - - if (tangential_history) { - if (tangential_model[itype][jtype] != TANGENTIAL_HISTORY) { - k_tangential *= a; - } - - shrmag = sqrt(history[0]*history[0] + history[1]*history[1] + - history[2]*history[2]); - - // tangential forces = history + tangential velocity damping - if (tangential_model[itype][jtype] == TANGENTIAL_HISTORY || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN || - tangential_model[itype][jtype] == TANGENTIAL_MINDLIN_RESCALE) { - fs1 = -k_tangential*history[0] - damp_tangential*vtr1; - fs2 = -k_tangential*history[1] - damp_tangential*vtr2; - fs3 = -k_tangential*history[2] - damp_tangential*vtr3; - } else { - fs1 = history[0] - damp_tangential*vtr1; - fs2 = history[1] - damp_tangential*vtr2; - fs3 = history[2] - damp_tangential*vtr3; - } - - // rescale frictional forces if needed - fs = sqrt(fs1*fs1 + fs2*fs2 + fs3*fs3); - if (fs > Fscrit) { - if (shrmag != 0.0) { - fs1 *= Fscrit/fs; - fs2 *= Fscrit/fs; - fs3 *= Fscrit/fs; - fs *= Fscrit/fs; - } else fs1 = fs2 = fs3 = fs = 0.0; - } - - // classic pair gran/hooke (no history) - } else { - fs = damp_tangential*vrel; - if (vrel != 0.0) Ft = MIN(Fscrit,fs) / vrel; - else Ft = 0.0; - fs1 = -Ft*vtr1; - fs2 = -Ft*vtr2; - fs3 = -Ft*vtr3; - fs = Ft*vrel; - } - - //**************************************** - // rolling resistance - //**************************************** - - if ((roll_model[itype][jtype] != ROLL_NONE) - || (twist_model[itype][jtype] != TWIST_NONE)) { - relrot1 = omega[i][0] - omega[j][0]; - relrot2 = omega[i][1] - omega[j][1]; - relrot3 = omega[i][2] - omega[j][2]; - - // rolling velocity, see eq. 31 of Wang et al, Particuology v 23, p 49 (2015) - // this is different from the Marshall papers, - // which use the Bagi/Kuhn formulation - // for rolling velocity (see Wang et al for why the latter is wrong) - - vrl1 = Reff*(relrot2*nz - relrot3*ny); //- 0.5*((radj-radi)/radsum)*vtr1; - vrl2 = Reff*(relrot3*nx - relrot1*nz); //- 0.5*((radj-radi)/radsum)*vtr2; - vrl3 = Reff*(relrot1*ny - relrot2*nx); //- 0.5*((radj-radi)/radsum)*vtr3; - - int rhist0 = roll_history_index; - int rhist1 = rhist0 + 1; - int rhist2 = rhist1 + 1; - - // rolling displacement - rollmag = sqrt(history[rhist0]*history[rhist0] + - history[rhist1]*history[rhist1] + - history[rhist2]*history[rhist2]); - - k_roll = roll_coeffs[itype][jtype][0]; - damp_roll = roll_coeffs[itype][jtype][1]; - fr1 = -k_roll*history[rhist0] - damp_roll*vrl1; - fr2 = -k_roll*history[rhist1] - damp_roll*vrl2; - fr3 = -k_roll*history[rhist2] - damp_roll*vrl3; - - // rescale frictional displacements and forces if needed - Frcrit = roll_coeffs[itype][jtype][2] * Fncrit; - - fr = sqrt(fr1*fr1 + fr2*fr2 + fr3*fr3); - if (fr > Frcrit) { - if (rollmag != 0.0) { - fr1 *= Frcrit/fr; - fr2 *= Frcrit/fr; - fr3 *= Frcrit/fr; - fr *= Frcrit/fr; - } else fr1 = fr2 = fr3 = fr = 0.0; - } - } else fr1 = fr2 = fr3 = fr = 0.0; - - //**************************************** - // twisting torque, including history effects - //**************************************** - - if (twist_model[itype][jtype] != TWIST_NONE) { - // omega_T (eq 29 of Marshall) - magtwist = relrot1*nx + relrot2*ny + relrot3*nz; - if (twist_model[itype][jtype] == TWIST_MARSHALL) { - k_twist = 0.5*k_tangential*a*a;; //eq 32 - damp_twist = 0.5*damp_tangential*a*a; - mu_twist = TWOTHIRDS*a*tangential_coeffs[itype][jtype][2];; - } else { - k_twist = twist_coeffs[itype][jtype][0]; - damp_twist = twist_coeffs[itype][jtype][1]; - mu_twist = twist_coeffs[itype][jtype][2]; - } - // M_t torque (eq 30) - magtortwist = -k_twist*history[twist_history_index] - damp_twist*magtwist; - signtwist = (magtwist > 0) - (magtwist < 0); - Mtcrit = mu_twist*Fncrit; // critical torque (eq 44) - if (fabs(magtortwist) > Mtcrit) { - magtortwist = -Mtcrit * signtwist; // eq 34 - } else magtortwist = 0.0; - } else magtortwist = 0.0; - - // set force and return no energy - - fforce = Fntot*rinv; - - // set single_extra quantities - - svector[0] = fs1; - svector[1] = fs2; - svector[2] = fs3; - svector[3] = fs; - svector[4] = fr1; - svector[5] = fr2; - svector[6] = fr3; - svector[7] = fr; - svector[8] = magtortwist; - svector[9] = delx; - svector[10] = dely; - svector[11] = delz; - return 0.0; -} - -/* ---------------------------------------------------------------------- */ - -int PairGranular::pack_forward_comm(int n, int *list, double *buf, - int /* pbc_flag */, int * /* pbc */) -{ - int i,j,m; - - m = 0; - for (i = 0; i < n; i++) { - j = list[i]; - buf[m++] = mass_rigid[j]; - } - return m; -} - -/* ---------------------------------------------------------------------- */ - -void PairGranular::unpack_forward_comm(int n, int first, double *buf) -{ - int i,m,last; - - m = 0; - last = first + n; - for (i = first; i < last; i++) - mass_rigid[i] = buf[m++]; -} - -/* ---------------------------------------------------------------------- - memory usage of local atom-based arrays -------------------------------------------------------------------------- */ - -double PairGranular::memory_usage() -{ - double bytes = (double)nmax * sizeof(double); - return bytes; -} - -/* ---------------------------------------------------------------------- - mixing of Young's modulus (E) -------------------------------------------------------------------------- */ - -double PairGranular::mix_stiffnessE(double Eii, double Ejj, - double poisii, double poisjj) -{ - return 1/((1-poisii*poisii)/Eii+(1-poisjj*poisjj)/Ejj); -} - -/* ---------------------------------------------------------------------- - mixing of shear modulus (G) ------------------------------------------------------------------------- */ - -double PairGranular::mix_stiffnessG(double Eii, double Ejj, - double poisii, double poisjj) -{ - return 1/((2*(2-poisii)*(1+poisii)/Eii) + (2*(2-poisjj)*(1+poisjj)/Ejj)); -} - -/* ---------------------------------------------------------------------- - mixing of everything else -------------------------------------------------------------------------- */ - -double PairGranular::mix_geom(double valii, double valjj) -{ - return sqrt(valii*valjj); -} - - -/* ---------------------------------------------------------------------- - compute pull-off distance (beyond contact) for a given radius and atom type -------------------------------------------------------------------------- */ - -double PairGranular::pulloff_distance(double radi, double radj, - int itype, int jtype) -{ - double E, coh, a, Reff; - Reff = radi*radj/(radi+radj); - if (Reff <= 0) return 0; - coh = normal_coeffs[itype][jtype][3]; - E = normal_coeffs[itype][jtype][0]*THREEQUARTERS; - a = cbrt(9*MY_PI*coh*Reff*Reff/(4*E)); - return a*a/Reff - 2*sqrt(MY_PI*coh*a/E); -} - -/* ---------------------------------------------------------------------- - transfer history during fix/neigh/history exchange - only needed if any history entries i-j are not just negative of j-i entries -------------------------------------------------------------------------- */ - -void PairGranular::transfer_history(double* source, double* target) -{ - for (int i = 0; i < size_history; i++) - target[i] = history_transfer_factors[i]*source[i]; -} From 6bdf0138acbeb53101bc7ac3b2e42cfd995470da Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Mon, 5 Apr 2021 11:50:53 -0600 Subject: [PATCH 058/104] Typos in documentation --- doc/src/pair_gran.rst | 2 +- doc/src/pair_granular.rst | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/src/pair_gran.rst b/doc/src/pair_gran.rst index 7d6189fda1..5bccdfd8b4 100644 --- a/doc/src/pair_gran.rst +++ b/doc/src/pair_gran.rst @@ -219,7 +219,7 @@ potential. If two particles are moving away from each other while in contact, there is a possibility that the particles could experience an effective attractive -force due to damping. If the *limit_damping* keyword is used, this fix +force due to damping. If the *limit_damping* keyword is used, this option will zero out the normal component of the force if there is an effective attractive force. diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index e0a33f31d0..a9ca437370 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -625,7 +625,7 @@ Finally, the twisting torque on each particle is given by: If two particles are moving away from each other while in contact, there is a possibility that the particles could experience an effective attractive -force due to damping. If the optional *limit_damping* keyword is used, this fix +force due to damping. If the optional *limit_damping* keyword is used, this option will zero out the normal component of the force if there is an effective attractive force. This keyword cannot be used with the JKR or DMT models. @@ -667,7 +667,7 @@ atom types. If two particles are moving away from each other while in contact, there is a possibility that the particles could experience an effective attractive -force due to damping. If the *no_attraction* keyword is used, this fix +force due to damping. If the *limit_damping* keyword is used, this option will zero out the normal component of the force if there is an effective attractive force. This keyword cannot be used with the JKR or DMT models. From f323fb29b3cc6e96a643b9de94c73472c3f9bccd Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Mon, 5 Apr 2021 11:53:49 -0600 Subject: [PATCH 059/104] Reverting no_attraction option in wall gran region docu --- doc/src/fix_wall_gran_region.rst | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/doc/src/fix_wall_gran_region.rst b/doc/src/fix_wall_gran_region.rst index b7a9ff6bd7..35fe1fab72 100644 --- a/doc/src/fix_wall_gran_region.rst +++ b/doc/src/fix_wall_gran_region.rst @@ -36,14 +36,12 @@ Syntax * wallstyle = region (see :doc:`fix wall/gran ` for options for other kinds of walls) * region-ID = region whose boundary will act as wall -* keyword = *contacts* or *no_attraction* +* keyword = *contacts* .. parsed-literal:: *contacts* value = none generate contact information for each particle - *no_attraction* value = none - turn off possibility of attractive interactions Examples """""""" From 4e4a571dbda05a29dff342d163f4059b0aac5117 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:31:13 -0400 Subject: [PATCH 060/104] Add advanced LAMMPS_DOWNLOADS_URL cmake option --- cmake/CMakeLists.txt | 5 +++++ cmake/Modules/LAMMPSUtils.cmake | 1 - 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/cmake/CMakeLists.txt b/cmake/CMakeLists.txt index 21d965ebba..4c94a5037a 100644 --- a/cmake/CMakeLists.txt +++ b/cmake/CMakeLists.txt @@ -22,6 +22,11 @@ set(LAMMPS_TOOLS_DIR ${LAMMPS_DIR}/tools) set(LAMMPS_PYTHON_DIR ${LAMMPS_DIR}/python) set(LAMMPS_POTENTIALS_DIR ${LAMMPS_DIR}/potentials) +set(LAMMPS_DOWNLOADS_URL "https://download.lammps.org" CACHE STRING "Base URL for LAMMPS downloads") +set(LAMMPS_POTENTIALS_URL "${LAMMPS_DOWNLOADS_URL}/potentials") +set(LAMMPS_THIRDPARTY_URL "${LAMMPS_DOWNLOADS_URL}/thirdparty") +mark_as_advanced(LAMMPS_DOWNLOADS_URL) + find_package(Git) # by default, install into $HOME/.local (not /usr/local), so that no root access (and sudo!!) is needed diff --git a/cmake/Modules/LAMMPSUtils.cmake b/cmake/Modules/LAMMPSUtils.cmake index 37275843fa..acaef19498 100644 --- a/cmake/Modules/LAMMPSUtils.cmake +++ b/cmake/Modules/LAMMPSUtils.cmake @@ -86,7 +86,6 @@ endfunction(GenerateBinaryHeader) # fetch missing potential files function(FetchPotentials pkgfolder potfolder) if (EXISTS "${pkgfolder}/potentials.txt") - set(LAMMPS_POTENTIALS_URL "https://download.lammps.org/potentials") file(STRINGS "${pkgfolder}/potentials.txt" linelist REGEX "^[^#].") foreach(line ${linelist}) string(FIND ${line} " " blank) From 8533bb17e7cf3913600f139de54edaab2cf01108 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:36:38 -0400 Subject: [PATCH 061/104] Update cmake/Modules/OpenCLLoader.cmake --- cmake/Modules/OpenCLLoader.cmake | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/cmake/Modules/OpenCLLoader.cmake b/cmake/Modules/OpenCLLoader.cmake index 5ab121f841..54eaab4795 100644 --- a/cmake/Modules/OpenCLLoader.cmake +++ b/cmake/Modules/OpenCLLoader.cmake @@ -1,11 +1,13 @@ message(STATUS "Downloading and building OpenCL loader library") +set(OPENCL_LOADER_URL "${LAMMPS_THIRDPARTY_URL}/opencl-loader-2020.12.18.tar.gz" CACHE STRING "URL for OpenCL loader tarball") +set(OPENCL_LOADER_MD5 "011cdcbd41030be94f3fced6d763a52a" CACHE STRING "MD5 checksum of OpenCL loader tarball") +mark_as_advanced(OPENCL_LOADER_URL) +mark_as_advanced(OPENCL_LOADER_MD5) include(ExternalProject) -set(OPENCL_LOADER_URL "https://download.lammps.org/thirdparty/opencl-loader-2020.12.18.tar.gz" CACHE STRING "URL for OpenCL loader tarball") -mark_as_advanced(OPENCL_LOADER_URL) ExternalProject_Add(opencl_loader - URL ${OPENCL_LOADER_URL} - URL_MD5 011cdcbd41030be94f3fced6d763a52a + URL ${OPENCL_LOADER_URL} + URL_MD5 ${OPENCL_LOADER_MD5} SOURCE_DIR "${CMAKE_BINARY_DIR}/opencl_loader-src" BINARY_DIR "${CMAKE_BINARY_DIR}/opencl_loader-build" CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_OPENCL_LOADER_OPTS} From 3b14606f063f8fa72470697a495a3441df2e00ca Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:43:05 -0400 Subject: [PATCH 062/104] Update cmake/Modules/MPI4WIN.cmake --- cmake/Modules/MPI4WIN.cmake | 17 +++++++++++++---- 1 file changed, 13 insertions(+), 4 deletions(-) diff --git a/cmake/Modules/MPI4WIN.cmake b/cmake/Modules/MPI4WIN.cmake index 529cefeab0..aa0c9e1833 100644 --- a/cmake/Modules/MPI4WIN.cmake +++ b/cmake/Modules/MPI4WIN.cmake @@ -1,16 +1,25 @@ # Download and configure custom MPICH files for Windows message(STATUS "Downloading and configuring MPICH-1.4.1 for Windows") +set(MPICH2_WIN64_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win64-devel.tar.gz" CACHE STRING "URL for MPICH2 (win64) tarball") +set(MPICH2_WIN32_DEVEL_URL "${LAMMPS_THIRDPARTY_URL}/mpich2-win32-devel.tar.gz" CACHE STRING "URL for MPICH2 (win32) tarball") +set(MPICH2_WIN64_DEVEL_MD5 "4939fdb59d13182fd5dd65211e469f14" CACHE STRING "MD5 checksum of MPICH2 (win64) tarball") +set(MPICH2_WIN32_DEVEL_MD5 "a61d153500dce44e21b755ee7257e031" CACHE STRING "MD5 checksum of MPICH2 (win32) tarball") +mark_as_advanced(MPICH2_WIN64_DEVEL_URL) +mark_as_advanced(MPICH2_WIN32_DEVEL_URL) +mark_as_advanced(MPICH2_WIN64_DEVEL_MD5) +mark_as_advanced(MPICH2_WIN32_DEVEL_MD5) + include(ExternalProject) if(CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64") ExternalProject_Add(mpi4win_build - URL https://download.lammps.org/thirdparty/mpich2-win64-devel.tar.gz - URL_MD5 4939fdb59d13182fd5dd65211e469f14 + URL ${MPICH2_WIN64_DEVEL_URL} + URL_MD5 ${MPICH2_WIN64_DEVEL_MD5} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" BUILD_BYPRODUCTS /lib/libmpi.a) else() ExternalProject_Add(mpi4win_build - URL https://download.lammps.org/thirdparty/mpich2-win32-devel.tar.gz - URL_MD5 a61d153500dce44e21b755ee7257e031 + URL ${MPICH2_WIN32_DEVEL_URL} + URL_MD5 ${MPICH2_WIN32_DEVEL_MD5} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" BUILD_BYPRODUCTS /lib/libmpi.a) endif() From 614411130b2aa3312b5ab12a02db3132f31a56ec Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:44:27 -0400 Subject: [PATCH 063/104] Update cmake/Modules/Documentation.cmake --- cmake/Modules/Documentation.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Documentation.cmake b/cmake/Modules/Documentation.cmake index 5a42244b9e..c0028676b7 100644 --- a/cmake/Modules/Documentation.cmake +++ b/cmake/Modules/Documentation.cmake @@ -55,11 +55,15 @@ if(BUILD_DOC) COMMAND ${DOCENV_BINARY_DIR}/pip $ENV{PIP_OPTIONS} install -r ${DOC_BUILD_DIR}/requirements.txt --upgrade ) + set(MATHJAX_URL "https://github.com/mathjax/MathJax/archive/3.1.2.tar.gz" CACHE STRING "URL for MathJax tarball") + set(MATHJAX_MD5 "a4a6a093a89bc2ccab1452d766b98e53" CACHE STRING "MD5 checksum of MathJax tarball") + mark_as_advanced(MATHJAX_URL) + # download mathjax distribution and unpack to folder "mathjax" if(NOT EXISTS ${DOC_BUILD_STATIC_DIR}/mathjax/es5) - file(DOWNLOAD "https://github.com/mathjax/MathJax/archive/3.1.2.tar.gz" + file(DOWNLOAD ${MATHJAX_URL} "${CMAKE_CURRENT_BINARY_DIR}/mathjax.tar.gz" - EXPECTED_MD5 a4a6a093a89bc2ccab1452d766b98e53) + EXPECTED_MD5 ${MATHJAX_MD5}) execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf mathjax.tar.gz WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) file(GLOB MATHJAX_VERSION_DIR ${CMAKE_CURRENT_BINARY_DIR}/MathJax-*) execute_process(COMMAND ${CMAKE_COMMAND} -E rename ${MATHJAX_VERSION_DIR} ${DOC_BUILD_STATIC_DIR}/mathjax) From 192ee276b16c3d67838ce58d50f9a85c41abe141 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:46:50 -0400 Subject: [PATCH 064/104] Update cmake/Modules/Packages/KOKKOS.cmake --- cmake/Modules/Packages/KOKKOS.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/KOKKOS.cmake b/cmake/Modules/Packages/KOKKOS.cmake index 1dfb0bf389..1f00516e08 100644 --- a/cmake/Modules/Packages/KOKKOS.cmake +++ b/cmake/Modules/Packages/KOKKOS.cmake @@ -37,9 +37,13 @@ if(DOWNLOAD_KOKKOS) list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_CXX_EXTENSIONS=${CMAKE_CXX_EXTENSIONS}") list(APPEND KOKKOS_LIB_BUILD_ARGS "-DCMAKE_TOOLCHAIN_FILE=${CMAKE_TOOLCHAIN_FILE}") include(ExternalProject) + set(KOKKOS_URL "https://github.com/kokkos/kokkos/archive/3.3.01.tar.gz" CACHE STRING "URL for KOKKOS tarball") + set(KOKKOS_MD5 "08201d1c7cf5bc458ce0f5b44a629d5a" CACHE STRING "MD5 checksum of KOKKOS tarball") + mark_as_advanced(KOKKOS_URL) + mark_as_advanced(KOKKOS_MD5) ExternalProject_Add(kokkos_build - URL https://github.com/kokkos/kokkos/archive/3.3.01.tar.gz - URL_MD5 08201d1c7cf5bc458ce0f5b44a629d5a + URL ${KOKKOS_URL} + URL_MD5 ${KOKKOS_MD5} CMAKE_ARGS ${KOKKOS_LIB_BUILD_ARGS} BUILD_BYPRODUCTS /lib/libkokkoscore.a ) From 42ca8c5ba09762c43602614feee0363a25f9273d Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:55:56 -0400 Subject: [PATCH 065/104] Update cmake/Modules/Packages/VORONOI.cmake --- cmake/Modules/Packages/VORONOI.cmake | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/VORONOI.cmake b/cmake/Modules/Packages/VORONOI.cmake index 1d6893a978..7feea4c52e 100644 --- a/cmake/Modules/Packages/VORONOI.cmake +++ b/cmake/Modules/Packages/VORONOI.cmake @@ -7,6 +7,11 @@ endif() option(DOWNLOAD_VORO "Download and compile the Voro++ library instead of using an already installed one" ${DOWNLOAD_VORO_DEFAULT}) if(DOWNLOAD_VORO) message(STATUS "Voro++ download requested - we will build our own") + set(VORO_URL "${LAMMPS_THIRDPARTY_URL}/voro++-0.4.6.tar.gz" CACHE STRING "URL for Voro++ tarball") + set(VORO_MD5 "2338b824c3b7b25590e18e8df5d68af9" CACHE STRING "MD5 checksum for Voro++ tarball") + mark_as_advanced(VORO_URL) + mark_as_advanced(VORO_MD5) + include(ExternalProject) if(BUILD_SHARED_LIBS) @@ -22,8 +27,8 @@ if(DOWNLOAD_VORO) endif() ExternalProject_Add(voro_build - URL https://download.lammps.org/thirdparty/voro++-0.4.6.tar.gz - URL_MD5 2338b824c3b7b25590e18e8df5d68af9 + URL ${VORO_URL} + URL_MD5 ${VORO_MD5} PATCH_COMMAND patch -b -p0 < ${LAMMPS_LIB_SOURCE_DIR}/voronoi/voro-make.patch CONFIGURE_COMMAND "" BUILD_COMMAND make ${VORO_BUILD_OPTIONS} From 725332614a95131a855cfc8bc74edd98dcb5dccd Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 14:56:47 -0400 Subject: [PATCH 066/104] Update cmake/Modules/Packages/MSCG.cmake --- cmake/Modules/Packages/MSCG.cmake | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/MSCG.cmake b/cmake/Modules/Packages/MSCG.cmake index 6cb389fb13..6ac62cb012 100644 --- a/cmake/Modules/Packages/MSCG.cmake +++ b/cmake/Modules/Packages/MSCG.cmake @@ -7,10 +7,15 @@ else() endif() option(DOWNLOAD_MSCG "Download MSCG library instead of using an already installed one)" ${DOWNLOAD_MSCG_DEFAULT}) if(DOWNLOAD_MSCG) + set(MSCG_URL "https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz" CACHE STRING "URL for MSCG tarball") + set(MSCG_MD5 "8c45e269ee13f60b303edd7823866a91" CACHE STRING "MD5 checksum of MSCG tarball") + mark_as_advanced(MSCG_URL) + mark_as_advanced(MSCG_MD5) + include(ExternalProject) ExternalProject_Add(mscg_build - URL https://github.com/uchicago-voth/MSCG-release/archive/1.7.3.1.tar.gz - URL_MD5 8c45e269ee13f60b303edd7823866a91 + URL ${MSCG_URL} + URL_MD5 ${MSCG_MD5} SOURCE_SUBDIR src/CMake CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${EXTRA_MSCG_OPTS} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} From 0277883fb2271a31ed0d07f4b64098ee4655b436 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:00:06 -0400 Subject: [PATCH 067/104] Update cmake/Modules/Packages/USER-SCAFACOS.cmake --- cmake/Modules/Packages/USER-SCAFACOS.cmake | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/cmake/Modules/Packages/USER-SCAFACOS.cmake b/cmake/Modules/Packages/USER-SCAFACOS.cmake index dc5c400c36..fd355420c3 100644 --- a/cmake/Modules/Packages/USER-SCAFACOS.cmake +++ b/cmake/Modules/Packages/USER-SCAFACOS.cmake @@ -14,15 +14,19 @@ endif() option(DOWNLOAD_SCAFACOS "Download ScaFaCoS library instead of using an already installed one" ${DOWNLOAD_SCAFACOS_DEFAULT}) if(DOWNLOAD_SCAFACOS) message(STATUS "ScaFaCoS download requested - we will build our own") + set(SCAFACOS_URL "https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz" CACHE STRING "URL for SCAFACOS tarball") + set(SCAFACOS_MD5 "bd46d74e3296bd8a444d731bb10c1738" CACHE STRING "MD5 checksum of SCAFACOS tarball") + mark_as_advanced(SCAFACOS_URL) + mark_as_advanced(SCAFACOS_MD5) # version 1.0.1 needs a patch to compile and linke cleanly with GCC 10 and later. - file(DOWNLOAD https://download.lammps.org/thirdparty/scafacos-1.0.1-fix.diff ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff + file(DOWNLOAD ${LAMMPS_THIRDPARTY_URL}/scafacos-1.0.1-fix.diff ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff EXPECTED_HASH MD5=4baa1333bb28fcce102d505e1992d032) include(ExternalProject) ExternalProject_Add(scafacos_build - URL https://github.com/scafacos/scafacos/releases/download/v1.0.1/scafacos-1.0.1.tar.gz - URL_MD5 bd46d74e3296bd8a444d731bb10c1738 + URL ${SCAFACOS_URL} + URL_MD5 ${SCAFACOS_MD5} PATCH_COMMAND patch -p1 < ${CMAKE_CURRENT_BINARY_DIR}/scafacos-1.0.1.fix.diff CONFIGURE_COMMAND /configure --prefix= --disable-doc --enable-fcs-solvers=fmm,p2nfft,direct,ewald,p3m From 8ccc19bb2a272ec593da61515a1a313e1ff6d35f Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:03:05 -0400 Subject: [PATCH 068/104] Update cmake/Modules/Packages/LATTE.cmake --- cmake/Modules/Packages/LATTE.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/LATTE.cmake b/cmake/Modules/Packages/LATTE.cmake index e66f83fa43..ddf31a68ed 100644 --- a/cmake/Modules/Packages/LATTE.cmake +++ b/cmake/Modules/Packages/LATTE.cmake @@ -15,10 +15,14 @@ endif() option(DOWNLOAD_LATTE "Download the LATTE library instead of using an already installed one" ${DOWNLOAD_LATTE_DEFAULT}) if(DOWNLOAD_LATTE) message(STATUS "LATTE download requested - we will build our own") + set(LATTE_URL "https://github.com/lanl/LATTE/archive/v1.2.2.tar.gz" CACHE STRING "URL for LATTE tarball") + set(LATTE_MD5 "820e73a457ced178c08c71389a385de7" CACHE STRING "MD5 checksum of LATTE tarball") + mark_as_advanced(LATTE_URL) + mark_as_advanced(LATTE_MD5) include(ExternalProject) ExternalProject_Add(latte_build - URL https://github.com/lanl/LATTE/archive/v1.2.2.tar.gz - URL_MD5 820e73a457ced178c08c71389a385de7 + URL ${LATTE_URL} + URL_MD5 ${LATTE_MD5} SOURCE_SUBDIR cmake CMAKE_ARGS -DCMAKE_INSTALL_PREFIX= ${CMAKE_REQUEST_PIC} -DCMAKE_INSTALL_LIBDIR=lib -DBLAS_LIBRARIES=${BLAS_LIBRARIES} -DLAPACK_LIBRARIES=${LAPACK_LIBRARIES} From b718903efc36ce9d15218f425cc74a4f180170d6 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:10:01 -0400 Subject: [PATCH 069/104] Update cmake/Modules/Packages/USER-PLUMED.cmake --- cmake/Modules/Packages/USER-PLUMED.cmake | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/USER-PLUMED.cmake b/cmake/Modules/Packages/USER-PLUMED.cmake index 53abf5771a..8719e8179d 100644 --- a/cmake/Modules/Packages/USER-PLUMED.cmake +++ b/cmake/Modules/Packages/USER-PLUMED.cmake @@ -53,10 +53,16 @@ if(DOWNLOAD_PLUMED) elseif(PLUMED_MODE STREQUAL "RUNTIME") set(PLUMED_BUILD_BYPRODUCTS "/lib/libplumedWrapper.a") endif() + + set(PLUMED_URL "https://github.com/plumed/plumed2/releases/download/v2.7.0/plumed-src-2.7.0.tgz" CACHE STRING "URL for PLUMED tarball") + set(PLUMED_MD5 "95f29dd0c067577f11972ff90dfc7d12" CACHE STRING "MD5 checksum of PLUMED tarball") + mark_as_advanced(PLUMED_URL) + mark_as_advanced(PLUMED_MD5) + include(ExternalProject) ExternalProject_Add(plumed_build - URL https://github.com/plumed/plumed2/releases/download/v2.7.0/plumed-src-2.7.0.tgz - URL_MD5 95f29dd0c067577f11972ff90dfc7d12 + URL ${PLUMED_URL} + URL_MD5 ${PLUMED_MD5} BUILD_IN_SOURCE 1 CONFIGURE_COMMAND /configure --prefix= ${CONFIGURE_REQUEST_PIC} From 88b9e99707c95bd6ede9f47672536ded23fe66d0 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:26:58 -0400 Subject: [PATCH 070/104] Update cmake/Modules/Packages/GPU.cmake --- cmake/Modules/Packages/GPU.cmake | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 9aa917144b..115d81af2a 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -338,11 +338,16 @@ elseif(GPU_API STREQUAL "HIP") if(DOWNLOAD_CUB) message(STATUS "CUB download requested") + set(CUB_URL "https://github.com/NVlabs/cub/archive/1.12.0.tar.gz" CACHE STRING "URL for CUB tarball") + set(CUB_MD5 "1cf595beacafff104700921bac8519f3" CACHE STRING "MD5 checksum of CUB tarball") + mark_as_advanced(CUB_URL) + mark_as_advanced(CUB_MD5) + include(ExternalProject) ExternalProject_Add(CUB - GIT_REPOSITORY https://github.com/NVlabs/cub - TIMEOUT 5 + URL ${CUB_URL} + URL_MD5 ${CUB_MD5} PREFIX "${CMAKE_CURRENT_BINARY_DIR}" CONFIGURE_COMMAND "" BUILD_COMMAND "" @@ -354,7 +359,7 @@ elseif(GPU_API STREQUAL "HIP") else() find_package(CUB) if(NOT CUB_FOUND) - message(FATAL_ERROR "CUB library not found. Help CMake to find it by setting CUB_INCLUDE_DIR, or set DOWNLOAD_VORO=ON to download it") + message(FATAL_ERROR "CUB library not found. Help CMake to find it by setting CUB_INCLUDE_DIR, or set DOWNLOAD_CUB=ON to download it") endif() endif() From 2509190daec63d7942334ed5556ff72abc175574 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:29:33 -0400 Subject: [PATCH 071/104] Update cmake/Modules/YAML.cmake --- cmake/Modules/YAML.cmake | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cmake/Modules/YAML.cmake b/cmake/Modules/YAML.cmake index f2ba34e1b6..c50773568c 100644 --- a/cmake/Modules/YAML.cmake +++ b/cmake/Modules/YAML.cmake @@ -2,10 +2,13 @@ message(STATUS "Downloading and building YAML library") include(ExternalProject) set(YAML_URL "https://pyyaml.org/download/libyaml/yaml-0.2.5.tar.gz" CACHE STRING "URL for libyaml tarball") +set(YAML_MD5 "bb15429d8fb787e7d3f1c83ae129a999" CACHE STRING "MD5 checksum of libyaml tarball") mark_as_advanced(YAML_URL) +mark_as_advanced(YAML_MD5) + ExternalProject_Add(libyaml URL ${YAML_URL} - URL_MD5 bb15429d8fb787e7d3f1c83ae129a999 + URL_MD5 ${YAML_MD5} SOURCE_DIR "${CMAKE_BINARY_DIR}/yaml-src" BINARY_DIR "${CMAKE_BINARY_DIR}/yaml-build" CONFIGURE_COMMAND /configure ${CONFIGURE_REQUEST_PIC} From d4550dbb4b218541af2754bba41db856ad227f6e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:32:18 -0400 Subject: [PATCH 072/104] Update cmake/Modules/Packages/USER-SMD.cmake --- cmake/Modules/Packages/USER-SMD.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/USER-SMD.cmake b/cmake/Modules/Packages/USER-SMD.cmake index 67f4aae99d..6d941f9798 100644 --- a/cmake/Modules/Packages/USER-SMD.cmake +++ b/cmake/Modules/Packages/USER-SMD.cmake @@ -7,10 +7,14 @@ endif() option(DOWNLOAD_EIGEN3 "Download Eigen3 instead of using an already installed one)" ${DOWNLOAD_EIGEN3_DEFAULT}) if(DOWNLOAD_EIGEN3) message(STATUS "Eigen3 download requested - we will build our own") + set(EIGEN3_URL "https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz" CACHE STRING "URL for Eigen3 tarball") + set(EIGEN3_MD5 "9e30f67e8531477de4117506fe44669b" CACHE STRING "MD5 checksum of Eigen3 tarball") + mark_as_advanced(EIGEN3_URL) + mark_as_advanced(EIGEN3_MD5) include(ExternalProject) ExternalProject_Add(Eigen3_build - URL https://gitlab.com/libeigen/eigen/-/archive/3.3.7/eigen-3.3.7.tar.gz - URL_MD5 9e30f67e8531477de4117506fe44669b + URL ${EIGEN3_URL} + URL_MD5 ${EIGEN3_MD5} CONFIGURE_COMMAND "" BUILD_COMMAND "" INSTALL_COMMAND "" ) ExternalProject_get_property(Eigen3_build SOURCE_DIR) From cbd439692ebfb2c070ed307998471b4e15523849 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 15:36:14 -0400 Subject: [PATCH 073/104] Update cmake/Modules/Packages/KIM.cmake --- cmake/Modules/Packages/KIM.cmake | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/KIM.cmake b/cmake/Modules/Packages/KIM.cmake index 5482d3071c..2a2a1cde78 100644 --- a/cmake/Modules/Packages/KIM.cmake +++ b/cmake/Modules/Packages/KIM.cmake @@ -35,9 +35,13 @@ if(DOWNLOAD_KIM) include(ExternalProject) enable_language(C) enable_language(Fortran) + set(KIM_URL "https://s3.openkim.org/kim-api/kim-api-2.2.1.txz" CACHE STRING "URL for KIM tarball") + set(KIM_MD5 "ae1ddda2ef7017ea07934e519d023dca" CACHE STRING "MD5 checksum of KIM tarball") + mark_as_advanced(KIM_URL) + mark_as_advanced(KIM_MD5) ExternalProject_Add(kim_build - URL https://s3.openkim.org/kim-api/kim-api-2.2.1.txz - URL_MD5 ae1ddda2ef7017ea07934e519d023dca + URL ${KIM_URL} + URL_MD5 ${KIM_MD5} BINARY_DIR build CMAKE_ARGS ${CMAKE_REQUEST_PIC} -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} From fc6e10921d26c5c9e0a446cec7246dad005324f6 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 5 Apr 2021 15:38:59 -0400 Subject: [PATCH 074/104] add post yes/no keyword to rerun commmand (with default to no) --- doc/src/rerun.rst | 9 +++++++-- src/rerun.cpp | 12 +++++++++++- 2 files changed, 18 insertions(+), 3 deletions(-) diff --git a/doc/src/rerun.rst b/doc/src/rerun.rst index 7d51fba868..e9e23afba8 100644 --- a/doc/src/rerun.rst +++ b/doc/src/rerun.rst @@ -15,7 +15,7 @@ Syntax .. parsed-literal:: - keyword = *first* or *last* or *every* or *skip* or *start* or *stop* or *dump* + keyword = *first* or *last* or *every* or *skip* or *start* or *stop* or *post* or *dump* *first* args = Nfirst Nfirst = dump timestep to start on *last* args = Nlast @@ -28,6 +28,7 @@ Syntax Nstart = timestep on which pseudo run will start *stop* args = Nstop Nstop = timestep to which pseudo run will end + *post* value = *yes* or *no* *dump* args = same as :doc:`read_dump ` command starting with its field arguments Examples @@ -154,6 +155,10 @@ Also note that an error will occur if you read a snapshot from the dump file with a timestep value larger than the *stop* setting you have specified. +The *post* keyword can be used to minimize the output to the screen that +happens after a *rerun* command, similar to the post keyword of the +:doc:`run command `. It is set to *no* by default. + The *dump* keyword is required and must be the last keyword specified. Its arguments are passed internally to the :doc:`read_dump ` command. The first argument following the *dump* keyword should be @@ -226,4 +231,4 @@ Default The option defaults are first = 0, last = a huge value (effectively infinity), start = same as first, stop = same as last, every = 0, skip -= 1; += 1, post = no; diff --git a/src/rerun.cpp b/src/rerun.cpp index 648874420a..8615b02d95 100644 --- a/src/rerun.cpp +++ b/src/rerun.cpp @@ -51,6 +51,7 @@ void Rerun::command(int narg, char **arg) if (strcmp(arg[iarg],"start") == 0) break; if (strcmp(arg[iarg],"stop") == 0) break; if (strcmp(arg[iarg],"dump") == 0) break; + if (strcmp(arg[iarg],"post") == 0) break; iarg++; } int nfile = iarg; @@ -65,6 +66,7 @@ void Rerun::command(int narg, char **arg) int nskip = 1; int startflag = 0; int stopflag = 0; + int postflag = 0; bigint start = -1; bigint stop = -1; @@ -101,6 +103,14 @@ void Rerun::command(int narg, char **arg) stop = utils::bnumeric(FLERR,arg[iarg+1],false,lmp); if (stop < 0) error->all(FLERR,"Illegal rerun command"); iarg += 2; + } else if (strcmp(arg[iarg],"post") == 0) { + if (iarg+2 > narg) error->all(FLERR,"Illegal rerun command"); + if (strcmp(arg[iarg+1],"yes") == 0) { + postflag = 1; + } else if (strcmp(arg[iarg+1],"no") == 0) { + postflag = 0; + } else error->all(FLERR,"Illegal rerun command"); + iarg += 2; } else if (strcmp(arg[iarg],"dump") == 0) { break; } else error->all(FLERR,"Illegal rerun command"); @@ -182,7 +192,7 @@ void Rerun::command(int narg, char **arg) update->nsteps = ndump; Finish finish(lmp); - finish.end(1); + finish.end(postflag); update->whichflag = 0; update->firststep = update->laststep = 0; From 7e57d6a334b0493698827f4a78b204ec5e064de9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Mon, 5 Apr 2021 15:39:31 -0400 Subject: [PATCH 075/104] add tests for "rerun" --- unittest/formats/test_dump_atom.cpp | 50 ++++++++++++++++-- unittest/formats/test_dump_custom.cpp | 73 +++++++++++++++++++++++++-- 2 files changed, 115 insertions(+), 8 deletions(-) diff --git a/unittest/formats/test_dump_atom.cpp b/unittest/formats/test_dump_atom.cpp index 46c6b7dfa7..5161eece3e 100644 --- a/unittest/formats/test_dump_atom.cpp +++ b/unittest/formats/test_dump_atom.cpp @@ -15,6 +15,8 @@ #include "../testing/systems/melt.h" #include "../testing/utils.h" #include "fmt/format.h" +#include "output.h" +#include "thermo.h" #include "utils.h" #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -24,7 +26,7 @@ using ::testing::Eq; char *BINARY2TXT_BINARY = nullptr; -bool verbose = false; +bool verbose = false; class DumpAtomTest : public MeltTest { std::string dump_style = "atom"; @@ -46,7 +48,14 @@ public: command(fmt::format("dump_modify id {}", dump_modify_options)); } - command(fmt::format("run {}", ntimesteps)); + command(fmt::format("run {} post no", ntimesteps)); + END_HIDE_OUTPUT(); + } + + void continue_dump(int ntimesteps) + { + BEGIN_HIDE_OUTPUT(); + command(fmt::format("run {} pre no post no", ntimesteps)); END_HIDE_OUTPUT(); } @@ -62,7 +71,7 @@ public: command(fmt::format("dump_modify id1 {}", dump_modify_options)); } - command(fmt::format("run {}", ntimesteps)); + command(fmt::format("run {} post no", ntimesteps)); END_HIDE_OUTPUT(); } @@ -446,13 +455,16 @@ TEST_F(DumpAtomTest, binary_triclinic_with_image_run0) delete_file(converted_file); } -TEST_F(DumpAtomTest, run1) +TEST_F(DumpAtomTest, run1plus1) { - auto dump_file = "dump_run1.melt"; + auto dump_file = "dump_run1plus1.melt"; generate_dump(dump_file, "", 1); ASSERT_FILE_EXISTS(dump_file); ASSERT_EQ(count_lines(dump_file), 82); + continue_dump(1); + ASSERT_FILE_EXISTS(dump_file); + ASSERT_EQ(count_lines(dump_file), 123); delete_file(dump_file); } @@ -466,6 +478,34 @@ TEST_F(DumpAtomTest, run2) delete_file(dump_file); } +TEST_F(DumpAtomTest, rerun) +{ + auto dump_file = "dump_rerun.melt"; + HIDE_OUTPUT([&] { + command("fix 1 all nve"); + }); + generate_dump(dump_file, "format line \"%d %d %20.15g %20.15g %20.15g\"", 1); + double pe_1, pe_2, pe_rerun; + lmp->output->thermo->evaluate_keyword("pe", &pe_1); + ASSERT_FILE_EXISTS(dump_file); + ASSERT_EQ(count_lines(dump_file), 82); + continue_dump(1); + lmp->output->thermo->evaluate_keyword("pe", &pe_2); + ASSERT_FILE_EXISTS(dump_file); + ASSERT_EQ(count_lines(dump_file), 123); + HIDE_OUTPUT([&] { + command(fmt::format("rerun {} first 1 last 1 every 1 post no dump x y z", dump_file)); + }); + lmp->output->thermo->evaluate_keyword("pe", &pe_rerun); + ASSERT_DOUBLE_EQ(pe_1, pe_rerun); + HIDE_OUTPUT([&] { + command(fmt::format("rerun {} first 2 last 2 every 1 post yes dump x y z", dump_file)); + }); + lmp->output->thermo->evaluate_keyword("pe", &pe_rerun); + ASSERT_DOUBLE_EQ(pe_2, pe_rerun); + delete_file(dump_file); +} + TEST_F(DumpAtomTest, multi_file_run1) { auto dump_file = "dump_run1_*.melt"; diff --git a/unittest/formats/test_dump_custom.cpp b/unittest/formats/test_dump_custom.cpp index b90d77e966..f8a55bb2fb 100644 --- a/unittest/formats/test_dump_custom.cpp +++ b/unittest/formats/test_dump_custom.cpp @@ -15,6 +15,8 @@ #include "../testing/systems/melt.h" #include "../testing/utils.h" #include "fmt/format.h" +#include "output.h" +#include "thermo.h" #include "utils.h" #include "gmock/gmock.h" #include "gtest/gtest.h" @@ -22,7 +24,7 @@ using ::testing::Eq; char *BINARY2TXT_BINARY = nullptr; -bool verbose = false; +bool verbose = false; class DumpCustomTest : public MeltTest { std::string dump_style = "custom"; @@ -45,7 +47,14 @@ public: command(fmt::format("dump_modify id {}", dump_modify_options)); } - command(fmt::format("run {}", ntimesteps)); + command(fmt::format("run {} post no", ntimesteps)); + END_HIDE_OUTPUT(); + } + + void continue_dump(int ntimesteps) + { + BEGIN_HIDE_OUTPUT(); + command(fmt::format("run {} pre no post no", ntimesteps)); END_HIDE_OUTPUT(); } @@ -62,7 +71,7 @@ public: command(fmt::format("dump_modify id1 {}", dump_modify_options)); } - command(fmt::format("run {}", ntimesteps)); + command(fmt::format("run {} post no", ntimesteps)); END_HIDE_OUTPUT(); } @@ -262,6 +271,64 @@ TEST_F(DumpCustomTest, with_variable_run1) delete_file(dump_file); } +TEST_F(DumpCustomTest, run1plus1) +{ + auto dump_file = "dump_custom_run1plus1.melt"; + auto fields = "id type x y z"; + + generate_dump(dump_file, fields, "units yes", 1); + + ASSERT_FILE_EXISTS(dump_file); + auto lines = read_lines(dump_file); + ASSERT_EQ(lines.size(), 84); + continue_dump(1); + ASSERT_FILE_EXISTS(dump_file); + lines = read_lines(dump_file); + ASSERT_EQ(lines.size(), 125); + delete_file(dump_file); +} + +TEST_F(DumpCustomTest, run2) +{ + auto dump_file = "dump_custom_run2.melt"; + auto fields = "id type x y z"; + generate_dump(dump_file, fields, "", 2); + + ASSERT_FILE_EXISTS(dump_file); + ASSERT_EQ(count_lines(dump_file), 123); + delete_file(dump_file); +} + +TEST_F(DumpCustomTest, rerun) +{ + auto dump_file = "dump_rerun.melt"; + auto fields = "id type xs ys zs"; + + HIDE_OUTPUT([&] { + command("fix 1 all nve"); + }); + generate_dump(dump_file, fields, "format float %20.15g", 1); + double pe_1, pe_2, pe_rerun; + lmp->output->thermo->evaluate_keyword("pe", &pe_1); + ASSERT_FILE_EXISTS(dump_file); + ASSERT_EQ(count_lines(dump_file), 82); + continue_dump(1); + lmp->output->thermo->evaluate_keyword("pe", &pe_2); + ASSERT_FILE_EXISTS(dump_file); + ASSERT_EQ(count_lines(dump_file), 123); + HIDE_OUTPUT([&] { + command(fmt::format("rerun {} first 1 last 1 every 1 post no dump x y z", dump_file)); + }); + lmp->output->thermo->evaluate_keyword("pe", &pe_rerun); + ASSERT_DOUBLE_EQ(pe_1, pe_rerun); + HIDE_OUTPUT([&] { + command(fmt::format("rerun {} first 2 last 2 every 1 post yes dump x y z", dump_file)); + }); + lmp->output->thermo->evaluate_keyword("pe", &pe_rerun); + ASSERT_DOUBLE_EQ(pe_2, pe_rerun); + delete_file(dump_file); +} + int main(int argc, char **argv) { MPI_Init(&argc, &argv); From 94068cc4c7b8465dc3beb91dde1eecfc0cbeb33e Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Mon, 5 Apr 2021 16:17:41 -0400 Subject: [PATCH 076/104] Add missing GTEST_MD5 --- cmake/Modules/GTest.cmake | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/GTest.cmake b/cmake/Modules/GTest.cmake index 0c62291d5e..677ed5f4af 100644 --- a/cmake/Modules/GTest.cmake +++ b/cmake/Modules/GTest.cmake @@ -8,10 +8,12 @@ endif() include(ExternalProject) set(GTEST_URL "https://github.com/google/googletest/archive/release-1.10.0.tar.gz" CACHE STRING "URL for GTest tarball") +set(GTEST_MD5 "ecd1fa65e7de707cd5c00bdac56022cd" CACHE STRING "MD5 checksum of GTest tarball") mark_as_advanced(GTEST_URL) +mark_as_advanced(GTEST_MD5) ExternalProject_Add(googletest - URL ${GTEST_URL} - URL_MD5 ecd1fa65e7de707cd5c00bdac56022cd + URL ${GTEST_URL} + URL_MD5 ${GTEST_MD5} SOURCE_DIR "${CMAKE_BINARY_DIR}/gtest-src" BINARY_DIR "${CMAKE_BINARY_DIR}/gtest-build" CMAKE_ARGS ${CMAKE_REQUEST_PIC} ${CMAKE_EXTRA_GTEST_OPTS} From 2fc9734fab1ea44a50505f383a69104b965b6953 Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Mon, 5 Apr 2021 23:51:11 -0500 Subject: [PATCH 077/104] Fixed a bug with rigid/*/small when starting with an empty group of rigid bodies such as when using fix deposit --- src/RIGID/fix_rigid_nh_small.cpp | 19 ++++--------------- src/RIGID/fix_rigid_nh_small.h | 2 -- 2 files changed, 4 insertions(+), 17 deletions(-) diff --git a/src/RIGID/fix_rigid_nh_small.cpp b/src/RIGID/fix_rigid_nh_small.cpp index 454f240bb4..242c33eb3a 100644 --- a/src/RIGID/fix_rigid_nh_small.cpp +++ b/src/RIGID/fix_rigid_nh_small.cpp @@ -754,6 +754,8 @@ void FixRigidNHSmall::final_integrate() void FixRigidNHSmall::nhc_temp_integrate() { + if (g_f == 0) return; + int i,j,k; double kt,gfkt_t,gfkt_r,tmp,ms,s,s2; @@ -1148,6 +1150,8 @@ void FixRigidNHSmall::compute_press_target() void FixRigidNHSmall::nh_epsilon_dot() { + if (g_f == 0) return; + int i; double volume,scale,f_epsilon; @@ -1204,8 +1208,6 @@ void FixRigidNHSmall::compute_dof() nf_r = nfall[1]; g_f = nf_t + nf_r; - onednft = 1.0 + (double)(dimension) / (double)g_f; - onednfr = (double) (dimension) / (double)g_f; } /* ---------------------------------------------------------------------- @@ -1367,19 +1369,6 @@ int FixRigidNHSmall::modify_param(int narg, char **arg) return FixRigidSmall::modify_param(narg,arg); } -/* ---------------------------------------------------------------------- - disallow using fix rigid/n??/small fixes with fix deposit - we would need custom functionality to update data structures - used by all fixes derived from this class but not fix rigid/small -------------------------------------------------------------------------- */ - -void FixRigidNHSmall::set_molecule(int, tagint, int, - double *, double *, double *) -{ - error->all(FLERR,fmt::format("Molecule update not (yet) implemented for " - "fix {}", style)); -} - /* ---------------------------------------------------------------------- */ void FixRigidNHSmall::allocate_chain() diff --git a/src/RIGID/fix_rigid_nh_small.h b/src/RIGID/fix_rigid_nh_small.h index 32c4c1ab74..899cec1122 100644 --- a/src/RIGID/fix_rigid_nh_small.h +++ b/src/RIGID/fix_rigid_nh_small.h @@ -38,7 +38,6 @@ class FixRigidNHSmall : public FixRigidSmall { int dimension; // # of dimensions int nf_t,nf_r; // trans/rot degrees of freedom - double onednft,onednfr; // factors 1 + dimension/trans(rot) degrees of freedom double *w,*wdti1,*wdti2,*wdti4; // Yoshida-Suzuki coefficients double *q_t,*q_r; // trans/rot thermostat masses double *eta_t,*eta_r; // trans/rot thermostat positions @@ -80,7 +79,6 @@ class FixRigidNHSmall : public FixRigidSmall { void nh_epsilon_dot(); void compute_dof(); - void set_molecule(int, tagint, int, double *, double *, double *); void allocate_chain(); void allocate_order(); void deallocate_chain(); From 8e28252ac936efea29e20a92a99ccedddfa8f1ed Mon Sep 17 00:00:00 2001 From: Trung Nguyen Date: Tue, 6 Apr 2021 00:19:20 -0500 Subject: [PATCH 078/104] Updated fix rigid/nh for the (g_f == 0) case --- src/RIGID/fix_rigid_nh.cpp | 6 ++++-- src/RIGID/fix_rigid_nh.h | 2 -- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/RIGID/fix_rigid_nh.cpp b/src/RIGID/fix_rigid_nh.cpp index 6fb2bd7a94..4dec04370e 100644 --- a/src/RIGID/fix_rigid_nh.cpp +++ b/src/RIGID/fix_rigid_nh.cpp @@ -234,8 +234,6 @@ void FixRigidNH::init() } g_f = nf_t + nf_r; - onednft = 1.0 + (double)(dimension) / (double)g_f; - onednfr = (double) (dimension) / (double)g_f; // see Table 1 in Kamberaj et al @@ -719,6 +717,8 @@ void FixRigidNH::final_integrate() void FixRigidNH::nhc_temp_integrate() { + if (g_f == 0) return; + int i,j,k; double kt,gfkt_t,gfkt_r,tmp,ms,s,s2; @@ -1063,6 +1063,8 @@ void FixRigidNH::compute_press_target() void FixRigidNH::nh_epsilon_dot() { + if (g_f == 0) return; + int i; double volume,scale,f_epsilon; diff --git a/src/RIGID/fix_rigid_nh.h b/src/RIGID/fix_rigid_nh.h index a8850413eb..10ad9b24fb 100644 --- a/src/RIGID/fix_rigid_nh.h +++ b/src/RIGID/fix_rigid_nh.h @@ -38,8 +38,6 @@ class FixRigidNH : public FixRigid { double boltz,nktv2p,mvv2e; // boltzman constant, conversion factors int nf_t,nf_r; // trans/rot degrees of freedom - double onednft,onednfr; // factors 1 + dimension/trans(rot) - // degrees of freedom double *w,*wdti1,*wdti2,*wdti4; // Yoshida-Suzuki coefficients double *q_t,*q_r; // trans/rot thermostat masses double *eta_t,*eta_r; // trans/rot thermostat positions From 1fe284dbba8aeb980ce9ef6658bb4b1c4c343ab5 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 07:55:43 -0400 Subject: [PATCH 079/104] add examples for using fix rigid/nv?/small with fix deposit --- .../in.deposit.molecule.rigid-nve-small | 56 +++++ .../in.deposit.molecule.rigid-nvt-small | 56 +++++ ...r21.deposit.molecule.rigid-nve-small.g++.1 | 218 ++++++++++++++++++ ...r21.deposit.molecule.rigid-nve-small.g++.4 | 218 ++++++++++++++++++ ...r21.deposit.molecule.rigid-nvt-small.g++.1 | 218 ++++++++++++++++++ ...r21.deposit.molecule.rigid-nvt-small.g++.4 | 218 ++++++++++++++++++ 6 files changed, 984 insertions(+) create mode 100644 examples/deposit/in.deposit.molecule.rigid-nve-small create mode 100644 examples/deposit/in.deposit.molecule.rigid-nvt-small create mode 100644 examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.1 create mode 100644 examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.4 create mode 100644 examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.1 create mode 100644 examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.4 diff --git a/examples/deposit/in.deposit.molecule.rigid-nve-small b/examples/deposit/in.deposit.molecule.rigid-nve-small new file mode 100644 index 0000000000..b2af77ac00 --- /dev/null +++ b/examples/deposit/in.deposit.molecule.rigid-nve-small @@ -0,0 +1,56 @@ +# sample surface deposition script for molecules + +units lj +atom_style bond +boundary p p f + +lattice fcc 1.0 +region box block 0 5 0 5 0 10 +create_box 3 box bond/types 1 extra/bond/per/atom 1 + +region substrate block INF INF INF INF INF 3 +create_atoms 1 region substrate + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 +pair_coeff 1 2 1.0 1.0 5.0 +mass * 1.0 + +bond_style harmonic +bond_coeff 1 5.0 1.0 + +neigh_modify delay 0 + +molecule dimer molecule.dimer +region slab block 0 5 0 5 8 9 + +group addatoms empty +region mobile block 0 5 0 5 2 INF +group mobile region mobile + +compute add addatoms temp +compute_modify add dynamic/dof yes extra/dof 0 + +fix 1 addatoms rigid/nve/small molecule mol dimer +fix 2 mobile langevin 0.1 0.1 0.1 587283 +fix 3 mobile nve + +fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 & + mol dimer vz -1.0 -1.0 rigid 1 +fix 5 addatoms wall/reflect zhi EDGE + +thermo_style custom step atoms temp epair etotal press +thermo 100 +thermo_modify temp add lost/bond ignore lost warn + +#dump 1 all atom 50 dump.deposit.atom + +#dump 2 all image 50 image.*.jpg type type & +# axes yes 0.8 0.02 view 80 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 50 tmp.mpg type type & +# axes yes 0.8 0.02 view 80 -30 +#dump_modify 3 pad 5 + +run 10000 diff --git a/examples/deposit/in.deposit.molecule.rigid-nvt-small b/examples/deposit/in.deposit.molecule.rigid-nvt-small new file mode 100644 index 0000000000..9ceb1b3984 --- /dev/null +++ b/examples/deposit/in.deposit.molecule.rigid-nvt-small @@ -0,0 +1,56 @@ +# sample surface deposition script for molecules + +units lj +atom_style bond +boundary p p f + +lattice fcc 1.0 +region box block 0 5 0 5 0 10 +create_box 3 box bond/types 1 extra/bond/per/atom 1 + +region substrate block INF INF INF INF INF 3 +create_atoms 1 region substrate + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 +pair_coeff 1 2 1.0 1.0 5.0 +mass * 1.0 + +bond_style harmonic +bond_coeff 1 5.0 1.0 + +neigh_modify delay 0 + +molecule dimer molecule.dimer +region slab block 0 5 0 5 8 9 + +group addatoms empty +region mobile block 0 5 0 5 2 INF +group mobile region mobile + +compute add addatoms temp +compute_modify add dynamic/dof yes extra/dof 0 + +fix 1 addatoms rigid/nvt/small molecule temp 0.1 0.1 0.1 mol dimer +fix 2 mobile langevin 0.1 0.1 0.1 587283 +fix 3 mobile nve + +fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 & + mol dimer vz -1.0 -1.0 rigid 1 +fix 5 addatoms wall/reflect zhi EDGE + +thermo_style custom step atoms temp epair etotal press +thermo 100 +thermo_modify temp add lost/bond ignore lost warn + +#dump 1 all atom 50 dump.deposit.atom + +#dump 2 all image 50 image.*.jpg type type & +# axes yes 0.8 0.02 view 80 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 50 tmp.mpg type type & +# axes yes 0.8 0.02 view 80 -30 +#dump_modify 3 pad 5 + +run 10000 diff --git a/examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.1 b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.1 new file mode 100644 index 0000000000..792d3954c1 --- /dev/null +++ b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.1 @@ -0,0 +1,218 @@ +LAMMPS (10 Mar 2021) + using 1 OpenMP thread(s) per MPI task +# sample surface deposition script for molecules + +units lj +atom_style bond +boundary p p f + +lattice fcc 1.0 +Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011 +region box block 0 5 0 5 0 10 +create_box 3 box bond/types 1 extra/bond/per/atom 1 +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011) + 1 by 1 by 1 MPI processor grid + +region substrate block INF INF INF INF INF 3 +create_atoms 1 region substrate +Created 350 atoms + create_atoms CPU = 0.001 seconds + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 +pair_coeff 1 2 1.0 1.0 5.0 +mass * 1.0 + +bond_style harmonic +bond_coeff 1 5.0 1.0 + +neigh_modify delay 0 + +molecule dimer molecule.dimer +Read molecule template dimer: + 1 molecules + 2 atoms with max type 3 + 1 bonds with max type 1 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +region slab block 0 5 0 5 8 9 + +group addatoms empty +0 atoms in group addatoms +region mobile block 0 5 0 5 2 INF +group mobile region mobile +150 atoms in group mobile + +compute add addatoms temp +compute_modify add dynamic/dof yes extra/dof 0 + +fix 1 addatoms rigid/nve/small molecule mol dimer + create bodies CPU = 0.000 seconds + 0 rigid bodies with 0 atoms + 1.0000000 = max distance from body owner to body atom +fix 2 mobile langevin 0.1 0.1 0.1 587283 +fix 3 mobile nve + +fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1 +fix 5 addatoms wall/reflect zhi EDGE + +thermo_style custom step atoms temp epair etotal press +thermo 100 +thermo_modify temp add lost/bond ignore lost warn +WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468) + +#dump 1 all atom 50 dump.deposit.atom + +#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 3 pad 5 + +run 10000 +WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.3 + ghost atom cutoff = 5.3 + binsize = 2.65, bins = 3 3 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.929 | 5.929 | 5.929 Mbytes +Step Atoms Temp E_pair TotEng Press + 0 350 0 -6.9215833 -6.9215833 -1.0052629 + 100 352 1.0079368 -6.8875167 -6.8803581 -0.73353914 + 200 354 1.0081552 -6.8594643 -6.8452248 -0.70421276 + 300 356 1.0085803 -6.8171524 -6.7959042 -0.6917826 + 400 358 1.0099188 -6.7852701 -6.7570601 -0.70371699 + 500 360 1.0140221 -6.7493429 -6.7141338 -0.68415307 + 600 362 1.026148 -6.7105231 -6.6680032 -0.68314418 + 700 364 1.0683344 -6.6725162 -6.621154 -0.65747369 + 800 366 1.0958953 -6.6412275 -6.5813425 -0.68789615 + 900 368 1.1250034 -6.6101882 -6.541404 -0.66674346 + 1000 370 1.2326365 -6.5993719 -6.5160856 -0.69688655 + 1100 372 1.1397444 -6.5912865 -6.5070312 -0.6333041 + 1200 374 1.0514447 -6.5905753 -6.5062348 -0.71020272 + 1300 376 1.0033284 -6.5747792 -6.4880554 -0.65459641 + 1400 378 0.82996548 -6.5681806 -6.4913319 -0.60438595 + 1500 380 0.90239071 -6.5752982 -6.4862465 -0.66528503 + 1600 382 0.86403681 -6.5692212 -6.4787461 -0.65027922 + 1700 384 0.64748046 -6.5644242 -6.4927629 -0.63046709 + 1800 386 0.74288742 -6.5515741 -6.4649681 -0.67770665 + 1900 388 0.72584537 -6.5565195 -6.4676596 -0.66175025 + 2000 390 0.73351281 -6.5631154 -6.4690753 -0.64686647 + 2100 392 0.76490681 -6.5573734 -6.4549305 -0.68861526 + 2200 394 0.65926638 -6.5511574 -6.4591279 -0.71726284 + 2300 396 0.70267414 -6.5728555 -6.4708258 -0.64360436 + 2400 398 0.60523691 -6.5845973 -6.4933555 -0.63956839 + 2500 400 0.5103586 -6.5812006 -6.5014571 -0.68698448 + 2600 402 0.52401744 -6.6003358 -6.5156066 -0.68987222 + 2700 404 0.46421291 -6.5662747 -6.4887143 -0.72872856 + 2800 406 0.48254258 -6.5724266 -6.4892296 -0.75447872 + 2900 408 0.53073083 -6.5809842 -6.4866754 -0.67592283 + 3000 410 0.55314547 -6.5922077 -6.4910226 -0.74646953 + 3100 412 0.47150308 -6.5907273 -6.5020344 -0.64994935 + 3200 414 0.43047803 -6.5836315 -6.5004473 -0.79764713 + 3300 416 0.46289353 -6.5739439 -6.4821441 -0.76441674 + 3400 418 0.59724106 -6.5980575 -6.4766089 -0.73735626 + 3500 420 0.43571285 -6.5955972 -6.5048237 -0.64145941 + 3600 422 0.42461639 -6.6060271 -6.5154691 -0.70124484 + 3700 424 0.44323254 -6.6059723 -6.5092766 -0.74498147 + 3800 426 0.4037907 -6.592043 -6.5019958 -0.72171799 + 3900 428 0.41668443 -6.5975302 -6.5026079 -0.68327878 + 4000 430 0.44895183 -6.5958671 -6.4914597 -0.73939433 + 4100 432 0.39798052 -6.5952115 -6.5007833 -0.74871822 + 4200 434 0.45156734 -6.6237274 -6.5144772 -0.75111778 + 4300 436 0.48297356 -6.6395283 -6.5204465 -0.76105913 + 4400 438 0.43595234 -6.6347133 -6.5252276 -0.72858275 + 4500 440 0.44683726 -6.6385398 -6.5242916 -0.74280051 + 4600 442 0.47875512 -6.6419903 -6.5174274 -0.75579572 + 4700 444 0.43972605 -6.6406078 -6.5242388 -0.72196509 + 4800 446 0.43572615 -6.6495404 -6.5323047 -0.7135049 + 4900 448 0.38063437 -6.6432385 -6.5391588 -0.77087429 + 5000 450 0.4239223 -6.6617795 -6.5440233 -0.784531 + 5100 452 0.37201988 -6.6581813 -6.5532421 -0.74611403 + 5200 454 0.41765777 -6.6661321 -6.5465385 -0.75422239 + 5300 456 0.38015287 -6.6606624 -6.5502013 -0.78866702 + 5400 458 0.40549607 -6.6807118 -6.5611878 -0.78932883 + 5500 460 0.34444407 -6.6720564 -6.5690976 -0.77859171 + 5600 462 0.36572308 -6.6730078 -6.5621827 -0.85672419 + 5700 464 0.40055073 -6.6976989 -6.574685 -0.74251563 + 5800 466 0.36037213 -6.7022014 -6.5900685 -0.66239625 + 5900 468 0.32810921 -6.6952135 -6.591803 -0.83981757 + 6000 470 0.35110886 -6.6986862 -6.5866302 -0.82474047 + 6100 472 0.29965884 -6.6839503 -6.5871326 -0.7864913 + 6200 474 0.32402637 -6.6902745 -6.5843165 -0.74531083 + 6300 476 0.35042653 -6.6990084 -6.5830585 -0.74839967 + 6400 478 0.32695511 -6.6909459 -6.5815048 -0.76549489 + 6500 480 0.35209088 -6.6902987 -6.5711013 -0.71281516 + 6600 482 0.354106 -6.6890268 -6.567808 -0.81897158 + 6700 484 0.3504816 -6.681739 -6.5604463 -0.811609 + 6800 486 0.37396733 -6.7018369 -6.5710253 -0.80383296 + 6900 488 0.36435774 -6.7010114 -6.5722169 -0.72063651 + 7000 490 0.35631012 -6.7089806 -6.581727 -0.74152078 + 7100 492 0.37646659 -6.719154 -6.5833352 -0.77739001 + 7200 494 0.36546269 -6.7223269 -6.5891623 -0.8288767 + 7300 496 0.37688206 -6.7457243 -6.607053 -0.80062121 + 7400 498 0.30331409 -6.7284953 -6.6158184 -0.79894584 + 7500 500 0.30382936 -6.7333804 -6.6194444 -0.86924602 + 7600 502 0.30163143 -6.7294737 -6.6153104 -0.7689497 + 7700 504 0.30281215 -6.7233976 -6.6077402 -0.8557548 + 7800 506 0.33378009 -6.7244958 -6.5958651 -0.82584084 + 7900 508 0.31843128 -6.7250998 -6.6013002 -0.82424684 + 8000 510 0.35912946 -6.7399052 -6.5990701 -0.81879575 + 8100 512 0.31405017 -6.733487 -6.6092777 -0.72940457 + 8200 514 0.30475 -6.7271485 -6.6056043 -0.87958287 + 8300 516 0.30717434 -6.7277574 -6.6042329 -0.81700937 + 8400 518 0.33032462 -6.7382165 -6.6043011 -0.75436496 + 8500 520 0.32218568 -6.7351971 -6.6035347 -0.77661738 + 8600 522 0.30922651 -6.7275431 -6.6001797 -0.85334327 + 8700 524 0.30728021 -6.7237477 -6.5962029 -0.94977016 + 8800 526 0.31061903 -6.7181672 -6.5882505 -0.86132456 + 8900 528 0.33543344 -6.728929 -6.5875768 -0.87545919 + 9000 530 0.31887735 -6.7265066 -6.5911341 -0.76892061 + 9100 532 0.31888326 -6.7216274 -6.5852629 -0.83190298 + 9200 534 0.33310892 -6.7111349 -6.567661 -0.94282671 + 9300 536 0.34737171 -6.722515 -6.5718361 -0.95235602 + 9400 538 0.32752858 -6.7246204 -6.5815549 -0.86227131 + 9500 540 0.30665764 -6.7225391 -6.5876665 -0.87144326 + 9600 542 0.32747382 -6.7149245 -6.5699176 -0.86863105 + 9700 544 0.32463079 -6.7205757 -6.5758643 -0.85393932 + 9800 546 0.31517825 -6.7178961 -6.5764699 -0.81017759 + 9900 548 0.33649933 -6.7380644 -6.5860871 -0.80769312 + 10000 550 0.37394555 -6.7612874 -6.5913121 -0.82102213 +Loop time of 16.7275 on 1 procs for 10000 steps with 550 atoms + +Performance: 258256.688 tau/day, 597.816 timesteps/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.2508 | 9.2508 | 9.2508 | 0.0 | 55.30 +Bond | 0.021603 | 0.021603 | 0.021603 | 0.0 | 0.13 +Neigh | 4.5325 | 4.5325 | 4.5325 | 0.0 | 27.10 +Comm | 0.62777 | 0.62777 | 0.62777 | 0.0 | 3.75 +Output | 0.006916 | 0.006916 | 0.006916 | 0.0 | 0.04 +Modify | 2.218 | 2.218 | 2.218 | 0.0 | 13.26 +Other | | 0.07002 | | | 0.42 + +Nlocal: 550.000 ave 550 max 550 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2344.00 ave 2344 max 2344 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 36607.0 ave 36607 max 36607 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 36607 +Ave neighs/atom = 66.558182 +Ave special neighs/atom = 0.36363636 +Neighbor list builds = 847 +Dangerous builds = 0 +Total wall time: 0:00:16 diff --git a/examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.4 b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.4 new file mode 100644 index 0000000000..e9158cd7ec --- /dev/null +++ b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nve-small.g++.4 @@ -0,0 +1,218 @@ +LAMMPS (10 Mar 2021) + using 1 OpenMP thread(s) per MPI task +# sample surface deposition script for molecules + +units lj +atom_style bond +boundary p p f + +lattice fcc 1.0 +Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011 +region box block 0 5 0 5 0 10 +create_box 3 box bond/types 1 extra/bond/per/atom 1 +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011) + 1 by 1 by 4 MPI processor grid + +region substrate block INF INF INF INF INF 3 +create_atoms 1 region substrate +Created 350 atoms + create_atoms CPU = 0.002 seconds + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 +pair_coeff 1 2 1.0 1.0 5.0 +mass * 1.0 + +bond_style harmonic +bond_coeff 1 5.0 1.0 + +neigh_modify delay 0 + +molecule dimer molecule.dimer +Read molecule template dimer: + 1 molecules + 2 atoms with max type 3 + 1 bonds with max type 1 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +region slab block 0 5 0 5 8 9 + +group addatoms empty +0 atoms in group addatoms +region mobile block 0 5 0 5 2 INF +group mobile region mobile +150 atoms in group mobile + +compute add addatoms temp +compute_modify add dynamic/dof yes extra/dof 0 + +fix 1 addatoms rigid/nve/small molecule mol dimer + create bodies CPU = 0.000 seconds + 0 rigid bodies with 0 atoms + 1.0000000 = max distance from body owner to body atom +fix 2 mobile langevin 0.1 0.1 0.1 587283 +fix 3 mobile nve + +fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1 +fix 5 addatoms wall/reflect zhi EDGE + +thermo_style custom step atoms temp epair etotal press +thermo 100 +thermo_modify temp add lost/bond ignore lost warn +WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468) + +#dump 1 all atom 50 dump.deposit.atom + +#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 3 pad 5 + +run 10000 +WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.3 + ghost atom cutoff = 5.3 + binsize = 2.65, bins = 3 3 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.255 | 5.852 | 6.302 Mbytes +Step Atoms Temp E_pair TotEng Press + 0 350 0 -6.9215833 -6.9215833 -1.0052629 + 100 352 1.0079368 -6.8946578 -6.8874992 -0.73775337 + 200 354 1.0081552 -6.8645575 -6.850318 -0.69629729 + 300 356 1.0085803 -6.821677 -6.8004288 -0.69532657 + 400 358 1.0099188 -6.7837923 -6.7555822 -0.68879568 + 500 360 1.0140221 -6.7446709 -6.7094618 -0.72991641 + 600 362 1.026146 -6.7129201 -6.6704003 -0.67063836 + 700 364 1.0683193 -6.6776523 -6.6262908 -0.65572472 + 800 366 1.0958894 -6.6402029 -6.5803182 -0.66307282 + 900 368 1.1231769 -6.6050912 -6.5364187 -0.64076928 + 1000 370 1.1976289 -6.5942508 -6.51333 -0.69249047 + 1100 372 1.05061 -6.5772306 -6.4995645 -0.6307289 + 1200 374 0.93723829 -6.5732962 -6.4981166 -0.64963821 + 1300 376 0.93899122 -6.5578418 -6.476679 -0.65096688 + 1400 378 0.87050694 -6.546852 -6.4662495 -0.67613401 + 1500 380 0.84462904 -6.5400883 -6.4567368 -0.64376986 + 1600 382 0.92417795 -6.5611292 -6.4643567 -0.62092779 + 1700 384 0.67296541 -6.5589985 -6.4845167 -0.6779111 + 1800 386 0.87159158 -6.5655058 -6.4638954 -0.6582786 + 1900 388 0.67504975 -6.5772537 -6.4946123 -0.665098 + 2000 390 0.65034978 -6.5717854 -6.4884072 -0.73162072 + 2100 392 0.63389859 -6.5652907 -6.4803935 -0.64937411 + 2200 394 0.6265637 -6.5582412 -6.4707767 -0.70819854 + 2300 396 0.85352983 -6.5750751 -6.4511408 -0.69995918 + 2400 398 0.69792348 -6.5938659 -6.4886513 -0.63755214 + 2500 400 0.45320495 -6.595022 -6.5242087 -0.70462183 + 2600 402 0.46824374 -6.5697613 -6.4940502 -0.75497893 + 2700 404 0.46605975 -6.5599272 -6.4820583 -0.66778506 + 2800 406 0.50637604 -6.5700492 -6.482743 -0.63812082 + 2900 408 0.55335921 -6.5873352 -6.4890054 -0.62891652 + 3000 410 0.51731142 -6.5890566 -6.4944264 -0.64305355 + 3100 412 0.59439734 -6.6003127 -6.4885025 -0.67140541 + 3200 414 0.53413632 -6.595564 -6.4923492 -0.76242248 + 3300 416 0.49221593 -6.5990831 -6.5014681 -0.71330819 + 3400 418 0.55006126 -6.6015725 -6.4897179 -0.72044309 + 3500 420 0.49065348 -6.6329864 -6.5307669 -0.65775397 + 3600 422 0.41907335 -6.6219753 -6.5325995 -0.75936391 + 3700 424 0.38720116 -6.6153349 -6.5308629 -0.74166397 + 3800 426 0.40625994 -6.6150209 -6.5244231 -0.7595111 + 3900 428 0.40460547 -6.6122642 -6.5200936 -0.70484465 + 4000 430 0.45014991 -6.6254404 -6.5207544 -0.70069933 + 4100 432 0.44820466 -6.640222 -6.5338771 -0.805972 + 4200 434 0.39767521 -6.6450316 -6.5488199 -0.72841414 + 4300 436 0.4155331 -6.6547917 -6.5523381 -0.6894484 + 4400 438 0.43034353 -6.6615074 -6.5534303 -0.74026062 + 4500 440 0.38062977 -6.6541618 -6.5568417 -0.85911194 + 4600 442 0.39357419 -6.6522517 -6.5498512 -0.66232114 + 4700 444 0.40296801 -6.6647029 -6.5580616 -0.67307577 + 4800 446 0.38194993 -6.6510248 -6.548258 -0.77887746 + 4900 448 0.40739835 -6.6601751 -6.5487771 -0.84146416 + 5000 450 0.38392807 -6.6560665 -6.5494198 -0.77343399 + 5100 452 0.35209286 -6.6481476 -6.5488294 -0.68065755 + 5200 454 0.41355143 -6.6615988 -6.543181 -0.81611092 + 5300 456 0.42200484 -6.6627494 -6.5401273 -0.7774134 + 5400 458 0.37764326 -6.661431 -6.550117 -0.72187808 + 5500 460 0.41857405 -6.6674232 -6.542306 -0.74929745 + 5600 462 0.41682611 -6.6710961 -6.5447852 -0.7557454 + 5700 464 0.44396148 -6.6924346 -6.5560887 -0.78018312 + 5800 466 0.37058077 -6.6865013 -6.5711919 -0.74146125 + 5900 468 0.346812 -6.681215 -6.57191 -0.81184233 + 6000 470 0.34919462 -6.6827931 -6.571348 -0.87330821 + 6100 472 0.39360936 -6.6933359 -6.5661634 -0.79237598 + 6200 474 0.33270778 -6.6847095 -6.5759127 -0.77978526 + 6300 476 0.35973804 -6.6951254 -6.5760944 -0.80340174 + 6400 478 0.38124318 -6.7045984 -6.5769857 -0.81628407 + 6500 480 0.41188302 -6.7133356 -6.573896 -0.7940289 + 6600 482 0.36998039 -6.7079555 -6.5813025 -0.75055442 + 6700 484 0.37615026 -6.722917 -6.592741 -0.76534055 + 6800 486 0.3466597 -6.7188712 -6.5976116 -0.77986211 + 6900 488 0.32902492 -6.7247054 -6.6084005 -0.75702458 + 7000 490 0.31856427 -6.7167709 -6.6029979 -0.76014555 + 7100 492 0.30233891 -6.7144406 -6.6053651 -0.96246708 + 7200 494 0.32557309 -6.7315347 -6.6129049 -0.8122153 + 7300 496 0.29919611 -6.7186327 -6.6085455 -0.71917931 + 7400 498 0.29778169 -6.7259455 -6.6153238 -0.88199391 + 7500 500 0.35535305 -6.7419073 -6.6086499 -0.90344083 + 7600 502 0.31979187 -6.7326802 -6.6116434 -0.78324572 + 7700 504 0.30821359 -6.72895 -6.6112295 -0.81363335 + 7800 506 0.31374993 -6.7255461 -6.6046346 -0.89904197 + 7900 508 0.29072338 -6.7177355 -6.6047082 -0.81423073 + 8000 510 0.30557494 -6.7208283 -6.600995 -0.85853575 + 8100 512 0.30521237 -6.726874 -6.6061601 -0.75361257 + 8200 514 0.29622226 -6.7152225 -6.5970794 -0.85766132 + 8300 516 0.28337698 -6.7023552 -6.5884003 -0.8985415 + 8400 518 0.32860902 -6.7211074 -6.5878875 -0.89758921 + 8500 520 0.35483743 -6.7406183 -6.5956126 -0.77602077 + 8600 522 0.32928486 -6.7326607 -6.5970358 -0.75070137 + 8700 524 0.36008106 -6.7474714 -6.5980103 -0.87093836 + 8800 526 0.36082301 -6.743579 -6.5926644 -0.90132107 + 8900 528 0.35010285 -6.7501553 -6.6026214 -0.85238959 + 9000 530 0.31513985 -6.7411795 -6.6073937 -0.75884529 + 9100 532 0.30895083 -6.7421063 -6.6099891 -0.74482692 + 9200 534 0.33631849 -6.751265 -6.6064087 -0.95632911 + 9300 536 0.33306096 -6.759187 -6.6147156 -0.76275935 + 9400 538 0.34582537 -6.7706766 -6.619619 -0.72251598 + 9500 540 0.32003146 -6.772057 -6.6313024 -0.88195851 + 9600 542 0.32439637 -6.7743569 -6.6307127 -0.90233104 + 9700 544 0.33988235 -6.7763721 -6.624862 -0.85185581 + 9800 546 0.32877587 -6.7744977 -6.62697 -0.8550905 + 9900 548 0.29570051 -6.7623752 -6.6288243 -1.0371157 + 10000 550 0.33675914 -6.7757315 -6.6226591 -1.0082157 +Loop time of 16.2553 on 4 procs for 10000 steps with 550 atoms + +Performance: 265759.101 tau/day, 615.183 timesteps/s +97.0% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0034051 | 2.6646 | 8.0317 | 200.7 | 16.39 +Bond | 0.0022626 | 0.0072971 | 0.019437 | 8.3 | 0.04 +Neigh | 0.018657 | 1.218 | 3.7621 | 137.5 | 7.49 +Comm | 1.1497 | 6.7957 | 12.192 | 164.2 | 41.81 +Output | 0.010692 | 0.01431 | 0.019901 | 3.2 | 0.09 +Modify | 3.1502 | 5.3779 | 11.342 | 149.0 | 33.08 +Other | | 0.1775 | | | 1.09 + +Nlocal: 137.500 ave 299 max 2 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Nghost: 1903.75 ave 2686 max 529 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Neighs: 9209.75 ave 23206 max 0 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 36839 +Ave neighs/atom = 66.980000 +Ave special neighs/atom = 0.36363636 +Neighbor list builds = 829 +Dangerous builds = 0 +Total wall time: 0:00:16 diff --git a/examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.1 b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.1 new file mode 100644 index 0000000000..5abc557d8b --- /dev/null +++ b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.1 @@ -0,0 +1,218 @@ +LAMMPS (10 Mar 2021) + using 1 OpenMP thread(s) per MPI task +# sample surface deposition script for molecules + +units lj +atom_style bond +boundary p p f + +lattice fcc 1.0 +Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011 +region box block 0 5 0 5 0 10 +create_box 3 box bond/types 1 extra/bond/per/atom 1 +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011) + 1 by 1 by 1 MPI processor grid + +region substrate block INF INF INF INF INF 3 +create_atoms 1 region substrate +Created 350 atoms + create_atoms CPU = 0.001 seconds + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 +pair_coeff 1 2 1.0 1.0 5.0 +mass * 1.0 + +bond_style harmonic +bond_coeff 1 5.0 1.0 + +neigh_modify delay 0 + +molecule dimer molecule.dimer +Read molecule template dimer: + 1 molecules + 2 atoms with max type 3 + 1 bonds with max type 1 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +region slab block 0 5 0 5 8 9 + +group addatoms empty +0 atoms in group addatoms +region mobile block 0 5 0 5 2 INF +group mobile region mobile +150 atoms in group mobile + +compute add addatoms temp +compute_modify add dynamic/dof yes extra/dof 0 + +fix 1 addatoms rigid/nvt/small molecule temp 0.1 0.1 0.1 mol dimer + create bodies CPU = 0.000 seconds + 0 rigid bodies with 0 atoms + 1.0000000 = max distance from body owner to body atom +fix 2 mobile langevin 0.1 0.1 0.1 587283 +fix 3 mobile nve + +fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1 +fix 5 addatoms wall/reflect zhi EDGE + +thermo_style custom step atoms temp epair etotal press +thermo 100 +thermo_modify temp add lost/bond ignore lost warn +WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468) + +#dump 1 all atom 50 dump.deposit.atom + +#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 3 pad 5 + +run 10000 +WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.3 + ghost atom cutoff = 5.3 + binsize = 2.65, bins = 3 3 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.929 | 5.929 | 5.929 Mbytes +Step Atoms Temp E_pair TotEng Press + 0 350 0 -6.9215833 -6.9215833 -1.0052629 + 100 352 1.0079368 -6.8875167 -6.8803581 -0.73353914 + 200 354 1.0081552 -6.8594643 -6.8452248 -0.70421276 + 300 356 1.0085803 -6.8171524 -6.7959042 -0.6917826 + 400 358 1.0099188 -6.7852701 -6.7570601 -0.70371699 + 500 360 1.0140221 -6.7493429 -6.7141338 -0.68415307 + 600 362 1.026148 -6.7105231 -6.6680032 -0.68314418 + 700 364 1.0683344 -6.6725162 -6.621154 -0.65747369 + 800 366 1.0958953 -6.6412275 -6.5813425 -0.68789615 + 900 368 1.1250034 -6.6101882 -6.541404 -0.66674346 + 1000 370 1.2326365 -6.5993719 -6.5160856 -0.69688655 + 1100 372 1.1397444 -6.5912865 -6.5070312 -0.6333041 + 1200 374 1.0514447 -6.5905753 -6.5062348 -0.71020272 + 1300 376 1.0033284 -6.5747792 -6.4880554 -0.65459641 + 1400 378 0.82996548 -6.5681806 -6.4913319 -0.60438595 + 1500 380 0.90239071 -6.5752982 -6.4862465 -0.66528503 + 1600 382 0.86403681 -6.5692212 -6.4787461 -0.65027922 + 1700 384 0.64748046 -6.5644242 -6.4927629 -0.63046709 + 1800 386 0.74288742 -6.5515741 -6.4649681 -0.67770665 + 1900 388 0.72584537 -6.5565195 -6.4676596 -0.66175025 + 2000 390 0.73351281 -6.5631154 -6.4690753 -0.64686647 + 2100 392 0.76490681 -6.5573734 -6.4549305 -0.68861526 + 2200 394 0.65926638 -6.5511574 -6.4591279 -0.71726284 + 2300 396 0.70267414 -6.5728555 -6.4708258 -0.64360436 + 2400 398 0.60523691 -6.5845973 -6.4933555 -0.63956839 + 2500 400 0.5103586 -6.5812006 -6.5014571 -0.68698448 + 2600 402 0.52401744 -6.6003358 -6.5156066 -0.68987222 + 2700 404 0.46421291 -6.5662747 -6.4887143 -0.72872856 + 2800 406 0.48254258 -6.5724266 -6.4892296 -0.75447872 + 2900 408 0.53073083 -6.5809842 -6.4866754 -0.67592283 + 3000 410 0.55314547 -6.5922077 -6.4910226 -0.74646953 + 3100 412 0.47150308 -6.5907273 -6.5020344 -0.64994935 + 3200 414 0.43047803 -6.5836315 -6.5004473 -0.79764713 + 3300 416 0.46289353 -6.5739439 -6.4821441 -0.76441674 + 3400 418 0.59724106 -6.5980575 -6.4766089 -0.73735626 + 3500 420 0.43571285 -6.5955972 -6.5048237 -0.64145941 + 3600 422 0.42461639 -6.6060271 -6.5154691 -0.70124484 + 3700 424 0.44323254 -6.6059723 -6.5092766 -0.74498147 + 3800 426 0.4037907 -6.592043 -6.5019958 -0.72171799 + 3900 428 0.41668443 -6.5975302 -6.5026079 -0.68327878 + 4000 430 0.44895183 -6.5958671 -6.4914597 -0.73939433 + 4100 432 0.39798052 -6.5952115 -6.5007833 -0.74871822 + 4200 434 0.45156734 -6.6237274 -6.5144772 -0.75111778 + 4300 436 0.48297356 -6.6395283 -6.5204465 -0.76105913 + 4400 438 0.43595234 -6.6347133 -6.5252276 -0.72858275 + 4500 440 0.44683726 -6.6385398 -6.5242916 -0.74280051 + 4600 442 0.47875512 -6.6419903 -6.5174274 -0.75579572 + 4700 444 0.43972605 -6.6406078 -6.5242388 -0.72196509 + 4800 446 0.43572615 -6.6495404 -6.5323047 -0.7135049 + 4900 448 0.38063437 -6.6432385 -6.5391588 -0.77087429 + 5000 450 0.4239223 -6.6617795 -6.5440233 -0.784531 + 5100 452 0.37201988 -6.6581813 -6.5532421 -0.74611403 + 5200 454 0.41765777 -6.6661321 -6.5465385 -0.75422239 + 5300 456 0.38015287 -6.6606624 -6.5502013 -0.78866702 + 5400 458 0.40549607 -6.6807118 -6.5611878 -0.78932883 + 5500 460 0.34444407 -6.6720564 -6.5690976 -0.77859171 + 5600 462 0.36572308 -6.6730078 -6.5621827 -0.85672419 + 5700 464 0.40055073 -6.6976989 -6.574685 -0.74251563 + 5800 466 0.36037213 -6.7022014 -6.5900685 -0.66239625 + 5900 468 0.32810921 -6.6952135 -6.591803 -0.83981757 + 6000 470 0.35110886 -6.6986862 -6.5866302 -0.82474047 + 6100 472 0.29965884 -6.6839503 -6.5871326 -0.7864913 + 6200 474 0.32402637 -6.6902745 -6.5843165 -0.74531083 + 6300 476 0.35042653 -6.6990084 -6.5830585 -0.74839967 + 6400 478 0.32695511 -6.6909459 -6.5815048 -0.76549489 + 6500 480 0.35209088 -6.6902987 -6.5711013 -0.71281516 + 6600 482 0.354106 -6.6890268 -6.567808 -0.81897158 + 6700 484 0.3504816 -6.681739 -6.5604463 -0.811609 + 6800 486 0.37396733 -6.7018369 -6.5710253 -0.80383296 + 6900 488 0.36435774 -6.7010114 -6.5722169 -0.72063651 + 7000 490 0.35631012 -6.7089806 -6.581727 -0.74152078 + 7100 492 0.37646659 -6.719154 -6.5833352 -0.77739001 + 7200 494 0.36546269 -6.7223269 -6.5891623 -0.8288767 + 7300 496 0.37688206 -6.7457243 -6.607053 -0.80062121 + 7400 498 0.30331409 -6.7284953 -6.6158184 -0.79894584 + 7500 500 0.30382936 -6.7333804 -6.6194444 -0.86924602 + 7600 502 0.30163143 -6.7294737 -6.6153104 -0.7689497 + 7700 504 0.30281215 -6.7233976 -6.6077402 -0.8557548 + 7800 506 0.33378009 -6.7244958 -6.5958651 -0.82584084 + 7900 508 0.31843128 -6.7250998 -6.6013002 -0.82424684 + 8000 510 0.35912946 -6.7399052 -6.5990701 -0.81879575 + 8100 512 0.31405017 -6.733487 -6.6092777 -0.72940457 + 8200 514 0.30475 -6.7271485 -6.6056043 -0.87958287 + 8300 516 0.30717434 -6.7277574 -6.6042329 -0.81700937 + 8400 518 0.33032462 -6.7382165 -6.6043011 -0.75436496 + 8500 520 0.32218568 -6.7351971 -6.6035347 -0.77661738 + 8600 522 0.30922651 -6.7275431 -6.6001797 -0.85334327 + 8700 524 0.30728021 -6.7237477 -6.5962029 -0.94977016 + 8800 526 0.31061903 -6.7181672 -6.5882505 -0.86132456 + 8900 528 0.33543344 -6.728929 -6.5875768 -0.87545919 + 9000 530 0.31887735 -6.7265066 -6.5911341 -0.76892061 + 9100 532 0.31888326 -6.7216274 -6.5852629 -0.83190298 + 9200 534 0.33310892 -6.7111349 -6.567661 -0.94282671 + 9300 536 0.34737171 -6.722515 -6.5718361 -0.95235602 + 9400 538 0.32752858 -6.7246204 -6.5815549 -0.86227131 + 9500 540 0.30665764 -6.7225391 -6.5876665 -0.87144326 + 9600 542 0.32747382 -6.7149245 -6.5699176 -0.86863105 + 9700 544 0.32463079 -6.7205757 -6.5758643 -0.85393932 + 9800 546 0.31517825 -6.7178961 -6.5764699 -0.81017759 + 9900 548 0.33649933 -6.7380644 -6.5860871 -0.80769312 + 10000 550 0.37394555 -6.7612874 -6.5913121 -0.82102213 +Loop time of 16.6615 on 1 procs for 10000 steps with 550 atoms + +Performance: 259279.806 tau/day, 600.185 timesteps/s +99.9% CPU use with 1 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 9.2639 | 9.2639 | 9.2639 | 0.0 | 55.60 +Bond | 0.021559 | 0.021559 | 0.021559 | 0.0 | 0.13 +Neigh | 4.544 | 4.544 | 4.544 | 0.0 | 27.27 +Comm | 0.62792 | 0.62792 | 0.62792 | 0.0 | 3.77 +Output | 0.0069666 | 0.0069666 | 0.0069666 | 0.0 | 0.04 +Modify | 2.1282 | 2.1282 | 2.1282 | 0.0 | 12.77 +Other | | 0.06897 | | | 0.41 + +Nlocal: 550.000 ave 550 max 550 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Nghost: 2344.00 ave 2344 max 2344 min +Histogram: 1 0 0 0 0 0 0 0 0 0 +Neighs: 36607.0 ave 36607 max 36607 min +Histogram: 1 0 0 0 0 0 0 0 0 0 + +Total # of neighbors = 36607 +Ave neighs/atom = 66.558182 +Ave special neighs/atom = 0.36363636 +Neighbor list builds = 847 +Dangerous builds = 0 +Total wall time: 0:00:16 diff --git a/examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.4 b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.4 new file mode 100644 index 0000000000..7239fc9bb9 --- /dev/null +++ b/examples/deposit/log.10Mar21.deposit.molecule.rigid-nvt-small.g++.4 @@ -0,0 +1,218 @@ +LAMMPS (10 Mar 2021) + using 1 OpenMP thread(s) per MPI task +# sample surface deposition script for molecules + +units lj +atom_style bond +boundary p p f + +lattice fcc 1.0 +Lattice spacing in x,y,z = 1.5874011 1.5874011 1.5874011 +region box block 0 5 0 5 0 10 +create_box 3 box bond/types 1 extra/bond/per/atom 1 +Created orthogonal box = (0.0000000 0.0000000 0.0000000) to (7.9370053 7.9370053 15.874011) + 1 by 1 by 4 MPI processor grid + +region substrate block INF INF INF INF INF 3 +create_atoms 1 region substrate +Created 350 atoms + create_atoms CPU = 0.002 seconds + +pair_style lj/cut 2.5 +pair_coeff * * 1.0 1.0 +pair_coeff 1 2 1.0 1.0 5.0 +mass * 1.0 + +bond_style harmonic +bond_coeff 1 5.0 1.0 + +neigh_modify delay 0 + +molecule dimer molecule.dimer +Read molecule template dimer: + 1 molecules + 2 atoms with max type 3 + 1 bonds with max type 1 + 0 angles with max type 0 + 0 dihedrals with max type 0 + 0 impropers with max type 0 +region slab block 0 5 0 5 8 9 + +group addatoms empty +0 atoms in group addatoms +region mobile block 0 5 0 5 2 INF +group mobile region mobile +150 atoms in group mobile + +compute add addatoms temp +compute_modify add dynamic/dof yes extra/dof 0 + +fix 1 addatoms rigid/nvt/small molecule temp 0.1 0.1 0.1 mol dimer + create bodies CPU = 0.000 seconds + 0 rigid bodies with 0 atoms + 1.0000000 = max distance from body owner to body atom +fix 2 mobile langevin 0.1 0.1 0.1 587283 +fix 3 mobile nve + +fix 4 addatoms deposit 100 0 100 12345 region slab near 1.0 mol dimer vz -1.0 -1.0 rigid 1 +fix 5 addatoms wall/reflect zhi EDGE + +thermo_style custom step atoms temp epair etotal press +thermo 100 +thermo_modify temp add lost/bond ignore lost warn +WARNING: Temperature for thermo pressure is not for group all (src/thermo.cpp:468) + +#dump 1 all atom 50 dump.deposit.atom + +#dump 2 all image 50 image.*.jpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 2 pad 5 + +#dump 3 all movie 50 tmp.mpg type type # axes yes 0.8 0.02 view 80 -30 +#dump_modify 3 pad 5 + +run 10000 +WARNING: Should not allow rigid bodies to bounce off relecting walls (src/fix_wall_reflect.cpp:182) +Neighbor list info ... + update every 1 steps, delay 0 steps, check yes + max neighbors/atom: 2000, page size: 100000 + master list distance cutoff = 5.3 + ghost atom cutoff = 5.3 + binsize = 2.65, bins = 3 3 6 + 1 neighbor lists, perpetual/occasional/extra = 1 0 0 + (1) pair lj/cut, perpetual + attributes: half, newton on + pair build: half/bin/newton + stencil: half/bin/3d/newton + bin: standard +Per MPI rank memory allocation (min/avg/max) = 5.255 | 5.852 | 6.302 Mbytes +Step Atoms Temp E_pair TotEng Press + 0 350 0 -6.9215833 -6.9215833 -1.0052629 + 100 352 1.0079368 -6.8946578 -6.8874992 -0.73775337 + 200 354 1.0081552 -6.8645575 -6.850318 -0.69629729 + 300 356 1.0085803 -6.821677 -6.8004288 -0.69532657 + 400 358 1.0099188 -6.7837923 -6.7555822 -0.68879568 + 500 360 1.0140221 -6.7446709 -6.7094618 -0.72991641 + 600 362 1.026146 -6.7129201 -6.6704003 -0.67063836 + 700 364 1.0683193 -6.6776523 -6.6262908 -0.65572472 + 800 366 1.0958894 -6.6402029 -6.5803182 -0.66307282 + 900 368 1.1231769 -6.6050912 -6.5364187 -0.64076928 + 1000 370 1.1976289 -6.5942508 -6.51333 -0.69249047 + 1100 372 1.05061 -6.5772306 -6.4995645 -0.6307289 + 1200 374 0.93723829 -6.5732962 -6.4981166 -0.64963821 + 1300 376 0.93899122 -6.5578418 -6.476679 -0.65096688 + 1400 378 0.87050694 -6.546852 -6.4662495 -0.67613401 + 1500 380 0.84462904 -6.5400883 -6.4567368 -0.64376986 + 1600 382 0.92417795 -6.5611292 -6.4643567 -0.62092779 + 1700 384 0.67296541 -6.5589985 -6.4845167 -0.6779111 + 1800 386 0.87159158 -6.5655058 -6.4638954 -0.6582786 + 1900 388 0.67504975 -6.5772537 -6.4946123 -0.665098 + 2000 390 0.65034978 -6.5717854 -6.4884072 -0.73162072 + 2100 392 0.63389859 -6.5652907 -6.4803935 -0.64937411 + 2200 394 0.6265637 -6.5582412 -6.4707767 -0.70819854 + 2300 396 0.85352983 -6.5750751 -6.4511408 -0.69995918 + 2400 398 0.69792348 -6.5938659 -6.4886513 -0.63755214 + 2500 400 0.45320495 -6.595022 -6.5242087 -0.70462183 + 2600 402 0.46824374 -6.5697613 -6.4940502 -0.75497893 + 2700 404 0.46605975 -6.5599272 -6.4820583 -0.66778506 + 2800 406 0.50637604 -6.5700492 -6.482743 -0.63812082 + 2900 408 0.55335921 -6.5873352 -6.4890054 -0.62891652 + 3000 410 0.51731142 -6.5890566 -6.4944264 -0.64305355 + 3100 412 0.59439734 -6.6003127 -6.4885025 -0.67140541 + 3200 414 0.53413632 -6.595564 -6.4923492 -0.76242248 + 3300 416 0.49221593 -6.5990831 -6.5014681 -0.71330819 + 3400 418 0.55006126 -6.6015725 -6.4897179 -0.72044309 + 3500 420 0.49065348 -6.6329864 -6.5307669 -0.65775397 + 3600 422 0.41907335 -6.6219753 -6.5325995 -0.75936391 + 3700 424 0.38720116 -6.6153349 -6.5308629 -0.74166397 + 3800 426 0.40625994 -6.6150209 -6.5244231 -0.7595111 + 3900 428 0.40460547 -6.6122642 -6.5200936 -0.70484465 + 4000 430 0.45014991 -6.6254404 -6.5207544 -0.70069933 + 4100 432 0.44820466 -6.640222 -6.5338771 -0.805972 + 4200 434 0.39767521 -6.6450316 -6.5488199 -0.72841414 + 4300 436 0.4155331 -6.6547917 -6.5523381 -0.6894484 + 4400 438 0.43034353 -6.6615074 -6.5534303 -0.74026062 + 4500 440 0.38062977 -6.6541618 -6.5568417 -0.85911194 + 4600 442 0.39357419 -6.6522517 -6.5498512 -0.66232114 + 4700 444 0.40296801 -6.6647029 -6.5580616 -0.67307577 + 4800 446 0.38194993 -6.6510248 -6.548258 -0.77887746 + 4900 448 0.40739835 -6.6601751 -6.5487771 -0.84146416 + 5000 450 0.38392807 -6.6560665 -6.5494198 -0.77343399 + 5100 452 0.35209286 -6.6481476 -6.5488294 -0.68065755 + 5200 454 0.41355143 -6.6615988 -6.543181 -0.81611092 + 5300 456 0.42200484 -6.6627494 -6.5401273 -0.7774134 + 5400 458 0.37764326 -6.661431 -6.550117 -0.72187808 + 5500 460 0.41857405 -6.6674232 -6.542306 -0.74929745 + 5600 462 0.41682611 -6.6710961 -6.5447852 -0.7557454 + 5700 464 0.44396148 -6.6924346 -6.5560887 -0.78018312 + 5800 466 0.37058077 -6.6865013 -6.5711919 -0.74146125 + 5900 468 0.346812 -6.681215 -6.57191 -0.81184233 + 6000 470 0.34919462 -6.6827931 -6.571348 -0.87330821 + 6100 472 0.39360936 -6.6933359 -6.5661634 -0.79237598 + 6200 474 0.33270778 -6.6847095 -6.5759127 -0.77978526 + 6300 476 0.35973804 -6.6951254 -6.5760944 -0.80340174 + 6400 478 0.38124318 -6.7045984 -6.5769857 -0.81628407 + 6500 480 0.41188302 -6.7133356 -6.573896 -0.7940289 + 6600 482 0.36998039 -6.7079555 -6.5813025 -0.75055442 + 6700 484 0.37615026 -6.722917 -6.592741 -0.76534055 + 6800 486 0.3466597 -6.7188712 -6.5976116 -0.77986211 + 6900 488 0.32902492 -6.7247054 -6.6084005 -0.75702458 + 7000 490 0.31856427 -6.7167709 -6.6029979 -0.76014555 + 7100 492 0.30233891 -6.7144406 -6.6053651 -0.96246708 + 7200 494 0.32557309 -6.7315347 -6.6129049 -0.8122153 + 7300 496 0.29919611 -6.7186327 -6.6085455 -0.71917931 + 7400 498 0.29778169 -6.7259455 -6.6153238 -0.88199391 + 7500 500 0.35535305 -6.7419073 -6.6086499 -0.90344083 + 7600 502 0.31979187 -6.7326802 -6.6116434 -0.78324572 + 7700 504 0.30821359 -6.72895 -6.6112295 -0.81363335 + 7800 506 0.31374993 -6.7255461 -6.6046346 -0.89904197 + 7900 508 0.29072338 -6.7177355 -6.6047082 -0.81423073 + 8000 510 0.30557494 -6.7208283 -6.600995 -0.85853575 + 8100 512 0.30521237 -6.726874 -6.6061601 -0.75361257 + 8200 514 0.29622226 -6.7152225 -6.5970794 -0.85766132 + 8300 516 0.28337698 -6.7023552 -6.5884003 -0.8985415 + 8400 518 0.32860902 -6.7211074 -6.5878875 -0.89758921 + 8500 520 0.35483743 -6.7406183 -6.5956126 -0.77602077 + 8600 522 0.32928486 -6.7326607 -6.5970358 -0.75070137 + 8700 524 0.36008106 -6.7474714 -6.5980103 -0.87093836 + 8800 526 0.36082301 -6.743579 -6.5926644 -0.90132107 + 8900 528 0.35010285 -6.7501553 -6.6026214 -0.85238959 + 9000 530 0.31513985 -6.7411795 -6.6073937 -0.75884529 + 9100 532 0.30895083 -6.7421063 -6.6099891 -0.74482692 + 9200 534 0.33631849 -6.751265 -6.6064087 -0.95632911 + 9300 536 0.33306096 -6.759187 -6.6147156 -0.76275935 + 9400 538 0.34582537 -6.7706766 -6.619619 -0.72251598 + 9500 540 0.32003146 -6.772057 -6.6313024 -0.88195851 + 9600 542 0.32439637 -6.7743569 -6.6307127 -0.90233104 + 9700 544 0.33988235 -6.7763721 -6.624862 -0.85185581 + 9800 546 0.32877587 -6.7744977 -6.62697 -0.8550905 + 9900 548 0.29570051 -6.7623752 -6.6288243 -1.0371157 + 10000 550 0.33675914 -6.7757315 -6.6226591 -1.0082157 +Loop time of 16.1559 on 4 procs for 10000 steps with 550 atoms + +Performance: 267395.139 tau/day, 618.970 timesteps/s +96.1% CPU use with 4 MPI tasks x 1 OpenMP threads + +MPI task timing breakdown: +Section | min time | avg time | max time |%varavg| %total +--------------------------------------------------------------- +Pair | 0.0035574 | 2.5467 | 7.5373 | 192.6 | 15.76 +Bond | 0.0022929 | 0.0073138 | 0.019471 | 8.3 | 0.05 +Neigh | 0.018645 | 1.2357 | 3.8167 | 138.4 | 7.65 +Comm | 1.1946 | 6.6335 | 11.87 | 158.8 | 41.06 +Output | 0.010714 | 0.014391 | 0.020006 | 3.2 | 0.09 +Modify | 3.4474 | 5.6081 | 11.47 | 143.2 | 34.71 +Other | | 0.1102 | | | 0.68 + +Nlocal: 137.500 ave 299 max 2 min +Histogram: 2 0 0 0 0 0 0 1 0 1 +Nghost: 1903.75 ave 2686 max 529 min +Histogram: 1 0 0 0 0 0 1 0 0 2 +Neighs: 9209.75 ave 23206 max 0 min +Histogram: 2 0 0 0 0 1 0 0 0 1 + +Total # of neighbors = 36839 +Ave neighs/atom = 66.980000 +Ave special neighs/atom = 0.36363636 +Neighbor list builds = 829 +Dangerous builds = 0 +Total wall time: 0:00:16 From 11d62b71c382ef202cee84602e35984b3e0b98a7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 11:11:01 -0400 Subject: [PATCH 080/104] use clang preset when compiling on MacOS --- .github/workflows/unittest-macos.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/unittest-macos.yml b/.github/workflows/unittest-macos.yml index a65db7636b..f62b3046c9 100644 --- a/.github/workflows/unittest-macos.yml +++ b/.github/workflows/unittest-macos.yml @@ -24,7 +24,9 @@ jobs: shell: bash working-directory: ${{github.workspace}}/build run: | - cmake -C $GITHUB_WORKSPACE/cmake/presets/most.cmake $GITHUB_WORKSPACE/cmake \ + cmake -C $GITHUB_WORKSPACE/cmake/presets/clang.cmake \ + -C $GITHUB_WORKSPACE/cmake/presets/most.cmake \ + $GITHUB_WORKSPACE/cmake \ -DENABLE_TESTING=ON -DBUILD_SHARED_LIBS=ON -DLAMMPS_EXCEPTIONS=ON cmake --build . --parallel 2 From d346c539147ae666741494657646a8d885741312 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 11:28:19 -0400 Subject: [PATCH 081/104] silence compiler warnings about formats --- src/USER-REAXC/reaxc_tool_box.cpp | 45 +++++++++++++++---------------- src/USER-REAXC/reaxc_traj.h | 16 ++++++----- 2 files changed, 31 insertions(+), 30 deletions(-) diff --git a/src/USER-REAXC/reaxc_tool_box.cpp b/src/USER-REAXC/reaxc_tool_box.cpp index f0171d2108..abab3f2b43 100644 --- a/src/USER-REAXC/reaxc_tool_box.cpp +++ b/src/USER-REAXC/reaxc_tool_box.cpp @@ -25,10 +25,11 @@ ----------------------------------------------------------------------*/ #include "reaxc_tool_box.h" +#include "reaxc_defs.h" + #include #include #include -#include "reaxc_defs.h" #include "error.h" @@ -49,62 +50,58 @@ int Tokenize( char* s, char*** tok ) return count; } - - /* safe malloc */ void *smalloc( LAMMPS_NS::Error *error_ptr, rc_bigint n, const char *name ) { void *ptr; - char errmsg[256]; if (n <= 0) { - snprintf(errmsg, 256, "Trying to allocate %ld bytes for array %s. " - "returning NULL.", n, name); + auto errmsg = fmt::format("Trying to allocate {} bytes for array {}. " + "returning NULL.", n, name); if (error_ptr) error_ptr->one(FLERR,errmsg); - else fputs(errmsg,stderr); + else fputs(errmsg.c_str(),stderr); return nullptr; } ptr = malloc( n ); if (ptr == nullptr) { - snprintf(errmsg, 256, "Failed to allocate %ld bytes for array %s", n, name); + auto errmsg = fmt::format("Failed to allocate {} bytes for array {}", + n, name); if (error_ptr) error_ptr->one(FLERR,errmsg); - else fputs(errmsg,stderr); + else fputs(errmsg.c_str(),stderr); } return ptr; } - /* safe calloc */ void *scalloc( LAMMPS_NS::Error *error_ptr, rc_bigint n, rc_bigint size, const char *name ) { void *ptr; - char errmsg[256]; if (n <= 0) { - snprintf(errmsg, 256, "Trying to allocate %ld elements for array %s. " - "returning NULL.\n", n, name ); + auto errmsg = fmt::format("Trying to allocate {} elements for array {}. " + "returning NULL.\n", n, name); if (error_ptr) error_ptr->one(FLERR,errmsg); - else fputs(errmsg,stderr); + else fputs(errmsg.c_str(),stderr); return nullptr; } if (size <= 0) { - snprintf(errmsg, 256, "Elements size for array %s is %ld. " - "returning NULL", name, size ); + auto errmsg = fmt::format("Elements size for array {} is {}. " + "returning NULL", name, size); if (error_ptr) error_ptr->one(FLERR,errmsg); - else fputs(errmsg,stderr); + else fputs(errmsg.c_str(),stderr); return nullptr; } ptr = calloc( n, size ); if (ptr == nullptr) { - char errmsg[256]; - snprintf(errmsg, 256, "Failed to allocate %ld bytes for array %s", n*size, name); + auto errmsg = fmt::format("Failed to allocate {} bytes for array {}", + n*size, name); if (error_ptr) error_ptr->one(FLERR,errmsg); - else fputs(errmsg,stderr); + else fputs(errmsg.c_str(),stderr); } return ptr; @@ -115,14 +112,14 @@ void *scalloc( LAMMPS_NS::Error *error_ptr, rc_bigint n, rc_bigint size, const c void sfree( LAMMPS_NS::Error* error_ptr, void *ptr, const char *name ) { if (ptr == nullptr) { - char errmsg[256]; - snprintf(errmsg, 256, "Trying to free the already NULL pointer %s", name ); + auto errmsg = fmt::format("Trying to free the already free()'d pointer {}", + name); if (error_ptr) error_ptr->one(FLERR,errmsg); - else fputs(errmsg,stderr); + else fputs(errmsg.c_str(),stderr); return; } - free( ptr ); + free(ptr); ptr = nullptr; } diff --git a/src/USER-REAXC/reaxc_traj.h b/src/USER-REAXC/reaxc_traj.h index 4966bf11d8..2ff5995204 100644 --- a/src/USER-REAXC/reaxc_traj.h +++ b/src/USER-REAXC/reaxc_traj.h @@ -36,14 +36,18 @@ #define HEADER_LINE_LEN 62 #define STR_LINE "%-37s%-24s\n" #define INT_LINE "%-37s%-24d\n" -#define BIGINT_LINE "%-37s%-24ld\n" +#if defined(LAMMPS_SMALLSMALL) +#define BIGINT_LINE "%-37s%-24d\n" +#else +#define BIGINT_LINE "%-37s%-24lld\n" +#endif #define INT2_LINE "%-36s%-12d,%-12d\n" #define REAL_LINE "%-37s%-24.3f\n" #define SCI_LINE "%-37s%-24g\n" #define REAL3_LINE "%-32s%9.3f,%9.3f,%9.3f\n" #if defined(LAMMPS_BIGBIG) -#define INIT_DESC "%9ld%3d%9s%10.3f\n" //AtomID - AtomType, AtomName, AtomMass +#define INIT_DESC "%9lld%3d%9s%10.3f\n" //AtomID - AtomType, AtomName, AtomMass #else #define INIT_DESC "%9d%3d%9s%10.3f\n" //AtomID - AtomType, AtomName, AtomMass #endif @@ -56,7 +60,7 @@ #define SIZE_INFO_LEN3 31 #if defined(LAMMPS_BIGBIG) -#define ATOM_BASIC "%9ld%10.3f%10.3f%10.3f%10.3f\n" //AtomID AtomType (X Y Z) Charge +#define ATOM_BASIC "%9lld%10.3f%10.3f%10.3f%10.3f\n" //AtomID AtomType (X Y Z) Charge #define ATOM_wV "%9ld%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f\n" //AtomID (X Y Z) (Vx Vy Vz) Charge #define ATOM_wF "%9ld%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f\n" //AtomID (X Y Z) (Fx Fy Fz) Charge #define ATOM_FULL "%9ld%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f%10.3f\n" //AtomID (X Y Z) (Vx Vy Vz) (Fx Fy Fz) Charge @@ -72,9 +76,9 @@ #define ATOM_FULL_LEN 110 #if defined(LAMMPS_BIGBIG) -#define BOND_BASIC "%9ld%9ld%10.3f%10.3f\n" // Atom1 Atom2 Dist Total_BO -#define BOND_FULL "%9ld%9ld%10.3f%10.3f%10.3f%10.3f%10.3f\n" // Atom1 Atom2 Dist Total_BO BOs BOpi BOpi2 -#define ANGLE_BASIC "%9ld%9ld%9ld%10.3f\n" // Atom1 Atom2 Atom3 Theta +#define BOND_BASIC "%9lld%9lld%10.3f%10.3f\n" // Atom1 Atom2 Dist Total_BO +#define BOND_FULL "%9lld%9lld%10.3f%10.3f%10.3f%10.3f%10.3f\n" // Atom1 Atom2 Dist Total_BO BOs BOpi BOpi2 +#define ANGLE_BASIC "%9lld%9lld%9lld%10.3f\n" // Atom1 Atom2 Atom3 Theta #else #define BOND_BASIC "%9d%9d%10.3f%10.3f\n" // Atom1 Atom2 Dist Total_BO #define BOND_FULL "%9d%9d%10.3f%10.3f%10.3f%10.3f%10.3f\n" // Atom1 Atom2 Dist Total_BO BOs BOpi BOpi2 From db400c91aec560f8b04a83c8de4141724d1df89e Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 11:37:59 -0400 Subject: [PATCH 082/104] relax error a little bit to avoid failure on macos --- unittest/force-styles/tests/fix-timestep-adapt_coul.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml b/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml index 4bf25f3b33..cd7f9aa87d 100644 --- a/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml +++ b/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml @@ -1,7 +1,7 @@ --- lammps_version: 10 Mar 2021 date_generated: Thu Mar 25 14:07:45 202 -epsilon: 1e-14 +epsilon: 7.5e-14 prerequisites: ! | atom full fix adapt From e01e0298cb9587cac513face286643ff1e7d6b07 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 13:25:24 -0400 Subject: [PATCH 083/104] fix uninitialized data access after restart bug in USER-YAFF pair styles also fix some source formatting issues --- src/KSPACE/pair_lj_cut_coul_long.cpp | 16 +++++++------- .../pair_lj_switch3_coulgauss_long.cpp | 22 ++++++++++--------- .../pair_mm3_switch3_coulgauss_long.cpp | 20 +++++++++-------- 3 files changed, 31 insertions(+), 27 deletions(-) diff --git a/src/KSPACE/pair_lj_cut_coul_long.cpp b/src/KSPACE/pair_lj_cut_coul_long.cpp index fcb39b8c6e..5d04fd1cfb 100644 --- a/src/KSPACE/pair_lj_cut_coul_long.cpp +++ b/src/KSPACE/pair_lj_cut_coul_long.cpp @@ -17,21 +17,21 @@ #include "pair_lj_cut_coul_long.h" -#include -#include #include "atom.h" #include "comm.h" +#include "error.h" #include "force.h" #include "kspace.h" -#include "update.h" -#include "respa.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "neigh_request.h" #include "math_const.h" #include "memory.h" -#include "error.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "respa.h" +#include "update.h" +#include +#include using namespace LAMMPS_NS; using namespace MathConst; diff --git a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp index 6e4c0587f7..2247a9467c 100644 --- a/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp +++ b/src/USER-YAFF/pair_lj_switch3_coulgauss_long.cpp @@ -106,6 +106,7 @@ void PairLJSwitch3CoulGaussLong::compute(int eflag, int vflag) firstneigh = list->firstneigh; // loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { i = ilist[ii]; qtmp = q[i]; @@ -193,7 +194,7 @@ void PairLJSwitch3CoulGaussLong::compute(int eflag, int vflag) offset[itype][jtype]; } else evdwl = 0.0; - // Truncation, see Yaff Switch33 + // Truncation, see Yaff Switch3 if (truncw>0) { if (rsq < cut_ljsq[itype][jtype]) { if (r>cut_lj[itype][jtype]-truncw) { @@ -262,19 +263,18 @@ void PairLJSwitch3CoulGaussLong::allocate() void PairLJSwitch3CoulGaussLong::settings(int narg, char **arg) { - if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); + if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); + if (narg == 2) { cut_coul = cut_lj_global; truncw = utils::numeric(FLERR,arg[1],false,lmp); - } - else { + } else { cut_coul = utils::numeric(FLERR,arg[1],false,lmp); truncw = utils::numeric(FLERR,arg[2],false,lmp); } - if (truncw>0.0) truncwi = 1.0/truncw; - else truncwi = 0.0; + // reset cutoffs that have been explicitly set if (allocated) { @@ -332,6 +332,9 @@ void PairLJSwitch3CoulGaussLong::init_style() cut_coulsq = cut_coul * cut_coul; + if (truncw>0.0) truncwi = 1.0/truncw; + else truncwi = 0.0; + // insure use of KSpace long-range solver, set g_ewald if (force->kspace == nullptr) @@ -375,8 +378,7 @@ double PairLJSwitch3CoulGaussLong::init_one(int i, int j) double r6inv = r2inv*r2inv*r2inv; double r12inv = r6inv*r6inv; offset[i][j] = lj3[i][j]*r12inv-lj4[i][j]*r6inv; - } - else {offset[i][j] = 0.0;} + } else {offset[i][j] = 0.0;} } else offset[i][j] = 0.0; cut_ljsq[j][i] = cut_ljsq[i][j]; @@ -431,8 +433,7 @@ double PairLJSwitch3CoulGaussLong::init_one(int i, int j) double t71 = -0.4e1 * cg * (0.2e1 * t10 * t11 - 0.2e1 * t10 * t14 + (cg5 - 0.2e1 * cg1) * t58 * cg5) * t26 / t4 / t41 / t9; etail_ij = 2.0*MY_PI*all[0]*all[1]*t71; ptail_ij = 2.0*MY_PI*all[0]*all[1]*t71; - } - else { + } else { double t1 = pow(cg3, 0.2e1); double t2 = t1 * t1; double t3 = t2 * t1; @@ -618,6 +619,7 @@ double PairLJSwitch3CoulGaussLong::single(int i, int j, int itype, int jtype, expn2 = 0.0; erfc2 = 0.0; forcecoul2 = 0.0; + prefactor2 = 0.0; } else { r = sqrt(rsq); rrij = lj2[itype][jtype]*r; diff --git a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp index 67a322ca24..c7fcac855a 100644 --- a/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp +++ b/src/USER-YAFF/pair_mm3_switch3_coulgauss_long.cpp @@ -106,6 +106,7 @@ void PairMM3Switch3CoulGaussLong::compute(int eflag, int vflag) firstneigh = list->firstneigh; // loop over neighbors of my atoms + for (ii = 0; ii < inum; ii++) { i = ilist[ii]; qtmp = q[i]; @@ -170,6 +171,7 @@ void PairMM3Switch3CoulGaussLong::compute(int eflag, int vflag) expn2 = 0.0; erfc2 = 0.0; forcecoul2 = 0.0; + prefactor2 = 0.0; } else { rrij = lj2[itype][jtype]*r; expn2 = exp(-rrij*rrij); @@ -263,19 +265,18 @@ void PairMM3Switch3CoulGaussLong::allocate() void PairMM3Switch3CoulGaussLong::settings(int narg, char **arg) { - if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); + if (narg < 2 || narg > 3) error->all(FLERR,"Illegal pair_style command"); cut_lj_global = utils::numeric(FLERR,arg[0],false,lmp); + if (narg == 2) { cut_coul = cut_lj_global; truncw = utils::numeric(FLERR,arg[1],false,lmp); - } - else { + } else { cut_coul = utils::numeric(FLERR,arg[1],false,lmp); truncw = utils::numeric(FLERR,arg[2],false,lmp); } - if (truncw>0.0) truncwi = 1.0/truncw; - else truncwi = 0.0; + // reset cutoffs that have been explicitly set if (allocated) { @@ -333,6 +334,9 @@ void PairMM3Switch3CoulGaussLong::init_style() cut_coulsq = cut_coul * cut_coul; + if (truncw>0.0) truncwi = 1.0/truncw; + else truncwi = 0.0; + // insure use of KSpace long-range solver, set g_ewald if (force->kspace == nullptr) @@ -375,8 +379,7 @@ double PairMM3Switch3CoulGaussLong::init_one(int i, int j) double r6inv = r2inv*r2inv*r2inv; double expb = lj3[i][j]*exp(-lj1[i][j]*r); offset[i][j] = expb-lj4[i][j]*r6inv; - } - else {offset[i][j] = 0.0;} + } else {offset[i][j] = 0.0;} } else offset[i][j] = 0.0; cut_ljsq[j][i] = cut_ljsq[i][j]; @@ -426,8 +429,7 @@ double PairMM3Switch3CoulGaussLong::init_one(int i, int j) double t64 = cg * (0.6388888889e3 * ((-t3 + (0.7e1 / 0.36e2 * cg5 - t5) * t1 - 0.2e1 / 0.3e1 * t8 * (cg5 - cg1 / 0.4e1) * cg3 + cg5 * t14) * t20 + t3 + (cg5 / 0.12e2 + t5) * t1 + (cg5 + cg1 / 0.3e1) * cg1 * cg3 / 0.2e1 + t30 * cg5) * t2 * t36 * t39 - 0.225e1 * (0.2e1 * t43 * t44 - 0.2e1 * t43 * t47 + cg5 * (cg5 - 0.2e1 * cg1)) * t54 * t1 / cg1 / t8 * t39); etail_ij = 2.0*MY_PI*all[0]*all[1]*t64; ptail_ij = 2.0*MY_PI*all[0]*all[1]*t64; - } - else { + } else { double t2 = pow(cg3, 0.2e1); double t3 = t2 * t2; double t7 = 0.12e2 / cg3 * cg1; From 698b9b9519000b8976084714a977a6ce25a880d3 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 13:36:27 -0400 Subject: [PATCH 084/104] relax epsilon some more --- unittest/force-styles/tests/fix-timestep-adapt_coul.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml b/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml index cd7f9aa87d..f0ec2f1292 100644 --- a/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml +++ b/unittest/force-styles/tests/fix-timestep-adapt_coul.yaml @@ -1,7 +1,7 @@ --- lammps_version: 10 Mar 2021 date_generated: Thu Mar 25 14:07:45 202 -epsilon: 7.5e-14 +epsilon: 5e-13 prerequisites: ! | atom full fix adapt From e5a665c1d97f48041e8be7760dcfe53aae509233 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 14:45:07 -0400 Subject: [PATCH 085/104] Add utilities for Python code --- src/PYTHON/python_utils.h | 42 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 src/PYTHON/python_utils.h diff --git a/src/PYTHON/python_utils.h b/src/PYTHON/python_utils.h new file mode 100644 index 0000000000..82422916ff --- /dev/null +++ b/src/PYTHON/python_utils.h @@ -0,0 +1,42 @@ +/* -*- c++ -*- ---------------------------------------------------------- + LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator + http://lammps.sandia.gov, Sandia National Laboratories + Steve Plimpton, sjplimp@sandia.gov + + Copyright (2003) Sandia Corporation. Under the terms of Contract + DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains + certain rights in this software. This software is distributed under + the GNU General Public License. + + See the README file in the top-level LAMMPS directory. +------------------------------------------------------------------------- */ + +#ifndef LMP_PYTHON_UTILS_H +#define LMP_PYTHON_UTILS_H + +#include + +namespace LAMMPS_NS { + +namespace PyUtils { + +class GIL { + PyGILState_STATE gstate; +public: + GIL() : gstate(PyGILState_Ensure()) { + } + ~GIL() { + PyGILState_Release(gstate); + } +}; + +static void Print_Errors() { + PyErr_Print(); + PyErr_Clear(); +} + +} + +} + +#endif From da5bd578ad826a6f83542251e3f9bd61d552afd9 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 14:46:35 -0400 Subject: [PATCH 086/104] Simplify python_impl.cpp --- src/PYTHON/python_impl.cpp | 62 ++++++++++++++------------------------ 1 file changed, 22 insertions(+), 40 deletions(-) diff --git a/src/PYTHON/python_impl.cpp b/src/PYTHON/python_impl.cpp index c83385410a..7e46da4c49 100644 --- a/src/PYTHON/python_impl.cpp +++ b/src/PYTHON/python_impl.cpp @@ -21,6 +21,7 @@ #include "input.h" #include "memory.h" #include "python_compat.h" +#include "python_utils.h" #include "variable.h" #include @@ -91,13 +92,12 @@ PythonImpl::PythonImpl(LAMMPS *lmp) : Pointers(lmp) } #endif - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; PyObject *pModule = PyImport_AddModule("__main__"); if (!pModule) error->all(FLERR,"Could not initialize embedded Python"); pyMain = (void *) pModule; - PyGILState_Release(gstate); } /* ---------------------------------------------------------------------- */ @@ -106,23 +106,19 @@ PythonImpl::~PythonImpl() { if (pyMain) { // clean up - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; for (int i = 0; i < nfunc; i++) { delete [] pfuncs[i].name; deallocate(i); - PyObject *pFunc = (PyObject *) pfuncs[i].pFunc; - Py_XDECREF(pFunc); + Py_CLEAR(pfuncs[i].pFunc); } + } - // shutdown Python interpreter - - if (!external_interpreter) { - Py_Finalize(); - } - else { - PyGILState_Release(gstate); - } + // shutdown Python interpreter + if (!external_interpreter) { + PyGILState_STATE gstate = PyGILState_Ensure(); + Py_Finalize(); } memory->sfree(pfuncs); @@ -228,7 +224,7 @@ void PythonImpl::command(int narg, char **arg) int ifunc = create_entry(arg[0]); - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; // send Python code to Python interpreter // file: read the file via PyRun_SimpleFile() @@ -239,14 +235,14 @@ void PythonImpl::command(int narg, char **arg) FILE *fp = fopen(pyfile,"r"); if (fp == nullptr) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not open Python file"); } int err = PyRun_SimpleFile(fp,pyfile); if (err) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not process Python file"); } @@ -255,7 +251,7 @@ void PythonImpl::command(int narg, char **arg) int err = PyRun_SimpleString(herestr); if (err) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not process Python string"); } } @@ -266,13 +262,13 @@ void PythonImpl::command(int narg, char **arg) PyObject *pFunc = PyObject_GetAttrString(pModule,pfuncs[ifunc].name); if (!pFunc) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,fmt::format("Could not find Python function {}", pfuncs[ifunc].name)); } if (!PyCallable_Check(pFunc)) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,fmt::format("Python function {} is not callable", pfuncs[ifunc].name)); } @@ -284,14 +280,13 @@ void PythonImpl::command(int narg, char **arg) delete [] istr; delete [] format; delete [] pyfile; - PyGILState_Release(gstate); } /* ------------------------------------------------------------------ */ void PythonImpl::invoke_function(int ifunc, char *result) { - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; PyObject *pValue; char *str; @@ -303,7 +298,6 @@ void PythonImpl::invoke_function(int ifunc, char *result) PyObject *pArgs = PyTuple_New(ninput); if (!pArgs) { - PyGILState_Release(gstate); error->all(FLERR,"Could not create Python function arguments"); } @@ -314,7 +308,6 @@ void PythonImpl::invoke_function(int ifunc, char *result) str = input->variable->retrieve(pfuncs[ifunc].svalue[i]); if (!str) { - PyGILState_Release(gstate); error->all(FLERR,"Could not evaluate Python function input variable"); } @@ -327,7 +320,6 @@ void PythonImpl::invoke_function(int ifunc, char *result) str = input->variable->retrieve(pfuncs[ifunc].svalue[i]); if (!str) { - PyGILState_Release(gstate); error->all(FLERR,"Could not evaluate Python function input variable"); } @@ -339,7 +331,6 @@ void PythonImpl::invoke_function(int ifunc, char *result) if (pfuncs[ifunc].ivarflag[i]) { str = input->variable->retrieve(pfuncs[ifunc].svalue[i]); if (!str) { - PyGILState_Release(gstate); error->all(FLERR,"Could not evaluate Python function input variable"); } @@ -350,7 +341,6 @@ void PythonImpl::invoke_function(int ifunc, char *result) } else if (itype == PTR) { pValue = PY_VOID_POINTER(lmp); } else { - PyGILState_Release(gstate); error->all(FLERR,"Unsupported variable type"); } PyTuple_SetItem(pArgs,i,pValue); @@ -360,15 +350,13 @@ void PythonImpl::invoke_function(int ifunc, char *result) // error check with one() since only some procs may fail pValue = PyObject_CallObject(pFunc,pArgs); + Py_CLEAR(pArgs); if (!pValue) { - PyErr_Print(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->one(FLERR,"Python function evaluation failed"); } - Py_DECREF(pArgs); - // function returned a value // assign it to result string stored by python-style variable // or if user specified a length, assign it to longstr @@ -385,10 +373,8 @@ void PythonImpl::invoke_function(int ifunc, char *result) strncpy(pfuncs[ifunc].longstr,pystr,pfuncs[ifunc].length_longstr); else strncpy(result,pystr,VALUELENGTH-1); } - Py_DECREF(pValue); } - - PyGILState_Release(gstate); + Py_CLEAR(pValue); } /* ------------------------------------------------------------------ */ @@ -523,11 +509,8 @@ int PythonImpl::create_entry(char *name) int PythonImpl::execute_string(char *cmd) { - PyGILState_STATE gstate = PyGILState_Ensure(); - int err = PyRun_SimpleString(cmd); - PyGILState_Release(gstate); - - return err; + PyUtils::GIL lock; + return PyRun_SimpleString(cmd); } /* ---------------------------------------------------------------------- */ @@ -537,9 +520,8 @@ int PythonImpl::execute_file(char *fname) FILE *fp = fopen(fname,"r"); if (fp == nullptr) return -1; - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; int err = PyRun_SimpleFile(fp,fname); - PyGILState_Release(gstate); if (fp) fclose(fp); return err; From 5ee24c5b8994bd12555e40f3a9717c1d6d0cd96c Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 14:47:20 -0400 Subject: [PATCH 087/104] Update fix_python_invoke --- src/PYTHON/fix_python_invoke.cpp | 49 ++++++++++++++++++-------------- src/PYTHON/fix_python_invoke.h | 4 ++- 2 files changed, 30 insertions(+), 23 deletions(-) diff --git a/src/PYTHON/fix_python_invoke.cpp b/src/PYTHON/fix_python_invoke.cpp index 23c4197dca..6483e21f91 100644 --- a/src/PYTHON/fix_python_invoke.cpp +++ b/src/PYTHON/fix_python_invoke.cpp @@ -21,6 +21,7 @@ #include "error.h" #include "lmppython.h" #include "python_compat.h" +#include "python_utils.h" #include "update.h" #include @@ -51,12 +52,12 @@ FixPythonInvoke::FixPythonInvoke(LAMMPS *lmp, int narg, char **arg) : } // get Python function - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; PyObject *pyMain = PyImport_AddModule("__main__"); if (!pyMain) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not initialize embedded Python"); } @@ -64,11 +65,19 @@ FixPythonInvoke::FixPythonInvoke(LAMMPS *lmp, int narg, char **arg) : pFunc = PyObject_GetAttrString(pyMain, fname); if (!pFunc) { - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not find Python function"); } - PyGILState_Release(gstate); + lmpPtr = PY_VOID_POINTER(lmp); +} + +/* ---------------------------------------------------------------------- */ + +FixPythonInvoke::~FixPythonInvoke() +{ + PyUtils::GIL lock; + Py_CLEAR(lmpPtr); } /* ---------------------------------------------------------------------- */ @@ -82,18 +91,16 @@ int FixPythonInvoke::setmask() void FixPythonInvoke::end_of_step() { - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; - PyObject *ptr = PY_VOID_POINTER(lmp); - PyObject *arglist = Py_BuildValue("(O)", ptr); + PyObject * result = PyObject_CallFunction((PyObject*)pFunc, "O", (PyObject*)lmpPtr); - PyObject *result = PyEval_CallObject((PyObject*)pFunc, arglist); - Py_DECREF(arglist); - if (!result && (comm->me == 0)) PyErr_Print(); - - PyGILState_Release(gstate); - if (!result) + if (!result) { + PyUtils::Print_Errors(); error->all(FLERR,"Fix python/invoke end_of_step() method failed"); + } + + Py_CLEAR(result); } /* ---------------------------------------------------------------------- */ @@ -102,16 +109,14 @@ void FixPythonInvoke::post_force(int vflag) { if (update->ntimestep % nevery != 0) return; - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; - PyObject *ptr = PY_VOID_POINTER(lmp); - PyObject *arglist = Py_BuildValue("(Oi)", ptr, vflag); + PyObject * result = PyObject_CallFunction((PyObject*)pFunc, "Oi", (PyObject*)lmpPtr, vflag); - PyObject *result = PyEval_CallObject((PyObject*)pFunc, arglist); - Py_DECREF(arglist); - if (!result && (comm->me == 0)) PyErr_Print(); - - PyGILState_Release(gstate); - if (!result) + if (!result) { + PyUtils::Print_Errors(); error->all(FLERR,"Fix python/invoke post_force() method failed"); + } + + Py_CLEAR(result); } diff --git a/src/PYTHON/fix_python_invoke.h b/src/PYTHON/fix_python_invoke.h index 89310eeded..48fb0b404f 100644 --- a/src/PYTHON/fix_python_invoke.h +++ b/src/PYTHON/fix_python_invoke.h @@ -21,6 +21,7 @@ FixStyle(python,FixPythonInvoke) #ifndef LMP_FIX_PYTHON_INVOKE_H #define LMP_FIX_PYTHON_INVOKE_H + #include "fix.h" namespace LAMMPS_NS { @@ -28,12 +29,13 @@ namespace LAMMPS_NS { class FixPythonInvoke : public Fix { public: FixPythonInvoke(class LAMMPS *, int, char **); - virtual ~FixPythonInvoke() {} + virtual ~FixPythonInvoke(); int setmask(); virtual void end_of_step(); virtual void post_force(int); private: + void * lmpPtr; void * pFunc; int selected_callback; }; From 7e9fa25121a4f1e5ed1c2a25f0e8486c9c1d8076 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 14:48:44 -0400 Subject: [PATCH 088/104] Update fix_python_move.cpp --- src/PYTHON/fix_python_move.cpp | 177 +++++++++++---------------------- 1 file changed, 59 insertions(+), 118 deletions(-) diff --git a/src/PYTHON/fix_python_move.cpp b/src/PYTHON/fix_python_move.cpp index 5425b78193..e04a32afe4 100644 --- a/src/PYTHON/fix_python_move.cpp +++ b/src/PYTHON/fix_python_move.cpp @@ -21,8 +21,9 @@ #include "error.h" #include "lmppython.h" #include "python_compat.h" +#include "python_utils.h" -#include +#include #include // IWYU pragma: export using namespace LAMMPS_NS; @@ -40,7 +41,7 @@ FixPythonMove::FixPythonMove(LAMMPS *lmp, int narg, char **arg) : py_move = nullptr; - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; // add current directory to PYTHONPATH PyObject *py_path = PySys_GetObject((char *)"path"); @@ -48,70 +49,50 @@ FixPythonMove::FixPythonMove(LAMMPS *lmp, int narg, char **arg) : // create integrator instance - char *full_cls_name = arg[3]; - char *lastpos = strrchr(full_cls_name, '.'); + std::string full_cls_name = arg[3]; + size_t lastpos = full_cls_name.rfind("."); - if (lastpos == nullptr) { + if (lastpos == std::string::npos) { error->all(FLERR,"Fix python/integrate requires fully qualified class name"); } - size_t module_name_length = strlen(full_cls_name) - strlen(lastpos); - size_t cls_name_length = strlen(lastpos)-1; + std::string module_name = full_cls_name.substr(0, lastpos); + std::string cls_name = full_cls_name.substr(lastpos+1); - char *module_name = new char[module_name_length+1]; - char *cls_name = new char[cls_name_length+1]; - strncpy(module_name, full_cls_name, module_name_length); - module_name[module_name_length] = 0; - - strcpy(cls_name, lastpos+1); - - PyObject *pModule = PyImport_ImportModule(module_name); + PyObject *pModule = PyImport_ImportModule(module_name.c_str()); if (!pModule) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Loading python integrator module failure"); } // create LAMMPS atom type to potential file type mapping in python class // by calling 'lammps_pair_style.map_coeff(name,type)' - PyObject *py_move_type = PyObject_GetAttrString(pModule, cls_name); + PyObject *py_move_type = PyObject_GetAttrString(pModule, cls_name.c_str()); if (!py_move_type) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not find integrator class in module'"); } - delete [] module_name; - delete [] cls_name; - PyObject *ptr = PY_VOID_POINTER(lmp); - PyObject *arglist = Py_BuildValue("(O)", ptr); - PyObject *py_move_obj = PyObject_CallObject(py_move_type, arglist); - Py_DECREF(arglist); + PyObject *py_move_obj = PyObject_CallFunction(py_move_type, "O", ptr); + Py_CLEAR(ptr); if (!py_move_obj) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not instantiate instance of integrator class'"); } // check object interface py_move = (void *) py_move_obj; - - PyGILState_Release(gstate); } /* ---------------------------------------------------------------------- */ FixPythonMove::~FixPythonMove() { - PyGILState_STATE gstate = PyGILState_Ensure(); - if (py_move) Py_DECREF((PyObject*) py_move); - PyGILState_Release(gstate); + PyUtils::GIL lock; + Py_CLEAR(py_move); } /* ---------------------------------------------------------------------- */ @@ -130,122 +111,82 @@ int FixPythonMove::setmask() void FixPythonMove::init() { - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject *py_move_obj = (PyObject *) py_move; - PyObject *py_init = PyObject_GetAttrString(py_move_obj,(char *)"init"); - if (!py_init) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'init()' method'"); + PyUtils::GIL lock; + PyObject * result = PyObject_CallMethod((PyObject *)py_move, "init", nullptr); + + if (!result) { + PyUtils::Print_Errors(); + error->all(FLERR,"Fix python/move init() method failed"); } - PyObject *result = PyEval_CallObject(py_init, nullptr); - if (!result && (comm->me == 0)) PyErr_Print(); - PyGILState_Release(gstate); - if (!result) error->all(FLERR,"Fix python/move init() method failed"); + Py_CLEAR(result); } /* ---------------------------------------------------------------------- */ void FixPythonMove::initial_integrate(int vflag) { - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject *py_move_obj = (PyObject *) py_move; - PyObject *py_initial_integrate = PyObject_GetAttrString(py_move_obj,"initial_integrate"); - if (!py_initial_integrate) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'initial_integrate' method'"); + PyUtils::GIL lock; + PyObject * result = PyObject_CallMethod((PyObject*)py_move, "initial_integrate", "i", vflag); + + if (!result) { + PyUtils::Print_Errors(); + error->all(FLERR,"Fix python/move initial_integrate() method failed"); } - PyObject *arglist = Py_BuildValue("(i)", vflag); - PyObject *result = PyEval_CallObject(py_initial_integrate, arglist); - Py_DECREF(arglist); - if (!result && (comm->me == 0)) PyErr_Print(); - PyGILState_Release(gstate); - if (!result) error->all(FLERR,"Fix python/move initial_integrate() " - "method failed"); + Py_CLEAR(result); } /* ---------------------------------------------------------------------- */ void FixPythonMove::final_integrate() { - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject *py_move_obj = (PyObject *) py_move; - PyObject *py_final_integrate = PyObject_GetAttrString(py_move_obj,"final_integrate"); - if (!py_final_integrate) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'final_integrate' method'"); + PyUtils::GIL lock; + PyObject * result = PyObject_CallMethod((PyObject*)py_move, "final_integrate", nullptr); + + if (!result) { + PyUtils::Print_Errors(); + error->all(FLERR,"Fix python/move final_integrate() method failed"); } - PyObject *result = PyEval_CallObject(py_final_integrate, nullptr); - if (!result && (comm->me == 0)) PyErr_Print(); - PyGILState_Release(gstate); - if (!result) error->all(FLERR,"Fix python/move final_integrate() method " - "failed"); + Py_CLEAR(result); } /* ---------------------------------------------------------------------- */ void FixPythonMove::initial_integrate_respa(int vflag, int ilevel, int iloop) { - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject *py_move_obj = (PyObject *) py_move; - PyObject *py_initial_integrate_respa = PyObject_GetAttrString(py_move_obj,"initial_integrate_respa"); - if (!py_initial_integrate_respa) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'initial_integrate_respa' method'"); + PyUtils::GIL lock; + PyObject * result = PyObject_CallMethod((PyObject*)py_move, "initial_integrate_respa", "iii", vflag, ilevel, iloop); + + if (!result) { + PyUtils::Print_Errors(); + error->all(FLERR,"Fix python/move initial_integrate_respa() method failed"); } - PyObject *arglist = Py_BuildValue("(iii)", vflag, ilevel, iloop); - PyObject *result = PyEval_CallObject(py_initial_integrate_respa, arglist); - Py_DECREF(arglist); - if (!result && (comm->me == 0)) PyErr_Print(); - PyGILState_Release(gstate); - if (!result) error->all(FLERR,"Fix python/move initial_integrate_respa() " - "method failed"); + Py_CLEAR(result); } /* ---------------------------------------------------------------------- */ void FixPythonMove::final_integrate_respa(int ilevel, int iloop) { - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject *py_move_obj = (PyObject *) py_move; - PyObject *py_final_integrate_respa = PyObject_GetAttrString(py_move_obj,"final_integrate_respa"); - if (!py_final_integrate_respa) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'final_integrate_respa' method'"); + PyUtils::GIL lock; + PyObject * result = PyObject_CallMethod((PyObject*)py_move, "final_integrate_respa", "ii", ilevel, iloop); + + if (!result) { + PyUtils::Print_Errors(); + error->all(FLERR,"Fix python/move final_integrate_respa() method failed"); } - PyObject *arglist = Py_BuildValue("(ii)", ilevel, iloop); - PyObject *result = PyEval_CallObject(py_final_integrate_respa, arglist); - Py_DECREF(arglist); - if (!result && (comm->me == 0)) PyErr_Print(); - PyGILState_Release(gstate); - if (!result) error->all(FLERR,"Fix python/move final_integrate_respa() " - "method failed"); + Py_CLEAR(result); } /* ---------------------------------------------------------------------- */ void FixPythonMove::reset_dt() { - PyGILState_STATE gstate = PyGILState_Ensure(); - PyObject *py_move_obj = (PyObject *) py_move; - PyObject *py_reset_dt = PyObject_GetAttrString(py_move_obj,"reset_dt"); - if (!py_reset_dt) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'reset_dt' method'"); + PyUtils::GIL lock; + PyObject * result = PyObject_CallMethod((PyObject*)py_move, "reset_dt", nullptr); + + if (!result) { + PyUtils::Print_Errors(); + error->all(FLERR,"Fix python/move reset_dt() method failed"); } - PyObject *result = PyEval_CallObject(py_reset_dt, nullptr); - if (!result && (comm->me == 0)) PyErr_Print(); - PyGILState_Release(gstate); - if (!result) error->all(FLERR,"Fix python/move reset_dt() method failed"); + Py_CLEAR(result); } From 0aa9aa96f69e8e9fbdb5384827f52acd99df91f4 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 14:50:08 -0400 Subject: [PATCH 089/104] Update pair_python --- src/PYTHON/pair_python.cpp | 237 +++++++++++-------------------------- src/PYTHON/pair_python.h | 1 + 2 files changed, 70 insertions(+), 168 deletions(-) diff --git a/src/PYTHON/pair_python.cpp b/src/PYTHON/pair_python.cpp index b5d6021e1e..f3a16612b6 100644 --- a/src/PYTHON/pair_python.cpp +++ b/src/PYTHON/pair_python.cpp @@ -24,9 +24,10 @@ #include "memory.h" #include "neigh_list.h" #include "python_compat.h" +#include "python_utils.h" #include "update.h" -#include +#include #include // IWYU pragma: export using namespace LAMMPS_NS; @@ -50,7 +51,7 @@ PairPython::PairPython(LAMMPS *lmp) : Pair(lmp) { // add current directory to PYTHONPATH - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; PyObject *py_path = PySys_GetObject((char *)"path"); PyList_Append(py_path, PY_STRING_FROM_STRING(".")); @@ -61,14 +62,14 @@ PairPython::PairPython(LAMMPS *lmp) : Pair(lmp) { if (potentials_path != nullptr) { PyList_Append(py_path, PY_STRING_FROM_STRING(potentials_path)); } - PyGILState_Release(gstate); } /* ---------------------------------------------------------------------- */ PairPython::~PairPython() { - if (py_potential) Py_DECREF((PyObject*) py_potential); + PyUtils::GIL lock; + Py_CLEAR(py_potential); delete[] skip_types; if (allocated) { @@ -103,41 +104,31 @@ void PairPython::compute(int eflag, int vflag) // prepare access to compute_force and compute_energy functions - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; PyObject *py_pair_instance = (PyObject *) py_potential; PyObject *py_compute_force = PyObject_GetAttrString(py_pair_instance,"compute_force"); if (!py_compute_force) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not find 'compute_force' method'"); } if (!PyCallable_Check(py_compute_force)) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Python 'compute_force' is not callable"); } PyObject *py_compute_energy = PyObject_GetAttrString(py_pair_instance,"compute_energy"); if (!py_compute_energy) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not find 'compute_energy' method'"); } if (!PyCallable_Check(py_compute_energy)) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Python 'compute_energy' is not callable"); } PyObject *py_compute_args = PyTuple_New(3); if (!py_compute_args) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not create tuple for 'compute' function arguments"); } @@ -179,13 +170,11 @@ void PairPython::compute(int eflag, int vflag) PyTuple_SetItem(py_compute_args,0,py_rsq); py_value = PyObject_CallObject(py_compute_force,py_compute_args); if (!py_value) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Calling 'compute_force' function failed"); } fpair = factor_lj*PyFloat_AsDouble(py_value); - Py_DECREF(py_value); + Py_CLEAR(py_value); f[i][0] += delx*fpair; f[i][1] += dely*fpair; @@ -198,8 +187,12 @@ void PairPython::compute(int eflag, int vflag) if (eflag) { py_value = PyObject_CallObject(py_compute_energy,py_compute_args); + if (!py_value) { + PyUtils::Print_Errors(); + error->all(FLERR,"Calling 'compute_energy' function failed"); + } evdwl = factor_lj*PyFloat_AsDouble(py_value); - Py_DECREF(py_value); + Py_CLEAR(py_value); } else evdwl = 0.0; if (evflag) ev_tally(i,j,nlocal,newton_pair, @@ -207,8 +200,7 @@ void PairPython::compute(int eflag, int vflag) } } } - Py_DECREF(py_compute_args); - PyGILState_Release(gstate); + Py_CLEAR(py_compute_args); if (vflag_fdotr) virial_fdotr_compute(); } @@ -261,112 +253,49 @@ void PairPython::coeff(int narg, char **arg) error->all(FLERR,"Incorrect args for pair coefficients"); // check if python potential file exists and source it - char * full_cls_name = arg[2]; - char * lastpos = strrchr(full_cls_name, '.'); + std::string full_cls_name = arg[2]; + size_t lastpos = full_cls_name.rfind("."); - if (lastpos == nullptr) { + if (lastpos == std::string::npos) { error->all(FLERR,"Python pair style requires fully qualified class name"); } - size_t module_name_length = strlen(full_cls_name) - strlen(lastpos); - size_t cls_name_length = strlen(lastpos)-1; + std::string module_name = full_cls_name.substr(0, lastpos); + std::string cls_name = full_cls_name.substr(lastpos+1); - char * module_name = new char[module_name_length+1]; - char * cls_name = new char[cls_name_length+1]; - strncpy(module_name, full_cls_name, module_name_length); - module_name[module_name_length] = 0; + PyUtils::GIL lock; - strcpy(cls_name, lastpos+1); - - PyGILState_STATE gstate = PyGILState_Ensure(); - - PyObject * pModule = PyImport_ImportModule(module_name); + PyObject * pModule = PyImport_ImportModule(module_name.c_str()); if (!pModule) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Loading python pair style module failure"); } // create LAMMPS atom type to potential file type mapping in python class // by calling 'lammps_pair_style.map_coeff(name,type)' - PyObject *py_pair_type = PyObject_GetAttrString(pModule, cls_name); + PyObject *py_pair_type = PyObject_GetAttrString(pModule, cls_name.c_str()); if (!py_pair_type) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not find pair style class in module'"); } - delete [] module_name; - delete [] cls_name; - PyObject * py_pair_instance = PyObject_CallObject(py_pair_type, nullptr); if (!py_pair_instance) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not instantiate instance of pair style class'"); } py_potential = (void *) py_pair_instance; - PyObject *py_check_units = PyObject_GetAttrString(py_pair_instance,"check_units"); - if (!py_check_units) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'check_units' method'"); - } - if (!PyCallable_Check(py_check_units)) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Python 'check_units' is not callable"); - } - PyObject *py_units_args = PyTuple_New(1); - if (!py_units_args) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not create tuple for 'check_units' function arguments"); - } - - PyObject *py_name = PY_STRING_FROM_STRING(update->unit_style); - PyTuple_SetItem(py_units_args,0,py_name); - PyObject *py_value = PyObject_CallObject(py_check_units,py_units_args); + PyObject *py_value = PyObject_CallMethod(py_pair_instance, "check_units", "s", update->unit_style); if (!py_value) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Calling 'check_units' function failed"); } - Py_DECREF(py_units_args); + Py_CLEAR(py_value); - PyObject *py_map_coeff = PyObject_GetAttrString(py_pair_instance,"map_coeff"); - if (!py_map_coeff) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'map_coeff' method'"); - } - if (!PyCallable_Check(py_map_coeff)) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Python 'map_coeff' is not callable"); - } - - PyObject *py_map_args = PyTuple_New(2); - if (!py_map_args) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not create tuple for 'map_coeff' function arguments"); - } - delete[] skip_types; skip_types = new int[ntypes+1]; skip_types[0] = 1; @@ -375,25 +304,20 @@ void PairPython::coeff(int narg, char **arg) skip_types[i] = 1; continue; } else skip_types[i] = 0; - PyObject *py_type = PY_INT_FROM_LONG(i); - py_name = PY_STRING_FROM_STRING(arg[2+i]); - PyTuple_SetItem(py_map_args,0,py_name); - PyTuple_SetItem(py_map_args,1,py_type); - py_value = PyObject_CallObject(py_map_coeff,py_map_args); + const int type = i; + const char * name = arg[2+i]; + py_value = PyObject_CallMethod(py_pair_instance, "map_coeff", "si", name, type); if (!py_value) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Calling 'map_coeff' function failed"); } + Py_CLEAR(py_value); for (int j = i; j <= ntypes ; j++) { setflag[i][j] = 1; cutsq[i][j] = cut_global*cut_global; } } - Py_DECREF(py_map_args); - PyGILState_Release(gstate); } /* ---------------------------------------------------------------------- */ @@ -417,76 +341,53 @@ double PairPython::single(int /* i */, int /* j */, int itype, int jtype, // prepare access to compute_force and compute_energy functions - PyGILState_STATE gstate = PyGILState_Ensure(); + PyUtils::GIL lock; PyObject *py_pair_instance = (PyObject *) py_potential; - PyObject *py_compute_force - = PyObject_GetAttrString(py_pair_instance,"compute_force"); - if (!py_compute_force) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'compute_force' method'"); - } - if (!PyCallable_Check(py_compute_force)) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Python 'compute_force' is not callable"); - } + PyObject *py_compute_force = (PyObject *) get_member_function("compute_force"); + PyObject *py_compute_energy = (PyObject *) get_member_function("compute_energy"); + PyObject *py_compute_args = Py_BuildValue("(dii)", rsq, itype, jtype); - PyObject *py_compute_energy - = PyObject_GetAttrString(py_pair_instance,"compute_energy"); - if (!py_compute_energy) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Could not find 'compute_energy' method'"); - } - if (!PyCallable_Check(py_compute_energy)) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); - error->all(FLERR,"Python 'compute_energy' is not callable"); - } - - PyObject *py_rsq, *py_itype, *py_jtype, *py_value; - PyObject *py_compute_args = PyTuple_New(3); if (!py_compute_args) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Could not create tuple for 'compute' function arguments"); } - py_itype = PY_INT_FROM_LONG(itype); - PyTuple_SetItem(py_compute_args,1,py_itype); - py_jtype = PY_INT_FROM_LONG(jtype); - PyTuple_SetItem(py_compute_args,2,py_jtype); - py_rsq = PyFloat_FromDouble(rsq); - PyTuple_SetItem(py_compute_args,0,py_rsq); - - py_value = PyObject_CallObject(py_compute_force,py_compute_args); + PyObject * py_value = PyObject_CallObject(py_compute_force, py_compute_args); if (!py_value) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Calling 'compute_force' function failed"); } fforce = factor_lj*PyFloat_AsDouble(py_value); - Py_DECREF(py_value); + Py_CLEAR(py_value); - py_value = PyObject_CallObject(py_compute_energy,py_compute_args); + py_value = PyObject_CallObject(py_compute_energy, py_compute_args); if (!py_value) { - PyErr_Print(); - PyErr_Clear(); - PyGILState_Release(gstate); + PyUtils::Print_Errors(); error->all(FLERR,"Calling 'compute_energy' function failed"); } double evdwl = factor_lj*PyFloat_AsDouble(py_value); - Py_DECREF(py_value); - Py_DECREF(py_compute_args); - PyGILState_Release(gstate); + Py_CLEAR(py_value); + Py_CLEAR(py_compute_args); return evdwl; } + + +/* ---------------------------------------------------------------------- */ + +void * PairPython::get_member_function(const char * name) +{ + PyUtils::GIL lock; + PyObject *py_pair_instance = (PyObject *) py_potential; + PyObject * py_mfunc = PyObject_GetAttrString(py_pair_instance, name); + if (!py_mfunc) { + PyUtils::Print_Errors(); + error->all(FLERR, fmt::format("Could not find '{}' method'", name)); + } + if (!PyCallable_Check(py_mfunc)) { + PyUtils::Print_Errors(); + error->all(FLERR, fmt::format("Python '{}' is not callable", name)); + } + return py_mfunc; +} diff --git a/src/PYTHON/pair_python.h b/src/PYTHON/pair_python.h index 4c3c00a70d..881bfe2835 100644 --- a/src/PYTHON/pair_python.h +++ b/src/PYTHON/pair_python.h @@ -50,6 +50,7 @@ class PairPython : public Pair { int * skip_types; virtual void allocate(); + void * get_member_function(const char *); }; } From 80a65150c22c186e230cb7d2902f2951065dc83a Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Tue, 6 Apr 2021 13:08:48 -0600 Subject: [PATCH 090/104] Patching uninitialized values, replacing lines in documentation --- doc/src/fix_wall_gran.rst | 2 + src/GRANULAR/fix_wall_gran.cpp | 76 ++++++++++++------------ src/GRANULAR/pair_gran_hertz_history.cpp | 8 ++- src/GRANULAR/pair_granular.cpp | 2 +- 4 files changed, 49 insertions(+), 39 deletions(-) diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index 02d52ef1a6..95a4b5d818 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -177,6 +177,8 @@ the clockwise direction for *vshear* > 0 or counter-clockwise for *vshear* < 0. In this case, *vshear* is the tangential velocity of the wall at whatever *radius* has been defined. + +Restart, fix_modify, output, run start/stop, minimize info """"""""""""""""""""""""""""""""""""""""""""""""""""""""""" This fix writes the shear friction state of atoms interacting with the diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index d746923ab0..f9840c9d5e 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -71,6 +71,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : error->all(FLERR,"Fix wall/gran requires atom style sphere"); create_attribute = 1; + limit_damping = 0; // set interaction style // disable bonded/history option for now @@ -91,7 +92,6 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : // wall/particle coefficients int iarg; - if (pairstyle != GRANULAR) { size_history = 3; if (narg < 11) error->all(FLERR,"Illegal fix wall/gran command"); @@ -322,14 +322,14 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : if (normal_model == JKR) size_history += 1; if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) size_history += 1; - } - if (limit_damping and normal_model == JKR) - error->all(FLERR,"Illegal pair_coeff command, " - "cannot limit damping with JRK model"); - if (limit_damping and normal_model == DMT) - error->all(FLERR,"Illegal pair_coeff command, " - "Cannot limit damping with DMT model"); + if (limit_damping and normal_model == JKR) + error->all(FLERR,"Illegal pair_coeff command, " + "cannot limit damping with JRK model"); + if (limit_damping and normal_model == DMT) + error->all(FLERR,"Illegal pair_coeff command, " + "Cannot limit damping with DMT model"); + } // wallstyle args @@ -504,37 +504,39 @@ void FixWallGran::init() if (modify->fix[i]->rigid_flag) break; if (i < modify->nfix) fix_rigid = modify->fix[i]; - tangential_history_index = 0; - if (roll_history) { - if (tangential_history) roll_history_index = 3; - else roll_history_index = 0; - } - if (twist_history) { - if (tangential_history) { - if (roll_history) twist_history_index = 6; - else twist_history_index = 3; + if(pairstyle == GRANULAR) { + tangential_history_index = 0; + if (roll_history) { + if (tangential_history) roll_history_index = 3; + else roll_history_index = 0; } - else{ - if (roll_history) twist_history_index = 3; - else twist_history_index = 0; + if (twist_history) { + if (tangential_history) { + if (roll_history) twist_history_index = 6; + else twist_history_index = 3; + } + else{ + if (roll_history) twist_history_index = 3; + else twist_history_index = 0; + } + } + if (normal_model == JKR) { + tangential_history_index += 1; + roll_history_index += 1; + twist_history_index += 1; + } + if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || + tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) { + roll_history_index += 1; + twist_history_index += 1; + } + + if (damping_model == TSUJI) { + double cor = normal_coeffs[1]; + normal_coeffs[1] = 1.2728-4.2783*cor+11.087*pow(cor,2)-22.348*pow(cor,3)+ + 27.467*pow(cor,4)-18.022*pow(cor,5)+ + 4.8218*pow(cor,6); } - } - if (normal_model == JKR) { - tangential_history_index += 1; - roll_history_index += 1; - twist_history_index += 1; - } - if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || - tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) { - roll_history_index += 1; - twist_history_index += 1; - } - - if (damping_model == TSUJI) { - double cor = normal_coeffs[1]; - normal_coeffs[1] = 1.2728-4.2783*cor+11.087*pow(cor,2)-22.348*pow(cor,3)+ - 27.467*pow(cor,4)-18.022*pow(cor,5)+ - 4.8218*pow(cor,6); } } diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index e21ec727d6..be2a3c2558 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -278,7 +278,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) void PairGranHertzHistory::settings(int narg, char **arg) { - if (narg != 6) error->all(FLERR,"Illegal pair_style command"); + if (narg != 6 and narg != 7) error->all(FLERR,"Illegal pair_style command"); kn = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"NULL") == 0) kt = kn * 2.0/7.0; @@ -296,6 +296,12 @@ void PairGranHertzHistory::settings(int narg, char **arg) xmu < 0.0 || xmu > 10000.0 || dampflag < 0 || dampflag > 1) error->all(FLERR,"Illegal pair_style command"); + limit_damping = 0; + if (narg == 7) { + if (strcmp(arg[6], "limit_damping") == 0) limit_damping = 1; + else error->all(FLERR,"Illegal pair_style command"); + } + // convert Kn and Kt from pressure units to force/distance^2 kn /= force->nktv2p; diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index ac98a6e27c..653d5c70a1 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -1038,7 +1038,7 @@ void PairGranular::coeff(int narg, char **arg) cutoff_type[i][j] = cutoff_type[j][i] = cutoff_one; - limit_damping[i][j] = ld_flag; + limit_damping[i][j] = limit_damping[j][i] = ld_flag; setflag[i][j] = 1; count++; From 8e43d58faba0bcb520bdaa0e21c9a5f1eb601017 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Tue, 6 Apr 2021 13:48:56 -0600 Subject: [PATCH 091/104] Switching logical operators to match preferred style --- src/GRANULAR/fix_wall_gran.cpp | 12 ++++++------ src/GRANULAR/pair_gran_hertz_history.cpp | 6 +++--- src/GRANULAR/pair_gran_hooke.cpp | 4 ++-- src/GRANULAR/pair_gran_hooke_history.cpp | 6 +++--- src/GRANULAR/pair_granular.cpp | 8 ++++---- src/KOKKOS/pair_gran_hooke_history_kokkos.cpp | 2 +- 6 files changed, 19 insertions(+), 19 deletions(-) diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index f9840c9d5e..11cf0a9bc9 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -323,10 +323,10 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : if (tangential_model == TANGENTIAL_MINDLIN_RESCALE || tangential_model == TANGENTIAL_MINDLIN_RESCALE_FORCE) size_history += 1; - if (limit_damping and normal_model == JKR) + if (limit_damping && normal_model == JKR) error->all(FLERR,"Illegal pair_coeff command, " "cannot limit damping with JRK model"); - if (limit_damping and normal_model == DMT) + if (limit_damping && normal_model == DMT) error->all(FLERR,"Illegal pair_coeff command, " "Cannot limit damping with DMT model"); } @@ -794,7 +794,7 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities @@ -887,7 +887,7 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities @@ -1019,7 +1019,7 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, if (rwall == 0.0) polyhertz = sqrt((radius-r)*radius); else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); ccel *= polyhertz; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities @@ -1214,7 +1214,7 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if (limit_damping and Fntot < 0.0) Fntot = 0.0; + if (limit_damping && Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index be2a3c2558..e40a9be2bd 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -181,7 +181,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities @@ -278,7 +278,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) void PairGranHertzHistory::settings(int narg, char **arg) { - if (narg != 6 and narg != 7) error->all(FLERR,"Illegal pair_style command"); + if (narg != 6 && narg != 7) error->all(FLERR,"Illegal pair_style command"); kn = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"NULL") == 0) kt = kn * 2.0/7.0; @@ -395,7 +395,7 @@ double PairGranHertzHistory::single(int i, int j, int /*itype*/, int /*jtype*/, ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke.cpp b/src/GRANULAR/pair_gran_hooke.cpp index c28bbd007f..0f45fadca9 100644 --- a/src/GRANULAR/pair_gran_hooke.cpp +++ b/src/GRANULAR/pair_gran_hooke.cpp @@ -158,7 +158,7 @@ void PairGranHooke::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities @@ -300,7 +300,7 @@ double PairGranHooke::single(int i, int j, int /*itype*/, int /*jtype*/, double damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index 4f7a6e20ec..48c30c761e 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -237,7 +237,7 @@ void PairGranHookeHistory::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if (limit_damping and ccel < 0.0) ccel = 0.0; + if (limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities @@ -357,7 +357,7 @@ void PairGranHookeHistory::allocate() void PairGranHookeHistory::settings(int narg, char **arg) { - if (narg != 6 and narg != 7) error->all(FLERR,"Illegal pair_style command"); + if (narg != 6 && narg != 7) error->all(FLERR,"Illegal pair_style command"); kn = utils::numeric(FLERR,arg[0],false,lmp); if (strcmp(arg[1],"NULL") == 0) kt = kn * 2.0/7.0; @@ -693,7 +693,7 @@ double PairGranHookeHistory::single(int i, int j, int /*itype*/, int /*jtype*/, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping and ccel < 0.0) ccel = 0.0; + if(limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index 653d5c70a1..e787e305ff 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -371,7 +371,7 @@ void PairGranular::compute(int eflag, int vflag) Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if (limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; + if (limit_damping[itype][jtype] && Fntot < 0.0) Fntot = 0.0; //**************************************** // tangential force, including history effects @@ -988,11 +988,11 @@ void PairGranular::coeff(int narg, char **arg) 27.467*powint(cor,4)-18.022*powint(cor,5)+4.8218*powint(cor,6); } else damp = normal_coeffs_one[1]; - if (ld_flag and normal_model_one == JKR) + if (ld_flag && normal_model_one == JKR) error->all(FLERR,"Illegal pair_coeff command, " "Cannot limit damping with JKR model"); - if (ld_flag and normal_model_one == DMT) + if (ld_flag && normal_model_one == DMT) error->all(FLERR,"Illegal pair_coeff command, " "Cannot limit damping with DMT model"); @@ -1547,7 +1547,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if (limit_damping[itype][jtype] and Fntot < 0.0) Fntot = 0.0; + if (limit_damping[itype][jtype] && Fntot < 0.0) Fntot = 0.0; jnum = list->numneigh[i]; jlist = list->firstneigh[i]; diff --git a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp index 8d853b7dae..95be9843b9 100644 --- a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp +++ b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp @@ -392,7 +392,7 @@ void PairGranHookeHistoryKokkos::operator()(TagPairGranHookeHistoryC F_FLOAT damp = meff*gamman*vnnr*rsqinv; F_FLOAT ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping & ccel < 0.0) ccel = 0.0; + if(limit_damping && ccel < 0.0) ccel = 0.0; // relative velocities From c44b8f18ee49326cf63bf14410bb1c4493cfb700 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Tue, 6 Apr 2021 13:54:11 -0600 Subject: [PATCH 092/104] Adding explicit parentheses to logical operations --- src/GRANULAR/fix_wall_gran.cpp | 8 ++++---- src/GRANULAR/pair_gran_hertz_history.cpp | 4 ++-- src/GRANULAR/pair_gran_hooke.cpp | 4 ++-- src/GRANULAR/pair_gran_hooke_history.cpp | 4 ++-- src/GRANULAR/pair_granular.cpp | 4 ++-- src/KOKKOS/pair_gran_hooke_history_kokkos.cpp | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index 11cf0a9bc9..0611a54efd 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -794,7 +794,7 @@ void FixWallGran::hooke(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities @@ -887,7 +887,7 @@ void FixWallGran::hooke_history(double rsq, double dx, double dy, double dz, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radius-r)*rinv - damp; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities @@ -1019,7 +1019,7 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, if (rwall == 0.0) polyhertz = sqrt((radius-r)*radius); else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); ccel *= polyhertz; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities @@ -1214,7 +1214,7 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if (limit_damping && Fntot < 0.0) Fntot = 0.0; + if (limit_damping && (Fntot < 0.0)) Fntot = 0.0; //**************************************** // tangential force, including history effects diff --git a/src/GRANULAR/pair_gran_hertz_history.cpp b/src/GRANULAR/pair_gran_hertz_history.cpp index e40a9be2bd..56e9691fad 100644 --- a/src/GRANULAR/pair_gran_hertz_history.cpp +++ b/src/GRANULAR/pair_gran_hertz_history.cpp @@ -181,7 +181,7 @@ void PairGranHertzHistory::compute(int eflag, int vflag) ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities @@ -395,7 +395,7 @@ double PairGranHertzHistory::single(int i, int j, int /*itype*/, int /*jtype*/, ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke.cpp b/src/GRANULAR/pair_gran_hooke.cpp index 0f45fadca9..eb5ccec680 100644 --- a/src/GRANULAR/pair_gran_hooke.cpp +++ b/src/GRANULAR/pair_gran_hooke.cpp @@ -158,7 +158,7 @@ void PairGranHooke::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities @@ -300,7 +300,7 @@ double PairGranHooke::single(int i, int j, int /*itype*/, int /*jtype*/, double damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index 48c30c761e..0f9682a133 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -237,7 +237,7 @@ void PairGranHookeHistory::compute(int eflag, int vflag) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if (limit_damping && ccel < 0.0) ccel = 0.0; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities @@ -693,7 +693,7 @@ double PairGranHookeHistory::single(int i, int j, int /*itype*/, int /*jtype*/, damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping && ccel < 0.0) ccel = 0.0; + if(limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index e787e305ff..dc367dcc0a 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -371,7 +371,7 @@ void PairGranular::compute(int eflag, int vflag) Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if (limit_damping[itype][jtype] && Fntot < 0.0) Fntot = 0.0; + if (limit_damping[itype][jtype] && (Fntot < 0.0)) Fntot = 0.0; //**************************************** // tangential force, including history effects @@ -1547,7 +1547,7 @@ double PairGranular::single(int i, int j, int itype, int jtype, Fdamp = -damp_normal_prefactor*vnnr; Fntot = Fne + Fdamp; - if (limit_damping[itype][jtype] && Fntot < 0.0) Fntot = 0.0; + if (limit_damping[itype][jtype] && (Fntot < 0.0)) Fntot = 0.0; jnum = list->numneigh[i]; jlist = list->firstneigh[i]; diff --git a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp index 95be9843b9..01ac1ea54f 100644 --- a/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp +++ b/src/KOKKOS/pair_gran_hooke_history_kokkos.cpp @@ -392,7 +392,7 @@ void PairGranHookeHistoryKokkos::operator()(TagPairGranHookeHistoryC F_FLOAT damp = meff*gamman*vnnr*rsqinv; F_FLOAT ccel = kn*(radsum-r)*rinv - damp; - if(limit_damping && ccel < 0.0) ccel = 0.0; + if(limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities From 5af294d49edb013699863b48cc24f374de641389 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 16:47:06 -0400 Subject: [PATCH 093/104] Update test_potential_file_reader.cpp --- .../formats/test_potential_file_reader.cpp | 26 ++++++++++--------- 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/unittest/formats/test_potential_file_reader.cpp b/unittest/formats/test_potential_file_reader.cpp index 1e3d96d6d7..6331db28a7 100644 --- a/unittest/formats/test_potential_file_reader.cpp +++ b/unittest/formats/test_potential_file_reader.cpp @@ -42,18 +42,20 @@ using utils::split_words; // whether to print verbose output (i.e. not capturing LAMMPS screen output). bool verbose = false; -const int LAMMPS_NS::PairSW::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairComb::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairComb3::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairTersoff::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairTersoffMOD::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairTersoffMODC::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairTersoffZBL::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairGW::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairGWZBL::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairNb3bHarmonic::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairVashishta::NPARAMS_PER_LINE; -const int LAMMPS_NS::PairTersoffTable::NPARAMS_PER_LINE; +#if __cplusplus < 201703L +constexpr int LAMMPS_NS::PairSW::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairComb::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairComb3::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairTersoff::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairTersoffMOD::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairTersoffMODC::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairTersoffZBL::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairGW::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairGWZBL::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairNb3bHarmonic::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairVashishta::NPARAMS_PER_LINE; +constexpr int LAMMPS_NS::PairTersoffTable::NPARAMS_PER_LINE; +#endif class PotentialFileReaderTest : public LAMMPSTest { }; From b6776ca3debf462dcaf2320015d80337a83ae483 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 16:48:18 -0400 Subject: [PATCH 094/104] Remove GCC optimization pragma for GCC < 4.9 due to compiler segfault --- unittest/formats/test_atom_styles.cpp | 4 ---- 1 file changed, 4 deletions(-) diff --git a/unittest/formats/test_atom_styles.cpp b/unittest/formats/test_atom_styles.cpp index 8166a5d1f0..8a031fe308 100644 --- a/unittest/formats/test_atom_styles.cpp +++ b/unittest/formats/test_atom_styles.cpp @@ -40,11 +40,7 @@ #elif defined(__GNUC__) #if (__GNUC__ > 4) || ((__GNUC__ == 4) && (__GNUC_MINOR__ >= 9)) #pragma GCC optimize("no-var-tracking-assignments", "O0") -#else -#pragma GCC optimize("no-var-tracking-assignments") #endif -#else -#define _do_nothing #endif #endif From 0ae75aabcd4c1b72945092618e4039e01a1a02d5 Mon Sep 17 00:00:00 2001 From: Richard Berger Date: Tue, 6 Apr 2021 17:10:16 -0400 Subject: [PATCH 095/104] Remove unused variables --- src/PYTHON/pair_python.cpp | 1 - src/PYTHON/python_impl.cpp | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/src/PYTHON/pair_python.cpp b/src/PYTHON/pair_python.cpp index f3a16612b6..b147c9cb79 100644 --- a/src/PYTHON/pair_python.cpp +++ b/src/PYTHON/pair_python.cpp @@ -342,7 +342,6 @@ double PairPython::single(int /* i */, int /* j */, int itype, int jtype, // prepare access to compute_force and compute_energy functions PyUtils::GIL lock; - PyObject *py_pair_instance = (PyObject *) py_potential; PyObject *py_compute_force = (PyObject *) get_member_function("compute_force"); PyObject *py_compute_energy = (PyObject *) get_member_function("compute_energy"); PyObject *py_compute_args = Py_BuildValue("(dii)", rsq, itype, jtype); diff --git a/src/PYTHON/python_impl.cpp b/src/PYTHON/python_impl.cpp index 7e46da4c49..c84d04b4b7 100644 --- a/src/PYTHON/python_impl.cpp +++ b/src/PYTHON/python_impl.cpp @@ -117,7 +117,7 @@ PythonImpl::~PythonImpl() // shutdown Python interpreter if (!external_interpreter) { - PyGILState_STATE gstate = PyGILState_Ensure(); + PyGILState_Ensure(); Py_Finalize(); } From 932ea80b253e89c826b97c53bc5ffe22f00989a9 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 18:39:37 -0400 Subject: [PATCH 096/104] update reference data for angle style cosine/periodic --- unittest/force-styles/tests/angle-cosine_periodic.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/unittest/force-styles/tests/angle-cosine_periodic.yaml b/unittest/force-styles/tests/angle-cosine_periodic.yaml index 55beb13fdd..1c6cb7158d 100644 --- a/unittest/force-styles/tests/angle-cosine_periodic.yaml +++ b/unittest/force-styles/tests/angle-cosine_periodic.yaml @@ -1,6 +1,6 @@ --- -lammps_version: 10 Feb 2021 -date_generated: Fri Feb 26 23:09:23 2021 +lammps_version: 10 Mar 2021 +date_generated: Tue Apr 6 18:38:56 2021 epsilon: 2.5e-13 prerequisites: ! | atom full @@ -14,7 +14,7 @@ angle_coeff: ! | 2 45.0 1 2 3 50.0 -1 3 4 100.0 -1 4 -equilibrium: 4 3.141592653589793 3.141592653589793 3.141592653589793 3.141592653589793 +equilibrium: 4 1.5707963267948966 1.5707963267948966 0 0 extract: ! "" natoms: 29 init_energy: 946.676664091363 From 717faa65155e5071c2ef6c09b8bc525af573cf78 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Tue, 6 Apr 2021 19:12:28 -0400 Subject: [PATCH 097/104] correctly detect GPU package with CUDA api --- cmake/Modules/Packages/GPU.cmake | 2 +- lib/gpu/lal_device.cpp | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmake/Modules/Packages/GPU.cmake b/cmake/Modules/Packages/GPU.cmake index 74a023685d..b706537825 100644 --- a/cmake/Modules/Packages/GPU.cmake +++ b/cmake/Modules/Packages/GPU.cmake @@ -131,7 +131,7 @@ if(GPU_API STREQUAL "CUDA") add_library(gpu STATIC ${GPU_LIB_SOURCES} ${GPU_LIB_CUDPP_SOURCES} ${GPU_OBJS}) target_link_libraries(gpu PRIVATE ${CUDA_LIBRARIES} ${CUDA_CUDA_LIBRARY}) target_include_directories(gpu PRIVATE ${LAMMPS_LIB_BINARY_DIR}/gpu ${CUDA_INCLUDE_DIRS}) - target_compile_definitions(gpu PRIVATE -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS}) + target_compile_definitions(gpu PRIVATE -DUSE_CUDA -D_${GPU_PREC_SETTING} -DMPI_GERYON -DUCL_NO_EXIT ${GPU_CUDA_MPS_FLAGS}) if(CUDPP_OPT) target_include_directories(gpu PRIVATE ${LAMMPS_LIB_SOURCE_DIR}/gpu/cudpp_mini) target_compile_definitions(gpu PRIVATE -DUSE_CUDPP) diff --git a/lib/gpu/lal_device.cpp b/lib/gpu/lal_device.cpp index a65c3d8810..b42aa8e21d 100644 --- a/lib/gpu/lal_device.cpp +++ b/lib/gpu/lal_device.cpp @@ -1061,7 +1061,7 @@ bool lmp_gpu_config(const std::string &category, const std::string &setting) return setting == "opencl"; #elif defined(USE_HIP) return setting == "hip"; -#elif defined(USE_CUDA) +#elif defined(USE_CUDA) || defined(USE_CUDART) return setting == "cuda"; #endif return false; From da56b9de569ac6546df64872283ae6f2eadde983 Mon Sep 17 00:00:00 2001 From: Joel Clemmer Date: Wed, 7 Apr 2021 07:48:43 -0600 Subject: [PATCH 098/104] Adding user-omp support --- src/USER-OMP/pair_gran_hertz_history_omp.cpp | 1 + src/USER-OMP/pair_gran_hooke_history_omp.cpp | 1 + src/USER-OMP/pair_gran_hooke_omp.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/USER-OMP/pair_gran_hertz_history_omp.cpp b/src/USER-OMP/pair_gran_hertz_history_omp.cpp index 2187dcbe90..200075a316 100644 --- a/src/USER-OMP/pair_gran_hertz_history_omp.cpp +++ b/src/USER-OMP/pair_gran_hertz_history_omp.cpp @@ -224,6 +224,7 @@ void PairGranHertzHistoryOMP::eval(int iifrom, int iito, ThrData * const thr) ccel = kn*(radsum-r)*rinv - damp; polyhertz = sqrt((radsum-r)*radi*radj / radsum); ccel *= polyhertz; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities diff --git a/src/USER-OMP/pair_gran_hooke_history_omp.cpp b/src/USER-OMP/pair_gran_hooke_history_omp.cpp index 7894d1e963..0ba9607bd9 100644 --- a/src/USER-OMP/pair_gran_hooke_history_omp.cpp +++ b/src/USER-OMP/pair_gran_hooke_history_omp.cpp @@ -223,6 +223,7 @@ void PairGranHookeHistoryOMP::eval(int iifrom, int iito, ThrData * const thr) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities diff --git a/src/USER-OMP/pair_gran_hooke_omp.cpp b/src/USER-OMP/pair_gran_hooke_omp.cpp index 08ae07c6f5..451b074fa9 100644 --- a/src/USER-OMP/pair_gran_hooke_omp.cpp +++ b/src/USER-OMP/pair_gran_hooke_omp.cpp @@ -197,6 +197,7 @@ void PairGranHookeOMP::eval(int iifrom, int iito, ThrData * const thr) damp = meff*gamman*vnnr*rsqinv; ccel = kn*(radsum-r)*rinv - damp; + if (limit_damping && (ccel < 0.0)) ccel = 0.0; // relative velocities From 5d00fa7ec5106229561e12cab93fb7b0a680e58b Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 7 Apr 2021 14:00:14 -0400 Subject: [PATCH 099/104] update constants for lj/cubic/gpu from CPU version --- lib/gpu/lal_lj_cubic.cu | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/lib/gpu/lal_lj_cubic.cu b/lib/gpu/lal_lj_cubic.cu index a91326d521..df3398afd7 100644 --- a/lib/gpu/lal_lj_cubic.cu +++ b/lib/gpu/lal_lj_cubic.cu @@ -26,10 +26,10 @@ _texture_2d( pos_tex,int4); // LJ quantities scaled by epsilon and rmin = sigma*2^1/6 (see src/pair_lj_cubic.h) -#define _RT6TWO (numtyp)1.1224621 -#define _PHIS (numtyp)-0.7869823 /* energy at s */ -#define _DPHIDS (numtyp)2.6899009 /* gradient at s */ -#define _A3 (numtyp)27.93357 /* cubic coefficient */ +#define _RT6TWO (numtyp)1.1224620483093730 /* 2^1/6 */ +#define _PHIS (numtyp)-0.7869822485207097 /* energy at s */ +#define _DPHIDS (numtyp)2.6899008972047196 /* gradient at s */ +#define _A3 (numtyp)27.9335700460986445 /* cubic coefficient */ __kernel void k_lj_cubic(const __global numtyp4 *restrict x_, const __global numtyp4 *restrict lj1, From 835820ba00227fc1e294163f2d19f44effa951c7 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 7 Apr 2021 14:00:27 -0400 Subject: [PATCH 100/104] reorder includes --- src/GPU/pair_lj_cubic_gpu.cpp | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/src/GPU/pair_lj_cubic_gpu.cpp b/src/GPU/pair_lj_cubic_gpu.cpp index 2c6231ca89..73839bdbed 100644 --- a/src/GPU/pair_lj_cubic_gpu.cpp +++ b/src/GPU/pair_lj_cubic_gpu.cpp @@ -17,25 +17,24 @@ #include "pair_lj_cubic_gpu.h" -#include -#include -#include - #include "atom.h" #include "atom_vec.h" #include "comm.h" +#include "domain.h" +#include "error.h" #include "force.h" -#include "neighbor.h" -#include "neigh_list.h" +#include "gpu_extra.h" #include "integrate.h" #include "memory.h" -#include "error.h" +#include "neigh_list.h" #include "neigh_request.h" +#include "neighbor.h" +#include "suffix.h" #include "universe.h" #include "update.h" -#include "domain.h" -#include "gpu_extra.h" -#include "suffix.h" + +#include +#include #include "pair_lj_cubic_const.h" From 9af086916b7764b746a174eb40cb74a461480432 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 7 Apr 2021 14:11:25 -0400 Subject: [PATCH 101/104] skip GPU tests for a couple more tabulated coulomb tests --- unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml | 1 + unittest/force-styles/tests/mol-pair-coul_table_cs.yaml | 1 + 2 files changed, 2 insertions(+) diff --git a/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml index 32a2b44328..d2ff07b2b8 100644 --- a/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-born_coul_table_cs.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:39 2021 epsilon: 7.5e-14 +skip_tests: gpu prerequisites: ! | atom full pair born/coul/long/cs diff --git a/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml b/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml index d5ed5fab83..983053a88b 100644 --- a/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml +++ b/unittest/force-styles/tests/mol-pair-coul_table_cs.yaml @@ -2,6 +2,7 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:44 2021 epsilon: 7.5e-14 +skip_tests: gpu prerequisites: ! | atom full pair coul/long/cs From 7b18bc1fecfe282b656841bd156dbac43e4f6052 Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 7 Apr 2021 14:26:27 -0400 Subject: [PATCH 102/104] correctly handle r-RESPA for lj/class2 and lj/class2/gpu --- src/CLASS2/pair_lj_class2.cpp | 17 +++++----- src/GPU/pair_lj_class2_gpu.cpp | 32 +++++++++---------- .../tests/mol-pair-lj_class2.yaml | 1 - 3 files changed, 25 insertions(+), 25 deletions(-) diff --git a/src/CLASS2/pair_lj_class2.cpp b/src/CLASS2/pair_lj_class2.cpp index 23b0be7396..a0cb122494 100644 --- a/src/CLASS2/pair_lj_class2.cpp +++ b/src/CLASS2/pair_lj_class2.cpp @@ -11,20 +11,20 @@ #include "pair_lj_class2.h" -#include -#include #include "atom.h" #include "comm.h" +#include "error.h" #include "force.h" -#include "neighbor.h" -#include "neigh_list.h" -#include "neigh_request.h" -#include "update.h" -#include "respa.h" #include "math_const.h" #include "memory.h" -#include "error.h" +#include "neigh_list.h" +#include "neigh_request.h" +#include "neighbor.h" +#include "respa.h" +#include "update.h" +#include +#include using namespace LAMMPS_NS; using namespace MathConst; @@ -36,6 +36,7 @@ PairLJClass2::PairLJClass2(LAMMPS *lmp) : Pair(lmp) respa_enable = 1; writedata = 1; centroidstressflag = CENTROID_SAME; + cut_respa = nullptr; } /* ---------------------------------------------------------------------- */ diff --git a/src/GPU/pair_lj_class2_gpu.cpp b/src/GPU/pair_lj_class2_gpu.cpp index 06ab116a7e..e32561ab59 100644 --- a/src/GPU/pair_lj_class2_gpu.cpp +++ b/src/GPU/pair_lj_class2_gpu.cpp @@ -16,25 +16,24 @@ ------------------------------------------------------------------------- */ #include "pair_lj_class2_gpu.h" -#include -#include -#include #include "atom.h" #include "atom_vec.h" #include "comm.h" +#include "domain.h" +#include "error.h" #include "force.h" -#include "neighbor.h" -#include "neigh_list.h" +#include "gpu_extra.h" #include "integrate.h" #include "memory.h" -#include "error.h" +#include "neigh_list.h" #include "neigh_request.h" +#include "neighbor.h" +#include "suffix.h" #include "universe.h" #include "update.h" -#include "domain.h" -#include "gpu_extra.h" -#include "suffix.h" + +#include using namespace LAMMPS_NS; @@ -46,13 +45,13 @@ int lj96_gpu_init(const int ntypes, double **cutsq, double **host_lj1, const int nall, const int max_nbors, const int maxspecial, const double cell_size, int &gpu_mode, FILE *screen); void lj96_gpu_clear(); -int ** lj96_gpu_compute_n(const int ago, const int inum, const int nall, - double **host_x, int *host_type, double *sublo, - double *subhi, tagint *tag, int **nspecial, - tagint **special, const bool eflag, const bool vflag, - const bool eatom, const bool vatom, int &host_start, - int **ilist, int **jnum, - const double cpu_time, bool &success); +int **lj96_gpu_compute_n(const int ago, const int inum, const int nall, + double **host_x, int *host_type, double *sublo, + double *subhi, tagint *tag, int **nspecial, + tagint **special, const bool eflag, const bool vflag, + const bool eatom, const bool vatom, int &host_start, + int **ilist, int **jnum, + const double cpu_time, bool &success); void lj96_gpu_compute(const int ago, const int inum, const int nall, double **host_x, int *host_type, int *ilist, int *numj, int **firstneigh, const bool eflag, const bool vflag, @@ -64,6 +63,7 @@ double lj96_gpu_bytes(); PairLJClass2GPU::PairLJClass2GPU(LAMMPS *lmp) : PairLJClass2(lmp), gpu_mode(GPU_FORCE) { + respa_enable = 0; reinitflag = 0; cpu_time = 0.0; suffix_flag |= Suffix::GPU; diff --git a/unittest/force-styles/tests/mol-pair-lj_class2.yaml b/unittest/force-styles/tests/mol-pair-lj_class2.yaml index 779bb4def2..ba4989e6e2 100644 --- a/unittest/force-styles/tests/mol-pair-lj_class2.yaml +++ b/unittest/force-styles/tests/mol-pair-lj_class2.yaml @@ -2,7 +2,6 @@ lammps_version: 10 Feb 2021 date_generated: Fri Feb 26 23:08:46 2021 epsilon: 5e-14 -skip_tests: gpu prerequisites: ! | atom full pair lj/class2 From f072289ac1ad17fca3aaf23046ca8ca0aa1bb74c Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 7 Apr 2021 14:52:36 -0400 Subject: [PATCH 103/104] need to initialize limit_damping array to NULL --- src/GRANULAR/pair_granular.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index dc367dcc0a..faeaaacd88 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -80,6 +80,8 @@ PairGranular::PairGranular(LAMMPS *lmp) : Pair(lmp) onerad_frozen = nullptr; maxrad_dynamic = nullptr; maxrad_frozen = nullptr; + + limit_damping = nullptr; history_transfer_factors = nullptr; From ea8277ce87d8e5b7fe5be83117f9e4025687662f Mon Sep 17 00:00:00 2001 From: Axel Kohlmeyer Date: Wed, 7 Apr 2021 14:59:33 -0400 Subject: [PATCH 104/104] whitespace fixes --- doc/src/fix_wall_gran.rst | 4 ++-- doc/src/fix_wall_gran_region.rst | 4 ++-- doc/src/pair_gran.rst | 8 ++++---- doc/src/pair_granular.rst | 12 ++++++------ src/GRANULAR/fix_wall_gran.cpp | 14 +++++++------- src/GRANULAR/pair_gran_hooke_history.cpp | 2 +- src/GRANULAR/pair_granular.cpp | 10 +++++----- 7 files changed, 27 insertions(+), 27 deletions(-) diff --git a/doc/src/fix_wall_gran.rst b/doc/src/fix_wall_gran.rst index 95a4b5d818..57bec679e4 100644 --- a/doc/src/fix_wall_gran.rst +++ b/doc/src/fix_wall_gran.rst @@ -96,8 +96,8 @@ Specifically, delta = radius - r = overlap of particle with wall, m_eff = mass of particle, and the effective radius of contact = RiRj/Ri+Rj is set to the radius of the particle. -The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu*, *dampflag*, -and the optional keyword *limit_damping* +The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu*, *dampflag*, +and the optional keyword *limit_damping* have the same meaning and units as those specified with the :doc:`pair_style gran/\* ` commands. This means a NULL can be used for either *Kt* or *gamma_t* as described on that page. If a diff --git a/doc/src/fix_wall_gran_region.rst b/doc/src/fix_wall_gran_region.rst index 35fe1fab72..0a252b162a 100644 --- a/doc/src/fix_wall_gran_region.rst +++ b/doc/src/fix_wall_gran_region.rst @@ -181,8 +181,8 @@ radius - r = overlap of particle with wall, m_eff = mass of particle, and the effective radius of contact is just the radius of the particle. -The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu*, *dampflag*, -and the optional keyword *limit_damping* +The parameters *Kn*\ , *Kt*\ , *gamma_n*, *gamma_t*, *xmu*, *dampflag*, +and the optional keyword *limit_damping* have the same meaning and units as those specified with the :doc:`pair_style gran/\* ` commands. This means a NULL can be used for either *Kt* or *gamma_t* as described on that page. If a diff --git a/doc/src/pair_gran.rst b/doc/src/pair_gran.rst index 5bccdfd8b4..fbcacb5c76 100644 --- a/doc/src/pair_gran.rst +++ b/doc/src/pair_gran.rst @@ -217,11 +217,11 @@ potential is used as a sub-style of :doc:`pair_style hybrid `, then pair_coeff command to determine which atoms interact via a granular potential. -If two particles are moving away from each other while in contact, there -is a possibility that the particles could experience an effective attractive -force due to damping. If the *limit_damping* keyword is used, this option +If two particles are moving away from each other while in contact, there +is a possibility that the particles could experience an effective attractive +force due to damping. If the *limit_damping* keyword is used, this option will zero out the normal component of the force if there is an effective -attractive force. +attractive force. ---------- diff --git a/doc/src/pair_granular.rst b/doc/src/pair_granular.rst index a9ca437370..432fd29584 100644 --- a/doc/src/pair_granular.rst +++ b/doc/src/pair_granular.rst @@ -623,9 +623,9 @@ Finally, the twisting torque on each particle is given by: ---------- -If two particles are moving away from each other while in contact, there -is a possibility that the particles could experience an effective attractive -force due to damping. If the optional *limit_damping* keyword is used, this option +If two particles are moving away from each other while in contact, there +is a possibility that the particles could experience an effective attractive +force due to damping. If the optional *limit_damping* keyword is used, this option will zero out the normal component of the force if there is an effective attractive force. This keyword cannot be used with the JKR or DMT models. @@ -665,9 +665,9 @@ then LAMMPS will use that cutoff for the specified atom type combination, and automatically set pairwise cutoffs for the remaining atom types. -If two particles are moving away from each other while in contact, there -is a possibility that the particles could experience an effective attractive -force due to damping. If the *limit_damping* keyword is used, this option +If two particles are moving away from each other while in contact, there +is a possibility that the particles could experience an effective attractive +force due to damping. If the *limit_damping* keyword is used, this option will zero out the normal component of the force if there is an effective attractive force. This keyword cannot be used with the JKR or DMT models. diff --git a/src/GRANULAR/fix_wall_gran.cpp b/src/GRANULAR/fix_wall_gran.cpp index 0611a54efd..51dca15e7b 100644 --- a/src/GRANULAR/fix_wall_gran.cpp +++ b/src/GRANULAR/fix_wall_gran.cpp @@ -119,12 +119,12 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : kt /= force->nktv2p; } iarg = 10; - + if (strcmp(arg[iarg],"limit_damping") == 0) { limit_damping = 1; - iarg += 1; + iarg += 1; } - + } else { iarg = 4; damping_model = VISCOELASTIC; @@ -310,7 +310,7 @@ FixWallGran::FixWallGran(LAMMPS *lmp, int narg, char **arg) : break; } else if (strcmp(arg[iarg],"limit_damping") == 0) { limit_damping = 1; - iarg += 1; + iarg += 1; } else { error->all(FLERR, "Illegal fix wall/gran command"); } @@ -530,7 +530,7 @@ void FixWallGran::init() roll_history_index += 1; twist_history_index += 1; } - + if (damping_model == TSUJI) { double cor = normal_coeffs[1]; normal_coeffs[1] = 1.2728-4.2783*cor+11.087*pow(cor,2)-22.348*pow(cor,3)+ @@ -1020,7 +1020,7 @@ void FixWallGran::hertz_history(double rsq, double dx, double dy, double dz, else polyhertz = sqrt((radius-r)*radius*rwall/(rwall+radius)); ccel *= polyhertz; if (limit_damping && (ccel < 0.0)) ccel = 0.0; - + // relative velocities vtr1 = vt1 - (dz*wr2-dy*wr3); @@ -1305,7 +1305,7 @@ void FixWallGran::granular(double rsq, double dx, double dy, double dz, history[thist2] -= rsht*nz; // also rescale to preserve magnitude - prjmag = sqrt(history[thist0]*history[thist0] + + prjmag = sqrt(history[thist0]*history[thist0] + history[thist1]*history[thist1] + history[thist2]*history[thist2]); if (prjmag > 0) scalefac = shrmag/prjmag; else scalefac = 0; diff --git a/src/GRANULAR/pair_gran_hooke_history.cpp b/src/GRANULAR/pair_gran_hooke_history.cpp index 0f9682a133..ac26ffbf1b 100644 --- a/src/GRANULAR/pair_gran_hooke_history.cpp +++ b/src/GRANULAR/pair_gran_hooke_history.cpp @@ -370,7 +370,7 @@ void PairGranHookeHistory::settings(int narg, char **arg) xmu = utils::numeric(FLERR,arg[4],false,lmp); dampflag = utils::inumeric(FLERR,arg[5],false,lmp); if (dampflag == 0) gammat = 0.0; - + limit_damping = 0; if (narg == 7) { if (strcmp(arg[6], "limit_damping") == 0) limit_damping = 1; diff --git a/src/GRANULAR/pair_granular.cpp b/src/GRANULAR/pair_granular.cpp index faeaaacd88..52971f920f 100644 --- a/src/GRANULAR/pair_granular.cpp +++ b/src/GRANULAR/pair_granular.cpp @@ -80,7 +80,7 @@ PairGranular::PairGranular(LAMMPS *lmp) : Pair(lmp) onerad_frozen = nullptr; maxrad_dynamic = nullptr; maxrad_frozen = nullptr; - + limit_damping = nullptr; history_transfer_factors = nullptr; @@ -796,7 +796,7 @@ void PairGranular::coeff(int narg, char **arg) twist_model_one = TWIST_NONE; damping_model_one = VISCOELASTIC; int ld_flag = 0; - + int iarg = 2; while (iarg < narg) { if (strcmp(arg[iarg], "hooke") == 0) { @@ -971,7 +971,7 @@ void PairGranular::coeff(int narg, char **arg) cutoff_one = utils::numeric(FLERR,arg[iarg+1],false,lmp); iarg += 2; } else if (strcmp(arg[iarg], "limit_damping") == 0) { - ld_flag = 1; + ld_flag = 1; iarg += 1; } else error->all(FLERR, "Illegal pair_coeff command"); } @@ -1047,7 +1047,7 @@ void PairGranular::coeff(int narg, char **arg) } } - + if (count == 0) error->all(FLERR,"Incorrect args for pair coefficients"); } @@ -1320,7 +1320,7 @@ void PairGranular::write_restart(FILE *fp) fwrite(&tangential_model[i][j],sizeof(int),1,fp); fwrite(&roll_model[i][j],sizeof(int),1,fp); fwrite(&twist_model[i][j],sizeof(int),1,fp); - fwrite(&limit_damping[i][j],sizeof(int),1,fp); + fwrite(&limit_damping[i][j],sizeof(int),1,fp); fwrite(normal_coeffs[i][j],sizeof(double),4,fp); fwrite(tangential_coeffs[i][j],sizeof(double),3,fp); fwrite(roll_coeffs[i][j],sizeof(double),3,fp);