Merge branch 'develop' into electrode

This commit is contained in:
Axel Kohlmeyer
2022-04-09 06:31:22 -04:00
3339 changed files with 276313 additions and 460077 deletions

View File

@ -5,13 +5,15 @@
########################################
# download and build googletest framework
message(STATUS "Downloading and building googletest framework")
set(GTEST_URL "https://github.com/google/googletest/archive/release-1.11.0.tar.gz" CACHE STRING "URL of googletest source")
set(GTEST_MD5 "e8a8df240b6938bb6384155d4c37d937" CACHE STRING "MD5 sum for googletest source")
set(GTEST_URL "https://github.com/google/googletest/archive/43efa0a4efd40c78b9210d15373112081899a97c.tar.gz" CACHE STRING "URL of googletest source")
set(GTEST_MD5 "0259ff833c03cdbbedda4e5d02fbc6bd" CACHE STRING "MD5 sum for googletest source")
mark_as_advanced(GTEST_URL)
mark_as_advanced(GTEST_MD5)
set(gtest_force_shared_crt ON CACHE BOOL "" FORCE)
include(ExternalCMakeProject)
set(INSTALL_GTEST OFF CACHE BOOL "" FORCE)
set(INSTALL_GMOCK OFF CACHE BOOL "" FORCE)
ExternalCMakeProject(googletest ${GTEST_URL} ${GTEST_MD5} googletest . "")
add_library(GTest::GTest ALIAS gtest)
add_library(GTest::GMock ALIAS gmock)
@ -26,24 +28,21 @@ add_library(GTest::GMockMain ALIAS gmock_main)
# the LAMMPS version header in the output for an empty input
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/in.empty "")
add_test(NAME RunLammps
COMMAND $<TARGET_FILE:lmp> -log none -echo none -in in.empty
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
COMMAND $<TARGET_FILE:lmp> -log none -echo none -in in.empty)
set_tests_properties(RunLammps PROPERTIES
ENVIRONMENT "TSAN_OPTIONS=ignore_noninstrumented_modules=1;HWLOC_HIDE_ERRORS=1"
PASS_REGULAR_EXPRESSION "LAMMPS \\([0-9]+ [A-Za-z]+ 2[0-9][0-9][0-9]( - Update [0-9]+)?\\)")
# check if the compiled executable will print the help message
add_test(NAME HelpMessage
COMMAND $<TARGET_FILE:lmp> -h
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
COMMAND $<TARGET_FILE:lmp> -h)
set_tests_properties(HelpMessage PROPERTIES
ENVIRONMENT "TSAN_OPTIONS=ignore_noninstrumented_modules=1;HWLOC_HIDE_ERRORS=1"
PASS_REGULAR_EXPRESSION ".*Large-scale Atomic/Molecular Massively Parallel Simulator -.*Usage example:.*")
# check if the compiled executable will error out on an invalid command line flag
add_test(NAME InvalidFlag
COMMAND $<TARGET_FILE:lmp> -xxx
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
COMMAND $<TARGET_FILE:lmp> -xxx)
set_tests_properties(InvalidFlag PROPERTIES
ENVIRONMENT "TSAN_OPTIONS=ignore_noninstrumented_modules=1;HWLOC_HIDE_ERRORS=1"
PASS_REGULAR_EXPRESSION "ERROR: Invalid command-line argument.*")

View File

@ -1,26 +1,26 @@
add_executable(test_library_open test_library_open.cpp test_main.cpp)
target_link_libraries(test_library_open PRIVATE lammps GTest::GMock)
add_test(LibraryOpen test_library_open)
add_test(NAME LibraryOpen COMMAND test_library_open)
add_executable(test_library_commands test_library_commands.cpp test_main.cpp)
target_link_libraries(test_library_commands PRIVATE lammps GTest::GMock)
add_test(LibraryCommands test_library_commands)
add_test(NAME LibraryCommands COMMAND test_library_commands)
add_executable(test_library_external test_library_external.cpp test_main.cpp)
target_link_libraries(test_library_external PRIVATE lammps GTest::GMock)
add_test(LibraryExternal test_library_external)
add_test(NAME LibraryExternal COMMAND test_library_external)
add_executable(test_library_properties test_library_properties.cpp test_main.cpp)
target_link_libraries(test_library_properties PRIVATE lammps GTest::GMock)
target_compile_definitions(test_library_properties PRIVATE -DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR})
add_test(LibraryProperties test_library_properties)
add_test(NAME LibraryProperties COMMAND test_library_properties)
set_tests_properties(LibraryProperties PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
add_executable(test_library_scatter_gather test_library_scatter_gather.cpp test_main.cpp)
target_link_libraries(test_library_scatter_gather PRIVATE lammps GTest::GMock)
target_compile_definitions(test_library_scatter_gather PRIVATE -DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR})
add_test(LibraryScatterGather test_library_scatter_gather)
add_test(NAME LibraryScatterGather COMMAND test_library_scatter_gather)
set_tests_properties(LibraryScatterGather PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
set(TEST_CONFIG_DEFS "-DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR};-DLAMMPS_${LAMMPS_SIZES}")
@ -65,7 +65,7 @@ endforeach()
add_executable(test_library_config test_library_config.cpp test_main.cpp)
target_link_libraries(test_library_config PRIVATE lammps GTest::GMock)
target_compile_definitions(test_library_config PRIVATE ${TEST_CONFIG_DEFS})
add_test(LibraryConfig test_library_config)
add_test(NAME LibraryConfig COMMAND test_library_config)
add_executable(test_library_mpi test_library_mpi.cpp)
target_link_libraries(test_library_mpi PRIVATE lammps GTest::GMock)

View File

@ -20,7 +20,7 @@ const char *cont_input[] = {"create_atoms 1 single &", "0.2 0.1 0.1"};
class LibraryCommands : public ::testing::Test {
protected:
void *lmp;
LibraryCommands() = default;
LibraryCommands() = default;
~LibraryCommands() override = default;
void SetUp() override
@ -55,13 +55,13 @@ TEST_F(LibraryCommands, from_file)
const char cont_file[] = "in.cont";
fp = fopen(demo_file, "w");
for (auto & inp : demo_input) {
for (auto &inp : demo_input) {
fputs(inp, fp);
fputc('\n', fp);
}
fclose(fp);
fp = fopen(cont_file, "w");
for (auto & inp : cont_input) {
for (auto &inp : cont_input) {
fputs(inp, fp);
fputc('\n', fp);
}
@ -85,7 +85,7 @@ TEST_F(LibraryCommands, from_line)
{
EXPECT_EQ(lammps_get_natoms(lmp), 0);
if (!verbose) ::testing::internal::CaptureStdout();
for (auto & inp : demo_input) {
for (auto &inp : demo_input) {
lammps_command(lmp, inp);
}
if (!verbose) ::testing::internal::GetCapturedStdout();
@ -106,11 +106,11 @@ TEST_F(LibraryCommands, from_string)
{
std::string cmds("");
for (auto & inp : demo_input) {
for (auto &inp : demo_input) {
cmds += inp;
cmds += "\n";
}
for (auto & inp : cont_input) {
for (auto &inp : cont_input) {
cmds += inp;
cmds += "\n";
}
@ -126,11 +126,11 @@ TEST_F(LibraryCommands, from_string)
if (!verbose) ::testing::internal::GetCapturedStdout();
cmds.clear();
for (auto & inp : demo_input) {
for (auto &inp : demo_input) {
cmds += inp;
cmds += "\r\n";
}
for (auto & inp : cont_input) {
for (auto &inp : cont_input) {
cmds += inp;
cmds += "\r\n";
}

View File

@ -22,7 +22,7 @@ protected:
void *lmp;
std::string INPUT_DIR = STRINGIFY(TEST_INPUT_FOLDER);
LibraryConfig() = default;
LibraryConfig() = default;
~LibraryConfig() override = default;
void SetUp() override

View File

@ -3,6 +3,7 @@
#include "lammps.h"
#include "library.h"
#include "lmptype.h"
#include "platform.h"
#include <string>
#include "gmock/gmock.h"
@ -13,6 +14,7 @@
#define STRINGIFY(val) XSTR(val)
#define XSTR(val) #val
using ::LAMMPS_NS::platform::path_join;
using ::LAMMPS_NS::tagint;
using ::testing::HasSubstr;
using ::testing::StartsWith;
@ -23,7 +25,7 @@ protected:
void *lmp;
std::string INPUT_DIR = STRINGIFY(TEST_INPUT_FOLDER);
LibraryProperties() = default;
LibraryProperties() = default;
~LibraryProperties() override = default;
void SetUp() override
@ -82,7 +84,7 @@ TEST_F(LibraryProperties, get_mpi_comm)
TEST_F(LibraryProperties, natoms)
{
if (!lammps_has_style(lmp, "atom", "full")) GTEST_SKIP();
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
if (!verbose) ::testing::internal::CaptureStdout();
lammps_file(lmp, input.c_str());
if (!verbose) ::testing::internal::GetCapturedStdout();
@ -92,7 +94,7 @@ TEST_F(LibraryProperties, natoms)
TEST_F(LibraryProperties, thermo)
{
if (!lammps_has_style(lmp, "atom", "full")) GTEST_SKIP();
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
::testing::internal::CaptureStdout();
lammps_file(lmp, input.c_str());
lammps_command(lmp, "run 2 post no");
@ -108,7 +110,7 @@ TEST_F(LibraryProperties, thermo)
TEST_F(LibraryProperties, box)
{
if (!lammps_has_style(lmp, "atom", "full")) GTEST_SKIP();
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
::testing::internal::CaptureStdout();
lammps_file(lmp, input.c_str());
lammps_command(lmp, "run 2 post no");
@ -248,7 +250,7 @@ TEST_F(LibraryProperties, setting)
EXPECT_EQ(lammps_extract_setting(lmp, "UNKNOWN"), -1);
if (lammps_has_style(lmp, "atom", "full")) {
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
if (!verbose) ::testing::internal::CaptureStdout();
lammps_file(lmp, input.c_str());
lammps_command(lmp, "run 2 post no");
@ -289,7 +291,7 @@ TEST_F(LibraryProperties, global)
{
if (!lammps_has_style(lmp, "atom", "full")) GTEST_SKIP();
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
if (!verbose) ::testing::internal::CaptureStdout();
lammps_file(lmp, input.c_str());
lammps_command(lmp, "run 2 post no");
@ -436,8 +438,10 @@ class AtomProperties : public ::testing::Test {
protected:
void *lmp;
AtomProperties()= default;;
~AtomProperties() override= default;;
AtomProperties() = default;
;
~AtomProperties() override = default;
;
void SetUp() override
{

View File

@ -3,6 +3,7 @@
#include "lammps.h"
#include "library.h"
#include "lmptype.h"
#include "platform.h"
#include <string>
#include "gmock/gmock.h"
@ -13,6 +14,7 @@
#define STRINGIFY(val) XSTR(val)
#define XSTR(val) #val
using ::LAMMPS_NS::platform::path_join;
using ::LAMMPS_NS::bigint;
using ::LAMMPS_NS::tagint;
using ::testing::HasSubstr;
@ -23,7 +25,7 @@ protected:
void *lmp;
std::string INPUT_DIR = STRINGIFY(TEST_INPUT_FOLDER);
GatherProperties() = default;
GatherProperties() = default;
~GatherProperties() override = default;
void SetUp() override
@ -55,7 +57,7 @@ protected:
TEST_F(GatherProperties, gather_bonds_newton_on)
{
if (!lammps_has_style(lmp, "atom", "full")) GTEST_SKIP();
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
if (!verbose) ::testing::internal::CaptureStdout();
lammps_command(lmp, "newton on on");
lammps_file(lmp, input.c_str());
@ -95,7 +97,7 @@ TEST_F(GatherProperties, gather_bonds_newton_on)
TEST_F(GatherProperties, gather_bonds_newton_off)
{
if (!lammps_has_style(lmp, "atom", "full")) GTEST_SKIP();
std::string input = INPUT_DIR + PATH_SEP + "in.fourmol";
std::string input = path_join(INPUT_DIR, "in.fourmol");
if (!verbose) ::testing::internal::CaptureStdout();
lammps_command(lmp, "newton off off");
lammps_file(lmp, input.c_str());

View File

@ -25,9 +25,3 @@ extern bool verbose;
} while (0);
#endif
#if defined _WIN32
static const char PATH_SEP = '\\';
#else
static const char PATH_SEP = '/';
#endif

View File

@ -9,21 +9,21 @@ if((NOT (CMAKE_SYSTEM_NAME STREQUAL "Windows")) AND PKG_PLUGIN)
endif()
target_link_libraries(test_simple_commands PRIVATE lammps GTest::GMock)
add_test(NAME SimpleCommands COMMAND test_simple_commands WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME SimpleCommands COMMAND test_simple_commands)
set_tests_properties(SimpleCommands PROPERTIES
ENVIRONMENT "LAMMPS_PLUGIN_BIN_DIR=${CMAKE_BINARY_DIR}/build-plugins")
ENVIRONMENT "LAMMPS_PLUGIN_BIN_DIR=${CMAKE_BINARY_DIR}")
add_executable(test_lattice_region test_lattice_region.cpp)
target_link_libraries(test_lattice_region PRIVATE lammps GTest::GMock)
add_test(NAME LatticeRegion COMMAND test_lattice_region WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME LatticeRegion COMMAND test_lattice_region)
add_executable(test_groups test_groups.cpp)
target_link_libraries(test_groups PRIVATE lammps GTest::GMock)
add_test(NAME Groups COMMAND test_groups WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME Groups COMMAND test_groups)
add_executable(test_variables test_variables.cpp)
target_link_libraries(test_variables PRIVATE lammps GTest::GMock)
add_test(NAME Variables COMMAND test_variables WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME Variables COMMAND test_variables)
add_executable(test_kim_commands test_kim_commands.cpp)
if(KIM_EXTRA_UNITTESTS)
@ -34,12 +34,17 @@ if(KIM_EXTRA_UNITTESTS)
endif()
endif()
target_link_libraries(test_kim_commands PRIVATE lammps GTest::GMock)
add_test(NAME KimCommands COMMAND test_kim_commands WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME KimCommands COMMAND test_kim_commands)
add_executable(test_reset_ids test_reset_ids.cpp)
target_compile_definitions(test_reset_ids PRIVATE -DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(test_reset_ids PRIVATE lammps GTest::GMock)
add_test(NAME ResetIDs COMMAND test_reset_ids WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
add_test(NAME ResetIDs COMMAND test_reset_ids)
add_executable(test_compute_global test_compute_global.cpp)
target_compile_definitions(test_compute_global PRIVATE -DTEST_INPUT_FOLDER=${CMAKE_CURRENT_SOURCE_DIR})
target_link_libraries(test_compute_global PRIVATE lammps GTest::GMock)
add_test(NAME ComputeGlobal COMMAND test_compute_global)
add_executable(test_mpi_load_balancing test_mpi_load_balancing.cpp)
target_link_libraries(test_mpi_load_balancing PRIVATE lammps GTest::GMock)

View File

@ -1 +0,0 @@
../force-styles/tests/data.fourmol

View File

@ -0,0 +1,223 @@
LAMMPS data file via write_data, version 5 May 2020, timestep = 0
29 atoms
5 atom types
24 bonds
5 bond types
30 angles
4 angle types
31 dihedrals
5 dihedral types
2 impropers
2 improper types
-6.024572 8.975428 xlo xhi
-7.692866 7.307134 ylo yhi
-8.086924 6.913076 zlo zhi
Masses
1 12.0107
2 4.00794
3 14.0067
4 15.9994
5 15.9994
Pair Coeffs # zero
1
2
3
4
5
Bond Coeffs # zero
1 1.5
2 1.1
3 1.3
4 1.2
5 1
Angle Coeffs # zero
1 110.1
2 111
3 120
4 108.5
Dihedral Coeffs # zero
1
2
3
4
5
Improper Coeffs # zero
1
2
Atoms # full
10 2 1 7.0000000000000007e-02 2.0185283555536988e+00 -1.4283966846517357e+00 -9.6733527271133024e-01 0 0 0
11 2 2 8.9999999999999997e-02 1.7929780509347666e+00 -1.9871047540768743e+00 -1.8840626643185674e+00 0 0 0
12 2 1 -2.7000000000000002e-01 3.0030247876861225e+00 -4.8923319967572748e-01 -1.6188658531537248e+00 0 0 0
13 2 2 8.9999999999999997e-02 4.0447273787895934e+00 -9.0131998547446246e-01 -1.6384447268320836e+00 0 0 0
14 2 2 8.9999999999999997e-02 2.6033152817257075e+00 -4.0789761505963579e-01 -2.6554413538823063e+00 0 0 0
2 1 2 3.1000000000000000e-01 3.0197083955402204e-01 2.9515239068888608e+00 -8.5689735572907566e-01 0 0 0
3 1 1 -2.0000000000000000e-02 -6.9435377880558602e-01 1.2440473127136711e+00 -6.2233801468892025e-01 0 0 0
4 1 2 8.9999999999999997e-02 -1.5771614164685133e+00 1.4915333140468066e+00 -1.2487126845040522e+00 0 0 0
6 1 1 5.1000000000000001e-01 2.9412607937706009e-01 2.2719282656652909e-01 -1.2843094067857870e+00 0 0 0
7 1 4 -5.1000000000000001e-01 3.4019871062879609e-01 -9.1277350075786561e-03 -2.4633113224304561e+00 0 0 0
19 3 2 4.2359999999999998e-01 1.5349125211132961e+00 2.6315969880333707e+00 -4.2472859440220647e+00 0 0 0
15 2 2 8.9999999999999997e-02 2.9756315249791303e+00 5.6334269722969288e-01 -1.2437650754599008e+00 0 0 0
18 3 4 -8.4719999999999995e-01 2.1384791188033843e+00 3.0177261773770208e+00 -3.5160827596876225e+00 0 0 0
20 3 2 4.2359999999999998e-01 2.7641167828863153e+00 3.6833419064000221e+00 -3.9380850623312638e+00 0 0 0
8 2 3 -4.6999999999999997e-01 1.1641187171852805e+00 -4.8375305955385234e-01 -6.7659823767368688e-01 0 0 0
9 2 2 3.1000000000000000e-01 1.3777459838125838e+00 -2.5366338669522998e-01 2.6877644730326306e-01 0 0 0
16 2 1 5.1000000000000001e-01 2.6517554244980306e+00 -2.3957110424978438e+00 3.2908335999178327e-02 0 0 0
17 2 4 -5.1000000000000001e-01 2.2309964792710639e+00 -2.1022918943319384e+00 1.1491948328949437e+00 0 0 0
1 1 3 -4.6999999999999997e-01 -2.7993683669226832e-01 2.4726588069312840e+00 -1.7200860244148433e-01 0 0 0
5 1 2 8.9999999999999997e-02 -8.9501761359359255e-01 9.3568128743071344e-01 4.0227731871484346e-01 0 0 0
21 4 5 -8.4719999999999995e-01 4.9064454390208301e+00 -4.0751205255383196e+00 -3.6215576073601046e+00 0 0 0
22 4 2 4.2359999999999998e-01 4.3687453488627543e+00 -4.2054270536772504e+00 -4.4651491269372565e+00 0 0 0
23 4 2 4.2359999999999998e-01 5.7374928154769504e+00 -3.5763355905184966e+00 -3.8820297194230728e+00 0 0 0
24 5 5 -8.4719999999999995e-01 2.0684115301174013e+00 3.1518221747664397e+00 3.1554242678474576e+00 0 0 0
25 5 2 4.2359999999999998e-01 1.2998381073113014e+00 3.2755513587518097e+00 2.5092990173114837e+00 0 0 0
26 5 2 4.2359999999999998e-01 2.5807438597688113e+00 4.0120175892854135e+00 3.2133398379059099e+00 0 0 0
27 6 5 -8.4719999999999995e-01 -1.9613581876744359e+00 -4.3556300596085160e+00 2.1101467673534788e+00 0 0 0
28 6 2 4.2359999999999998e-01 -2.7406520384725965e+00 -4.0207251278130975e+00 1.5828689861678511e+00 0 0 0
29 6 2 4.2359999999999998e-01 -1.3108232656499081e+00 -3.5992986322410760e+00 2.2680459788743503e+00 0 0 0
Velocities
1 7.7867804888392077e-04 5.8970331623292821e-04 -2.2179517633030531e-04
2 2.7129529964126462e-03 4.6286427111164284e-03 3.5805549693846352e-03
3 -1.2736791029204805e-03 1.6108674226414498e-03 -3.3618185901550799e-04
4 -9.2828595122009308e-04 -1.2537885319521818e-03 -4.1204974953432108e-03
5 -1.1800848061603740e-03 7.5424401975844038e-04 6.9023177964912290e-05
6 -3.0914004879905335e-04 1.2755385764678133e-03 7.9574303350202582e-04
7 -1.1037894966874103e-04 -7.6764845099077425e-04 -7.7217630460203659e-04
8 3.9060281273221989e-04 -8.1444231918053418e-04 1.5134641148324972e-04
9 1.2475530960659720e-03 -2.6608454451432528e-03 1.1117602907112732e-03
10 4.5008983776042893e-04 4.9530197647538077e-04 -2.3336234361093645e-04
11 -3.6977669078869707e-04 -1.5289071951960539e-03 -2.9176389881837113e-03
12 1.0850834530183159e-03 -6.4965897903201833e-04 -1.2971152622619948e-03
13 4.0754559196230639e-03 3.5043502394946119e-03 -7.8324487687854666e-04
14 -1.3837220448746613e-04 -4.0656048637594394e-03 -3.9333461173944500e-03
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 -6.0936815808025862e-04 -9.3774557532468582e-04 -3.3558072507805731e-04
19 -6.9919768291957119e-04 -3.6060777270430031e-03 4.2833405289822791e-03
20 4.7777805013736515e-03 5.1003745845520452e-03 1.8002873923729241e-03
21 -9.5568188553430398e-04 1.6594630943762931e-04 -1.8199788009966615e-04
22 -3.3137518957653462e-03 -2.8683968287936054e-03 3.6384389958326871e-03
23 2.4209481134686401e-04 -4.5457709985051130e-03 2.7663581642115042e-03
24 2.5447450568861086e-04 4.8412447786110117e-04 -4.8021914527341357e-04
25 4.3722771097312743e-03 -4.5184411669545515e-03 2.5200952006556795e-03
26 -1.9250110555001179e-03 -3.0342169883610837e-03 3.5062814567984532e-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
Bonds
1 5 1 2
2 3 1 3
3 2 3 4
4 2 3 5
5 1 3 6
6 3 6 8
7 4 6 7
8 5 8 9
9 3 8 10
10 2 10 11
11 1 10 12
12 1 10 16
13 2 12 13
14 2 12 14
15 2 12 15
16 4 16 17
17 5 18 19
18 5 18 20
19 5 21 22
20 5 21 23
21 5 24 25
22 5 24 26
23 5 27 28
24 5 27 29
Angles
1 4 2 1 3
2 4 1 3 5
3 4 1 3 4
4 4 1 3 6
5 4 4 3 5
6 2 5 3 6
7 2 4 3 6
8 3 3 6 7
9 3 3 6 8
10 3 7 6 8
11 2 6 8 9
12 2 9 8 10
13 3 6 8 10
14 2 8 10 11
15 3 8 10 16
16 2 11 10 12
17 1 12 10 16
18 1 8 10 12
19 2 11 10 16
20 2 10 12 15
21 2 10 12 14
22 2 10 12 13
23 4 13 12 15
24 4 13 12 14
25 4 14 12 15
26 4 10 16 17
27 1 19 18 20
28 1 22 21 23
29 1 25 24 26
30 1 28 27 29
Dihedrals
1 2 2 1 3 6
2 2 2 1 3 4
3 3 2 1 3 5
4 1 1 3 6 8
5 1 1 3 6 7
6 5 4 3 6 8
7 5 4 3 6 7
8 5 5 3 6 8
9 5 5 3 6 7
10 4 3 6 8 9
11 3 3 6 8 10
12 3 7 6 8 9
13 4 7 6 8 10
14 2 6 8 10 12
15 2 6 8 10 16
16 2 6 8 10 11
17 2 9 8 10 12
18 4 9 8 10 16
19 5 9 8 10 11
20 5 8 10 12 13
21 1 8 10 12 14
22 5 8 10 12 15
23 4 8 10 16 17
24 5 11 10 12 13
25 5 11 10 12 14
26 5 11 10 12 15
27 2 11 10 16 17
28 2 12 10 16 17
29 5 16 10 12 13
30 5 16 10 12 14
31 5 16 10 12 15
Impropers
1 1 6 3 8 7
2 2 8 6 10 9

View File

@ -1 +0,0 @@
../force-styles/tests/in.fourmol

View File

@ -0,0 +1,30 @@
variable newton_pair index on
variable newton_bond index on
variable bond_factor index 0.10
variable angle_factor index 0.25
variable dihedral_factor index 0.50
variable units index real
variable input_dir index .
variable data_file index ${input_dir}/data.fourmol
variable pair_style index 'zero 8.0'
variable bond_style index zero
variable angle_style index zero
variable dihedral_style index zero
variable improper_style index zero
variable t_target index 100.0
atom_style full
atom_modify map array
neigh_modify delay 2 every 2 check no
units ${units}
timestep 0.1
newton ${newton_pair} ${newton_bond}
special_bonds lj/coul ${bond_factor} ${angle_factor} ${dihedral_factor}
pair_style ${pair_style}
bond_style ${bond_style}
angle_style ${angle_style}
dihedral_style ${dihedral_style}
improper_style ${improper_style}
read_data ${data_file}

View File

@ -0,0 +1,325 @@
/* ----------------------------------------------------------------------
LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator
https://www.lammps.org/, 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.
------------------------------------------------------------------------- */
#include "../testing/core.h"
#include "info.h"
#include "input.h"
#include "lammps.h"
#include "library.h"
#include "utils.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include <cstdio>
#include <mpi.h>
// whether to print verbose output (i.e. not capturing LAMMPS screen output).
bool verbose = false;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
#define STRINGIFY(val) XSTR(val)
#define XSTR(val) #val
class ComputeGlobalTest : public LAMMPSTest {
protected:
void SetUp() override
{
testbinary = "ComputeGlobalTest";
LAMMPSTest::SetUp();
if (info->has_style("atom", "full")) {
BEGIN_HIDE_OUTPUT();
command("variable input_dir index \"" STRINGIFY(TEST_INPUT_FOLDER) "\"");
command("include \"${input_dir}/in.fourmol\"");
command("group allwater molecule 3:6");
command("region half block 0.0 INF INF INF INF INF");
END_HIDE_OUTPUT();
}
}
double get_scalar(const char *id)
{
return *(double *)lammps_extract_compute(lmp, id, LMP_STYLE_GLOBAL, LMP_TYPE_SCALAR);
}
double *get_vector(const char *id)
{
return (double *)lammps_extract_compute(lmp, id, LMP_STYLE_GLOBAL, LMP_TYPE_VECTOR);
}
double **get_array(const char *id)
{
return (double **)lammps_extract_compute(lmp, id, LMP_STYLE_GLOBAL, LMP_TYPE_ARRAY);
}
};
TEST_F(ComputeGlobalTest, Energy)
{
if (lammps_get_natoms(lmp) == 0.0) GTEST_SKIP();
int has_tally = lammps_config_has_package("TALLY");
BEGIN_HIDE_OUTPUT();
command("pair_style lj/cut/coul/cut 10.0");
command("pair_coeff * * 0.01 3.0");
command("bond_style harmonic");
command("bond_coeff * 100.0 1.5");
command("compute ke1 all ke");
command("compute ke2 allwater ke");
command("compute pe1 all pe");
command("compute pe2 all pe bond");
command("compute pe3 all pe angle dihedral");
command("compute pr1 all pressure thermo_temp");
command("compute pr2 all pressure NULL virial");
command("compute pr3 all pressure NULL angle dihedral");
std::string thermo_style = "c_ke1 c_ke2 c_pe1 c_pe2 c_pe3 c_pr1 c_pr2 c_pr3";
if (has_tally) {
command("compute pe4 all pe/tally allwater");
command("compute pe5 all pe/mol/tally all");
command("compute pe6 all pe pair");
thermo_style += " c_pe4 c_pe5[*]";
}
command("thermo_style custom " + thermo_style);
command("run 0 post no");
END_HIDE_OUTPUT();
EXPECT_DOUBLE_EQ(get_scalar("ke1"), 2.3405256449146168);
EXPECT_DOUBLE_EQ(get_scalar("ke2"), 1.192924237073665);
EXPECT_DOUBLE_EQ(get_scalar("pe1"), 24155.155261642241);
EXPECT_DOUBLE_EQ(get_scalar("pe2"), 361.37528652881286);
EXPECT_DOUBLE_EQ(get_scalar("pe3"), 0.0);
EXPECT_DOUBLE_EQ(get_scalar("pr1"), 1956948.4735454607);
EXPECT_DOUBLE_EQ(get_scalar("pr2"), 1956916.7725807722);
EXPECT_DOUBLE_EQ(get_scalar("pr3"), 0.0);
auto pr1 = get_vector("pr1");
auto pr2 = get_vector("pr2");
auto pr3 = get_vector("pr3");
EXPECT_DOUBLE_EQ(pr1[0], 2150600.9207200543);
EXPECT_DOUBLE_EQ(pr1[1], 1466949.7512112649);
EXPECT_DOUBLE_EQ(pr1[2], 2253294.7487050635);
EXPECT_DOUBLE_EQ(pr1[3], 856643.16926486336);
EXPECT_DOUBLE_EQ(pr1[4], 692710.86929464422);
EXPECT_DOUBLE_EQ(pr1[5], -44403.909298603547);
EXPECT_DOUBLE_EQ(pr2[0], 2150575.6989334146);
EXPECT_DOUBLE_EQ(pr2[1], 1466911.3911461537);
EXPECT_DOUBLE_EQ(pr2[2], 2253263.2276627473);
EXPECT_DOUBLE_EQ(pr2[3], 856632.34707690508);
EXPECT_DOUBLE_EQ(pr2[4], 692712.89222328411);
EXPECT_DOUBLE_EQ(pr2[5], -44399.277068014424);
EXPECT_DOUBLE_EQ(pr3[0], 0.0);
EXPECT_DOUBLE_EQ(pr3[1], 0.0);
EXPECT_DOUBLE_EQ(pr3[2], 0.0);
EXPECT_DOUBLE_EQ(pr3[3], 0.0);
EXPECT_DOUBLE_EQ(pr3[4], 0.0);
EXPECT_DOUBLE_EQ(pr3[5], 0.0);
if (has_tally) {
EXPECT_DOUBLE_EQ(get_scalar("pe4"), 15425.840923850392);
auto pe5 = get_vector("pe5");
EXPECT_DOUBLE_EQ(pe5[0], 23803.966677151559);
EXPECT_DOUBLE_EQ(pe5[1], -94.210004432380643);
EXPECT_DOUBLE_EQ(pe5[2], 115.58040355478101);
EXPECT_DOUBLE_EQ(pe5[3], -31.557101160514257);
}
TEST_FAILURE(".*ERROR: Compute pressure must use group all.*",
command("compute pr5 allwater pressure thermo_temp"););
TEST_FAILURE(".*ERROR: Compute pressure requires temperature ID to include kinetic energy.*",
command("compute pr5 all pressure NULL"););
TEST_FAILURE(".*ERROR: Could not find compute pressure temperature ID",
command("compute pr5 all pressure xxx"););
TEST_FAILURE(".*ERROR: Reuse of compute ID 'pe2'.*", command("compute pe2 all pe"););
TEST_FAILURE(".*ERROR: Compute pe must use group all.*", command("compute pe allwater pe"););
TEST_FAILURE(".*ERROR: Illegal compute command.*", command("compute pe potential"););
}
TEST_F(ComputeGlobalTest, Geometry)
{
if (lammps_get_natoms(lmp) == 0.0) GTEST_SKIP();
int has_extra = lammps_config_has_package("EXTRA-COMPUTE");
BEGIN_HIDE_OUTPUT();
command("pair_style lj/cut 10.0");
command("pair_coeff * * 0.01 3.0");
command("bond_style harmonic");
command("bond_coeff * 100.0 1.5");
command("compute com1 all com");
command("compute com2 allwater com");
command("compute mu1 all dipole");
command("compute mu2 allwater dipole geometry ");
command("compute rg1 all gyration");
command("compute rg2 allwater gyration");
std::string thermo_style = "c_com1[*] c_com2[*] c_rg1[*] c_rg2[*]";
if (has_extra) {
command("compute mom1 all momentum");
command("compute mom2 allwater momentum");
command("compute mop1 all stress/mop x 0.0 total");
command("compute mop2 all stress/mop/profile z lower 0.5 kin conf");
thermo_style += " c_mu1 c_mu2 c_mop1[*] c_mop2[1][1]";
}
command("thermo_style custom " + thermo_style);
command("run 0 post no");
END_HIDE_OUTPUT();
auto com1 = get_vector("com1");
auto com2 = get_vector("com2");
auto mu1 = get_vector("mu1");
auto mu2 = get_vector("mu2");
auto rg1 = get_vector("rg1");
auto rg2 = get_vector("rg2");
EXPECT_DOUBLE_EQ(com1[0], 1.4300952724948282);
EXPECT_DOUBLE_EQ(com1[1], -0.29759806705328351);
EXPECT_DOUBLE_EQ(com1[2], -0.7245120195899285);
EXPECT_DOUBLE_EQ(com2[0], 1.7850913321989679);
EXPECT_DOUBLE_EQ(com2[1], -0.45168408952146238);
EXPECT_DOUBLE_EQ(com2[2], -0.60215022088294912);
EXPECT_DOUBLE_EQ(get_scalar("mu1"), 1.8335537504770163);
EXPECT_DOUBLE_EQ(get_scalar("mu2"), 1.7849382239204072);
EXPECT_DOUBLE_EQ(mu1[0], 0.41613191281297729);
EXPECT_DOUBLE_EQ(mu1[1], 1.0056523085627747);
EXPECT_DOUBLE_EQ(mu1[2], -1.4756073398127658);
EXPECT_DOUBLE_EQ(mu2[0], -0.029474795088977768);
EXPECT_DOUBLE_EQ(mu2[1], 1.153516133030746);
EXPECT_DOUBLE_EQ(mu2[2], -1.3618135814069394);
EXPECT_DOUBLE_EQ(get_scalar("rg1"), 3.8495643473797196);
EXPECT_DOUBLE_EQ(get_scalar("rg2"), 5.4558163385611342);
EXPECT_DOUBLE_EQ(rg1[0], 3.6747807397432752);
EXPECT_DOUBLE_EQ(rg1[1], 6.5440303159316278);
EXPECT_DOUBLE_EQ(rg1[2], 4.6003346089421457);
EXPECT_DOUBLE_EQ(rg1[3], -0.4639249501367636);
EXPECT_DOUBLE_EQ(rg1[4], -1.8859032304357459);
EXPECT_DOUBLE_EQ(rg1[5], 0.2339161878440186);
EXPECT_DOUBLE_EQ(rg2[0], 6.2582260148310143);
EXPECT_DOUBLE_EQ(rg2[1], 13.353763805454184);
EXPECT_DOUBLE_EQ(rg2[2], 10.153942099825425);
EXPECT_DOUBLE_EQ(rg2[3], 1.2965604701522486);
EXPECT_DOUBLE_EQ(rg2[4], -5.0315240817290841);
EXPECT_DOUBLE_EQ(rg2[5], 1.1103378503822141);
if (has_extra) {
auto mom1 = get_vector("mom1");
auto mom2 = get_vector("mom2");
auto mop1 = get_vector("mop1");
auto mop2 = get_array("mop2");
EXPECT_DOUBLE_EQ(mom1[0], 0.0054219056685341164);
EXPECT_DOUBLE_EQ(mom1[1], -0.054897225112275558);
EXPECT_DOUBLE_EQ(mom1[2], 0.059097392692385661);
EXPECT_DOUBLE_EQ(mom2[0], -0.022332069630161717);
EXPECT_DOUBLE_EQ(mom2[1], -0.056896553865696115);
EXPECT_DOUBLE_EQ(mom2[2], 0.069179891052881484);
EXPECT_DOUBLE_EQ(mop1[0], 3522311.3572200728);
EXPECT_DOUBLE_EQ(mop1[1], 2871104.9055934539);
EXPECT_DOUBLE_EQ(mop1[2], -4136077.5224247416);
EXPECT_DOUBLE_EQ(mop2[0][0], -8.0869239999999998);
EXPECT_DOUBLE_EQ(mop2[0][1], 0.0);
EXPECT_DOUBLE_EQ(mop2[0][2], 0.0);
EXPECT_DOUBLE_EQ(mop2[1][0], -7.5869239999999998);
EXPECT_DOUBLE_EQ(mop2[1][1], 0.0);
EXPECT_DOUBLE_EQ(mop2[1][2], 0.0);
}
}
TEST_F(ComputeGlobalTest, Reduction)
{
if (lammps_get_natoms(lmp) == 0.0) GTEST_SKIP();
BEGIN_HIDE_OUTPUT();
command("pair_style lj/cut 10.0");
command("pair_coeff * * 0.01 3.0");
command("bond_style harmonic");
command("bond_coeff * 100.0 1.5");
command("variable v atom sqrt(vx*vx+vy*vy+vz*vz)");
command("variable id atom id");
command("fix chg all store/state 0 q");
command("compute ke all ke/atom");
command("compute min allwater reduce min x fx v_v");
command("compute chg all reduce max f_chg");
command("compute max all reduce max y fy v_v");
command("compute ave all reduce/region half ave z fz v_v");
command("compute sum allwater reduce/region half sum vx vy vz");
command("compute rep all reduce max v_id v_v v_id y replace 1 2 replace 3 4");
std::string thermo_style = "c_min[*] c_chg c_max[*] c_sum[*] c_ave[*] c_rep[*]";
command("thermo_style custom " + thermo_style);
command("run 0 post no");
END_HIDE_OUTPUT();
auto min = get_vector("min");
auto max = get_vector("max");
auto sum = get_vector("sum");
auto ave = get_vector("ave");
auto rep = get_vector("rep");
EXPECT_DOUBLE_EQ(get_scalar("chg"), 0.51000000000000001);
EXPECT_DOUBLE_EQ(min[0], -2.7406520384725965);
EXPECT_DOUBLE_EQ(min[1], -20385.448391361348);
EXPECT_DOUBLE_EQ(min[2], 0.00071995632406981081);
EXPECT_DOUBLE_EQ(max[0], 4.0120175892854135);
EXPECT_DOUBLE_EQ(max[1], 21193.39005673242);
EXPECT_DOUBLE_EQ(max[2], 0.0072167889062371513);
EXPECT_DOUBLE_EQ(sum[0], 0.0021436162503408024);
EXPECT_DOUBLE_EQ(sum[1], -0.013760203913131267);
EXPECT_DOUBLE_EQ(sum[2], 0.017517003988402391);
EXPECT_DOUBLE_EQ(ave[0], -1.3013763067943667);
EXPECT_DOUBLE_EQ(ave[1], -619.60864441905312);
EXPECT_DOUBLE_EQ(ave[2], 0.0035263629500884397);
// index of max v_v
EXPECT_DOUBLE_EQ(rep[0], 20);
EXPECT_DOUBLE_EQ(rep[1], max[2]);
// index of max y
EXPECT_DOUBLE_EQ(rep[2], 26);
EXPECT_DOUBLE_EQ(rep[3], max[0]);
}
} // namespace LAMMPS_NS
int main(int argc, char **argv)
{
MPI_Init(&argc, &argv);
::testing::InitGoogleMock(&argc, argv);
if (platform::mpi_vendor() == "Open MPI" && !LAMMPS_NS::Info::has_exceptions())
std::cout << "Warning: using OpenMPI without exceptions. Death tests will be skipped\n";
// handle arguments passed via environment variable
if (const char *var = getenv("TEST_ARGS")) {
std::vector<std::string> env = split_words(var);
for (auto arg : env) {
if (arg == "-v") {
verbose = true;
}
}
}
if ((argc > 1) && (strcmp(argv[1], "-v") == 0)) verbose = true;
int rv = RUN_ALL_TESTS();
MPI_Finalize();
return rv;
}

View File

@ -34,7 +34,6 @@ using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::ExitedWithCode;
using ::testing::MatchesRegex;
using ::testing::StrEq;
class GroupTest : public LAMMPSTest {

View File

@ -33,7 +33,6 @@ bool verbose = false;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::MatchesRegex;
using ::testing::StrEq;
class KimCommandsTest : public LAMMPSTest {

View File

@ -35,8 +35,8 @@ bool verbose = false;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::ContainsRegex;
using ::testing::ExitedWithCode;
using ::testing::MatchesRegex;
using ::testing::StrEq;
class LatticeRegionTest : public LAMMPSTest {
@ -82,7 +82,7 @@ TEST_F(LatticeRegionTest, lattice_sc)
BEGIN_CAPTURE_OUTPUT();
command("lattice sc 1.0 spacing 1.5 2.0 3.0");
auto output = END_CAPTURE_OUTPUT();
ASSERT_THAT(output, MatchesRegex(".*Lattice spacing in x,y,z = 1.5.* 2.* 3.*"));
ASSERT_THAT(output, ContainsRegex(".*Lattice spacing in x,y,z = 1.5.* 2.* 3.*"));
auto lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->xlattice, 1.5);
@ -92,7 +92,7 @@ TEST_F(LatticeRegionTest, lattice_sc)
BEGIN_CAPTURE_OUTPUT();
command("lattice sc 2.0");
output = END_CAPTURE_OUTPUT();
ASSERT_THAT(output, MatchesRegex(".*Lattice spacing in x,y,z = 2.* 2.* 2.*"));
ASSERT_THAT(output, ContainsRegex(".*Lattice spacing in x,y,z = 2.* 2.* 2.*"));
lattice = lmp->domain->lattice;
ASSERT_EQ(lattice->style, Lattice::SC);

View File

@ -32,7 +32,6 @@ bool verbose = false;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::MatchesRegex;
#define GETIDX(i) lmp->atom->map(i)
@ -47,8 +46,8 @@ protected:
LAMMPSTest::SetUp();
if (info->has_style("atom", "full")) {
BEGIN_HIDE_OUTPUT();
command("variable input_dir index " STRINGIFY(TEST_INPUT_FOLDER));
command("include ${input_dir}/in.fourmol");
command("variable input_dir index \"" STRINGIFY(TEST_INPUT_FOLDER) "\"");
command("include \"${input_dir}/in.fourmol\"");
END_HIDE_OUTPUT();
}
}

View File

@ -39,8 +39,8 @@ bool verbose = false;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::ContainsRegex;
using ::testing::ExitedWithCode;
using ::testing::MatchesRegex;
using ::testing::StrEq;
class SimpleCommandsTest : public LAMMPSTest {
@ -394,62 +394,62 @@ TEST_F(SimpleCommandsTest, Plugin)
lmp->input->one(fmt::format(loadfmt, "hello"));
auto text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Loading plugin: Hello world command.*"));
ASSERT_THAT(text, ContainsRegex(".*Loading plugin: Hello world command.*"));
::testing::internal::CaptureStdout();
lmp->input->one(fmt::format(loadfmt, "xxx"));
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Open of file .*xxx.* failed.*"));
ASSERT_THAT(text, ContainsRegex(".*Open of file .*xxx.* failed.*"));
::testing::internal::CaptureStdout();
lmp->input->one(fmt::format(loadfmt, "nve2"));
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Loading plugin: NVE2 variant fix style.*"));
ASSERT_THAT(text, ContainsRegex(".*Loading plugin: NVE2 variant fix style.*"));
::testing::internal::CaptureStdout();
lmp->input->one("plugin list");
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*1: command style plugin hello"
".*2: fix style plugin nve2.*"));
ASSERT_THAT(text, ContainsRegex(".*1: command style plugin hello"
".*2: fix style plugin nve2.*"));
::testing::internal::CaptureStdout();
lmp->input->one(fmt::format(loadfmt, "hello"));
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Ignoring load of command style hello: "
"must unload existing hello plugin.*"));
ASSERT_THAT(text, ContainsRegex(".*Ignoring load of command style hello: "
"must unload existing hello plugin.*"));
::testing::internal::CaptureStdout();
lmp->input->one("plugin unload command hello");
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Unloading command style hello.*"));
ASSERT_THAT(text, ContainsRegex(".*Unloading command style hello.*"));
::testing::internal::CaptureStdout();
lmp->input->one("plugin unload pair nve2");
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Ignoring unload of pair style nve2: not from a plugin.*"));
ASSERT_THAT(text, ContainsRegex(".*Ignoring unload of pair style nve2: not from a plugin.*"));
::testing::internal::CaptureStdout();
lmp->input->one("plugin unload fix nve2");
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Unloading fix style nve2.*"));
ASSERT_THAT(text, ContainsRegex(".*Unloading fix style nve2.*"));
::testing::internal::CaptureStdout();
lmp->input->one("plugin unload fix nve");
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Ignoring unload of fix style nve: not from a plugin.*"));
ASSERT_THAT(text, ContainsRegex(".*Ignoring unload of fix style nve: not from a plugin.*"));
::testing::internal::CaptureStdout();
lmp->input->one("plugin list");
text = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << text;
ASSERT_THAT(text, MatchesRegex(".*Currently loaded plugins.*"));
ASSERT_THAT(text, ContainsRegex(".*Currently loaded plugins.*"));
}
#endif
@ -478,7 +478,13 @@ TEST_F(SimpleCommandsTest, Shell)
test_var = getenv("TEST_VARIABLE");
ASSERT_NE(test_var, nullptr);
#if defined(_WIN32)
// we cannot create empty environment variables on Windows so platform::putenv() sets their
// value to "1"
ASSERT_THAT(test_var, StrEq("1"));
#else
ASSERT_THAT(test_var, StrEq(""));
#endif
}
TEST_F(SimpleCommandsTest, CiteMe)
@ -495,8 +501,9 @@ TEST_F(SimpleCommandsTest, CiteMe)
std::string text = END_CAPTURE_OUTPUT();
// find the two unique citations, but not the third
ASSERT_THAT(text, MatchesRegex(".*one.*two.*"));
ASSERT_THAT(text, Not(MatchesRegex(".*one.*two.*one.*")));
ASSERT_THAT(text, ContainsRegex("test citation one.\n.*test citation two.*"));
ASSERT_THAT(text, Not(ContainsRegex(
"test citation one.\n.*test citation two.*\n.*test citation one.*")));
BEGIN_CAPTURE_OUTPUT();
lmp->citeme->add("test citation one:\n 0\n");
@ -507,8 +514,8 @@ TEST_F(SimpleCommandsTest, CiteMe)
text = END_CAPTURE_OUTPUT();
// find the forth (only differs in long citation) and sixth added citation
ASSERT_THAT(text, MatchesRegex(".*one.*three.*"));
ASSERT_THAT(text, Not(MatchesRegex(".*two.*")));
ASSERT_THAT(text, ContainsRegex("test citation one.*\n.*test citation three.*"));
ASSERT_THAT(text, Not(ContainsRegex("test_citation two.*\n")));
BEGIN_CAPTURE_OUTPUT();
lmp->citeme->add("test citation one:\n 1\n");
@ -521,7 +528,7 @@ TEST_F(SimpleCommandsTest, CiteMe)
text = END_CAPTURE_OUTPUT();
// no new citation. no CITE-CITE-CITE- lines
ASSERT_THAT(text, Not(MatchesRegex(".*CITE-CITE-CITE-CITE.*")));
ASSERT_THAT(text, Not(ContainsRegex(".*CITE-CITE-CITE-CITE.*")));
}
} // namespace LAMMPS_NS

View File

@ -36,8 +36,8 @@ using LAMMPS_NS::MathConst::MY_PI;
using LAMMPS_NS::utils::split_words;
namespace LAMMPS_NS {
using ::testing::ContainsRegex;
using ::testing::ExitedWithCode;
using ::testing::MatchesRegex;
using ::testing::StrEq;
class VariableTest : public LAMMPSTest {
@ -207,7 +207,7 @@ TEST_F(VariableTest, CreateDelete)
command("variable ten4 uloop 2"););
TEST_FAILURE(".*ERROR: Incorrect conversion in format string.*",
command("variable ten11 format two \"%08f\""););
TEST_FAILURE(".*ERROR: Variable name 'ten@12' must have only alphanumeric characters or.*",
TEST_FAILURE(".*ERROR: Variable name 'ten@12' must have only letters, numbers, or undersc.*",
command("variable ten@12 index one two three"););
TEST_FAILURE(".*ERROR: Variable evaluation before simulation box is defined.*",
variable->compute_equal("c_thermo_press"););
@ -317,7 +317,7 @@ TEST_F(VariableTest, Expressions)
ASSERT_TRUE(variable->equalstyle(ivar));
ASSERT_DOUBLE_EQ(variable->compute_equal(ivar), 2.0);
ASSERT_DOUBLE_EQ(variable->compute_equal("v_three"), 3.0);
ASSERT_NEAR(variable->compute_equal("v_four"), MY_PI,1.0e-14);
ASSERT_NEAR(variable->compute_equal("v_four"), MY_PI, 1.0e-14);
ASSERT_GE(variable->compute_equal("v_five"), 20210310);
ASSERT_DOUBLE_EQ(variable->compute_equal("v_seven"), -1);
ASSERT_DOUBLE_EQ(variable->compute_equal("v_eight"), 2.5);
@ -394,58 +394,58 @@ TEST_F(VariableTest, IfCommand)
BEGIN_CAPTURE_OUTPUT();
command("if 1>0 then 'print \"bingo!\"'");
auto text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if 1>2 then 'print \"bingo!\"' else 'print \"nope?\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*nope\?.*"));
ASSERT_THAT(text, ContainsRegex(".*nope\?.*"));
BEGIN_CAPTURE_OUTPUT();
command("if (1<=0) then 'print \"bingo!\"' else 'print \"nope?\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*nope\?.*"));
ASSERT_THAT(text, ContainsRegex(".*nope\?.*"));
BEGIN_CAPTURE_OUTPUT();
command("if (-1.0e-1<0.0E+0)|^(1<0) then 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if (${one}==1.0)&&(2>=1) then 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if !((${one}!=1.0)||(2|^1)) then 'print \"missed\"' else 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if (1>=2)&&(0&&1) then 'print \"missed\"' else 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if !1 then 'print \"missed\"' else 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if !(a==b) then 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if x==x|^1==0 then 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
BEGIN_CAPTURE_OUTPUT();
command("if x!=x|^a!=b then 'print \"bingo!\"'");
text = END_CAPTURE_OUTPUT();
ASSERT_THAT(text, MatchesRegex(".*bingo!.*"));
ASSERT_THAT(text, ContainsRegex(".*bingo!.*"));
TEST_FAILURE(".*ERROR: Invalid Boolean syntax in if command.*",
command("if () then 'print \"bingo!\"'"););

View File

@ -1,13 +1,13 @@
add_executable(test_lammps_class test_lammps_class.cpp)
target_link_libraries(test_lammps_class PRIVATE lammps GTest::GMockMain)
add_test(LammpsClass test_lammps_class)
add_test(NAME LammpsClass COMMAND test_lammps_class)
set_tests_properties(LammpsClass PROPERTIES ENVIRONMENT "OMP_NUM_THREADS=1")
add_executable(test_input_class test_input_class.cpp)
target_link_libraries(test_input_class PRIVATE lammps GTest::GTestMain)
add_test(InputClass test_input_class)
add_test(NAME InputClass COMMAND test_input_class)
add_executable(test_error_class test_error_class.cpp)
target_link_libraries(test_error_class PRIVATE lammps GTest::GMock)
add_test(ErrorClass test_error_class)
add_test(NAME ErrorClass COMMAND test_error_class)

View File

@ -17,7 +17,7 @@ bool verbose = false;
namespace LAMMPS_NS {
using ::testing::MatchesRegex;
using ::testing::ContainsRegex;
using utils::split_words;
class Error_class : public LAMMPSTest {
@ -39,7 +39,7 @@ TEST_F(Error_class, message)
auto output = CAPTURE_OUTPUT([&] {
error->message(FLERR, "one message");
});
ASSERT_THAT(output, MatchesRegex("one message .*test_error_class.cpp:.*"));
ASSERT_THAT(output, ContainsRegex("one message .*test_error_class.cpp:.*"));
};
TEST_F(Error_class, warning)
@ -48,7 +48,7 @@ TEST_F(Error_class, warning)
auto output = CAPTURE_OUTPUT([&] {
error->warning(FLERR, "one warning");
});
ASSERT_THAT(output, MatchesRegex("WARNING: one warning .*test_error_class.cpp:.*"));
ASSERT_THAT(output, ContainsRegex("WARNING: one warning .*test_error_class.cpp:.*"));
ASSERT_THAT(error->get_maxwarn(), 100);
// warnings disabled
@ -72,7 +72,7 @@ TEST_F(Error_class, warning)
output = CAPTURE_OUTPUT([&] {
thermo->lost_check();
});
ASSERT_THAT(output, MatchesRegex("WARNING: Too many warnings: 5 vs 2. All future.*"));
ASSERT_THAT(output, ContainsRegex("WARNING: Too many warnings: 5 vs 2. All future.*"));
output = CAPTURE_OUTPUT([&] {
error->warning(FLERR, "one warning");
@ -91,7 +91,7 @@ TEST_F(Error_class, warning)
output = CAPTURE_OUTPUT([&] {
error->warning(FLERR, "one warning");
});
ASSERT_THAT(output, MatchesRegex("WARNING: one warning.*"));
ASSERT_THAT(output, ContainsRegex("WARNING: one warning.*"));
BEGIN_HIDE_OUTPUT();
command("thermo_modify warn default");

View File

@ -60,13 +60,13 @@ TEST_F(Input_commands, from_file)
const char cont_file[] = "in.cont";
fp = fopen(demo_file, "w");
for (auto & inp : demo_input) {
for (auto &inp : demo_input) {
fputs(inp, fp);
fputc('\n', fp);
}
fclose(fp);
fp = fopen(cont_file, "w");
for (auto & inp : cont_input) {
for (auto &inp : cont_input) {
fputs(inp, fp);
fputc('\n', fp);
}
@ -84,7 +84,7 @@ TEST_F(Input_commands, from_file)
TEST_F(Input_commands, from_line)
{
EXPECT_EQ(lmp->atom->natoms, 0);
for (auto & inp : demo_input) {
for (auto &inp : demo_input) {
lmp->input->one(inp);
}
EXPECT_EQ(lmp->atom->natoms, 1);

View File

@ -11,7 +11,7 @@
#include "gmock/gmock.h"
#include "gtest/gtest.h"
using ::testing::MatchesRegex;
using ::testing::ContainsRegex;
using ::testing::StartsWith;
namespace LAMMPS_NS {
@ -90,14 +90,14 @@ TEST_F(LAMMPS_plain, InitMembers)
EXPECT_EQ(lmp->memoryKK, nullptr);
EXPECT_NE(lmp->python, nullptr);
EXPECT_EQ(lmp->citeme, nullptr);
if (LAMMPS::has_git_info) {
EXPECT_STRNE(LAMMPS::git_commit, "");
EXPECT_STRNE(LAMMPS::git_branch, "");
EXPECT_STRNE(LAMMPS::git_descriptor, "");
if (LAMMPS::has_git_info()) {
EXPECT_STRNE(LAMMPS::git_commit(), "");
EXPECT_STRNE(LAMMPS::git_branch(), "");
EXPECT_STRNE(LAMMPS::git_descriptor(), "");
} else {
EXPECT_STREQ(LAMMPS::git_commit, "(unknown)");
EXPECT_STREQ(LAMMPS::git_branch, "(unknown)");
EXPECT_STREQ(LAMMPS::git_descriptor, "(unknown)");
EXPECT_STREQ(LAMMPS::git_commit(), "(unknown)");
EXPECT_STREQ(LAMMPS::git_branch(), "(unknown)");
EXPECT_STREQ(LAMMPS::git_descriptor(), "(unknown)");
}
}
@ -225,18 +225,18 @@ TEST_F(LAMMPS_omp, InitMembers)
EXPECT_EQ(lmp->memoryKK, nullptr);
EXPECT_NE(lmp->python, nullptr);
EXPECT_NE(lmp->citeme, nullptr);
if (LAMMPS::has_git_info) {
EXPECT_STRNE(LAMMPS::git_commit, "");
EXPECT_STRNE(LAMMPS::git_branch, "");
EXPECT_STRNE(LAMMPS::git_descriptor, "");
if (LAMMPS::has_git_info()) {
EXPECT_STRNE(LAMMPS::git_commit(), "");
EXPECT_STRNE(LAMMPS::git_branch(), "");
EXPECT_STRNE(LAMMPS::git_descriptor(), "");
} else {
EXPECT_STREQ(LAMMPS::git_commit, "(unknown)");
EXPECT_STREQ(LAMMPS::git_branch, "(unknown)");
EXPECT_STREQ(LAMMPS::git_descriptor, "(unknown)");
EXPECT_STREQ(LAMMPS::git_commit(), "(unknown)");
EXPECT_STREQ(LAMMPS::git_branch(), "(unknown)");
EXPECT_STREQ(LAMMPS::git_descriptor(), "(unknown)");
}
}
// test fixture for Kokkos tests
// test fixture for Kokkos using 2 threads if threading is available
class LAMMPS_kokkos : public ::testing::Test {
protected:
LAMMPS *lmp;
@ -256,18 +256,15 @@ protected:
void SetUp() override
{
const char *args[] = {"LAMMPS_test", "-log", "none", "-echo", "none", "-screen", "none",
"-k", "on", "t", "2", "-sf", "kk"};
char **argv = (char **)args;
int argc = sizeof(args) / sizeof(char *);
// only run this test fixture with kk suffix if KOKKOS package is installed
// also need to figure out a way to find which parallelizations are enabled
"-k", "on", "t", "1", "-sf", "kk"};
if (Info::has_accelerator_feature("KOKKOS", "api", "openmp")) args[10] = "2";
char **argv = (char **)args;
int argc = sizeof(args) / sizeof(char *);
if (LAMMPS::is_installed_pkg("KOKKOS")) {
::testing::internal::CaptureStdout();
lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD);
std::string output = ::testing::internal::GetCapturedStdout();
EXPECT_THAT(output, StartsWith("Kokkos::OpenMP::"));
lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD);
::testing::internal::GetCapturedStdout();
} else
GTEST_SKIP();
}
@ -307,19 +304,23 @@ TEST_F(LAMMPS_kokkos, InitMembers)
EXPECT_EQ(lmp->num_package, 0);
EXPECT_EQ(lmp->clientserver, 0);
if (Info::has_accelerator_feature("KOKKOS", "api", "openmp"))
EXPECT_EQ(lmp->comm->nthreads, 2);
else
EXPECT_EQ(lmp->comm->nthreads, 1);
EXPECT_NE(lmp->kokkos, nullptr);
EXPECT_NE(lmp->atomKK, nullptr);
EXPECT_NE(lmp->memoryKK, nullptr);
EXPECT_NE(lmp->python, nullptr);
EXPECT_NE(lmp->citeme, nullptr);
if (LAMMPS::has_git_info) {
EXPECT_STRNE(LAMMPS::git_commit, "");
EXPECT_STRNE(LAMMPS::git_branch, "");
EXPECT_STRNE(LAMMPS::git_descriptor, "");
if (LAMMPS::has_git_info()) {
EXPECT_STRNE(LAMMPS::git_commit(), "");
EXPECT_STRNE(LAMMPS::git_branch(), "");
EXPECT_STRNE(LAMMPS::git_descriptor(), "");
} else {
EXPECT_STREQ(LAMMPS::git_commit, "(unknown)");
EXPECT_STREQ(LAMMPS::git_branch, "(unknown)");
EXPECT_STREQ(LAMMPS::git_descriptor, "(unknown)");
EXPECT_STREQ(LAMMPS::git_commit(), "(unknown)");
EXPECT_STREQ(LAMMPS::git_branch(), "(unknown)");
EXPECT_STREQ(LAMMPS::git_descriptor(), "(unknown)");
}
}
@ -339,7 +340,7 @@ TEST(LAMMPS_init, OpenMP)
::testing::internal::CaptureStdout();
LAMMPS *lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD);
std::string output = ::testing::internal::GetCapturedStdout();
EXPECT_THAT(output, MatchesRegex(".*using 2 OpenMP thread.*per MPI task.*"));
EXPECT_THAT(output, ContainsRegex(".*using 2 OpenMP thread.*per MPI task.*"));
if (LAMMPS_NS::Info::has_accelerator_feature("OPENMP", "api", "openmp"))
EXPECT_EQ(lmp->comm->nthreads, 2);
@ -372,8 +373,8 @@ TEST(LAMMPS_init, NoOpenMP)
::testing::internal::CaptureStdout();
LAMMPS *lmp = new LAMMPS(argc, argv, MPI_COMM_WORLD);
std::string output = ::testing::internal::GetCapturedStdout();
EXPECT_THAT(output,
MatchesRegex(".*OMP_NUM_THREADS environment is not set.*Defaulting to 1 thread.*"));
EXPECT_THAT(output, ContainsRegex(
".*OMP_NUM_THREADS environment is not set.*Defaulting to 1 thread.*"));
EXPECT_EQ(lmp->comm->nthreads, 1);
::testing::internal::CaptureStdout();
delete lmp;

View File

@ -46,11 +46,7 @@ else()
endif()
target_include_directories(style_tests PRIVATE ${LAMMPS_SOURCE_DIR})
target_link_libraries(style_tests PUBLIC gmock Yaml::Yaml lammps)
if(BUILD_MPI)
target_link_libraries(style_tests PUBLIC MPI::MPI_CXX)
else()
target_link_libraries(style_tests PUBLIC mpi_stubs)
endif()
# propagate sanitizer options to test tools
if(ENABLE_SANITIZER AND (NOT (ENABLE_SANITIZER STREQUAL "none")))
if(CMAKE_VERSION VERSION_GREATER_EQUAL 3.13)
@ -72,6 +68,29 @@ if(FFT_SINGLE)
target_compile_definitions(test_pair_style PRIVATE -DFFT_SINGLE)
endif()
# prepare environment for testers
if(WIN32)
set(FORCE_TEST_ENVIRONMENT PYTHONPATH=${TEST_INPUT_FOLDER})
else()
set(FORCE_TEST_ENVIRONMENT PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH})
endif()
list(APPEND FORCE_TEST_ENVIRONMENT "PYTHONUNBUFFERED=1")
list(APPEND FORCE_TEST_ENVIRONMENT "OMP_PROC_BIND=false")
list(APPEND FORCE_TEST_ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR}")
get_property(BUILD_IS_MULTI_CONFIG GLOBAL PROPERTY GENERATOR_IS_MULTI_CONFIG)
if(BUILD_IS_MULTI_CONFIG)
set(LAMMPS_LIB_PATH ${CMAKE_BINARY_DIR}/$<CONFIG>)
else()
set(LAMMPS_LIB_PATH ${CMAKE_BINARY_DIR})
endif()
if(APPLE)
list(APPEND FORCE_TEST_ENVIRONMENT "DYLD_LIBRARY_PATH=${LAMMPS_LIB_PATH}:$ENV{DYLD_LIBRARY_PATH}")
elseif(WIN32)
list(APPEND FORCE_TEST_ENVIRONMENT "LAMMPSDLLPATH=${LAMMPS_LIB_PATH}")
else()
list(APPEND FORCE_TEST_ENVIRONMENT "LD_LIBRARY_PATH=${LAMMPS_LIB_PATH}:$ENV{LD_LIBRARY_PATH}")
endif()
# tests for molecular systems and related pair styles
file(GLOB MOL_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/mol-pair-*.yaml)
# cannot test MSM with single precision data
@ -81,8 +100,12 @@ endif()
foreach(TEST ${MOL_PAIR_TESTS})
string(REGEX REPLACE "^.*mol-pair-(.*)\.yaml" "MolPairStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -91,8 +114,12 @@ file(GLOB ATOMIC_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/atomic-p
foreach(TEST ${ATOMIC_PAIR_TESTS})
string(REGEX REPLACE "^.*atomic-pair-(.*)\.yaml" "AtomicPairStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -101,8 +128,12 @@ file(GLOB MANYBODY_PAIR_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/manybo
foreach(TEST ${MANYBODY_PAIR_TESTS})
string(REGEX REPLACE "^.*manybody-pair-(.*)\.yaml" "ManybodyPairStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -114,8 +145,12 @@ file(GLOB BOND_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/bond-*.yaml)
foreach(TEST ${BOND_TESTS})
string(REGEX REPLACE "^.*bond-(.*)\.yaml" "BondStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_bond_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_bond_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -127,8 +162,12 @@ file(GLOB ANGLE_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/angle-*.yaml)
foreach(TEST ${ANGLE_TESTS})
string(REGEX REPLACE "^.*angle-(.*)\.yaml" "AngleStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_angle_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_angle_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -141,8 +180,12 @@ endif()
foreach(TEST ${KSPACE_TESTS})
string(REGEX REPLACE "^.*kspace-(.*)\.yaml" "KSpaceStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_pair_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "${FORCE_TEST_ENVIRONMENT}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -158,8 +201,16 @@ file(GLOB FIX_TIMESTEP_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/fix-tim
foreach(TEST ${FIX_TIMESTEP_TESTS})
string(REGEX REPLACE "^.*fix-timestep-(.*)\.yaml" "FixTimestep:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_fix_timestep ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_fix_timestep ${TEST})
if(WIN32)
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}\\\;${LAMMPS_PYTHON_DIR}")
else()
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:${LAMMPS_PYTHON_DIR}:$ENV{PYTHONPATH}")
endif()
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -171,7 +222,11 @@ file(GLOB DIHEDRAL_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/dihedral-*.
foreach(TEST ${DIHEDRAL_TESTS})
string(REGEX REPLACE "^.*dihedral-(.*)\.yaml" "DihedralStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_dihedral_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_dihedral_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()
@ -184,7 +239,11 @@ file(GLOB IMPROPER_TESTS LIST_DIRECTORIES false ${TEST_INPUT_FOLDER}/improper-*.
foreach(TEST ${IMPROPER_TESTS})
string(REGEX REPLACE "^.*improper-(.*)\.yaml" "ImproperStyle:\\1" TNAME ${TEST})
extract_tags(TEST_TAGS ${TEST})
add_test(NAME ${TNAME} COMMAND test_improper_style ${TEST} WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
list(FIND TEST_TAGS "no${CMAKE_SYSTEM_NAME}" _SKIPME)
if(_SKIPME GREATER_EQUAL 0)
continue()
endif()
add_test(NAME ${TNAME} COMMAND test_improper_style ${TEST})
set_tests_properties(${TNAME} PROPERTIES ENVIRONMENT "LAMMPS_POTENTIALS=${LAMMPS_POTENTIALS_DIR};PYTHONPATH=${TEST_INPUT_FOLDER}:$ENV{PYTHONPATH}")
set_tests_properties(${TNAME} PROPERTIES LABELS "${TEST_TAGS}")
endforeach()

View File

@ -33,6 +33,7 @@
#include "lammps.h"
#include "modify.h"
#include "universe.h"
#include "platform.h"
#include <cctype>
#include <cstdio>
@ -50,16 +51,11 @@ using ::testing::StartsWith;
using namespace LAMMPS_NS;
static void delete_file(const std::string &filename)
{
remove(filename.c_str());
};
void cleanup_lammps(LAMMPS *lmp, const TestConfig &cfg)
{
delete_file(cfg.basename + ".restart");
delete_file(cfg.basename + ".data");
delete_file(cfg.basename + "-coeffs.in");
platform::unlink(cfg.basename + ".restart");
platform::unlink(cfg.basename + ".data");
platform::unlink(cfg.basename + "-coeffs.in");
delete lmp;
}
@ -112,7 +108,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new
command(pre_command);
}
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
command("angle_style " + cfg.angle_style);
@ -198,7 +194,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
command("variable angle_style index '" + cfg.angle_style + "'");
command("variable data_file index " + cfg.basename + ".data");
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
for (auto &angle_coeff : cfg.angle_coeff) {
@ -289,7 +285,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
// run_stress
stress = lmp->force->angle->virial;
block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0],
stress[1], stress[2], stress[3], stress[4], stress[5]);
stress[1], stress[2], stress[3], stress[4], stress[5]);
writer.emit_block("run_stress", block);
block.clear();
@ -304,6 +300,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
return;
}
TEST(AngleStyle, plain)
{
if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP();
@ -337,29 +334,11 @@ TEST(AngleStyle, plain)
double epsilon = test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &f_ref = test_config.init_forces;
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 on: " << stats << std::endl;
auto angle = lmp->force->angle;
auto stress = angle->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "init_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
@ -369,29 +348,8 @@ TEST(AngleStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = angle->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = angle->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", angle->virial, test_config.run_stress, epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -407,27 +365,10 @@ TEST(AngleStyle, plain)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
angle = lmp->force->angle;
stress = angle->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 2 * epsilon);
if (print_stats) std::cerr << "init_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, 2*epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
@ -437,26 +378,8 @@ TEST(AngleStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = angle->virial;
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = angle->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -470,27 +393,9 @@ TEST(AngleStyle, plain)
restart_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "restart_forces stats:" << stats << std::endl;
angle = lmp->force->angle;
stress = angle->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "restart_stress stats:" << stats << std::endl;
EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("restart_stress", angle->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
@ -500,27 +405,9 @@ TEST(AngleStyle, plain)
data_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "data_forces stats:" << stats << std::endl;
angle = lmp->force->angle;
stress = angle->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "data_stress stats:" << stats << std::endl;
EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("data_stress", angle->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
@ -567,30 +454,11 @@ TEST(AngleStyle, omp)
// relax error a bit for OPENMP package
double epsilon = 5.0 * test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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 on: " << stats << std::endl;
auto angle = lmp->force->angle;
auto stress = angle->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 on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", angle->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
@ -600,29 +468,8 @@ TEST(AngleStyle, omp)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = angle->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = angle->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 on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", angle->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -641,27 +488,10 @@ TEST(AngleStyle, omp)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
angle = lmp->force->angle;
stress = angle->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;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", angle->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
@ -671,25 +501,8 @@ TEST(AngleStyle, omp)
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, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = angle->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;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", angle->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");

View File

@ -33,6 +33,7 @@
#include "lammps.h"
#include "modify.h"
#include "universe.h"
#include "platform.h"
#include <cctype>
#include <cstdio>
@ -50,16 +51,11 @@ using ::testing::StartsWith;
using namespace LAMMPS_NS;
static void delete_file(const std::string &filename)
{
remove(filename.c_str());
};
void cleanup_lammps(LAMMPS *lmp, const TestConfig &cfg)
{
delete_file(cfg.basename + ".restart");
delete_file(cfg.basename + ".data");
delete_file(cfg.basename + "-coeffs.in");
platform::unlink(cfg.basename + ".restart");
platform::unlink(cfg.basename + ".data");
platform::unlink(cfg.basename + "-coeffs.in");
delete lmp;
}
@ -112,7 +108,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new
command(pre_command);
}
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
command("bond_style " + cfg.bond_style);
@ -198,7 +194,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
command("variable bond_style index '" + cfg.bond_style + "'");
command("variable data_file index " + cfg.basename + ".data");
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
for (auto &bond_coeff : cfg.bond_coeff) {
@ -289,7 +285,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
// run_stress
stress = lmp->force->bond->virial;
block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0],
stress[1], stress[2], stress[3], stress[4], stress[5]);
stress[1], stress[2], stress[3], stress[4], stress[5]);
writer.emit_block("run_stress", block);
block.clear();
@ -337,29 +333,11 @@ TEST(BondStyle, plain)
double epsilon = test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &f_ref = test_config.init_forces;
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 on: " << stats << std::endl;
auto bond = lmp->force->bond;
auto stress = bond->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "init_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", bond->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
@ -369,29 +347,8 @@ TEST(BondStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = bond->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = bond->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", bond->virial, test_config.run_stress, epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -407,27 +364,10 @@ TEST(BondStyle, plain)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
bond = lmp->force->bond;
stress = bond->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 2 * epsilon);
if (print_stats) std::cerr << "init_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, 2 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
@ -437,26 +377,8 @@ TEST(BondStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = bond->virial;
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = bond->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", bond->virial, test_config.run_stress, epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -470,27 +392,10 @@ TEST(BondStyle, plain)
restart_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "restart_forces stats:" << stats << std::endl;
bond = lmp->force->bond;
stress = bond->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "restart_stress stats:" << stats << std::endl;
EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("restart_stress", bond->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
@ -500,27 +405,10 @@ TEST(BondStyle, plain)
data_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "data_forces stats:" << stats << std::endl;
bond = lmp->force->bond;
stress = bond->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "data_stress stats:" << stats << std::endl;
EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("data_stress", bond->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
@ -567,29 +455,11 @@ TEST(BondStyle, omp)
// relax error a bit for OPENMP package
double epsilon = 5.0 * test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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 on: " << stats << std::endl;
auto bond = lmp->force->bond;
auto stress = bond->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 on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", bond->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
@ -599,29 +469,8 @@ TEST(BondStyle, omp)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = bond->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = bond->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 on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", bond->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -640,27 +489,10 @@ TEST(BondStyle, omp)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
bond = lmp->force->bond;
stress = bond->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;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", bond->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
@ -670,25 +502,8 @@ TEST(BondStyle, omp)
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, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = bond->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;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", bond->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");

View File

@ -374,7 +374,7 @@ void TestConfigReader::tags(const yaml_event_t &event)
{
std::stringstream data((char *)event.data.scalar.value);
config.tags.clear();
for (std::string tag; std::getline(data, tag, ','); ) {
for (std::string tag; std::getline(data, tag, ',');) {
config.tags.push_back(trim(tag));
}
}

View File

@ -33,6 +33,7 @@
#include "lammps.h"
#include "modify.h"
#include "universe.h"
#include "platform.h"
#include <cctype>
#include <cstdio>
@ -50,16 +51,11 @@ using ::testing::StartsWith;
using namespace LAMMPS_NS;
static void delete_file(const std::string &filename)
{
remove(filename.c_str());
};
void cleanup_lammps(LAMMPS *lmp, const TestConfig &cfg)
{
delete_file(cfg.basename + ".restart");
delete_file(cfg.basename + ".data");
delete_file(cfg.basename + "-coeffs.in");
platform::unlink(cfg.basename + ".restart");
platform::unlink(cfg.basename + ".data");
platform::unlink(cfg.basename + "-coeffs.in");
delete lmp;
}
@ -112,7 +108,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new
command(pre_command);
}
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
command("dihedral_style " + cfg.dihedral_style);
@ -207,7 +203,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
command("variable pair_style index 'lj/charmmfsw/coul/charmmfsh 7.0 8.0'");
}
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
for (auto &dihedral_coeff : cfg.dihedral_coeff) {
@ -292,7 +288,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
// run_stress
stress = lmp->force->dihedral->virial;
block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0],
stress[1], stress[2], stress[3], stress[4], stress[5]);
stress[1], stress[2], stress[3], stress[4], stress[5]);
writer.emit_block("run_stress", block);
block.clear();
@ -340,29 +336,11 @@ TEST(DihedralStyle, plain)
double epsilon = test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &f_ref = test_config.init_forces;
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 on: " << stats << std::endl;
auto dihedral = lmp->force->dihedral;
auto stress = dihedral->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "init_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", dihedral->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon);
@ -372,29 +350,8 @@ TEST(DihedralStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = dihedral->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = dihedral->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", dihedral->virial, test_config.run_stress, epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -410,27 +367,10 @@ TEST(DihedralStyle, plain)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
dihedral = lmp->force->dihedral;
stress = dihedral->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 2 * epsilon);
if (print_stats) std::cerr << "init_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon);
@ -440,26 +380,8 @@ TEST(DihedralStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = dihedral->virial;
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = dihedral->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", dihedral->virial, test_config.run_stress, epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -473,27 +395,10 @@ TEST(DihedralStyle, plain)
restart_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "restart_forces stats:" << stats << std::endl;
dihedral = lmp->force->dihedral;
stress = dihedral->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "restart_stress stats:" << stats << std::endl;
EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("restart_stress", dihedral->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon);
@ -503,27 +408,10 @@ TEST(DihedralStyle, plain)
data_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "data_forces stats:" << stats << std::endl;
dihedral = lmp->force->dihedral;
stress = dihedral->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "data_stress stats:" << stats << std::endl;
EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("data_stress", dihedral->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon);
@ -570,30 +458,11 @@ TEST(DihedralStyle, omp)
// relax error a bit for OPENMP package
double epsilon = 5.0 * test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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 on: " << stats << std::endl;
auto dihedral = lmp->force->dihedral;
auto stress = dihedral->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 on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", dihedral->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon);
@ -603,29 +472,8 @@ TEST(DihedralStyle, omp)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = dihedral->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = dihedral->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 on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", dihedral->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -644,27 +492,10 @@ TEST(DihedralStyle, omp)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
dihedral = lmp->force->dihedral;
stress = dihedral->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;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", dihedral->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(dihedral->energy, test_config.init_energy, epsilon);
@ -674,25 +505,8 @@ TEST(DihedralStyle, omp)
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, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = dihedral->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;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", dihedral->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");

View File

@ -37,6 +37,7 @@
#include "universe.h"
#include "utils.h"
#include "variable.h"
#include "platform.h"
#include <cctype>
#include <cstdio>
@ -54,16 +55,10 @@ using ::testing::StartsWith;
using namespace LAMMPS_NS;
static void delete_file(const std::string &filename)
{
remove(filename.c_str());
};
void cleanup_lammps(LAMMPS *lmp, const TestConfig &cfg)
{
delete_file(cfg.basename + ".restart");
platform::unlink(cfg.basename + ".restart");
delete lmp;
lmp = nullptr;
}
LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool use_respa = false)
@ -104,7 +99,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool use
for (auto &pre_command : cfg.pre_commands)
command(pre_command);
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
lmp->input->file(input_file.c_str());
if (use_respa) command("run_style respa 2 1 bond 1 pair 2");
@ -209,8 +204,8 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
if (fix->thermo_virial) {
auto stress = fix->virial;
block = fmt::format("{:23.16e} {:23.16e} {:23.16e} "
"{:23.16e} {:23.16e} {:23.16e}",
stress[0], stress[1], stress[2], stress[3], stress[4], stress[5]);
"{:23.16e} {:23.16e} {:23.16e}",
stress[0], stress[1], stress[2], stress[3], stress[4], stress[5]);
writer.emit_block("run_stress", block);
}
@ -287,29 +282,10 @@ TEST(FixTimestep, plain)
double epsilon = test_config.epsilon;
auto tag = lmp->atom->tag;
auto x = lmp->atom->x;
auto v = lmp->atom->v;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &x_ref = test_config.run_pos;
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, normal run, verlet: " << stats << std::endl;
const std::vector<coord_t> &v_ref = test_config.run_vel;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, normal run, verlet: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (normal run, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (normal run, verlet)", lmp->atom, test_config.run_vel, epsilon);
int ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -317,15 +293,7 @@ TEST(FixTimestep, plain)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress normal run, verlet: " << stats << std::endl;
EXPECT_STRESS("run_stress (normal run, verlet)", fix->virial, test_config.run_stress, epsilon);
}
stats.reset();
@ -365,26 +333,8 @@ TEST(FixTimestep, plain)
restart_lammps(lmp, test_config, false, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
tag = lmp->atom->tag;
x = lmp->atom->x;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, restart, verlet: " << stats << std::endl;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, restart, verlet: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (restart, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (restart, verlet)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -392,15 +342,7 @@ TEST(FixTimestep, plain)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress restart, verlet: " << stats << std::endl;
EXPECT_STRESS("run_stress (restart, verlet)", fix->virial, test_config.run_stress, epsilon);
}
stats.reset();
@ -429,26 +371,8 @@ TEST(FixTimestep, plain)
restart_lammps(lmp, test_config, true, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
x = lmp->atom->x;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, rmass, verlet: " << stats << std::endl;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, rmass, verlet: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (rmass, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (rmass, verlet)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -456,15 +380,7 @@ TEST(FixTimestep, plain)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress rmass, verlet: " << stats << std::endl;
EXPECT_STRESS("run_stress (rmass, verlet)", fix->virial, test_config.run_stress, epsilon);
}
stats.reset();
@ -507,26 +423,8 @@ TEST(FixTimestep, plain)
// lower required precision by two orders of magnitude to accommodate respa
epsilon *= 100.0;
tag = lmp->atom->tag;
x = lmp->atom->x;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, normal run, respa: " << stats << std::endl;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, normal run, respa: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (normal run, respa)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (normal run, respa)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -534,16 +432,7 @@ TEST(FixTimestep, plain)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 1000 * epsilon);
if (print_stats)
std::cerr << "run_stress normal run, respa: " << stats << std::endl;
EXPECT_STRESS("run_stress (normal run, respa)", fix->virial, test_config.run_stress, 1000 * epsilon);
}
stats.reset();
@ -571,26 +460,8 @@ TEST(FixTimestep, plain)
restart_lammps(lmp, test_config, false, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
tag = lmp->atom->tag;
x = lmp->atom->x;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, restart, respa: " << stats << std::endl;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, restart, respa: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (restart, respa)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (restart, respa)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -598,15 +469,7 @@ TEST(FixTimestep, plain)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 1000 * epsilon);
if (print_stats) std::cerr << "run_stress restart, respa: " << stats << std::endl;
EXPECT_STRESS("run_stress (restart, respa)", fix->virial, test_config.run_stress, 1000 * epsilon);
}
stats.reset();
@ -635,26 +498,8 @@ TEST(FixTimestep, plain)
restart_lammps(lmp, test_config, true, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
x = lmp->atom->x;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, rmass, respa: " << stats << std::endl;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, rmass, respa: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (rmass, respa)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (rmass, respa)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -662,15 +507,7 @@ TEST(FixTimestep, plain)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 1000 * epsilon);
if (print_stats) std::cerr << "run_stress rmass, respa: " << stats << std::endl;
EXPECT_STRESS("run_stress (rmass, respa)", fix->virial, test_config.run_stress, 1000 * epsilon);
}
stats.reset();
@ -739,29 +576,10 @@ TEST(FixTimestep, omp)
double epsilon = test_config.epsilon;
auto tag = lmp->atom->tag;
auto x = lmp->atom->x;
auto v = lmp->atom->v;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &x_ref = test_config.run_pos;
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, normal run, verlet: " << stats << std::endl;
const std::vector<coord_t> &v_ref = test_config.run_vel;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, normal run, verlet: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (normal run, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (normal run, verlet)", lmp->atom, test_config.run_vel, epsilon);
int ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -769,15 +587,7 @@ TEST(FixTimestep, omp)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress normal run, verlet: " << stats << std::endl;
EXPECT_STRESS("run_stress (normal run, verlet)", fix->virial, test_config.run_stress, epsilon);
}
stats.reset();
@ -817,26 +627,8 @@ TEST(FixTimestep, omp)
restart_lammps(lmp, test_config, false, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
tag = lmp->atom->tag;
x = lmp->atom->x;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, restart, verlet: " << stats << std::endl;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, restart, verlet: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (restart, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (restart, verlet)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -844,15 +636,7 @@ TEST(FixTimestep, omp)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress restart, verlet: " << stats << std::endl;
EXPECT_STRESS("run_stress (restart, verlet)", fix->virial, test_config.run_stress, epsilon);
}
stats.reset();
@ -881,26 +665,8 @@ TEST(FixTimestep, omp)
restart_lammps(lmp, test_config, true, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
x = lmp->atom->x;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, rmass, verlet: " << stats << std::endl;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, rmass, verlet: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (rmass, verlet)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (rmass, verlet)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -908,15 +674,7 @@ TEST(FixTimestep, omp)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress rmass, verlet: " << stats << std::endl;
EXPECT_STRESS("run_stress (rmass, verlet)", fix->virial, test_config.run_stress, epsilon);
}
stats.reset();
@ -958,27 +716,8 @@ TEST(FixTimestep, omp)
// lower required precision by two orders of magnitude to accommodate respa
epsilon *= 100.0;
tag = lmp->atom->tag;
x = lmp->atom->x;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, normal run, respa: " << stats << std::endl;
printf("x1\n");
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, normal run, respa: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (normal run, respa)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (normal run, respa)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -986,16 +725,7 @@ TEST(FixTimestep, omp)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 1000 * epsilon);
if (print_stats)
std::cerr << "run_stress normal run, respa: " << stats << std::endl;
EXPECT_STRESS("run_stress (normal run, respa)", fix->virial, test_config.run_stress, 1000 * epsilon);
}
stats.reset();
@ -1023,26 +753,8 @@ TEST(FixTimestep, omp)
restart_lammps(lmp, test_config, false, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
tag = lmp->atom->tag;
x = lmp->atom->x;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, restart, respa: " << stats << std::endl;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, restart, respa: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (restart, respa)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (restart, respa)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -1050,15 +762,7 @@ TEST(FixTimestep, omp)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 1000 * epsilon);
if (print_stats) std::cerr << "run_stress restart, respa: " << stats << std::endl;
EXPECT_STRESS("run_stress (restart, respa)", fix->virial, test_config.run_stress, 1000 * epsilon);
}
stats.reset();
@ -1087,26 +791,8 @@ TEST(FixTimestep, omp)
restart_lammps(lmp, test_config, true, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
x = lmp->atom->x;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, x_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_pos, rmass, respa: " << stats << std::endl;
v = lmp->atom->v;
stats.reset();
ASSERT_EQ(nlocal + 1, v_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << "run_vel, rmass, respa: " << stats << std::endl;
EXPECT_POSITIONS("run_pos (rmass, respa)", lmp->atom, test_config.run_pos, epsilon);
EXPECT_VELOCITIES("run_vel (rmass, respa)", lmp->atom, test_config.run_vel, epsilon);
ifix = lmp->modify->find_fix("test");
if (ifix < 0) {
@ -1114,15 +800,7 @@ TEST(FixTimestep, omp)
} else {
Fix *fix = lmp->modify->fix[ifix];
if (fix->thermo_virial) {
stats.reset();
auto stress = fix->virial;
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, 1000 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, 1000 * epsilon);
if (print_stats) std::cerr << "run_stress rmass, respa: " << stats << std::endl;
EXPECT_STRESS("run_stress (rmass, respa)", fix->virial, test_config.run_stress, 1000 * epsilon);
}
stats.reset();

View File

@ -33,6 +33,7 @@
#include "lammps.h"
#include "modify.h"
#include "universe.h"
#include "platform.h"
#include <cctype>
#include <cstdio>
@ -50,16 +51,11 @@ using ::testing::StartsWith;
using namespace LAMMPS_NS;
static void delete_file(const std::string &filename)
{
remove(filename.c_str());
};
void cleanup_lammps(LAMMPS *lmp, const TestConfig &cfg)
{
delete_file(cfg.basename + ".restart");
delete_file(cfg.basename + ".data");
delete_file(cfg.basename + "-coeffs.in");
platform::unlink(cfg.basename + ".restart");
platform::unlink(cfg.basename + ".data");
platform::unlink(cfg.basename + "-coeffs.in");
delete lmp;
}
@ -112,7 +108,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new
command(pre_command);
}
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
command("improper_style " + cfg.improper_style);
@ -198,7 +194,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
command("variable improper_style index '" + cfg.improper_style + "'");
command("variable data_file index " + cfg.basename + ".data");
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
for (auto &improper_coeff : cfg.improper_coeff) {
@ -283,7 +279,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
// run_stress
stress = lmp->force->improper->virial;
block = fmt::format("{:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e} {:23.16e}", stress[0],
stress[1], stress[2], stress[3], stress[4], stress[5]);
stress[1], stress[2], stress[3], stress[4], stress[5]);
writer.emit_block("run_stress", block);
block.clear();
@ -331,29 +327,11 @@ TEST(ImproperStyle, plain)
double epsilon = test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &f_ref = test_config.init_forces;
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 on: " << stats << std::endl;
auto improper = lmp->force->improper;
auto stress = improper->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "init_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", improper->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon);
@ -363,29 +341,8 @@ TEST(ImproperStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = improper->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = improper->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", improper->virial, test_config.run_stress, epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -401,27 +358,10 @@ TEST(ImproperStyle, plain)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
improper = lmp->force->improper;
stress = improper->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 2 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 2 * epsilon);
if (print_stats) std::cerr << "init_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, 2 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon);
@ -431,26 +371,8 @@ TEST(ImproperStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = improper->virial;
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = improper->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", improper->virial, test_config.run_stress, epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -464,27 +386,10 @@ TEST(ImproperStyle, plain)
restart_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "restart_forces stats:" << stats << std::endl;
improper = lmp->force->improper;
stress = improper->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "restart_stress stats:" << stats << std::endl;
EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("restart_stress", improper->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon);
@ -494,27 +399,10 @@ TEST(ImproperStyle, plain)
data_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "data_forces stats:" << stats << std::endl;
improper = lmp->force->improper;
stress = improper->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "data_stress stats:" << stats << std::endl;
EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("data_stress", improper->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon);
@ -561,30 +449,11 @@ TEST(ImproperStyle, omp)
// relax error a bit for OPENMP package
double epsilon = 5.0 * test_config.epsilon;
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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 on: " << stats << std::endl;
auto improper = lmp->force->improper;
auto stress = improper->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 on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", improper->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon);
@ -594,29 +463,8 @@ TEST(ImproperStyle, omp)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = improper->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
stats.reset();
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_run[tag[i]].x, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton on: " << stats << std::endl;
stress = improper->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 on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton on)", improper->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -635,27 +483,10 @@ TEST(ImproperStyle, omp)
// skip over these tests if newton bond is forced to be on
if (lmp->force->newton_bond == 0) {
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_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;
improper = lmp->force->improper;
stress = improper->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;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", improper->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(improper->energy, test_config.init_energy, epsilon);
@ -665,25 +496,8 @@ TEST(ImproperStyle, omp)
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, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_run[tag[i]].y, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_run[tag[i]].z, 10 * epsilon);
}
if (print_stats) std::cerr << "run_forces stats, newton off:" << stats << std::endl;
stress = improper->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;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 10 * epsilon);
EXPECT_STRESS("run_stress (newton off)", improper->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");

View File

@ -15,10 +15,13 @@
#include "pointers.h"
#include "test_config.h"
#include "test_config_reader.h"
#include "error_stats.h"
#include "utils.h"
#include "yaml_writer.h"
#include "gmock/gmock.h"
#include "gtest/gtest.h"
#include "lammps.h"
#include "atom.h"
#include <cstdlib>
#include <cstring>
@ -27,8 +30,69 @@
#include <mpi.h>
#include <vector>
using LAMMPS_NS::LAMMPS;
using LAMMPS_NS::Atom;
using LAMMPS_NS::utils::split_words;
using LAMMPS_NS::utils::trim;
using LAMMPS_NS::tagint;
void EXPECT_STRESS(const std::string & name, double * stress, const stress_t & expected_stress, double epsilon)
{
SCOPED_TRACE("EXPECT_STRESS: " + name);
ErrorStats stats;
EXPECT_FP_LE_WITH_EPS(stress[0], expected_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], expected_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], expected_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], expected_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], expected_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], expected_stress.yz, epsilon);
if (print_stats) std::cerr << name << " stats" << stats << std::endl;
}
void EXPECT_FORCES(const std::string & name, Atom * atom, const std::vector<coord_t> & f_ref, double epsilon) {
SCOPED_TRACE("EXPECT_FORCES: " + name);
double ** f = atom->f;
tagint * tag = atom->tag;
const int nlocal = atom->nlocal;
ASSERT_EQ(nlocal + 1, f_ref.size());
ErrorStats stats;
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 << name << " stats" << stats << std::endl;
}
void EXPECT_POSITIONS(const std::string & name, Atom * atom, const std::vector<coord_t> & x_ref, double epsilon) {
SCOPED_TRACE("EXPECT_POSITIONS: " + name);
double ** x = atom->x;
tagint * tag = atom->tag;
const int nlocal = atom->nlocal;
ASSERT_EQ(nlocal + 1, x_ref.size());
ErrorStats stats;
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(x[i][0], x_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][1], x_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(x[i][2], x_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << name << " stats" << stats << std::endl;
}
void EXPECT_VELOCITIES(const std::string & name, Atom * atom, const std::vector<coord_t> & v_ref, double epsilon) {
SCOPED_TRACE("EXPECT_VELOCITIES: " + name);
double ** v = atom->v;
tagint * tag = atom->tag;
const int nlocal = atom->nlocal;
ASSERT_EQ(nlocal + 1, v_ref.size());
ErrorStats stats;
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(v[i][0], v_ref[tag[i]].x, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][1], v_ref[tag[i]].y, epsilon);
EXPECT_FP_LE_WITH_EPS(v[i][2], v_ref[tag[i]].z, epsilon);
}
if (print_stats) std::cerr << name << " stats" << stats << std::endl;
}
// common read_yaml_file function
bool read_yaml_file(const char *infile, TestConfig &config)

View File

@ -15,7 +15,10 @@
#define TEST_MAIN_H
#include "test_config.h"
#include "lammps.h"
#include "atom.h"
#include <string>
#include <vector>
extern TestConfig test_config;
extern bool print_stats;
@ -34,10 +37,9 @@ void write_yaml_header(class YamlWriter *writer, TestConfig *cfg, const char *ve
EXPECT_PRED_FORMAT2(::testing::DoubleLE, err, eps); \
} while (0);
#if defined _WIN32
static const char PATH_SEP = '\\';
#else
static const char PATH_SEP = '/';
#endif
void EXPECT_STRESS(const std::string & name, double * stress, const stress_t & expected_stress, double epsilon);
void EXPECT_FORCES(const std::string & name, LAMMPS_NS::Atom * atom, const std::vector<coord_t> & f_ref, double epsilon);
void EXPECT_POSITIONS(const std::string & name, LAMMPS_NS::Atom * atom, const std::vector<coord_t> & x_ref, double epsilon);
void EXPECT_VELOCITIES(const std::string & name, LAMMPS_NS::Atom * atom, const std::vector<coord_t> & v_ref, double epsilon);
#endif

View File

@ -34,6 +34,7 @@
#include "pair.h"
#include "universe.h"
#include "utils.h"
#include "platform.h"
#include <cctype>
#include <cstdio>
@ -51,18 +52,12 @@ using ::testing::StartsWith;
using namespace LAMMPS_NS;
static void delete_file(const std::string &filename)
{
remove(filename.c_str());
};
void cleanup_lammps(LAMMPS *lmp, const TestConfig &cfg)
{
delete_file(cfg.basename + ".restart");
delete_file(cfg.basename + ".data");
delete_file(cfg.basename + "-coeffs.in");
platform::unlink(cfg.basename + ".restart");
platform::unlink(cfg.basename + ".data");
platform::unlink(cfg.basename + "-coeffs.in");
delete lmp;
lmp = nullptr;
}
LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool newton = true)
@ -114,7 +109,7 @@ LAMMPS *init_lammps(int argc, char **argv, const TestConfig &cfg, const bool new
command(pre_command);
}
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
command("pair_style " + cfg.pair_style);
@ -212,7 +207,7 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
command("variable pair_style index '" + cfg.pair_style + "'");
command("variable data_file index " + cfg.basename + ".data");
std::string input_file = INPUT_FOLDER + PATH_SEP + cfg.input_file;
std::string input_file = platform::path_join(INPUT_FOLDER, cfg.input_file);
parse_input_script(input_file);
for (auto &pair_coeff : cfg.pair_coeff) {
@ -361,30 +356,12 @@ TEST(PairStyle, plain)
if (lmp->force->kspace && lmp->force->kspace->compute_flag)
if (utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8;
#endif
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
ErrorStats stats;
stats.reset();
const std::vector<coord_t> &f_ref = test_config.init_forces;
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 on: " << 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, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "init_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", pair->virial, test_config.init_stress, epsilon);
ErrorStats stats;
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);
@ -394,29 +371,8 @@ TEST(PairStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = pair->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
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 on: " << stats << std::endl;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (newton on)", pair->virial, test_config.run_stress, epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -436,27 +392,10 @@ TEST(PairStyle, plain)
// skip over these tests if newton pair is forced to be on
if (lmp->force->newton_pair == 0) {
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_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;
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 3 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 3 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 3 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 3 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 3 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 3 * epsilon);
if (print_stats) std::cerr << "init_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", pair->virial, test_config.init_stress, 3 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -467,26 +406,8 @@ TEST(PairStyle, plain)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = pair->virial;
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, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (newton off)", pair->virial, test_config.run_stress, epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -503,27 +424,10 @@ TEST(PairStyle, plain)
restart_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "restart_forces stats:" << stats << std::endl;
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "restart_stress stats:" << stats << std::endl;
EXPECT_FORCES("restart_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("restart_stress", pair->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -536,27 +440,10 @@ TEST(PairStyle, plain)
restart_lammps(lmp, test_config, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "nofdotr_forces stats:" << stats << std::endl;
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "nofdotr_stress stats:" << stats << std::endl;
EXPECT_FORCES("nofdotr_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("nofdotr_stress", pair->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -568,27 +455,9 @@ TEST(PairStyle, plain)
data_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 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 << "data_forces stats:" << stats << std::endl;
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, epsilon);
if (print_stats) std::cerr << "data_stress stats:" << stats << std::endl;
EXPECT_FORCES("data_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("data_stress", pair->virial, test_config.init_stress, epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -609,25 +478,8 @@ TEST(PairStyle, plain)
pair = lmp->force->pair;
if (pair->ncoultablebits) epsilon *= 5.0e6;
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, r-RESPA:" << stats << std::endl;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.run_stress.xx, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.run_stress.yy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.run_stress.zz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.run_stress.xy, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.run_stress.xz, epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.run_stress.yz, epsilon);
if (print_stats) std::cerr << "run_stress stats, r-RESPA:" << stats << std::endl;
EXPECT_FORCES("run_forces (r-RESPA)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (r-RESPA)", pair->virial, test_config.run_stress, epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -685,29 +537,11 @@ TEST(PairStyle, omp)
if (lmp->force->kspace && lmp->force->kspace->compute_flag)
if (utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8;
#endif
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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 on: " << 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 on: " << stats << std::endl;
ErrorStats stats;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -718,29 +552,8 @@ TEST(PairStyle, omp)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
stress = pair->virial;
tag = lmp->atom->tag;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
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 on: " << 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 on: " << stats << std::endl;
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 5* epsilon);
EXPECT_STRESS("run_stress (newton on)", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -758,26 +571,10 @@ TEST(PairStyle, omp)
lmp = init_lammps(argc, argv, test_config, false);
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_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;
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 10 * epsilon);
if (print_stats) std::cerr << "init_stress stats, newton off:" << stats << std::endl;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -788,25 +585,8 @@ TEST(PairStyle, omp)
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;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (newton off)", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
@ -821,27 +601,133 @@ TEST(PairStyle, omp)
restart_lammps(lmp, test_config, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
pair = lmp->force->pair;
EXPECT_FORCES("nofdotr_forces", lmp->atom, test_config.init_forces, 5 * epsilon);
EXPECT_STRESS("nofdotr_stress", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 5 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_ref[tag[i]].y, 5 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_ref[tag[i]].z, 5 * epsilon);
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, 5 * epsilon);
EXPECT_FP_LE_WITH_EPS(pair->eng_coul, test_config.init_coul, 5 * epsilon);
if (print_stats) std::cerr << "nofdotr_energy stats:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp, test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
};
TEST(PairStyle, kokkos_omp)
{
if (!LAMMPS::is_installed_pkg("KOKKOS")) GTEST_SKIP();
if (test_config.skip_tests.count(test_info_->name())) GTEST_SKIP();
if (!Info::has_accelerator_feature("KOKKOS", "api", "openmp")) GTEST_SKIP();
const char *args[] = {"PairStyle", "-log", "none", "-echo", "screen", "-nocite",
"-k", "on", "t", "4", "-sf", "kk"};
// cannot run dpd styles with more than 1 thread due to using multiple pRNGs
if (utils::strmatch(test_config.pair_style, "^dpd")) args[9] = "1";
char **argv = (char **)args;
int argc = sizeof(args) / sizeof(char *);
::testing::internal::CaptureStdout();
LAMMPS *lmp = init_lammps(argc, argv, test_config, true);
std::string output = ::testing::internal::GetCapturedStdout();
if (verbose) std::cout << output;
if (!lmp) {
std::cerr << "One or more prerequisite styles with /kk 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();
}
if (print_stats) std::cerr << "nofdotr_forces stats:" << stats << std::endl;
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);
// relax error a bit for KOKKOS package
double epsilon = 5.0 * 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
auto pair = lmp->force->pair;
ErrorStats stats;
EXPECT_FORCES("init_forces (newton on)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton on)", pair->virial, test_config.init_stress, 10 * epsilon);
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 on: " << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
EXPECT_FORCES("run_forces (newton on)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (newton on)", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
double 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 on: " << stats << std::endl;
// skip over these tests if newton pair is forced to be on
if (lmp->force->newton_pair == 0) {
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp, test_config);
lmp = init_lammps(argc, argv, test_config, false);
if (!verbose) ::testing::internal::GetCapturedStdout();
pair = lmp->force->pair;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", pair->virial, test_config.init_stress, 10 * epsilon);
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();
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (newton off)", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
id = lmp->modify->find_compute("sum");
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();
restart_lammps(lmp, test_config, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 10 * epsilon);
if (print_stats) std::cerr << "nofdotr_stress stats:" << stats << std::endl;
EXPECT_FORCES("nofdotr_forces", lmp->atom, test_config.init_forces, 5 * epsilon);
EXPECT_STRESS("nofdotr_stress", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, 5 * epsilon);
@ -917,30 +803,11 @@ TEST(PairStyle, gpu)
Info::has_accelerator_feature("GPU", "precision", "double"))
if (utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8;
#endif
const std::vector<coord_t> &f_ref = test_config.init_forces;
const std::vector<coord_t> &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;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress (newton off)", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -951,25 +818,8 @@ TEST(PairStyle, gpu)
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;
EXPECT_FORCES("run_forces (newton off)", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress (newton off)", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
auto id = lmp->modify->find_compute("sum");
@ -1037,29 +887,11 @@ TEST(PairStyle, intel)
const int nlocal = lmp->atom->nlocal;
ASSERT_EQ(lmp->atom->natoms, nlocal);
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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:" << stats << std::endl;
auto pair = lmp->force->pair;
Pair *pair = lmp->force->pair;
double *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:" << stats << std::endl;
EXPECT_FORCES("init_forces", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -1070,29 +902,8 @@ TEST(PairStyle, intel)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = pair->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
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:" << 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:" << stats << std::endl;
EXPECT_FORCES("run_forces", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -1150,29 +961,11 @@ TEST(PairStyle, opt)
if (lmp->force->kspace && lmp->force->kspace->compute_flag)
if (utils::strmatch(lmp->force->kspace_style, "^pppm")) epsilon *= 2.0e8;
#endif
auto f = lmp->atom->f;
auto tag = lmp->atom->tag;
const std::vector<coord_t> &f_ref = test_config.init_forces;
ErrorStats stats;
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:" << stats << std::endl;
auto pair = lmp->force->pair;
Pair *pair = lmp->force->pair;
double *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:" << stats << std::endl;
EXPECT_FORCES("init_forces (newton off)", lmp->atom, test_config.init_forces, epsilon);
EXPECT_STRESS("init_stress", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, epsilon);
@ -1183,28 +976,8 @@ TEST(PairStyle, opt)
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stress = pair->virial;
const std::vector<coord_t> &f_run = test_config.run_forces;
ASSERT_EQ(nlocal + 1, f_run.size());
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:" << 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:" << stats << std::endl;
EXPECT_FORCES("run_forces", lmp->atom, test_config.run_forces, 5 * epsilon);
EXPECT_STRESS("run_stress", pair->virial, test_config.run_stress, 10 * epsilon);
stats.reset();
int id = lmp->modify->find_compute("sum");
@ -1218,27 +991,10 @@ TEST(PairStyle, opt)
restart_lammps(lmp, test_config, true);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
tag = lmp->atom->tag;
stats.reset();
ASSERT_EQ(nlocal + 1, f_ref.size());
for (int i = 0; i < nlocal; ++i) {
EXPECT_FP_LE_WITH_EPS(f[i][0], f_ref[tag[i]].x, 5 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][1], f_ref[tag[i]].y, 5 * epsilon);
EXPECT_FP_LE_WITH_EPS(f[i][2], f_ref[tag[i]].z, 5 * epsilon);
}
if (print_stats) std::cerr << "nofdotr_forces stats:" << stats << std::endl;
pair = lmp->force->pair;
stress = pair->virial;
stats.reset();
EXPECT_FP_LE_WITH_EPS(stress[0], test_config.init_stress.xx, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[1], test_config.init_stress.yy, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[2], test_config.init_stress.zz, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[3], test_config.init_stress.xy, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[4], test_config.init_stress.xz, 10 * epsilon);
EXPECT_FP_LE_WITH_EPS(stress[5], test_config.init_stress.yz, 10 * epsilon);
if (print_stats) std::cerr << "nofdotr_stress stats:" << stats << std::endl;
EXPECT_FORCES("nofdotr_forces", lmp->atom, test_config.init_forces, 5 * epsilon);
EXPECT_STRESS("nofdotr_stress", pair->virial, test_config.init_stress, 10 * epsilon);
stats.reset();
EXPECT_FP_LE_WITH_EPS(pair->eng_vdwl, test_config.init_vdwl, 5 * epsilon);

View File

@ -1,7 +1,7 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:23 2021
lammps_version: 17 Feb 2022
epsilon: 1e-12
skip_tests:
prerequisites: ! |
atom full
angle charmm
@ -14,73 +14,73 @@ angle_coeff: ! |
2 46.1 111.3 0.0 0.000
3 40.0 120.0 35.0 2.410
4 33.0 108.5 30.0 2.163
equilibrium: 4 1.9216075064457565 1.9425514574696887 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9425514574696887 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 85.4248638845977
init_energy: 85.42486388459771
init_stress: ! |2-
1.8143089201050887e+02 -4.4008327668528100e+00 1.1809359848490450e+02 1.3470039754098281e+02 9.3127587748087279e+01 2.3868960580224421e+01
1.8143089201050884e+02 -4.4008327668528047e+00 1.1809359848490450e+02 1.3470039754098283e+02 9.3127587748087336e+01 2.3868960580224417e+01
init_forces: ! |2
1 3.8386618977092809e+01 9.2563644890222108e+00 -2.2416069655629478e+01
2 4.8047222128896552e+00 5.8908874219218736e+00 -3.6078250436995862e+00
3 2.6714408920784543e+00 -2.3742017076932243e-02 2.1100086635874408e+01
4 -1.9280446193919857e+01 -1.0907565986617040e+01 -2.0121340659982309e+01
5 -1.8343508172093760e+01 -4.1071023429215984e+01 1.6108594011594683e+01
6 2.1238309901668043e+01 5.7121253219257824e+00 -1.6787970380345595e+01
1 3.8386618977092809e+01 9.2563644890222072e+00 -2.2416069655629496e+01
2 4.8047222128896561e+00 5.8908874219218834e+00 -3.6078250436995782e+00
3 2.6714408920784418e+00 -2.3742017076909150e-02 2.1100086635874433e+01
4 -1.9280446193919854e+01 -1.0907565986617049e+01 -2.0121340659982323e+01
5 -1.8343508172093753e+01 -4.1071023429215998e+01 1.6108594011594683e+01
6 2.1238309901668035e+01 5.7121253219257753e+00 -1.6787970380345595e+01
7 -2.5311264980599468e+01 1.9532283354226724e+01 -2.4286994823128929e+01
8 1.0452003565543395e+01 -2.3201291666991558e+01 9.0068263361646899e+01
8 1.0452003565543388e+01 -2.3201291666991573e+01 9.0068263361646899e+01
9 -1.5916624143704812e+01 1.6483610301406415e+01 -4.1516194400253736e-01
10 1.5262370040243479e+01 1.7209374979747956e+01 -5.0097168024346068e+01
10 1.5262370040243503e+01 1.7209374979747970e+01 -5.0097168024346075e+01
11 -2.1025039799233362e+01 -6.8138721666064477e+00 9.3257489337892920e+00
12 -3.7942492100969893e+00 -1.8949256479033437e+01 7.2924357616797710e+00
13 2.6829248438599908e+01 -1.8477615701199301e+01 7.6270643598239811e+00
14 -9.1419604634794620e+00 -5.8258733174381518e+00 -3.5139934203515040e+01
15 -3.9745927947694284e+00 2.5196516981363281e+01 3.2110867442129567e+01
16 -2.9503839293712968e+00 2.5409363689785007e+01 -7.2255876751122914e+00
17 9.3355659152692783e-02 5.7971422477959977e-01 -3.5350080967767701e+00
18 7.0507994374434446e-02 7.3680637947826888e-01 -2.9901987340388825e+00
19 -1.8729001948214922e+01 -1.6361947190261777e+01 -3.2134590021289293e+00
20 1.8658493953840487e+01 1.5625140810783508e+01 6.2036577361678118e+00
21 1.5269813353706816e+00 1.9115283296031365e+00 -5.7126680835892021e+00
22 -2.4212822369319898e+01 -1.1732635537541306e+01 -7.1373318326447102e+00
23 2.2685841033949217e+01 9.8211072079381694e+00 1.2849999916233912e+01
24 -5.8307622758841404e-01 2.2664518498581661e+00 -1.3493584963979171e+00
25 -1.9566415223447844e+01 -1.2547949048865153e+01 -1.0241193948074248e+01
26 2.0149491451036258e+01 1.0281497199006987e+01 1.1590552444472165e+01
27 -1.2828590583680111e-01 1.0531267905268624e+00 -3.5872993954368049e-01
28 -2.1397316777571888e+01 -6.8536308873550515e+00 -1.0104593869135021e+01
29 2.1525602683408689e+01 5.8005040968281891e+00 1.0463323808678702e+01
run_energy: 85.0418773515778
12 -3.7942492100969689e+00 -1.8949256479033416e+01 7.2924357616797462e+00
13 2.6829248438599905e+01 -1.8477615701199312e+01 7.6270643598239891e+00
14 -9.1419604634794709e+00 -5.8258733174381589e+00 -3.5139934203515040e+01
15 -3.9745927947694355e+00 2.5196516981363274e+01 3.2110867442129582e+01
16 -2.9503839293713172e+00 2.5409363689785017e+01 -7.2255876751122869e+00
17 9.3355659152699166e-02 5.7971422477959100e-01 -3.5350080967767656e+00
18 7.0507994374434446e-02 7.3680637947827243e-01 -2.9901987340389060e+00
19 -1.8729001948214929e+01 -1.6361947190261784e+01 -3.2134590021289191e+00
20 1.8658493953840495e+01 1.5625140810783511e+01 6.2036577361678251e+00
21 1.5269813353706887e+00 1.9115283296031436e+00 -5.7126680835892234e+00
22 -2.4212822369319909e+01 -1.1732635537541313e+01 -7.1373318326447031e+00
23 2.2685841033949220e+01 9.8211072079381694e+00 1.2849999916233926e+01
24 -5.8307622758841759e-01 2.2664518498581856e+00 -1.3493584963979277e+00
25 -1.9566415223447848e+01 -1.2547949048865167e+01 -1.0241193948074246e+01
26 2.0149491451036265e+01 1.0281497199006981e+01 1.1590552444472173e+01
27 -1.2828590583680111e-01 1.0531267905268855e+00 -3.5872993954368759e-01
28 -2.1397316777571895e+01 -6.8536308873550649e+00 -1.0104593869135021e+01
29 2.1525602683408696e+01 5.8005040968281794e+00 1.0463323808678709e+01
run_energy: 85.04187735157775
run_stress: ! |2-
1.8012121267556859e+02 -4.6946144659715401e+00 1.1788231937577407e+02 1.3413231562226755e+02 9.2660175182735685e+01 2.3291837947470942e+01
1.8012121267556856e+02 -4.6946144659715507e+00 1.1788231937577407e+02 1.3413231562226755e+02 9.2660175182735713e+01 2.3291837947470960e+01
run_forces: ! |2
1 3.8118215247385578e+01 9.3158891150979617e+00 -2.2235196779381894e+01
2 4.7446383048075313e+00 5.6766508464956900e+00 -3.6982594464011989e+00
3 3.1149110433173788e+00 -2.9235876910292546e-01 2.0771850131756278e+01
4 -1.9213776668483394e+01 -1.0713679638456888e+01 -1.9827377096781120e+01
5 -1.8462986210023516e+01 -4.0912757647333258e+01 1.6016557702839879e+01
6 2.1320408843036898e+01 5.6489845377932966e+00 -1.6840267466256492e+01
1 3.8118215247385585e+01 9.3158891150979528e+00 -2.2235196779381909e+01
2 4.7446383048075331e+00 5.6766508464957006e+00 -3.6982594464011900e+00
3 3.1149110433173663e+00 -2.9235876910289882e-01 2.0771850131756295e+01
4 -1.9213776668483387e+01 -1.0713679638456899e+01 -1.9827377096781134e+01
5 -1.8462986210023505e+01 -4.0912757647333265e+01 1.6016557702839879e+01
6 2.1320408843036891e+01 5.6489845377932895e+00 -1.6840267466256492e+01
7 -2.5337148538378756e+01 1.9575167714362749e+01 -2.4211425008511085e+01
8 1.0402500234579088e+01 -2.3124673095658373e+01 9.0001704276300842e+01
8 1.0402500234579081e+01 -2.3124673095658380e+01 9.0001704276300842e+01
9 -1.5935169154860102e+01 1.6504102172504812e+01 -4.0325180892868806e-01
10 1.5361132526764665e+01 1.6972436102402419e+01 -5.0009834334305353e+01
10 1.5361132526764687e+01 1.6972436102402433e+01 -5.0009834334305346e+01
11 -2.1009023103269463e+01 -6.7853788579354752e+00 9.3150254065112641e+00
12 -4.1242681396404217e+00 -1.8884325060764713e+01 7.5941409807812175e+00
13 2.6716685384920325e+01 -1.8479210646320460e+01 7.6519504974846377e+00
14 -8.9813963745393934e+00 -5.6081411585049104e+00 -3.4974606169627144e+01
15 -3.9068665424157736e+00 2.5127983108798688e+01 3.1708967596018880e+01
16 -2.8902838051274999e+00 2.5379491745385284e+01 -7.2873773066545091e+00
17 8.2426951926853897e-02 5.9981953123609699e-01 -3.5726011748455146e+00
18 6.2973687099251663e-02 6.3250354487009020e-01 -2.5567134127911926e+00
19 -1.8456670000846625e+01 -1.6104493093882169e+01 -3.3376194263865493e+00
20 1.8393696313747373e+01 1.5471989549012079e+01 5.8943328391777419e+00
21 1.4361256154637871e+00 1.7851691643692806e+00 -5.3662421470650266e+00
22 -2.4004457378745911e+01 -1.1572072140686995e+01 -7.2248711252066702e+00
23 2.2568331763282124e+01 9.7869029763177142e+00 1.2591113272271697e+01
24 -5.1634756740144283e-01 2.0044573777520096e+00 -1.1921659540752660e+00
25 -1.9528421728171214e+01 -1.2408015443757698e+01 -1.0307901340145479e+01
26 2.0044769295572657e+01 1.0403558066005688e+01 1.1500067294220745e+01
27 -1.1702126880387453e-01 9.5304786947607312e-01 -3.2276094262571320e-01
28 -2.1371463893292912e+01 -6.8023506048817319e+00 -1.0118342451922880e+01
29 2.1488485162096786e+01 5.8493027354056588e+00 1.0441103394548593e+01
12 -4.1242681396404004e+00 -1.8884325060764695e+01 7.5941409807811837e+00
13 2.6716685384920318e+01 -1.8479210646320471e+01 7.6519504974846466e+00
14 -8.9813963745394023e+00 -5.6081411585049210e+00 -3.4974606169627137e+01
15 -3.9068665424157807e+00 2.5127983108798684e+01 3.1708967596018894e+01
16 -2.8902838051275208e+00 2.5379491745385291e+01 -7.2873773066545056e+00
17 8.2426951926860337e-02 5.9981953123608811e-01 -3.5726011748455102e+00
18 6.2973687099255216e-02 6.3250354487009375e-01 -2.5567134127912157e+00
19 -1.8456670000846632e+01 -1.6104493093882176e+01 -3.3376194263865395e+00
20 1.8393696313747377e+01 1.5471989549012083e+01 5.8943328391777552e+00
21 1.4361256154637942e+00 1.7851691643692877e+00 -5.3662421470650470e+00
22 -2.4004457378745922e+01 -1.1572072140687002e+01 -7.2248711252066622e+00
23 2.2568331763282128e+01 9.7869029763177142e+00 1.2591113272271709e+01
24 -5.1634756740144638e-01 2.0044573777520309e+00 -1.1921659540752767e+00
25 -1.9528421728171217e+01 -1.2408015443757712e+01 -1.0307901340145477e+01
26 2.0044769295572664e+01 1.0403558066005681e+01 1.1500067294220754e+01
27 -1.1702126880387453e-01 9.5304786947609621e-01 -3.2276094262572208e-01
28 -2.1371463893292919e+01 -6.8023506048817461e+00 -1.0118342451922880e+01
29 2.1488485162096794e+01 5.8493027354056499e+00 1.0441103394548602e+01
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 14 Dec 2021
date_generated: Tue Dec 21 11:26:44 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 1e-12
skip_tests:
prerequisites: ! |
@ -22,73 +22,73 @@ angle_coeff: ! |
1 ba 20.0 0.0 1.5 1.5
3 ba 10.0 10.0 1.5 1.5
4 ba 0.0 20.0 1.5 1.5
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
extract: ! ""
natoms: 29
init_energy: 46.440896837749044
init_energy: 46.44089683774903
init_stress: ! |2-
1.1893382158997322e+02 -8.8291447119046992e+01 -1.8868912456859972e+00 1.1299617626314146e+02 -8.5358891009896780e+00 7.6967639957246794e+00
1.1893382158997319e+02 -8.8291447119047007e+01 -1.8868912456860043e+00 1.1299617626314139e+02 -8.5358891009898059e+00 7.6967639957246767e+00
init_forces: ! |2
1 4.9843771864003834e+01 3.0925122596911816e+00 -3.5312722193312226e+01
2 -7.6547115157834666e-01 -6.1978334793953476e+00 -4.9838162348189323e+00
3 -2.0132137208074248e+01 6.1565994561526715e+01 5.8548546756498347e+01
4 -1.1800898073962109e+01 -2.7342191490108263e+01 3.6024091179236257e+00
5 -3.5756372747916700e+01 -5.0661360858658405e+01 -1.9085859271498553e+01
6 5.0734800121225135e+01 -1.5633459340466136e+01 -3.6451541950394720e+01
7 -1.8030285239813821e+01 1.7009172193091111e+01 1.5544411167675971e+00
8 -1.5632958318497042e+01 -2.1571227015465091e+01 7.4636601692831320e+01
9 -1.4606126670427546e+01 1.7088847325775880e+01 3.5265027966992157e+00
10 4.9412614063426892e+00 3.2891848318072718e+01 -5.8999099084298045e+01
1 4.9843771864003813e+01 3.0925122596912038e+00 -3.5312722193312169e+01
2 -7.6547115157835133e-01 -6.1978334793953787e+00 -4.9838162348189563e+00
3 -2.0132137208074187e+01 6.1565994561526658e+01 5.8548546756498297e+01
4 -1.1800898073962115e+01 -2.7342191490108249e+01 3.6024091179236541e+00
5 -3.5756372747916728e+01 -5.0661360858658362e+01 -1.9085859271498556e+01
6 5.0734800121225135e+01 -1.5633459340466121e+01 -3.6451541950394727e+01
7 -1.8030285239813821e+01 1.7009172193091111e+01 1.5544411167675989e+00
8 -1.5632958318497032e+01 -2.1571227015465091e+01 7.4636601692831306e+01
9 -1.4606126670427546e+01 1.7088847325775880e+01 3.5265027966992148e+00
10 4.9412614063426377e+00 3.2891848318072718e+01 -5.8999099084298024e+01
11 -2.0537012066379056e+01 -7.0930129287428976e+00 7.5068656204459945e+00
12 1.3804183606931298e+01 6.4447653590032914e+00 -2.7232856026007504e+01
13 3.5360349619705711e-01 9.1396982628926138e-01 4.4753951517849107e+00
14 9.6171168365401805e+00 -1.2052302426663841e+01 -3.9493877514992031e+00
15 6.4860723734536965e+00 -7.3468753785680629e+00 2.2291265160011950e+01
16 -2.1230106290243054e+00 1.3874285421512146e+01 6.8398804299585079e+00
17 3.6034624009792791e+00 -4.9831323468942506e+00 3.0333746689077179e+00
18 8.4504245756073892e-01 5.5042293626682808e+00 -2.1046811461460457e+01
19 -6.5342341140829419e+00 -7.9348302620004993e+00 8.7785874834232587e+00
20 5.6891916565222029e+00 2.4306008993322186e+00 1.2268223978037199e+01
21 7.8687847056106097e+00 9.2247825951126554e+00 -2.6147407661059020e+01
22 -1.3528173582118603e+01 -8.9511461518324538e+00 8.6148798736605858e+00
23 5.6593888765079932e+00 -2.7363644328020120e-01 1.7532527787398436e+01
24 -4.3228091413199312e+00 1.8218035887352222e+01 -1.0563459250035294e+01
25 -4.1518972409293955e+00 -1.2576945219214169e+01 1.7476216234117312e+00
26 8.4747063822493267e+00 -5.6410906681380535e+00 8.8158376266235621e+00
27 -1.9941459534406549e+00 1.7618141002760062e+01 -5.9162802776486032e+00
28 -4.8714180504657234e+00 -1.0506429973856317e+01 1.3714179563487131e-01
29 6.8655640039063783e+00 -7.1117110289037466e+00 5.7791384820137317e+00
run_energy: 46.04254213414856
12 1.3804183606931208e+01 6.4447653590032559e+00 -2.7232856026007383e+01
13 3.5360349619706588e-01 9.1396982628928802e-01 4.4753951517848503e+00
14 9.6171168365402409e+00 -1.2052302426663832e+01 -3.9493877514992173e+00
15 6.4860723734537205e+00 -7.3468753785680603e+00 2.2291265160011921e+01
16 -2.1230106290242547e+00 1.3874285421512122e+01 6.8398804299585017e+00
17 3.6034624009792626e+00 -4.9831323468942275e+00 3.0333746689077010e+00
18 8.4504245756073360e-01 5.5042293626682657e+00 -2.1046811461460404e+01
19 -6.5342341140829223e+00 -7.9348302620004780e+00 8.7785874834232374e+00
20 5.6891916565221887e+00 2.4306008993322124e+00 1.2268223978037167e+01
21 7.8687847056105955e+00 9.2247825951126377e+00 -2.6147407661058978e+01
22 -1.3528173582118580e+01 -8.9511461518324378e+00 8.6148798736605734e+00
23 5.6593888765079843e+00 -2.7363644328020054e-01 1.7532527787398404e+01
24 -4.3228091413199223e+00 1.8218035887352180e+01 -1.0563459250035271e+01
25 -4.1518972409293831e+00 -1.2576945219214139e+01 1.7476216234117292e+00
26 8.4747063822493054e+00 -5.6410906681380393e+00 8.8158376266235408e+00
27 -1.9941459534406523e+00 1.7618141002760016e+01 -5.9162802776485890e+00
28 -4.8714180504657065e+00 -1.0506429973856289e+01 1.3714179563487300e-01
29 6.8655640039063588e+00 -7.1117110289037271e+00 5.7791384820137157e+00
run_energy: 46.04254213414853
run_stress: ! |2-
1.1725321346181148e+02 -8.7851127936553254e+01 -1.2820805825603960e+00 1.1164348489319656e+02 -9.3238396977559397e+00 6.5868867241338807e+00
1.1725321346181143e+02 -8.7851127936553269e+01 -1.2820805825604045e+00 1.1164348489319646e+02 -9.3238396977560285e+00 6.5868867241338478e+00
run_forces: ! |2
1 4.9310488854556048e+01 3.4204699131043999e+00 -3.4719646460390109e+01
2 -8.0299294685685085e-01 -6.5454065929116556e+00 -5.2863994125400326e+00
3 -1.9344188743451483e+01 6.1008236345827427e+01 5.7990450617574737e+01
4 -1.1820915021801847e+01 -2.6960419197209372e+01 3.9252515610422387e+00
5 -3.5905034771726200e+01 -5.0435101635947014e+01 -1.9146824911182328e+01
6 5.0729278972279332e+01 -1.5703691297521928e+01 -3.6490325001299325e+01
7 -1.8043757960499846e+01 1.7038616039733434e+01 1.5516900804512148e+00
8 -1.5552591757457865e+01 -2.1589081417070179e+01 7.4580844287823936e+01
9 -1.4632487393832747e+01 1.7116771489893083e+01 3.5369114786793467e+00
10 5.0177324966376649e+00 3.2655409113932286e+01 -5.8914010758009439e+01
11 -2.0526018243356614e+01 -7.0603095274350611e+00 7.4991583014498691e+00
12 1.3523522841409502e+01 6.2514718031216852e+00 -2.6685798485651077e+01
13 3.0043046271322960e-01 7.8431109074530148e-01 4.5328635576848786e+00
14 9.6740453376714228e+00 -1.1603919453433887e+01 -3.9205080570168040e+00
15 6.5345442098934683e+00 -7.2391735244141353e+00 2.1740136588792641e+01
16 -2.0494434617404407e+00 1.3825958913895089e+01 6.7881976680816249e+00
17 3.5873871255632257e+00 -4.9641420643094554e+00 3.0180089445086313e+00
18 7.9531230378610207e-01 5.2629626454507630e+00 -2.0172279025467247e+01
19 -6.1997999385006839e+00 -7.5645533008417640e+00 8.4605118212170112e+00
20 5.4044876347145818e+00 2.3015906553910015e+00 1.1711767204250236e+01
21 7.6462499201271452e+00 8.9238366526271982e+00 -2.5489460284469285e+01
22 -1.3116044133706563e+01 -8.6583255717724796e+00 8.4434021193141291e+00
23 5.4697942135794175e+00 -2.6551108085471875e-01 1.7046058165155156e+01
24 -4.2497082139356905e+00 1.7742951256065766e+01 -1.0303002556901220e+01
25 -3.9777181755411437e+00 -1.2246864111150519e+01 1.7323644652289971e+00
26 8.2274263894768342e+00 -5.4960871449152453e+00 8.5706380916722225e+00
27 -2.0048516565658536e+00 1.7446299537442144e+01 -5.8315780788096188e+00
28 -4.7894277572886974e+00 -1.0406054769833135e+01 1.3027326655161572e-01
29 6.7942794138545510e+00 -7.0402447676090096e+00 5.7013048122580035e+00
1 4.9310488854556034e+01 3.4204699131044167e+00 -3.4719646460390052e+01
2 -8.0299294685685418e-01 -6.5454065929116858e+00 -5.2863994125400593e+00
3 -1.9344188743451443e+01 6.1008236345827335e+01 5.7990450617574652e+01
4 -1.1820915021801859e+01 -2.6960419197209340e+01 3.9252515610422742e+00
5 -3.5905034771726228e+01 -5.0435101635946978e+01 -1.9146824911182321e+01
6 5.0729278972279346e+01 -1.5703691297521907e+01 -3.6490325001299311e+01
7 -1.8043757960499843e+01 1.7038616039733434e+01 1.5516900804512135e+00
8 -1.5552591757457833e+01 -2.1589081417070172e+01 7.4580844287823922e+01
9 -1.4632487393832745e+01 1.7116771489893079e+01 3.5369114786793459e+00
10 5.0177324966375947e+00 3.2655409113932265e+01 -5.8914010758009418e+01
11 -2.0526018243356610e+01 -7.0603095274350611e+00 7.4991583014498673e+00
12 1.3523522841409452e+01 6.2514718031216390e+00 -2.6685798485651006e+01
13 3.0043046271324048e-01 7.8431109074532956e-01 4.5328635576848546e+00
14 9.6740453376714513e+00 -1.1603919453433868e+01 -3.9205080570168072e+00
15 6.5345442098934887e+00 -7.2391735244141309e+00 2.1740136588792609e+01
16 -2.0494434617403918e+00 1.3825958913895064e+01 6.7881976680816187e+00
17 3.5873871255632093e+00 -4.9641420643094323e+00 3.0180089445086140e+00
18 7.9531230378609674e-01 5.2629626454507479e+00 -2.0172279025467198e+01
19 -6.1997999385006652e+00 -7.5645533008417436e+00 8.4605118212169934e+00
20 5.4044876347145685e+00 2.3015906553909957e+00 1.1711767204250204e+01
21 7.6462499201271328e+00 8.9238366526271822e+00 -2.5489460284469246e+01
22 -1.3116044133706540e+01 -8.6583255717724636e+00 8.4434021193141167e+00
23 5.4697942135794069e+00 -2.6551108085471853e-01 1.7046058165155127e+01
24 -4.2497082139356825e+00 1.7742951256065716e+01 -1.0303002556901196e+01
25 -3.9777181755411322e+00 -1.2246864111150487e+01 1.7323644652289949e+00
26 8.2274263894768147e+00 -5.4960871449152311e+00 8.5706380916722011e+00
27 -2.0048516565658518e+00 1.7446299537442094e+01 -5.8315780788096037e+00
28 -4.7894277572886796e+00 -1.0406054769833107e+01 1.3027326655161764e-01
29 6.7942794138545315e+00 -7.0402447676089874e+00 5.7013048122579857e+00
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 14 Dec 2021
date_generated: Tue Dec 21 11:26:44 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
@ -22,73 +22,73 @@ angle_coeff: ! |
1 ba 20.0 0.0 1.5 1.5
3 ba 10.0 10.0 1.5 1.5
4 ba 0.0 20.0 1.5 1.5
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
extract: ! ""
natoms: 29
init_energy: 46.440802879647805
init_energy: 46.44080287964778
init_stress: ! |2-
1.1893137300688346e+02 -8.8292852846966269e+01 -1.8830369346769591e+00 1.1299640161336661e+02 -8.5357507162235464e+00 7.6984154056027378e+00
1.1893137300688339e+02 -8.8292852846966298e+01 -1.8830369346769484e+00 1.1299640161336652e+02 -8.5357507162236566e+00 7.6984154056027361e+00
init_forces: ! |2
1 4.9843888867383036e+01 3.0919808206030721e+00 -3.5311373179346681e+01
2 -7.6547138150424543e-01 -6.1978353410493483e+00 -4.9838177318164663e+00
3 -2.0133026476712903e+01 6.1564484240393824e+01 5.8546474701306153e+01
4 -1.1800938660819003e+01 -2.7342192898717585e+01 3.6024657641736728e+00
5 -3.5755844374603512e+01 -5.0659575042462862e+01 -1.9085218337836995e+01
6 5.0735338623572588e+01 -1.5634063045804186e+01 -3.6453557303514501e+01
7 -1.8030037186030640e+01 1.7008949856719713e+01 1.5544953754976136e+00
8 -1.5631909549634866e+01 -2.1569309751931716e+01 7.4640481484122148e+01
9 -1.4606116746275049e+01 1.7088845087132935e+01 3.5265010989798080e+00
10 4.9396801101823433e+00 3.2889776085852560e+01 -5.8999793708728561e+01
11 -2.0536178089795950e+01 -7.0922505905966178e+00 7.5061958159305604e+00
12 1.3803472075865960e+01 6.4452957521954772e+00 -2.7233422277061912e+01
13 3.5360433418053783e-01 9.1397190361994329e-01 4.4753960144004115e+00
14 9.6170274864467693e+00 -1.2052366363084635e+01 -3.9493583144003042e+00
15 6.4860666434559526e+00 -7.3468740092959814e+00 2.2291260899220667e+01
16 -2.1230180699866263e+00 1.3874295634189895e+01 6.8398950350932433e+00
17 3.6034623942756108e+00 -4.9831323377644736e+00 3.0333746639811334e+00
18 8.4504245006193557e-01 5.5042292843060157e+00 -2.1046811143441026e+01
19 -6.5342340222655810e+00 -7.9348301476147052e+00 8.7785873472291236e+00
20 5.6891915722036455e+00 2.4306008633086891e+00 1.2268223796211903e+01
21 7.8687833650945196e+00 9.2247809170080028e+00 -2.6147402645985622e+01
22 -1.3528171195048888e+01 -8.9511445243295924e+00 8.6148781007624322e+00
23 5.6593878299543681e+00 -2.7363639267841045e-01 1.7532524545223190e+01
24 -4.3228091005958014e+00 1.8218035729055110e+01 -1.0563459155791266e+01
25 -4.1518972082628096e+00 -1.2576945109768744e+01 1.7476216055126070e+00
26 8.4747063088586110e+00 -5.6410906192863681e+00 8.8158375502786583e+00
27 -1.9941459528172638e+00 1.7618140997642513e+01 -5.9162802759053958e+00
28 -4.8714180491026431e+00 -1.0506429970796459e+01 1.3714179556379100e-01
29 6.8655640019199069e+00 -7.1117110268460557e+00 5.7791384803416053e+00
run_energy: 46.04245232805462
1 4.9843888867383015e+01 3.0919808206030872e+00 -3.5311373179346624e+01
2 -7.6547138150424920e-01 -6.1978353410493758e+00 -4.9838177318164902e+00
3 -2.0133026476712857e+01 6.1564484240393746e+01 5.8546474701306124e+01
4 -1.1800938660819003e+01 -2.7342192898717560e+01 3.6024657641736915e+00
5 -3.5755844374603534e+01 -5.0659575042462826e+01 -1.9085218337836995e+01
6 5.0735338623572602e+01 -1.5634063045804170e+01 -3.6453557303514508e+01
7 -1.8030037186030640e+01 1.7008949856719717e+01 1.5544953754976154e+00
8 -1.5631909549634852e+01 -2.1569309751931709e+01 7.4640481484122134e+01
9 -1.4606116746275049e+01 1.7088845087132931e+01 3.5265010989798085e+00
10 4.9396801101822838e+00 3.2889776085852553e+01 -5.8999793708728539e+01
11 -2.0536178089795950e+01 -7.0922505905966178e+00 7.5061958159305595e+00
12 1.3803472075865866e+01 6.4452957521954453e+00 -2.7233422277061791e+01
13 3.5360433418054760e-01 9.1397190361996983e-01 4.4753960144003520e+00
14 9.6170274864468333e+00 -1.2052366363084626e+01 -3.9493583144003184e+00
15 6.4860666434559757e+00 -7.3468740092959797e+00 2.2291260899220639e+01
16 -2.1230180699865731e+00 1.3874295634189869e+01 6.8398950350932370e+00
17 3.6034623942755939e+00 -4.9831323377644505e+00 3.0333746639811157e+00
18 8.4504245006193024e-01 5.5042292843059997e+00 -2.1046811143440969e+01
19 -6.5342340222655615e+00 -7.9348301476146830e+00 8.7785873472291005e+00
20 5.6891915722036313e+00 2.4306008633086833e+00 1.2268223796211871e+01
21 7.8687833650945063e+00 9.2247809170079869e+00 -2.6147402645985579e+01
22 -1.3528171195048865e+01 -8.9511445243295782e+00 8.6148781007624180e+00
23 5.6593878299543583e+00 -2.7363639267840956e-01 1.7532524545223161e+01
24 -4.3228091005957916e+00 1.8218035729055067e+01 -1.0563459155791243e+01
25 -4.1518972082627981e+00 -1.2576945109768713e+01 1.7476216055126050e+00
26 8.4747063088585897e+00 -5.6410906192863539e+00 8.8158375502786370e+00
27 -1.9941459528172620e+00 1.7618140997642467e+01 -5.9162802759053807e+00
28 -4.8714180491026253e+00 -1.0506429970796431e+01 1.3714179556379275e-01
29 6.8655640019198874e+00 -7.1117110268460362e+00 5.7791384803415884e+00
run_energy: 46.042452328054594
run_stress: ! |2-
1.1725078883087194e+02 -8.7852531332776422e+01 -1.2782508811995987e+00 1.1164371026778049e+02 -9.3237176305934248e+00 6.5885234111489295e+00
1.1725078883087188e+02 -8.7852531332776451e+01 -1.2782508811996294e+00 1.1164371026778038e+02 -9.3237176305935101e+00 6.5885234111489037e+00
run_forces: ! |2
1 4.9310604335655682e+01 3.4199456337672487e+00 -3.4718316191911107e+01
2 -8.0299317271452264e-01 -6.5454081333117653e+00 -5.2864006747626604e+00
3 -1.9345060126536442e+01 6.1006753750400470e+01 5.7988403049659411e+01
4 -1.1820957153105841e+01 -2.6960422682106536e+01 3.9253092142830135e+00
5 -3.5904516097808205e+01 -5.0433344031821314e+01 -1.9146190690682918e+01
6 5.0729808044888514e+01 -1.5704289267936588e+01 -3.6492333161602460e+01
7 -1.8043506480508537e+01 1.7038390298430201e+01 1.5517454554100727e+00
8 -1.5551557230614444e+01 -2.1587186230569777e+01 7.4584717878493251e+01
9 -1.4632477702925939e+01 1.7116769814092336e+01 3.5369096257061594e+00
10 5.0161578855418893e+00 3.2653366582115979e+01 -5.8914707964769292e+01
11 -2.0525187366514267e+01 -7.0595502886286221e+00 7.4984902661515953e+00
12 1.3522823846822945e+01 6.2519930281569955e+00 -2.6686365074578834e+01
13 3.0043118312382699e-01 7.8431307047186760e-01 4.5328641811452499e+00
14 9.6739544192178748e+00 -1.1603985265483198e+01 -3.9204779603734119e+00
15 6.5345389143893406e+00 -7.2391722622226151e+00 2.1740132205563690e+01
16 -2.0494503520587521e+00 1.3825967887607892e+01 6.7882109957643362e+00
17 3.5873870531468781e+00 -4.9641419029625879e+00 3.0180088465038910e+00
18 7.9531229968056927e-01 5.2629626038099762e+00 -2.0172278856982508e+01
19 -6.1997998900621667e+00 -7.5645532403308380e+00 8.4605117488474431e+00
20 5.4044875903815974e+00 2.3015906365208618e+00 1.1711767108135064e+01
21 7.6462488915955822e+00 8.9238353733854954e+00 -2.5489456437353834e+01
22 -1.3116042308945529e+01 -8.6583243315139509e+00 8.4434007553408890e+00
23 5.4697934173499467e+00 -2.6551104187154384e-01 1.7046055682012945e+01
24 -4.2497081893768893e+00 1.7742951160854016e+01 -1.0303002500248269e+01
25 -3.9777181560986339e+00 -1.2246864045350220e+01 1.7323644544198329e+00
26 8.2274263454755232e+00 -5.4960871155037951e+00 8.5706380458284350e+00
27 -2.0048516561480048e+00 1.7446299534047586e+01 -5.8315780776594286e+00
28 -4.7894277563898591e+00 -1.0406054767803472e+01 1.3027326650644638e-01
29 6.7942794125378638e+00 -7.0402447662441157e+00 5.7013048111529825e+00
1 4.9310604335655675e+01 3.4199456337672629e+00 -3.4718316191911057e+01
2 -8.0299317271452653e-01 -6.5454081333117946e+00 -5.2864006747626835e+00
3 -1.9345060126536413e+01 6.1006753750400385e+01 5.7988403049659354e+01
4 -1.1820957153105855e+01 -2.6960422682106511e+01 3.9253092142830441e+00
5 -3.5904516097808234e+01 -5.0433344031821257e+01 -1.9146190690682918e+01
6 5.0729808044888529e+01 -1.5704289267936559e+01 -3.6492333161602460e+01
7 -1.8043506480508533e+01 1.7038390298430201e+01 1.5517454554100727e+00
8 -1.5551557230614433e+01 -2.1587186230569756e+01 7.4584717878493237e+01
9 -1.4632477702925939e+01 1.7116769814092336e+01 3.5369096257061590e+00
10 5.0161578855418476e+00 3.2653366582115964e+01 -5.8914707964769271e+01
11 -2.0525187366514270e+01 -7.0595502886286194e+00 7.4984902661515953e+00
12 1.3522823846822874e+01 6.2519930281569565e+00 -2.6686365074578760e+01
13 3.0043118312383787e-01 7.8431307047189580e-01 4.5328641811452268e+00
14 9.6739544192179032e+00 -1.1603985265483175e+01 -3.9204779603734159e+00
15 6.5345389143893629e+00 -7.2391722622226151e+00 2.1740132205563661e+01
16 -2.0494503520587024e+00 1.3825967887607865e+01 6.7882109957643282e+00
17 3.5873870531468612e+00 -4.9641419029625649e+00 3.0180088465038741e+00
18 7.9531229968056660e-01 5.2629626038099619e+00 -2.0172278856982462e+01
19 -6.1997998900621516e+00 -7.5645532403308184e+00 8.4605117488474235e+00
20 5.4044875903815850e+00 2.3015906365208560e+00 1.1711767108135039e+01
21 7.6462488915955644e+00 8.9238353733854758e+00 -2.5489456437353780e+01
22 -1.3116042308945500e+01 -8.6583243315139331e+00 8.4434007553408730e+00
23 5.4697934173499361e+00 -2.6551104187154317e-01 1.7046055682012906e+01
24 -4.2497081893768822e+00 1.7742951160853970e+01 -1.0303002500248244e+01
25 -3.9777181560986214e+00 -1.2246864045350190e+01 1.7323644544198307e+00
26 8.2274263454755037e+00 -5.4960871155037818e+00 8.5706380458284137e+00
27 -2.0048516561480003e+00 1.7446299534047537e+01 -5.8315780776594144e+00
28 -4.7894277563898440e+00 -1.0406054767803441e+01 1.3027326650644755e-01
29 6.7942794125378443e+00 -7.0402447662440961e+00 5.7013048111529665e+00
...

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:23 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle cosine
@ -17,7 +18,7 @@ angle_coeff: ! |
equilibrium: 4 3.141592653589793 3.141592653589793 3.141592653589793 3.141592653589793
extract: ! ""
natoms: 29
init_energy: 1347.86708569396
init_energy: 1347.8670856939623
init_stress: ! |2-
9.7042018787767176e+01 -4.8524910053092775e+01 -4.8517108734674437e+01 2.1991310128767722e+02 1.5350601447035655e+02 4.9763634294547245e+01
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 -1.3169752428031160e+01 1.0811335053602835e+02 -3.6826995619636030e+01
28 -2.8796447607995553e+01 -6.4642561032416026e+01 1.5016412228095177e+00
29 4.1966200036026713e+01 -4.3470789503612323e+01 3.5325354396826512e+01
run_energy: 1345.58352455998
run_energy: 1345.583524559977
run_stress: ! |2-
9.6442128885179770e+01 -4.8453952330886217e+01 -4.7988176554293645e+01 2.1952791027456863e+02 1.5268865805166467e+02 4.9751785588281081e+01
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:23 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
atom full
angle cosine/delta
@ -14,73 +15,73 @@ angle_coeff: ! |
2 45.0 111.0
3 50.0 120.0
4 100.0 108.5
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 20.6509813301781
init_energy: 20.65098133017812
init_stress: ! |2-
4.0957903125808464e+01 -2.2499632589286239e+01 -1.8458270536522210e+01 3.4849378298981229e+01 -4.9327943096382150e+00 -2.6124108916945312e+00
4.0957903125808471e+01 -2.2499632589286236e+01 -1.8458270536522217e+01 3.4849378298981264e+01 -4.9327943096381759e+00 -2.6124108916945294e+00
init_forces: ! |2
1 1.6023996455832314e+01 2.4226311046592235e+00 -1.8589204266697926e+01
2 -9.3711866901465601e-02 -7.5876216223296211e-01 -6.1013759002635126e-01
3 -6.0380408211030923e-01 2.6993032298913725e+01 2.7951913775716804e+01
4 -4.3564633502451349e+00 -1.0062417183984063e+01 2.1642186242701555e+00
5 -1.5386439746171837e+01 -2.3440313238754001e+01 -1.0067874149174443e+01
6 9.6873286040902009e+00 6.5740743013877889e-02 -2.6313308270088607e+00
1 1.6023996455832325e+01 2.4226311046592137e+00 -1.8589204266697958e+01
2 -9.3711866901463381e-02 -7.5876216223294790e-01 -6.1013759002633705e-01
3 -6.0380408211033587e-01 2.6993032298913775e+01 2.7951913775716850e+01
4 -4.3564633502451269e+00 -1.0062417183984081e+01 2.1642186242701338e+00
5 -1.5386439746171822e+01 -2.3440313238754023e+01 -1.0067874149174445e+01
6 9.6873286040901903e+00 6.5740743013867231e-02 -2.6313308270088624e+00
7 -4.1923658452230708e+00 3.7873664481235689e+00 -9.2297211491112741e-01
8 -4.1328674241018017e+00 -1.3752082356191012e+01 9.4169257319147466e+00
8 -4.1328674241018124e+00 -1.3752082356191019e+01 9.4169257319147519e+00
9 -5.2849046978682424e+00 5.1551127779597277e+00 -6.0440022931290430e-02
10 8.5785584536205288e+00 1.9092658049053338e+01 -1.3500832217121994e+01
10 8.5785584536205555e+00 1.9092658049053345e+01 -1.3500832217122007e+01
11 -8.2548956740792931e+00 -3.8384442674446007e+00 4.3703985032254611e+00
12 -2.2390516462227898e+00 -2.4339015686808949e+00 -5.7125783103934324e+00
13 7.0748633959584506e-01 1.7495942830019429e+00 8.1749690284176868e-01
14 5.0293855034635966e+00 -4.3347315249911311e+00 -2.2794877131015276e+00
15 4.2836129602031878e+00 -2.6803643297135773e+00 7.8342386854077528e+00
16 -1.6475295059196176e+00 4.5975354658004237e+00 4.3681254253354007e-01
17 1.8816655220378866e+00 -2.5626545385335806e+00 1.3828524454567201e+00
18 1.6064693296025112e-01 1.6787555240920562e+00 -6.8129331975319971e+00
19 -1.9670041679005834e+00 -2.4504879220906073e+00 2.9176882347101909e+00
20 1.8063572349403323e+00 7.7173239799855109e-01 3.8952449628218062e+00
21 2.3714039975200185e+00 2.9686059791249670e+00 -8.8717809550958471e+00
22 -4.2227815913111986e+00 -2.8790902397071338e+00 3.1362978814995550e+00
23 1.8513775937911801e+00 -8.9515739417833140e-02 5.7354830735962921e+00
24 -1.4568411370574417e+00 5.6628278324597723e+00 -3.3714304805753397e+00
25 -1.1685952378028404e+00 -3.9152363566022146e+00 6.4031275969728974e-01
26 2.6254363748602820e+00 -1.7475914758575577e+00 2.7311177208780499e+00
27 -6.3244441950917540e-01 5.1918732409438526e+00 -1.7685243510997071e+00
28 -1.3828773692511795e+00 -3.1042973063575339e+00 7.2112563744889890e-02
29 2.0153217887603549e+00 -2.0875759345863187e+00 1.6964117873548172e+00
run_energy: 20.5727973982101
12 -2.2390516462227508e+00 -2.4339015686808576e+00 -5.7125783103934751e+00
13 7.0748633959583906e-01 1.7495942830019229e+00 8.1749690284178111e-01
14 5.0293855034635815e+00 -4.3347315249911471e+00 -2.2794877131015205e+00
15 4.2836129602031709e+00 -2.6803643297135835e+00 7.8342386854077670e+00
16 -1.6475295059196460e+00 4.5975354658004379e+00 4.3681254253354895e-01
17 1.8816655220378973e+00 -2.5626545385335930e+00 1.3828524454567255e+00
18 1.6064693296025290e-01 1.6787555240920624e+00 -6.8129331975320220e+00
19 -1.9670041679005905e+00 -2.4504879220906162e+00 2.9176882347102016e+00
20 1.8063572349403376e+00 7.7173239799855375e-01 3.8952449628218204e+00
21 2.3714039975200247e+00 2.9686059791249759e+00 -8.8717809550958702e+00
22 -4.2227815913112092e+00 -2.8790902397071427e+00 3.1362978814995639e+00
23 1.8513775937911845e+00 -8.9515739417833418e-02 5.7354830735963063e+00
24 -1.4568411370574479e+00 5.6628278324597936e+00 -3.3714304805753512e+00
25 -1.1685952378028448e+00 -3.9152363566022288e+00 6.4031275969729240e-01
26 2.6254363748602927e+00 -1.7475914758575648e+00 2.7311177208780588e+00
27 -6.3244441950917718e-01 5.1918732409438757e+00 -1.7685243510997146e+00
28 -1.3828773692511866e+00 -3.1042973063575481e+00 7.2112563744890223e-02
29 2.0153217887603638e+00 -2.0875759345863276e+00 1.6964117873548243e+00
run_energy: 20.572797398210106
run_stress: ! |2-
4.0414601145881797e+01 -2.2259720000355941e+01 -1.8154881145525859e+01 3.4356097430708736e+01 -5.1760682620031746e+00 -3.0219001073831366e+00
4.0414601145881797e+01 -2.2259720000355955e+01 -1.8154881145525852e+01 3.4356097430708779e+01 -5.1760682620031364e+00 -3.0219001073831251e+00
run_forces: ! |2
1 1.5854493147994463e+01 2.5625041903632990e+00 -1.8403707584219074e+01
2 -1.0778147157154860e-01 -8.7954374413254754e-01 -7.1033263283978343e-01
3 -3.5903740231366399e-01 2.6747382244473819e+01 2.7776094765308599e+01
4 -4.3667455132583095e+00 -9.9043336720964916e+00 2.2554137013680173e+00
5 -1.5435306686274910e+01 -2.3368620551346389e+01 -1.0071205010683155e+01
6 9.7004722937708081e+00 2.8185574443378769e-02 -2.6469111215932317e+00
1 1.5854493147994468e+01 2.5625041903632799e+00 -1.8403707584219106e+01
2 -1.0778147157154638e-01 -8.7954374413252623e-01 -7.1033263283976922e-01
3 -3.5903740231368531e-01 2.6747382244473858e+01 2.7776094765308645e+01
4 -4.3667455132582980e+00 -9.9043336720965058e+00 2.2554137013679947e+00
5 -1.5435306686274892e+01 -2.3368620551346410e+01 -1.0071205010683158e+01
6 9.7004722937707939e+00 2.8185574443369887e-02 -2.6469111215932326e+00
7 -4.2051376166149819e+00 3.8059875922956321e+00 -9.2948254913796591e-01
8 -4.0811558306056366e+00 -1.3725195219352727e+01 9.4305267102762294e+00
8 -4.0811558306056437e+00 -1.3725195219352738e+01 9.4305267102762365e+00
9 -5.3018040121457650e+00 5.1712375236873847e+00 -5.5170438746634645e-02
10 8.5884631851414461e+00 1.8977169595422655e+01 -1.3503733846157104e+01
10 8.5884631851414728e+00 1.8977169595422669e+01 -1.3503733846157115e+01
11 -8.2489793835708181e+00 -3.8307795657532537e+00 4.3670355271621792e+00
12 -2.2854196014067192e+00 -2.5730964210485894e+00 -5.5327026624884059e+00
13 6.8857552776933595e-01 1.7099649678302427e+00 8.4476951940004152e-01
14 5.0388676050555610e+00 -4.1380632752237574e+00 -2.2619786920581975e+00
15 4.2713089863647529e+00 -2.6164691252678391e+00 7.6327855841331669e+00
16 -1.6264161996020330e+00 4.5902884407035538e+00 4.2906258286847176e-01
17 1.8756029712680160e+00 -2.5566185549983746e+00 1.3795361474068404e+00
18 1.5949074618033343e-01 1.6020315457790026e+00 -6.4757984092122172e+00
19 -1.8652368265982293e+00 -2.3286173150011660e+00 2.7801057275919874e+00
20 1.7057460804178959e+00 7.2658576922216334e-01 3.6956926816202298e+00
21 2.3015994659382839e+00 2.8609989652412136e+00 -8.6002184142673883e+00
22 -4.0843967543541453e+00 -2.7748751066344628e+00 3.0465239349836288e+00
23 1.7827972884158614e+00 -8.6123858606750758e-02 5.5536944792837595e+00
24 -1.4105671680157137e+00 5.4757757163247867e+00 -3.2567653472769451e+00
25 -1.1213719131694582e+00 -3.7848791001392357e+00 6.1939772997236853e-01
26 2.5319390811851719e+00 -1.6908966161855510e+00 2.6373676173045766e+00
27 -6.3028932344593258e-01 5.1333019072248991e+00 -1.7384473964198532e+00
28 -1.3620336377103737e+00 -3.0692701554272013e+00 6.6735136389115601e-02
29 1.9923229611563062e+00 -2.0640317517976978e+00 1.6717122600307377e+00
12 -2.2854196014066837e+00 -2.5730964210485521e+00 -5.5327026624884477e+00
13 6.8857552776933151e-01 1.7099649678302227e+00 8.4476951940005041e-01
14 5.0388676050555423e+00 -4.1380632752237698e+00 -2.2619786920581912e+00
15 4.2713089863647395e+00 -2.6164691252678471e+00 7.6327855841331855e+00
16 -1.6264161996020632e+00 4.5902884407035716e+00 4.2906258286847709e-01
17 1.8756029712680284e+00 -2.5566185549983906e+00 1.3795361474068475e+00
18 1.5949074618033343e-01 1.6020315457790089e+00 -6.4757984092122420e+00
19 -1.8652368265982364e+00 -2.3286173150011749e+00 2.7801057275919980e+00
20 1.7057460804179030e+00 7.2658576922216600e-01 3.6956926816202440e+00
21 2.3015994659382928e+00 2.8609989652412211e+00 -8.6002184142674114e+00
22 -4.0843967543541595e+00 -2.7748751066344699e+00 3.0465239349836377e+00
23 1.7827972884158667e+00 -8.6123858606751036e-02 5.5536944792837737e+00
24 -1.4105671680157181e+00 5.4757757163248080e+00 -3.2567653472769562e+00
25 -1.1213719131694626e+00 -3.7848791001392499e+00 6.1939772997237075e-01
26 2.5319390811851807e+00 -1.6908966161855581e+00 2.6373676173045855e+00
27 -6.3028932344593613e-01 5.1333019072249222e+00 -1.7384473964198608e+00
28 -1.3620336377103808e+00 -3.0692701554272155e+00 6.6735136389115879e-02
29 1.9923229611563169e+00 -2.0640317517977067e+00 1.6717122600307448e+00
...

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:23 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 1e-12
skip_tests:
prerequisites: ! |
atom full
angle cosine/shift
@ -17,7 +18,7 @@ angle_coeff: ! |
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138474
extract: ! ""
natoms: 29
init_energy: -2039.67450933491
init_energy: -2039.6745093349107
init_stress: ! |2-
2.2236590310678018e+01 -2.1731920007845627e+01 -5.0467030283239134e-01 2.2818792439800895e+01 -6.9536967934807379e+00 -2.1412469755446228e-01
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 -7.1800548840952522e-02 5.8942625899320822e-01 -2.0077814766093691e-01
28 -1.5699617393892926e-01 -3.5242662198670610e-01 8.1868406068466293e-03
29 2.2879672277988178e-01 -2.3699963700650206e-01 1.9259130705409028e-01
run_energy: -2039.70992482657
run_energy: -2039.7099248265658
run_stress: ! |2-
2.1884369028041654e+01 -2.1572961501206787e+01 -3.1140752683487311e-01 2.2503542416936284e+01 -7.1010323713779107e+00 -4.7667733522911088e-01
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle cosine/shift/exp
@ -50,7 +51,7 @@ init_forces: ! |2
27 -1.6606843149042227e-01 1.3632917281328529e+00 -4.6438241208243458e-01
28 -3.6311851060900069e-01 -8.1513215809039241e-01 1.8935451056965480e-02
29 5.2918694209942296e-01 -5.4815957004246063e-01 4.4544696102546910e-01
run_energy: -2037.80459205009
run_energy: -2037.8045920500874
run_stress: ! |2-
3.0879668883081692e+01 -4.0694932235648714e+01 9.8152633525670350e+00 2.4448196341774814e+01 -4.5553409231643682e+00 5.0039677219877552e+00
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle cosine/squared
@ -14,73 +15,73 @@ angle_coeff: ! |
2 45.0 111.0
3 50.0 120.0
4 100.0 108.5
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 36.0116244857696
init_energy: 36.01162448576962
init_stress: ! |2-
8.2725682858254814e+01 -6.8273473783801748e+01 -1.4452209074453092e+01 7.7211820652748884e+01 -2.5730361871697109e+01 -4.8550526943318175e+00
8.2725682858254856e+01 -6.8273473783801762e+01 -1.4452209074453098e+01 7.7211820652748969e+01 -2.5730361871697024e+01 -4.8550526943318051e+00
init_forces: ! |2
1 3.9967364035766614e+01 8.6912955121737934e+00 -3.1895072718403561e+01
2 -9.6870113058109242e-01 -7.8433371215415635e+00 -6.3070024406835765e+00
3 -9.2887870880926160e-01 5.3520449092007297e+01 5.1945694004505512e+01
4 -1.3446595520418755e+01 -2.2181069771530421e+01 1.0187597408474065e+01
5 -3.9879387313832964e+01 -4.8090587210852910e+01 -2.2283342123406275e+01
6 3.5485163529718072e+01 -5.1574456061476726e+00 -1.9921134582499548e+01
1 3.9967364035766622e+01 8.6912955121737685e+00 -3.1895072718403618e+01
2 -9.6870113058108842e-01 -7.8433371215415324e+00 -6.3070024406835508e+00
3 -9.2887870880929801e-01 5.3520449092007375e+01 5.1945694004505597e+01
4 -1.3446595520418740e+01 -2.2181069771530449e+01 1.0187597408474025e+01
5 -3.9879387313832936e+01 -4.8090587210852945e+01 -2.2283342123406275e+01
6 3.5485163529718058e+01 -5.1574456061476903e+00 -1.9921134582499548e+01
7 -1.3113357770588081e+01 1.1704818642812134e+01 -2.8585672059625198e+00
8 -7.5834275795270720e+00 -2.7651000658863325e+01 5.5534056932796943e+01
8 -7.5834275795270933e+00 -2.7651000658863346e+01 5.5534056932796958e+01
9 -1.3472959118352961e+01 1.3914938083600443e+01 -3.4218403222459060e-01
10 1.2247520733235257e+01 4.1033325862807835e+01 -5.0764387285481298e+01
10 1.2247520733235303e+01 4.1033325862807864e+01 -5.0764387285481320e+01
11 -1.9071008591398073e+01 -6.9550786949759864e+00 8.9310415097292459e+00
12 -9.1828648227777592e+00 -9.9772460049552834e+00 -8.2675858964899156e+00
13 2.5145600252057134e+00 6.3654259163401878e+00 -1.8817284503284260e-01
14 1.4059070105311534e+01 -8.7509516574437978e+00 -6.1079079436202699e+00
15 1.1315677074901217e+01 -5.6933727403424861e+00 1.6802631741136203e+01
16 7.2828609161904678e-01 8.8805455458996914e+00 4.5572456695616639e+00
17 1.3295389605285770e+00 -1.8107091889879334e+00 9.7708980760073227e-01
18 1.4133855043441645e-01 1.4769835186809783e+00 -5.9940771018886343e+00
19 -1.7305871495119738e+00 -2.1559603061393431e+00 2.5670071511139465e+00
20 1.5892485990775573e+00 6.7897678745836465e-01 3.4270699507746878e+00
21 3.1048427588597933e+00 3.8867501226417454e+00 -1.1615686270844733e+01
22 -5.5288229503451953e+00 -3.7695485426384652e+00 4.1063065497000011e+00
23 2.4239801914854020e+00 -1.1720158000328018e-01 7.5093797211447315e+00
24 -1.1665841097451561e+00 4.5345815666033644e+00 -2.6997159303819025e+00
25 -9.3576753186569328e-01 -3.1351754170904935e+00 5.1273860390755299e-01
26 2.1023516416108494e+00 -1.3994061495128705e+00 2.1869773264743495e+00
27 -2.5470038587839250e-01 2.0908906413094188e+00 -7.1222675189387996e-01
28 -5.5691755465898818e-01 -1.2501742404876248e+00 2.9041441818330599e-02
29 8.1161794053738068e-01 -8.4071640082179400e-01 6.8318531007554939e-01
run_energy: 35.7964731709877
12 -9.1828648227776988e+00 -9.9772460049552336e+00 -8.2675858964899867e+00
13 2.5145600252057023e+00 6.3654259163401594e+00 -1.8817284503281773e-01
14 1.4059070105311509e+01 -8.7509516574438209e+00 -6.1079079436202601e+00
15 1.1315677074901195e+01 -5.6933727403424967e+00 1.6802631741136228e+01
16 7.2828609161899882e-01 8.8805455458997216e+00 4.5572456695616728e+00
17 1.3295389605285957e+00 -1.8107091889879587e+00 9.7708980760074582e-01
18 1.4133855043441823e-01 1.4769835186809903e+00 -5.9940771018886831e+00
19 -1.7305871495119884e+00 -2.1559603061393608e+00 2.5670071511139674e+00
20 1.5892485990775702e+00 6.7897678745837042e-01 3.4270699507747162e+00
21 3.1048427588598053e+00 3.8867501226417613e+00 -1.1615686270844780e+01
22 -5.5288229503452175e+00 -3.7695485426384807e+00 4.1063065497000180e+00
23 2.4239801914854122e+00 -1.1720158000328063e-01 7.5093797211447626e+00
24 -1.1665841097451679e+00 4.5345815666034062e+00 -2.6997159303819274e+00
25 -9.3576753186570205e-01 -3.1351754170905228e+00 5.1273860390755788e-01
26 2.1023516416108698e+00 -1.3994061495128833e+00 2.1869773264743695e+00
27 -2.5470038587839849e-01 2.0908906413094668e+00 -7.1222675189389639e-01
28 -5.5691755465900084e-01 -1.2501742404876537e+00 2.9041441818331265e-02
29 8.1161794053739933e-01 -8.4071640082181331e-01 6.8318531007556516e-01
run_energy: 35.79647317098771
run_stress: ! |2-
8.1386079163985897e+01 -6.7672385446129056e+01 -1.3713693717856859e+01 7.5931272732679375e+01 -2.6246397151461188e+01 -5.8523230432862601e+00
8.1386079163985940e+01 -6.7672385446129070e+01 -1.3713693717856865e+01 7.5931272732679474e+01 -2.6246397151461110e+01 -5.8523230432862299e+00
run_forces: ! |2
1 3.9504298737934299e+01 9.0362064390205923e+00 -3.1339457751434480e+01
2 -1.0002265079899280e+00 -8.1563440981107718e+00 -6.5866597501694137e+00
3 -2.9707237672744302e-01 5.2915623881067980e+01 5.1462135248962241e+01
4 -1.3474759165646581e+01 -2.1796354081389847e+01 1.0404041775592727e+01
5 -3.9969510582025805e+01 -4.7883964205194445e+01 -2.2295653940762463e+01
6 3.5513144692452883e+01 -5.2230478544001331e+00 -1.9967331414759983e+01
1 3.9504298737934313e+01 9.0362064390205674e+00 -3.1339457751434537e+01
2 -1.0002265079899235e+00 -8.1563440981107398e+00 -6.5866597501693889e+00
3 -2.9707237672747233e-01 5.2915623881068072e+01 5.1462135248962333e+01
4 -1.3474759165646567e+01 -2.1796354081389875e+01 1.0404041775592695e+01
5 -3.9969510582025791e+01 -4.7883964205194495e+01 -2.2295653940762470e+01
6 3.5513144692452862e+01 -5.2230478544001508e+00 -1.9967331414759990e+01
7 -1.3141080293140208e+01 1.1737017796016362e+01 -2.8719233967504918e+00
8 -7.5072163530686016e+00 -2.7612742492512091e+01 5.5531252764148959e+01
8 -7.5072163530686158e+00 -2.7612742492512112e+01 5.5531252764148974e+01
9 -1.3496615614426194e+01 1.3939678288256896e+01 -3.3102772174179584e-01
10 1.2306280437647038e+01 4.0751132927235759e+01 -5.0707025556664895e+01
10 1.2306280437647091e+01 4.0751132927235773e+01 -5.0707025556664917e+01
11 -1.9057013299568268e+01 -6.9239381290868431e+00 8.9185294031013740e+00
12 -9.2656690702987667e+00 -1.0263709057962135e+01 -7.8624630945648750e+00
13 2.4489502984114528e+00 6.2284887545653573e+00 -8.8034212951717095e-02
14 1.4050613823675080e+01 -8.2707042101779802e+00 -6.0540825820707997e+00
15 1.1284464526661036e+01 -5.5287408576449808e+00 1.6299463854690750e+01
16 7.8869229788968109e-01 8.8407924519403771e+00 4.5226970079595503e+00
17 1.3127184482203083e+00 -1.7893955516240998e+00 9.6553936741530322e-01
18 1.2694956105094679e-01 1.2751722153999723e+00 -5.1545565105565174e+00
19 -1.4846968851065028e+00 -1.8535321439652668e+00 2.2128825320928631e+00
20 1.3577473240555560e+00 5.7835992856529450e-01 2.9416739784636539e+00
21 2.9244787860493995e+00 3.6352659652262287e+00 -1.0927678024393749e+01
22 -5.1895978704720935e+00 -3.5257644330904849e+00 3.8710622844172722e+00
23 2.2651190844226941e+00 -1.0950153213574376e-01 7.0566157399764782e+00
24 -1.0411087961103460e+00 4.0415481427544702e+00 -2.4037464775633905e+00
25 -8.2768762397509377e-01 -2.7935515297939277e+00 4.5714842187279736e-01
26 1.8687964200854397e+00 -1.2479966129605424e+00 1.9465980556905931e+00
27 -2.3770330946966578e-01 1.9359478428067436e+00 -6.5562900876955288e-01
28 -5.1370135722491139e-01 -1.1575378709264035e+00 2.5153324043681036e-02
29 7.5140466669457717e-01 -7.7840997188034011e-01 6.3047568472587190e-01
12 -9.2656690702987063e+00 -1.0263709057962082e+01 -7.8624630945649550e+00
13 2.4489502984114413e+00 6.2284887545653271e+00 -8.8034212951693114e-02
14 1.4050613823675054e+01 -8.2707042101780051e+00 -6.0540825820707909e+00
15 1.1284464526661015e+01 -5.5287408576449932e+00 1.6299463854690782e+01
16 7.8869229788963136e-01 8.8407924519404091e+00 4.5226970079595601e+00
17 1.3127184482203269e+00 -1.7893955516241253e+00 9.6553936741531721e-01
18 1.2694956105094768e-01 1.2751722153999840e+00 -5.1545565105565654e+00
19 -1.4846968851065168e+00 -1.8535321439652841e+00 2.2128825320928840e+00
20 1.3577473240555691e+00 5.7835992856529994e-01 2.9416739784636818e+00
21 2.9244787860494128e+00 3.6352659652262442e+00 -1.0927678024393799e+01
22 -5.1895978704721166e+00 -3.5257644330905000e+00 3.8710622844172891e+00
23 2.2651190844227038e+00 -1.0950153213574421e-01 7.0566157399765093e+00
24 -1.0411087961103569e+00 4.0415481427545128e+00 -2.4037464775634154e+00
25 -8.2768762397510254e-01 -2.7935515297939570e+00 4.5714842187280236e-01
26 1.8687964200854594e+00 -1.2479966129605558e+00 1.9465980556906133e+00
27 -2.3770330946967155e-01 1.9359478428067920e+00 -6.5562900876956920e-01
28 -5.1370135722492427e-01 -1.1575378709264323e+00 2.5153324043681646e-02
29 7.5140466669459582e-01 -7.7840997188035954e-01 6.3047568472588755e-01
...

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:51 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle cross
@ -17,7 +18,7 @@ angle_coeff: ! |
equilibrium: 4 1.8675022996339325 1.911135530933791 1.7139133254584316 1.7435839227423353
extract: ! ""
natoms: 29
init_energy: -138.932277153618
init_energy: -138.93227715361755
init_stress: ! |-
-4.2805178950841440e+02 -6.8931627675603272e+02 -1.3391464673179194e+03 1.7315796064284467e+02 -4.7373177498509762e+01 -1.2493656046964831e+02
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 4.7585743845211717e+01 1.8785871750636648e+01 2.1506067119647888e+01
28 -4.9785651292999155e+01 1.9503981519706528e+00 -2.8387090726034970e+01
29 2.1999074477874405e+00 -2.0736269902607301e+01 6.8810236063870809e+00
run_energy: -143.17285626124
run_energy: -143.17285626124033
run_stress: ! |-
-4.2136943025425171e+02 -6.8143523471945389e+02 -1.3373080481523612e+03 1.7225234470532837e+02 -5.0415065989752279e+01 -1.2628092326319543e+02
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle fourier
@ -17,7 +18,7 @@ angle_coeff: ! |
equilibrium: 4 3.141592653589793 1.5707963267948966 1.5707963267948966 1.8234765819369754
extract: ! ""
natoms: 29
init_energy: 400.840366320102
init_energy: 400.84036632010225
init_stress: ! |-
-3.4848246942069039e+01 -6.9916377270952140e+01 1.0476462421302121e+02 7.3441393659189799e+01 -2.0375978361282911e+01 1.2021327066292979e+01
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
28 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
29 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
run_energy: 400.532578826681
run_energy: 400.53257882668106
run_stress: ! |-
-3.5033990243752221e+01 -6.9683360450913014e+01 1.0471735069466519e+02 7.3091958599418575e+01 -2.0600460353197874e+01 1.1646840154687229e+01
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle gaussian
@ -17,7 +18,7 @@ angle_coeff: ! |
equilibrium: 4 1.5376350710070041 1.4887658519511628 1.5376350710070041 1.4887658519511628
extract: ! ""
natoms: 29
init_energy: 57.7940091589437
init_energy: 57.794009158943744
init_stress: ! |2-
1.8540667929702014e-02 -2.1128225814185397e-02 2.5875578844833853e-03 1.9120388327532396e-02 4.4564216146325795e-03 9.8400107526492309e-03
init_forces: ! |2
@ -52,12 +53,12 @@ init_forces: ! |2
29 3.6388435810152746e-03 -3.7693048980153125e-03 3.0630230753232656e-03
run_energy: 57.7939328926191
run_stress: ! |2-
1.8333297775264226e-02 -2.1096486667701031e-02 2.7631888924368117e-03 1.9016013391593267e-02 4.3940373471828961e-03 9.6831700037143531e-03
1.8333297775264226e-02 -2.1096486667701031e-02 2.7631888924368117e-03 1.9016013391593270e-02 4.3940373471828970e-03 9.6831700037143548e-03
run_forces: ! |2
1 1.9869422162142472e-03 -1.9353557824978272e-04 -2.3006702071328641e-03
1 1.9869422162142486e-03 -1.9353557824978353e-04 -2.3006702071328633e-03
2 3.3476059893797837e-05 2.7319932557553025e-04 2.2063210015606759e-04
3 -3.4876540425126176e-04 2.0590710647431592e-03 3.3392846732858885e-03
4 -4.7868102566407460e-04 -1.0516647507108046e-03 2.6031681319326416e-04
3 -3.4876540425126285e-04 2.0590710647431618e-03 3.3392846732858885e-03
4 -4.7868102566407493e-04 -1.0516647507108072e-03 2.6031681319326361e-04
5 -1.6499221858598965e-03 -1.9312689427161936e-03 -9.0479891915083840e-04
6 7.7122074651881124e-03 -8.1501276471632952e-03 -1.0025269020742612e-02
7 -4.2683877840090532e-03 3.8176212404067746e-03 -9.3444409464597659e-04

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 7.5e-13
skip_tests:
prerequisites: ! |
atom full
angle harmonic
@ -14,73 +15,73 @@ angle_coeff: ! |
2 45.0 111.0
3 50.0 120.0
4 100.0 108.5
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 41.530817896491
init_energy: 41.53081789649104
init_stress: ! |2-
8.9723357320869255e+01 -8.7188643750026529e+01 -2.5347135708427588e+00 9.2043419883119697e+01 -2.8187238090404989e+01 -1.5291148024927028e+00
8.9723357320869297e+01 -8.7188643750026529e+01 -2.5347135708427655e+00 9.2043419883119782e+01 -2.8187238090404904e+01 -1.5291148024926793e+00
init_forces: ! |2
1 4.7865489310693519e+01 7.8760925902181782e+00 -3.2694525514709809e+01
2 -1.1124882516177386e+00 -9.0075464203887741e+00 -7.2431691227364725e+00
3 -5.9057050592858884e+00 5.3263619873546183e+01 5.2353380124691370e+01
4 -1.6032230038990651e+01 -2.4560529343731371e+01 1.2891625920422349e+01
5 -4.4802331573497668e+01 -4.8300919461089343e+01 -2.3310767889219321e+01
6 4.7083124388174838e+01 -9.5212933434476135e+00 -3.2526392870546800e+01
1 4.7865489310693540e+01 7.8760925902181516e+00 -3.2694525514709866e+01
2 -1.1124882516177341e+00 -9.0075464203887403e+00 -7.2431691227364459e+00
3 -5.9057050592859328e+00 5.3263619873546261e+01 5.2353380124691469e+01
4 -1.6032230038990633e+01 -2.4560529343731403e+01 1.2891625920422307e+01
5 -4.4802331573497639e+01 -4.8300919461089379e+01 -2.3310767889219324e+01
6 4.7083124388174824e+01 -9.5212933434476312e+00 -3.2526392870546800e+01
7 -1.6208182775476303e+01 1.4458587960739102e+01 -3.5314745459502710e+00
8 -6.5664612141880827e+00 -2.5126850154274180e+01 8.2187944731423329e+01
8 -6.5664612141881040e+00 -2.5126850154274202e+01 8.2187944731423329e+01
9 -1.5504395262358301e+01 1.6121044185227817e+01 -4.2007069622477866e-01
10 9.9863759179364777e+00 4.1873540105704535e+01 -6.6085640966037388e+01
10 9.9863759179365275e+00 4.1873540105704549e+01 -6.6085640966037403e+01
11 -2.0441876158908627e+01 -6.5186824168985984e+00 9.0023620309811072e+00
12 -1.0772126658369636e+01 -1.0807367300158273e+01 -9.6049647456797036e+00
13 2.8847886813946415e+00 7.2973241014859491e+00 -1.0414233993845645e-01
14 1.5267407478336423e+01 -9.4754911480231527e+00 -6.6307012925544306e+00
15 1.2402914209534794e+01 -6.2644630791613860e+00 1.8484576795819905e+01
16 3.8927757686513598e-01 1.0690061587911142e+01 6.1542759189377589e+00
17 1.4664194297570587e+00 -1.9971277376602155e+00 1.0776844613215855e+00
18 1.5785371874873189e-01 1.6495665212200037e+00 -6.6944747776989910e+00
19 -1.9328033033421517e+00 -2.4078805870919515e+00 2.8669575541313312e+00
20 1.7749495845934198e+00 7.5831406587194772e-01 3.8275172235676602e+00
21 3.4186149299343622e+00 4.2795410364249307e+00 -1.2789555411020601e+01
22 -6.0875600315279446e+00 -4.1504951869796436e+00 4.5212856070195588e+00
23 2.6689451015935823e+00 -1.2904584944528708e-01 8.2682698040010418e+00
24 -1.3053945393770472e+00 5.0741459325182818e+00 -3.0209518576072751e+00
25 -1.0471133765834191e+00 -3.5082261409793545e+00 5.7374874908500728e-01
26 2.3525079159604663e+00 -1.5659197915389276e+00 2.4472031085222676e+00
27 -2.8720725187343144e-01 2.3577465459556626e+00 -8.0312673032167137e-01
28 -6.2799575211499037e-01 -1.4097313073755557e+00 3.2747938980615732e-02
29 9.1520300398842180e-01 -9.4801523858010661e-01 7.7037879134105569e-01
run_energy: 41.2832373902946
12 -1.0772126658369565e+01 -1.0807367300158219e+01 -9.6049647456797871e+00
13 2.8847886813946291e+00 7.2973241014859198e+00 -1.0414233993842981e-01
14 1.5267407478336393e+01 -9.4754911480231776e+00 -6.6307012925544200e+00
15 1.2402914209534773e+01 -6.2644630791613967e+00 1.8484576795819933e+01
16 3.8927757686508357e-01 1.0690061587911176e+01 6.1542759189377696e+00
17 1.4664194297570785e+00 -1.9971277376602425e+00 1.0776844613215999e+00
18 1.5785371874873322e-01 1.6495665212200166e+00 -6.6944747776990434e+00
19 -1.9328033033421670e+00 -2.4078805870919706e+00 2.8669575541313534e+00
20 1.7749495845934338e+00 7.5831406587195394e-01 3.8275172235676900e+00
21 3.4186149299343742e+00 4.2795410364249484e+00 -1.2789555411020650e+01
22 -6.0875600315279677e+00 -4.1504951869796605e+00 4.5212856070195766e+00
23 2.6689451015935934e+00 -1.2904584944528752e-01 8.2682698040010738e+00
24 -1.3053945393770587e+00 5.0741459325183271e+00 -3.0209518576073018e+00
25 -1.0471133765834284e+00 -3.5082261409793856e+00 5.7374874908501228e-01
26 2.3525079159604871e+00 -1.5659197915389413e+00 2.4472031085222894e+00
27 -2.8720725187343754e-01 2.3577465459557132e+00 -8.0312673032168869e-01
28 -6.2799575211500369e-01 -1.4097313073755862e+00 3.2747938980616453e-02
29 9.1520300398844123e-01 -9.4801523858012704e-01 7.7037879134107223e-01
run_energy: 41.28323739029463
run_stress: ! |2-
8.8236221596506653e+01 -8.6492260623309548e+01 -1.7439609731970818e+00 9.0601855980531212e+01 -2.8735005690485036e+01 -2.6097632235197925e+00
8.8236221596506681e+01 -8.6492260623309562e+01 -1.7439609731970940e+00 9.0601855980531312e+01 -2.8735005690484968e+01 -2.6097632235197477e+00
run_forces: ! |2
1 4.7316793853445823e+01 8.2815577813110419e+00 -3.2021703111755414e+01
2 -1.1508196824491370e+00 -9.3814982172707779e+00 -7.5761211707510405e+00
3 -5.1083163691832354e+00 5.2667553294971555e+01 5.1784852458007521e+01
4 -1.6078177452606020e+01 -2.4156048365236188e+01 1.3140924677013139e+01
5 -4.4915734474022308e+01 -4.8095168640411785e+01 -2.3331149037574153e+01
6 4.7077916942842364e+01 -9.5906213020089943e+00 -3.2570331503075479e+01
1 4.7316793853445830e+01 8.2815577813110188e+00 -3.2021703111755464e+01
2 -1.1508196824491330e+00 -9.3814982172707460e+00 -7.5761211707510139e+00
3 -5.1083163691832576e+00 5.2667553294971619e+01 5.1784852458007592e+01
4 -1.6078177452605999e+01 -2.4156048365236213e+01 1.3140924677013103e+01
5 -4.4915734474022280e+01 -4.8095168640411821e+01 -2.3331149037574161e+01
6 4.7077916942842350e+01 -9.5906213020090156e+00 -3.2570331503075487e+01
7 -1.6228599672412471e+01 1.4485102617342370e+01 -3.5441153194985300e+00
8 -6.5097893981550552e+00 -2.5117582302614508e+01 8.2131369512415986e+01
8 -6.5097893981550730e+00 -2.5117582302614530e+01 8.2131369512416001e+01
9 -1.5527440970965937e+01 1.6147270375910470e+01 -4.0812004993325646e-01
10 1.0070812216240931e+01 4.1571532807578770e+01 -6.5968810328796309e+01
10 1.0070812216240984e+01 4.1571532807578805e+01 -6.5968810328796337e+01
11 -2.0431584971707451e+01 -6.4817395192247664e+00 8.9879981618991636e+00
12 -1.0884695976714742e+01 -1.1067390190389069e+01 -9.1551242768939716e+00
13 2.8052913970098916e+00 7.1296301666595223e+00 1.3173039168658640e-02
14 1.5254877537873556e+01 -8.9700095533297102e+00 -6.5719846903613259e+00
15 1.2392009100171009e+01 -6.0827695435257185e+00 1.7929674392339564e+01
16 4.7158712437382944e-01 1.0631038523396501e+01 6.0960085687560248e+00
17 1.4458707962589461e+00 -1.9708579331587084e+00 1.0634586790394374e+00
18 1.4201882413835776e-01 1.4265339757773212e+00 -5.7663956896747468e+00
19 -1.6609130686729214e+00 -2.0735307593210943e+00 2.4755525101126916e+00
20 1.5188942445345637e+00 6.4699678354377321e-01 3.2908431795620547e+00
21 3.2242729509516277e+00 4.0079233768385976e+00 -1.2047892238650938e+01
22 -5.7215184687399532e+00 -3.8871624402883245e+00 4.2679223469272056e+00
23 2.4972455177883255e+00 -1.2076093655027353e-01 7.7799698917237325e+00
24 -1.1661978296905358e+00 4.5271404898674401e+00 -2.6925565853369919e+00
25 -9.2712094527151212e-01 -3.1291890525016810e+00 5.1208215565053306e-01
26 2.0933187749620479e+00 -1.3979514373657593e+00 2.1804744296864591e+00
27 -2.6804542538019893e-01 2.1830651328697592e+00 -7.3931790038943679e-01
28 -5.7927072943126978e-01 -1.3052929090347605e+00 2.8365455885795143e-02
29 8.4731615481146871e-01 -8.7777222383499887e-01 7.1095244450364159e-01
12 -1.0884695976714678e+01 -1.1067390190389006e+01 -9.1551242768940568e+00
13 2.8052913970098801e+00 7.1296301666594912e+00 1.3173039168682621e-02
14 1.5254877537873529e+01 -8.9700095533297350e+00 -6.5719846903613162e+00
15 1.2392009100170984e+01 -6.0827695435257292e+00 1.7929674392339596e+01
16 4.7158712437377481e-01 1.0631038523396533e+01 6.0960085687560355e+00
17 1.4458707962589659e+00 -1.9708579331587350e+00 1.0634586790394520e+00
18 1.4201882413835909e-01 1.4265339757773337e+00 -5.7663956896747992e+00
19 -1.6609130686729365e+00 -2.0735307593211125e+00 2.4755525101127143e+00
20 1.5188942445345774e+00 6.4699678354377899e-01 3.2908431795620849e+00
21 3.2242729509516406e+00 4.0079233768386153e+00 -1.2047892238650988e+01
22 -5.7215184687399772e+00 -3.8871624402883409e+00 4.2679223469272234e+00
23 2.4972455177883366e+00 -1.2076093655027398e-01 7.7799698917237645e+00
24 -1.1661978296905471e+00 4.5271404898674854e+00 -2.6925565853370195e+00
25 -9.2712094527152167e-01 -3.1291890525017125e+00 5.1208215565053827e-01
26 2.0933187749620688e+00 -1.3979514373657731e+00 2.1804744296864813e+00
27 -2.6804542538020537e-01 2.1830651328698103e+00 -7.3931790038945400e-01
28 -5.7927072943128310e-01 -1.3052929090347909e+00 2.8365455885795865e-02
29 8.4731615481148848e-01 -8.7777222383501941e-01 7.1095244450365813e-01
...

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle harmonic
@ -15,73 +16,73 @@ angle_coeff: ! |
2 cosine/shift 45.0 111.0
3 cosine/shift 50.0 120.0
4 harmonic 100.0 108.5
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: -669.446517131318
init_energy: -669.4465171313176
init_stress: ! |2-
1.1051961830323793e+02 -7.7252863271262299e+01 -3.3266755031975606e+01 7.0840668443491779e+01 -3.2285179825521766e+01 -8.4954399672475240e+00
1.1051961830323796e+02 -7.7252863271262314e+01 -3.3266755031975620e+01 7.0840668443491879e+01 -3.2285179825521674e+01 -8.4954399672475063e+00
init_forces: ! |2
1 4.7865489310693519e+01 7.8760925902181782e+00 -3.2694525514709809e+01
2 -1.1124882516177386e+00 -9.0075464203887741e+00 -7.2431691227364725e+00
3 -7.8464038683293458e+00 5.3597306198902082e+01 4.5949203134963497e+01
4 -1.7139238879078722e+01 -2.2545410094742259e+01 1.5248026546532433e+01
5 -4.3688256328733658e+01 -4.9752032532686762e+01 -2.3529307815343643e+01
6 2.8648764882943190e+01 1.2337790027065864e+01 -5.2639289744319786e+00
1 4.7865489310693540e+01 7.8760925902181516e+00 -3.2694525514709866e+01
2 -1.1124882516177341e+00 -9.0075464203887403e+00 -7.2431691227364459e+00
3 -7.8464038683293884e+00 5.3597306198902160e+01 4.5949203134963597e+01
4 -1.7139238879078704e+01 -2.2545410094742291e+01 1.5248026546532390e+01
5 -4.3688256328733630e+01 -4.9752032532686798e+01 -2.3529307815343646e+01
6 2.8648764882943176e+01 1.2337790027065846e+01 -5.2639289744319822e+00
7 -4.0343336515091934e+00 3.5987946950438578e+00 -8.7899903829119208e-01
8 -1.6174053254902834e+01 -2.2525177258640070e+01 3.0320903941419374e+01
8 -1.6174053254902855e+01 -2.2525177258640088e+01 3.0320903941419388e+01
9 -3.8661516758898671e+00 4.0199545660210578e+00 -1.0475700025519963e-01
10 -3.0032116527868182e+00 4.1994567576444879e+01 -2.5298415596686368e+01
10 -3.0032116527867685e+00 4.1994567576444901e+01 -2.5298415596686390e+01
11 -5.0638585095561384e+00 -1.5891547554535275e+00 2.2144297567629816e+00
12 -6.1790965307809529e+00 -1.1264206622804947e+01 -1.1188782345140234e+01
13 3.4429826666366048e+00 8.7466730778639725e+00 -9.1039098685779152e-01
14 8.3991712605582194e+00 -1.5193439937013558e+01 -4.4309323454131615e+00
15 1.5624743100389253e+01 -5.1855624450998707e+00 1.5692344788719437e+01
16 2.6595219522074176e+00 6.8884790729300924e+00 1.0406161101465226e+00
17 1.4664194297570587e+00 -1.9971277376602155e+00 1.0776844613215855e+00
18 1.5785371874873189e-01 1.6495665212200037e+00 -6.6944747776989910e+00
19 -1.9328033033421517e+00 -2.4078805870919515e+00 2.8669575541313312e+00
20 1.7749495845934198e+00 7.5831406587194772e-01 3.8275172235676602e+00
21 3.4186149299343622e+00 4.2795410364249307e+00 -1.2789555411020601e+01
22 -6.0875600315279446e+00 -4.1504951869796436e+00 4.5212856070195588e+00
23 2.6689451015935823e+00 -1.2904584944528708e-01 8.2682698040010418e+00
24 -1.3053945393770472e+00 5.0741459325182818e+00 -3.0209518576072751e+00
25 -1.0471133765834191e+00 -3.5082261409793545e+00 5.7374874908500728e-01
26 2.3525079159604663e+00 -1.5659197915389276e+00 2.4472031085222676e+00
27 -2.8720725187343144e-01 2.3577465459556626e+00 -8.0312673032167137e-01
28 -6.2799575211499037e-01 -1.4097313073755557e+00 3.2747938980615732e-02
29 9.1520300398842180e-01 -9.4801523858010661e-01 7.7037879134105569e-01
12 -6.1790965307808854e+00 -1.1264206622804886e+01 -1.1188782345140316e+01
13 3.4429826666365924e+00 8.7466730778639423e+00 -9.1039098685776532e-01
14 8.3991712605581892e+00 -1.5193439937013583e+01 -4.4309323454131508e+00
15 1.5624743100389232e+01 -5.1855624450998814e+00 1.5692344788719465e+01
16 2.6595219522073652e+00 6.8884790729301244e+00 1.0406161101465337e+00
17 1.4664194297570785e+00 -1.9971277376602425e+00 1.0776844613215999e+00
18 1.5785371874873322e-01 1.6495665212200166e+00 -6.6944747776990434e+00
19 -1.9328033033421670e+00 -2.4078805870919706e+00 2.8669575541313534e+00
20 1.7749495845934338e+00 7.5831406587195394e-01 3.8275172235676900e+00
21 3.4186149299343742e+00 4.2795410364249484e+00 -1.2789555411020650e+01
22 -6.0875600315279677e+00 -4.1504951869796605e+00 4.5212856070195766e+00
23 2.6689451015935934e+00 -1.2904584944528752e-01 8.2682698040010738e+00
24 -1.3053945393770587e+00 5.0741459325183271e+00 -3.0209518576073018e+00
25 -1.0471133765834284e+00 -3.5082261409793856e+00 5.7374874908501228e-01
26 2.3525079159604871e+00 -1.5659197915389413e+00 2.4472031085222894e+00
27 -2.8720725187343754e-01 2.3577465459557132e+00 -8.0312673032168869e-01
28 -6.2799575211500369e-01 -1.4097313073755862e+00 3.2747938980616453e-02
29 9.1520300398844123e-01 -9.4801523858012704e-01 7.7037879134107223e-01
run_energy: -669.682915883011
run_stress: ! |2-
1.0910827460635431e+02 -7.6717747945181756e+01 -3.2390526661172551e+01 6.9397333601070585e+01 -3.2919024520896613e+01 -9.3879103935841197e+00
1.0910827460635434e+02 -7.6717747945181770e+01 -3.2390526661172565e+01 6.9397333601070656e+01 -3.2919024520896521e+01 -9.3879103935840877e+00
run_forces: ! |2
1 4.7317043425228775e+01 8.2803400468351640e+00 -3.2022741474282327e+01
2 -1.1507396121610043e+00 -9.3800428273681664e+00 -7.5750298470193211e+00
3 -7.0722723744612948e+00 5.3120552129380108e+01 4.5464393600034171e+01
4 -1.7156487213177229e+01 -2.2199431380438227e+01 1.5423862413015085e+01
5 -4.3774148945103477e+01 -4.9580631677813287e+01 -2.3555256603215724e+01
6 2.8582136701975742e+01 1.2250206029073558e+01 -5.2918320968928203e+00
1 4.7317043425228789e+01 8.2803400468351374e+00 -3.2022741474282384e+01
2 -1.1507396121609998e+00 -9.3800428273681327e+00 -7.5750298470192945e+00
3 -7.0722723744613241e+00 5.3120552129380208e+01 4.5464393600034256e+01
4 -1.7156487213177211e+01 -2.2199431380438263e+01 1.5423862413015042e+01
5 -4.3774148945103462e+01 -4.9580631677813329e+01 -2.3555256603215732e+01
6 2.8582136701975720e+01 1.2250206029073537e+01 -5.2918320968928239e+00
7 -4.0433921589706658e+00 3.6088512198553104e+00 -8.8346207971269153e-01
8 -1.6100382908522299e+01 -2.2479778216429441e+01 3.0308685247449411e+01
8 -1.6100382908522313e+01 -2.2479778216429455e+01 3.0308685247449418e+01
9 -3.8765997707298476e+00 4.0314231532636722e+00 -1.0094598622123530e-01
10 -3.0127554499097524e+00 4.1839118845102284e+01 -2.5278694388259829e+01
10 -3.0127554499096991e+00 4.1839118845102313e+01 -2.5278694388259844e+01
11 -5.0636093903406154e+00 -1.5836940795577710e+00 2.2122864002357181e+00
12 -6.0437037739721182e+00 -1.1714116472236709e+01 -1.0834285417835348e+01
13 3.3948471920723367e+00 8.6692910641428309e+00 -8.5533159046844065e-01
14 8.3711862952624507e+00 -1.4706373371942306e+01 -4.3599928418467879e+00
15 1.5472767163774250e+01 -5.0378189247377430e+00 1.5256421410739964e+01
16 2.7028526717416108e+00 6.8630083227935339e+00 1.0230239724999741e+00
17 1.4532581472931438e+00 -1.9809038599228157e+00 1.0688992817802037e+00
18 1.4201882413835776e-01 1.4265339757773212e+00 -5.7663956896747468e+00
19 -1.6609130686729214e+00 -2.0735307593210943e+00 2.4755525101126916e+00
20 1.5188942445345637e+00 6.4699678354377321e-01 3.2908431795620547e+00
21 3.2242729509516277e+00 4.0079233768385976e+00 -1.2047892238650938e+01
22 -5.7215184687399532e+00 -3.8871624402883245e+00 4.2679223469272056e+00
23 2.4972455177883255e+00 -1.2076093655027353e-01 7.7799698917237325e+00
24 -1.1661978296905358e+00 4.5271404898674401e+00 -2.6925565853369919e+00
25 -9.2712094527151212e-01 -3.1291890525016810e+00 5.1208215565053306e-01
26 2.0933187749620479e+00 -1.3979514373657593e+00 2.1804744296864591e+00
27 -2.6804542538019893e-01 2.1830651328697592e+00 -7.3931790038943679e-01
28 -5.7927072943126978e-01 -1.3052929090347605e+00 2.8365455885795143e-02
29 8.4731615481146871e-01 -8.7777222383499887e-01 7.1095244450364159e-01
12 -6.0437037739720525e+00 -1.1714116472236649e+01 -1.0834285417835430e+01
13 3.3948471920723255e+00 8.6692910641428007e+00 -8.5533159046841445e-01
14 8.3711862952624205e+00 -1.4706373371942330e+01 -4.3599928418467790e+00
15 1.5472767163774225e+01 -5.0378189247377554e+00 1.5256421410739998e+01
16 2.7028526717415566e+00 6.8630083227935659e+00 1.0230239724999848e+00
17 1.4532581472931634e+00 -1.9809038599228423e+00 1.0688992817802181e+00
18 1.4201882413835909e-01 1.4265339757773337e+00 -5.7663956896747992e+00
19 -1.6609130686729365e+00 -2.0735307593211125e+00 2.4755525101127143e+00
20 1.5188942445345774e+00 6.4699678354377899e-01 3.2908431795620849e+00
21 3.2242729509516406e+00 4.0079233768386153e+00 -1.2047892238650988e+01
22 -5.7215184687399772e+00 -3.8871624402883409e+00 4.2679223469272234e+00
23 2.4972455177883366e+00 -1.2076093655027398e-01 7.7799698917237645e+00
24 -1.1661978296905471e+00 4.5271404898674854e+00 -2.6925565853370195e+00
25 -9.2712094527152167e-01 -3.1291890525017125e+00 5.1208215565053827e-01
26 2.0933187749620688e+00 -1.3979514373657731e+00 2.1804744296864813e+00
27 -2.6804542538020537e-01 2.1830651328698103e+00 -7.3931790038945400e-01
28 -5.7927072943128310e-01 -1.3052929090347909e+00 2.8365455885795865e-02
29 8.4731615481148848e-01 -8.7777222383501941e-01 7.1095244450365813e-01
...

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:24 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
angle mm3
@ -17,7 +18,7 @@ angle_coeff: ! |
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
extract: ! ""
natoms: 29
init_energy: 44.7246154856262
init_energy: 44.72461548562619
init_stress: ! |2-
9.6483539484715550e+01 -7.3120175237333257e+01 -2.3363364247382318e+01 9.6221737253953094e+01 -3.1311135458252629e+01 -1.7557146927751774e+01
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 -2.9077025434585668e-01 2.3869960050754981e+00 -8.1309006692665386e-01
28 -6.3578646910720737e-01 -1.4272199888098533e+00 3.3154199570463894e-02
29 9.2655672345306406e-01 -9.5977601626564502e-01 7.7993586735619003e-01
run_energy: 44.3963062209567
run_energy: 44.39630622095668
run_stress: ! |2-
9.4780140946000415e+01 -7.2437928047641378e+01 -2.2342212898359016e+01 9.4615808363649876e+01 -3.1856450072762396e+01 -1.8642069063830736e+01
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:25 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 7.5e-13
skip_tests:
prerequisites: ! |
atom full
angle quartic
@ -50,7 +51,7 @@ init_forces: ! |2
27 -2.8661525615948458e-01 2.3528867249007490e+00 -8.0147131396639093e-01
28 -6.2670131824814423e-01 -1.4068255489507977e+00 3.2680438458290273e-02
29 9.1331657440762881e-01 -9.4606117594995109e-01 7.6879087550810066e-01
run_energy: 40.8070328565151
run_energy: 40.807032856515114
run_stress: ! |2-
8.7762099497944007e+01 -8.3994526348801116e+01 -3.7675731491429025e+00 9.0047666438661253e+01 -2.6521811185253604e+01 -2.8086171333623424e+00
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:25 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
atom full
angle table
@ -14,10 +15,10 @@ angle_coeff: ! |
2 ${input_dir}/angle_table.txt harmonic_2
3 ${input_dir}/angle_table.txt harmonic_3
4 ${input_dir}/angle_table.txt harmonic_4
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 41.5339263499027
init_energy: 41.53392634990271
init_stress: ! |2-
8.9723357320869255e+01 -8.7188643750026586e+01 -2.5347135708426856e+00 9.2043419883119654e+01 -2.8187238090404925e+01 -1.5291148024925465e+00
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 -2.8720725187343266e-01 2.3577465459556737e+00 -8.0312673032167514e-01
28 -6.2799575211499314e-01 -1.4097313073755624e+00 3.2747938980615898e-02
29 9.1520300398842580e-01 -9.4801523858011116e-01 7.7037879134105924e-01
run_energy: 41.2864477972198
run_energy: 41.286447797219786
run_stress: ! |2-
8.8236221596506653e+01 -8.6492260623309619e+01 -1.7439609731970602e+00 9.0601855980531255e+01 -2.8735005690484979e+01 -2.6097632235196491e+00
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:25 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
atom full
angle table
@ -14,10 +15,10 @@ angle_coeff: ! |
2 ${input_dir}/angle_table.txt harmonic_2
3 ${input_dir}/angle_table.txt harmonic_3
4 ${input_dir}/angle_table.txt harmonic_4
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 41.530817896491
init_energy: 41.530817896491016
init_stress: ! |2-
8.9723357320869255e+01 -8.7188643750026586e+01 -2.5347135708426856e+00 9.2043419883119654e+01 -2.8187238090404925e+01 -1.5291148024925465e+00
init_forces: ! |2
@ -50,7 +51,7 @@ init_forces: ! |2
27 -2.8720725187343266e-01 2.3577465459556737e+00 -8.0312673032167514e-01
28 -6.2799575211499314e-01 -1.4097313073755624e+00 3.2747938980615898e-02
29 9.1520300398842580e-01 -9.4801523858011116e-01 7.7037879134105924e-01
run_energy: 41.2832373902946
run_energy: 41.28323739029464
run_stress: ! |2-
8.8236221596506653e+01 -8.6492260623309605e+01 -1.7439609731970425e+00 9.0601855980531241e+01 -2.8735005690484972e+01 -2.6097632235196544e+00
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:25 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:52 2022
epsilon: 1e-14
skip_tests:
prerequisites: ! |
atom full
angle zero
@ -14,7 +15,7 @@ angle_coeff: ! |
2 111
3 120
4 108.5
equilibrium: 4 1.9216075064457565 1.9373154697137058 2.0943951023931953 1.8936822384138474
equilibrium: 4 1.9216075064457567 1.9373154697137058 2.0943951023931953 1.8936822384138476
extract: ! ""
natoms: 29
init_energy: 0

View File

@ -1,8 +1,9 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Fri Feb 26 23:08:58 2021
date_generated: Fri Mar 18 22:17:36 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
pair adp
pre_commands: ! ""
@ -13,7 +14,7 @@ pair_coeff: ! |
* * AlCu.adp Al Cu
extract: ! ""
natoms: 32
init_vdwl: -96.3621905354495
init_vdwl: -96.36219053544953
init_coul: 0
init_stress: ! |2-
1.0950940963019309e+02 9.8793143617200286e+01 8.2868514028589203e+01 4.4674243524583641e+00 -1.6359979177752422e+00 3.1824061950082316e+00

View File

@ -1,8 +1,9 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Fri Feb 26 23:08:58 2021
date_generated: Fri Mar 18 22:17:36 2022
epsilon: 5e-12
skip_tests:
prerequisites: ! |
pair atm
pre_commands: ! |
@ -15,7 +16,7 @@ pair_coeff: ! |
* * * 25.0
extract: ! ""
natoms: 32
init_vdwl: 4.29790007480121
init_vdwl: 4.2979000748012135
init_coul: 0
init_stress: ! |2-
1.2907320878711678e+01 1.2784310537300177e+01 1.2989469257199106e+01 3.2388109042463260e-02 4.8727763023580862e-03 -4.0982848248419549e-03
@ -52,7 +53,7 @@ init_forces: ! |2
30 -5.4737231063771909e-02 -7.4768574267284921e-04 -7.9319198647640782e-02
31 -1.6935816002065361e-02 -1.0547543496314456e-01 5.0982604012348082e-02
32 -1.2390716429105794e-01 -7.2578142947119742e-02 -4.1957221348949782e-02
run_vdwl: 4.2978376627225
run_vdwl: 4.297837662722496
run_coul: 0
run_stress: ! |2-
1.2906967061285989e+01 1.2784294465524448e+01 1.2989277437691916e+01 3.2259383532254583e-02 4.8758996531777293e-03 -4.1128361419111841e-03

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:36 2022
epsilon: 2e-12
skip_tests:
prerequisites: ! |
pair beck
pre_commands: ! ""
@ -12,7 +13,7 @@ pair_coeff: ! |
* * 399.671876712 0.0000867636112694 0.675 4.390 0.0003746
extract: ! ""
natoms: 32
init_vdwl: 1.66849238207407
init_vdwl: 1.6684923820740662
init_coul: 0
init_stress: ! |2-
6.1946492027972404e+00 6.0610401681504031e+00 5.8874026063063027e+00 2.0726580449163334e-01 -2.1210358381150402e-02 -8.9415206710373632e-02
@ -49,7 +50,7 @@ init_forces: ! |2
30 -4.2587399053040723e-02 -3.0047441564997463e-02 -8.4420708024142574e-02
31 -2.0646215864156710e-02 -1.1590109109011101e-01 7.4785523155347783e-02
32 -1.9351936790460383e-01 -6.3281924064284692e-02 -2.2278650486481616e-02
run_vdwl: 1.66842323237505
run_vdwl: 1.6684232323750492
run_coul: 0
run_stress: ! |2-
6.1945945010955059e+00 6.0608213175977346e+00 5.8870610876826692e+00 2.0713170028170666e-01 -2.1315978613950362e-02 -8.9579347008543392e-02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:36 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
pair born
pre_commands: ! ""
@ -12,7 +13,7 @@ pair_coeff: ! |
* * 6.08 0.317 2.340 24.18 11.51
extract: ! ""
natoms: 32
init_vdwl: 836.893711811487
init_vdwl: 836.8937118114866
init_coul: 0
init_stress: ! |2-
2.1907762159508770e+03 2.1533146615415390e+03 2.1384803888060319e+03 3.1458958046100697e+01 -5.2331768978302460e+00 -1.2410855173406260e+01
@ -49,7 +50,7 @@ init_forces: ! |2
30 -1.2005631838887281e+01 -6.4092999695138637e+00 -1.9850411539058847e+01
31 -5.5566952298732328e+00 -2.8420402803389738e+01 1.7818115115845121e+01
32 -4.3603353069761802e+01 -1.4618745302080386e+01 -5.8614805227083417e+00
run_vdwl: 836.525645079158
run_vdwl: 836.5256450791583
run_coul: 0
run_stress: ! |2-
2.1900813819406562e+03 2.1526856543612221e+03 2.1377858496227304e+03 3.1265932019331444e+01 -5.2753088928534844e+00 -1.2351730282986319e+01

View File

@ -1,9 +1,9 @@
---
lammps_version: 8 Apr 2021
date_generated: Tue Apr 20 14:47:51 2021
epsilon: 7.5e-13
lammps_version: 17 Feb 2022
tags: unstable
skip_tests: intel single gpu
date_generated: Fri Mar 18 22:17:36 2022
epsilon: 7.5e-13
skip_tests: gpu intel single
prerequisites: ! |
pair buck/coul/cut
fix qeq/point

View File

@ -1,9 +1,9 @@
---
lammps_version: 8 Apr 2021
date_generated: Tue Apr 20 14:48:00 2021
epsilon: 7.5e-13
lammps_version: 17 Feb 2022
tags: unstable
skip_tests: intel single gpu
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 7.5e-13
skip_tests: gpu intel single
prerequisites: ! |
pair buck/coul/cut
fix qeq/shielded

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-14
skip_tests: single
prerequisites: ! |
@ -22,7 +22,7 @@ pair_coeff: ! |
2 2 10.0 1.0 0.0 0.0 2.5
extract: ! ""
natoms: 27
init_vdwl: -0.250320882681727
init_vdwl: -0.2503208826817271
init_coul: 0
init_stress: ! |2-
1.6687682615057471e+00 1.1747891073356403e+01 1.0083450567161805e+00 -5.5144333681331359e+00 3.4548099128807436e-01 2.8508471154795298e+00
@ -54,7 +54,7 @@ init_forces: ! |2
25 -1.1259499193288544e-01 1.6395143300644177e-02 -9.0439962448757879e-04
26 1.0304882476745540e-01 7.8050496446500431e-03 1.9255643852370385e-02
27 -4.3346315050731818e-02 -2.2993111981455712e-02 -1.1392238078737215e-02
run_vdwl: 0.546631276624111
run_vdwl: 0.5466312766241107
run_coul: 0
run_stress: ! |2-
5.6665057159424279e+00 1.4285058934754080e+01 5.9048859060593220e+00 -8.4818814420023418e+00 5.2881315002023017e+00 -1.1970976964673827e+00

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-14
skip_tests: single
prerequisites: ! |
@ -22,68 +22,68 @@ pair_coeff: ! |
2 2 10.0 1.0 0.0 0.0 2.5
extract: ! ""
natoms: 27
init_vdwl: -0.250320882681727
init_vdwl: -0.25032088268172703
init_coul: 0
init_stress: ! |2-
1.6687682615057460e+00 1.1747891073356403e+01 1.0083450567161796e+00 -5.5144333681331261e+00 3.4548099128807747e-01 2.8508471154795298e+00
1.6687682615057429e+00 1.1747891073356412e+01 1.0083450567161802e+00 -5.5144333681331181e+00 3.4548099128807563e-01 2.8508471154795316e+00
init_forces: ! |2
1 4.2502214537152215e-02 6.8580119035896499e-03 -6.8677100496229715e-02
2 -2.4409971231138453e-04 -5.8282143696384295e-05 1.8044935805594862e-05
3 -1.5879676810899343e-02 -1.3312213962585376e-02 -1.1959790230130810e-02
4 5.4778343227770802e-04 -2.4424984321614867e-02 -3.6445490162239011e-02
1 4.2502214537152215e-02 6.8580119035896491e-03 -6.8677100496229701e-02
2 -2.4409971231138501e-04 -5.8282143696384431e-05 1.8044935805594903e-05
3 -1.5879676810899353e-02 -1.3312213962585400e-02 -1.1959790230130819e-02
4 5.4778343227770455e-04 -2.4424984321614870e-02 -3.6445490162239004e-02
5 7.4458982140296174e-04 5.3043116325023304e-05 1.1848540218007477e-04
6 2.2466945989092868e+00 -1.1355562227620619e+00 2.3685617789648643e+00
6 2.2466945989092872e+00 -1.1355562227620619e+00 2.3685617789648648e+00
7 -2.9420817632825613e-03 -7.4830177547552715e-04 -1.2326317038179183e-03
8 1.0456973881919887e-01 -2.8794438516942737e-02 -1.0767233651978719e-02
8 1.0456973881919887e-01 -2.8794438516942737e-02 -1.0767233651978722e-02
9 -1.8842568296905022e-02 1.7092235687070117e-02 -1.4248069827099535e-02
10 1.8278642893333091e-04 4.1941592242561833e-04 9.8624961124789412e-05
11 2.5605560774882609e-02 -1.0270993584697993e-01 -1.1452001476172027e-01
12 -1.7190177814447429e+00 4.3689733469585290e+00 1.2971816478430653e+00
10 1.8278642893333118e-04 4.1941592242561681e-04 9.8624961124790605e-05
11 2.5605560774882581e-02 -1.0270993584697991e-01 -1.1452001476172027e-01
12 -1.7190177814447427e+00 4.3689733469585290e+00 1.2971816478430653e+00
13 -1.4111675314136360e-01 4.2420896699357280e-02 -6.2611143561577903e-02
14 -4.1487669742220991e-02 -9.8022075695912841e-03 1.5709450788901494e-01
15 1.8296904307488300e+00 -4.3363458812930853e+00 -1.2757754576582720e+00
15 1.8296904307488295e+00 -4.3363458812930844e+00 -1.2757754576582720e+00
16 1.2006895887469950e-03 8.6089636114693700e-04 4.8031493704482794e-05
17 6.1663662317927744e-04 -2.9235023723413574e-04 3.5387343984160432e-03
17 6.1663662317927733e-04 -2.9235023723413580e-04 3.5387343984160432e-03
18 -3.6474070486619430e-02 -2.2991550342271461e-02 1.6164948715920169e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.4513560799741325e-03 -1.0256280577842596e-03 -6.5496554886125568e-04
21 6.2575756583543186e-03 1.1941945764063822e-03 8.5597303165342044e-04
22 -8.0641944111498032e-04 1.1943078425573997e-04 -9.8433130461350886e-04
21 6.2575756583543186e-03 1.1941945764063822e-03 8.5597303165342033e-04
22 -8.0641944111498043e-04 1.1943078425573997e-04 -9.8433130461350886e-04
23 -2.2951590782728504e+00 1.1606385208734131e+00 -2.3600356755963983e+00
24 7.2701432066201888e-02 7.6224922982964599e-02 1.0727212071804376e-01
25 -1.1259499193288544e-01 1.6395143300644177e-02 -9.0439962448757879e-04
26 1.0304882476745540e-01 7.8050496446500431e-03 1.9255643852370385e-02
27 -4.3346315050731818e-02 -2.2993111981455712e-02 -1.1392238078737215e-02
run_vdwl: 0.546631276624111
24 7.2701432066201707e-02 7.6224922982964544e-02 1.0727212071804376e-01
25 -1.1259499193288544e-01 1.6395143300644177e-02 -9.0439962448757869e-04
26 1.0304882476745546e-01 7.8050496446500344e-03 1.9255643852370354e-02
27 -4.3346315050731707e-02 -2.2993111981455643e-02 -1.1392238078737184e-02
run_vdwl: 0.5466312766241109
run_coul: 0
run_stress: ! |2-
5.6665057159424261e+00 1.4285058934754046e+01 5.9048859060592864e+00 -8.4818814420023330e+00 5.2881315002022999e+00 -1.1970976964673721e+00
5.6665057159424252e+00 1.4285058934754080e+01 5.9048859060592900e+00 -8.4818814420023365e+00 5.2881315002022946e+00 -1.1970976964673801e+00
run_forces: ! |2
1 4.0537507872915053e-02 1.0013640201526581e-02 -7.4355259432510867e-02
2 -2.4485071669905174e-04 -5.6491959787860711e-05 1.5762341909211182e-05
3 -1.6525210356374609e-02 -1.0700896145717292e-02 -1.2466738605043475e-02
4 5.0895222294109008e-04 -3.7419904027191128e-02 -5.2521332284172585e-02
1 4.0537507872915053e-02 1.0013640201526579e-02 -7.4355259432510881e-02
2 -2.4485071669905206e-04 -5.6491959787860786e-05 1.5762341909211202e-05
3 -1.6525210356374616e-02 -1.0700896145717309e-02 -1.2466738605043484e-02
4 5.0895222294109789e-04 -3.7419904027191121e-02 -5.2521332284172599e-02
5 8.5578946640613943e-04 8.0514060368271588e-05 1.6089100898761854e-04
6 1.0911859985057569e+01 -7.9829483219779931e+00 1.1645117315742235e+01
6 1.0911859985057569e+01 -7.9829483219779931e+00 1.1645117315742233e+01
7 -4.1062783933935344e-03 -1.1807936887044740e-03 -1.9906886909716228e-03
8 1.5636388167915602e-01 -2.6781130173509270e-02 -6.1357481353796735e-03
8 1.5636388167915602e-01 -2.6781130173509270e-02 -6.1357481353796744e-03
9 -1.5567285888326367e-02 1.4722366247268760e-02 -1.1953767152526074e-02
10 1.8805531793129058e-04 3.7820400166769451e-04 1.4614304834967826e-04
11 -1.4864493912733895e-03 -1.0424975640019393e-01 -1.0816074777358398e-01
10 1.8805531793129033e-04 3.7820400166769559e-04 1.4614304834967718e-04
11 -1.4864493912734866e-03 -1.0424975640019385e-01 -1.0816074777358381e-01
12 -1.4904584977612405e+00 4.2295428937341466e+00 1.1884379359045367e+00
13 -1.1886876552110689e-01 2.9541662205201678e-02 -4.8308607756838103e-02
14 -4.1308859452544304e-02 -1.3119548152383659e-02 1.5120405320455541e-01
15 1.5979084315924958e+00 -4.1789376696435205e+00 -1.1491971372792293e+00
15 1.5979084315924958e+00 -4.1789376696435196e+00 -1.1491971372792293e+00
16 9.0310163053403483e-04 6.6079222833706974e-04 3.6708366832548456e-05
17 1.8715075729367327e-03 2.1147818438203180e-04 4.1547470949003804e-03
17 1.8715075729367327e-03 2.1147818438203175e-04 4.1547470949003804e-03
18 -3.0456290625962980e-02 -1.9427008524387373e-02 1.3856334852879893e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.8134551323710407e-03 -9.2563232531751437e-04 -2.5011200860506922e-04
21 6.5798593112743053e-03 1.0885497409975236e-03 5.0300594748037915e-04
22 -7.0187004021510127e-04 1.0724877221923711e-04 -8.7584649012749057e-04
23 -1.0963098689741106e+01 8.0069723546503813e+00 -1.1637002224325434e+01
24 4.2791276882802765e-02 7.5413656281613686e-02 9.2510054641217671e-02
21 6.5798593112743053e-03 1.0885497409975234e-03 5.0300594748037904e-04
22 -7.0187004021510192e-04 1.0724877221923722e-04 -8.7584649012749144e-04
23 -1.0963098689741106e+01 8.0069723546503830e+00 -1.1637002224325434e+01
24 4.2791276882802834e-02 7.5413656281613589e-02 9.2510054641217560e-02
25 -1.6396876440827662e-01 1.5180752630598059e-02 -5.8364823335845528e-03
26 1.2677571346204658e-01 9.1980780160170368e-03 2.1458873742780715e-02
26 1.2677571346204658e-01 9.1980780160170368e-03 2.1458873742780722e-02
27 -3.3538794640120287e-02 -1.7365037936021697e-02 -8.5471336286569340e-03
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-13
skip_tests: single
prerequisites: ! |
@ -26,65 +26,65 @@ natoms: 27
init_vdwl: -0.250320882681715
init_coul: 0
init_stress: ! |2-
1.6687682615058241e+00 1.1747891073356824e+01 1.0083450567162384e+00 -5.5144333681333002e+00 3.4548099128804161e-01 2.8508471154796613e+00
1.6687682615058166e+00 1.1747891073356826e+01 1.0083450567162291e+00 -5.5144333681332895e+00 3.4548099128804100e-01 2.8508471154796506e+00
init_forces: ! |2
1 4.2502214537152139e-02 6.8580119035896794e-03 -6.8677100496229632e-02
1 4.2502214537152139e-02 6.8580119035896777e-03 -6.8677100496229618e-02
2 -2.4409971231138493e-04 -5.8282143696384329e-05 1.8044935805594828e-05
3 -1.5879676810899381e-02 -1.3312213962585501e-02 -1.1959790230130862e-02
4 5.4778343227773751e-04 -2.4424984321614905e-02 -3.6445490162238962e-02
3 -1.5879676810899346e-02 -1.3312213962585421e-02 -1.1959790230130829e-02
4 5.4778343227773751e-04 -2.4424984321614926e-02 -3.6445490162238969e-02
5 7.4458982140296185e-04 5.3043116325022762e-05 1.1848540218007482e-04
6 2.2466945989093152e+00 -1.1355562227620701e+00 2.3685617789648945e+00
6 2.2466945989093152e+00 -1.1355562227620704e+00 2.3685617789648945e+00
7 -2.9420817632825631e-03 -7.4830177547552694e-04 -1.2326317038179192e-03
8 1.0456973881919868e-01 -2.8794438516942699e-02 -1.0767233651978712e-02
8 1.0456973881919868e-01 -2.8794438516942696e-02 -1.0767233651978710e-02
9 -1.8842568296904984e-02 1.7092235687070075e-02 -1.4248069827099497e-02
10 1.8278642893333129e-04 4.1941592242561638e-04 9.8624961124791906e-05
11 2.5605560774882380e-02 -1.0270993584698010e-01 -1.1452001476172038e-01
11 2.5605560774882352e-02 -1.0270993584698007e-01 -1.1452001476172038e-01
12 -1.7190177814448016e+00 4.3689733469586800e+00 1.2971816478431131e+00
13 -1.4111675314136379e-01 4.2420896699357342e-02 -6.2611143561578070e-02
14 -4.1487669742221053e-02 -9.8022075695912807e-03 1.5709450788901488e-01
15 1.8296904307488884e+00 -4.3363458812932363e+00 -1.2757754576583198e+00
15 1.8296904307488877e+00 -4.3363458812932354e+00 -1.2757754576583200e+00
16 1.2006895887469950e-03 8.6089636114693700e-04 4.8031493704482679e-05
17 6.1663662317927549e-04 -2.9235023723413927e-04 3.5387343984160471e-03
17 6.1663662317927538e-04 -2.9235023723413927e-04 3.5387343984160467e-03
18 -3.6474070486619471e-02 -2.2991550342271464e-02 1.6164948715920183e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.4513560799741325e-03 -1.0256280577842611e-03 -6.5496554886125568e-04
21 6.2575756583543186e-03 1.1941945764063838e-03 8.5597303165342044e-04
22 -8.0641944111497544e-04 1.1943078425573959e-04 -9.8433130461350322e-04
21 6.2575756583543186e-03 1.1941945764063840e-03 8.5597303165342033e-04
22 -8.0641944111497815e-04 1.1943078425573998e-04 -9.8433130461350604e-04
23 -2.2951590782728784e+00 1.1606385208734213e+00 -2.3600356755964280e+00
24 7.2701432066201735e-02 7.6224922982964224e-02 1.0727212071804387e-01
25 -1.1259499193288525e-01 1.6395143300644142e-02 -9.0439962448757977e-04
26 1.0304882476745569e-01 7.8050496446502114e-03 1.9255643852370365e-02
27 -4.3346315050731436e-02 -2.2993111981455479e-02 -1.1392238078737104e-02
run_vdwl: 0.546631276624125
24 7.2701432066201777e-02 7.6224922982964405e-02 1.0727212071804407e-01
25 -1.1259499193288525e-01 1.6395143300644142e-02 -9.0439962448757988e-04
26 1.0304882476745592e-01 7.8050496446501715e-03 1.9255643852370247e-02
27 -4.3346315050731700e-02 -2.2993111981455646e-02 -1.1392238078737184e-02
run_vdwl: 0.5466312766241253
run_coul: 0
run_stress: ! |2-
5.6665057159425141e+00 1.4285058934754488e+01 5.9048859060595005e+00 -8.4818814420024662e+00 5.2881315002023204e+00 -1.1970976964672442e+00
5.6665057159425096e+00 1.4285058934754492e+01 5.9048859060594117e+00 -8.4818814420024538e+00 5.2881315002023177e+00 -1.1970976964672473e+00
run_forces: ! |2
1 4.0537507872915039e-02 1.0013640201526628e-02 -7.4355259432510909e-02
1 4.0537507872915039e-02 1.0013640201526628e-02 -7.4355259432510895e-02
2 -2.4485071669905233e-04 -5.6491959787860793e-05 1.5762341909211158e-05
3 -1.6525210356374626e-02 -1.0700896145717401e-02 -1.2466738605043531e-02
4 5.0895222294107621e-04 -3.7419904027191864e-02 -5.2521332284173328e-02
3 -1.6525210356374637e-02 -1.0700896145717426e-02 -1.2466738605043538e-02
4 5.0895222294106493e-04 -3.7419904027191808e-02 -5.2521332284173307e-02
5 8.5578946640613932e-04 8.0514060368270612e-05 1.6089100898761840e-04
6 1.0911859985057617e+01 -7.9829483219779238e+00 1.1645117315742368e+01
6 1.0911859985057617e+01 -7.9829483219779247e+00 1.1645117315742368e+01
7 -4.1062783933935310e-03 -1.1807936887044700e-03 -1.9906886909716232e-03
8 1.5636388167915585e-01 -2.6781130173509173e-02 -6.1357481353797629e-03
8 1.5636388167915585e-01 -2.6781130173509173e-02 -6.1357481353797663e-03
9 -1.5567285888326300e-02 1.4722366247268678e-02 -1.1953767152526006e-02
10 1.8805531793129020e-04 3.7820400166769380e-04 1.4614304834967978e-04
11 -1.4864493912745413e-03 -1.0424975640019400e-01 -1.0816074777358338e-01
12 -1.4904584977612991e+00 4.2295428937343154e+00 1.1884379359045845e+00
13 -1.1886876552110487e-01 2.9541662205201210e-02 -4.8308607756837312e-02
10 1.8805531793128995e-04 3.7820400166769499e-04 1.4614304834967859e-04
11 -1.4864493912745413e-03 -1.0424975640019399e-01 -1.0816074777358338e-01
12 -1.4904584977612991e+00 4.2295428937343154e+00 1.1884379359045842e+00
13 -1.1886876552110640e-01 2.9541662205201574e-02 -4.8308607756837901e-02
14 -4.1308859452544325e-02 -1.3119548152383642e-02 1.5120405320455521e-01
15 1.5979084315925551e+00 -4.1789376696436884e+00 -1.1491971372792762e+00
15 1.5979084315925547e+00 -4.1789376696436875e+00 -1.1491971372792762e+00
16 9.0310163053403689e-04 6.6079222833707125e-04 3.6708366832548463e-05
17 1.8715075729367286e-03 2.1147818438202660e-04 4.1547470949003795e-03
17 1.8715075729367283e-03 2.1147818438202654e-04 4.1547470949003804e-03
18 -3.0456290625963053e-02 -1.9427008524387408e-02 1.3856334852879930e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.8134551323710381e-03 -9.2563232531751730e-04 -2.5011200860506922e-04
21 6.5798593112743045e-03 1.0885497409975256e-03 5.0300594748037633e-04
22 -7.0187004021510387e-04 1.0724877221923791e-04 -8.7584649012749393e-04
21 6.5798593112743045e-03 1.0885497409975258e-03 5.0300594748037622e-04
22 -7.0187004021510181e-04 1.0724877221923757e-04 -8.7584649012749144e-04
23 -1.0963098689741154e+01 8.0069723546503138e+00 -1.1637002224325569e+01
24 4.2791276882800683e-02 7.5413656281613561e-02 9.2510054641216644e-02
24 4.2791276882802154e-02 7.5413656281613117e-02 9.2510054641217143e-02
25 -1.6396876440827649e-01 1.5180752630597804e-02 -5.8364823335845511e-03
26 1.2677571346204791e-01 9.1980780160173560e-03 2.1458873742780590e-02
27 -3.3538794640120474e-02 -1.7365037936021819e-02 -8.5471336286569739e-03
26 1.2677571346204786e-01 9.1980780160173664e-03 2.1458873742780608e-02
27 -3.3538794640120356e-02 -1.7365037936021746e-02 -8.5471336286569392e-03
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-14
skip_tests: single
prerequisites: ! |
@ -22,68 +22,68 @@ pair_coeff: ! |
2 2 10.0 1.0 0.0 0.0 2.5
extract: ! ""
natoms: 27
init_vdwl: -0.250320882681727
init_vdwl: -0.25032088268172703
init_coul: 0
init_stress: ! |2-
1.6687682615057460e+00 1.1747891073356403e+01 1.0083450567161796e+00 -5.5144333681331261e+00 3.4548099128807747e-01 2.8508471154795298e+00
1.6687682615057429e+00 1.1747891073356412e+01 1.0083450567161802e+00 -5.5144333681331181e+00 3.4548099128807563e-01 2.8508471154795316e+00
init_forces: ! |2
1 4.2502214537152215e-02 6.8580119035896499e-03 -6.8677100496229715e-02
2 -2.4409971231138453e-04 -5.8282143696384295e-05 1.8044935805594862e-05
3 -1.5879676810899343e-02 -1.3312213962585376e-02 -1.1959790230130810e-02
4 5.4778343227770802e-04 -2.4424984321614867e-02 -3.6445490162239011e-02
1 4.2502214537152215e-02 6.8580119035896491e-03 -6.8677100496229701e-02
2 -2.4409971231138501e-04 -5.8282143696384431e-05 1.8044935805594903e-05
3 -1.5879676810899353e-02 -1.3312213962585400e-02 -1.1959790230130819e-02
4 5.4778343227770455e-04 -2.4424984321614870e-02 -3.6445490162239004e-02
5 7.4458982140296174e-04 5.3043116325023304e-05 1.1848540218007477e-04
6 2.2466945989092868e+00 -1.1355562227620619e+00 2.3685617789648643e+00
6 2.2466945989092872e+00 -1.1355562227620619e+00 2.3685617789648648e+00
7 -2.9420817632825613e-03 -7.4830177547552715e-04 -1.2326317038179183e-03
8 1.0456973881919887e-01 -2.8794438516942737e-02 -1.0767233651978719e-02
8 1.0456973881919887e-01 -2.8794438516942737e-02 -1.0767233651978722e-02
9 -1.8842568296905022e-02 1.7092235687070117e-02 -1.4248069827099535e-02
10 1.8278642893333091e-04 4.1941592242561833e-04 9.8624961124789412e-05
11 2.5605560774882609e-02 -1.0270993584697993e-01 -1.1452001476172027e-01
12 -1.7190177814447429e+00 4.3689733469585290e+00 1.2971816478430653e+00
10 1.8278642893333118e-04 4.1941592242561681e-04 9.8624961124790605e-05
11 2.5605560774882581e-02 -1.0270993584697991e-01 -1.1452001476172027e-01
12 -1.7190177814447427e+00 4.3689733469585290e+00 1.2971816478430653e+00
13 -1.4111675314136360e-01 4.2420896699357280e-02 -6.2611143561577903e-02
14 -4.1487669742220991e-02 -9.8022075695912841e-03 1.5709450788901494e-01
15 1.8296904307488300e+00 -4.3363458812930853e+00 -1.2757754576582720e+00
15 1.8296904307488295e+00 -4.3363458812930844e+00 -1.2757754576582720e+00
16 1.2006895887469950e-03 8.6089636114693700e-04 4.8031493704482794e-05
17 6.1663662317927744e-04 -2.9235023723413574e-04 3.5387343984160432e-03
17 6.1663662317927733e-04 -2.9235023723413580e-04 3.5387343984160432e-03
18 -3.6474070486619430e-02 -2.2991550342271461e-02 1.6164948715920169e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.4513560799741325e-03 -1.0256280577842596e-03 -6.5496554886125568e-04
21 6.2575756583543186e-03 1.1941945764063822e-03 8.5597303165342044e-04
22 -8.0641944111498032e-04 1.1943078425573997e-04 -9.8433130461350886e-04
21 6.2575756583543186e-03 1.1941945764063822e-03 8.5597303165342033e-04
22 -8.0641944111498043e-04 1.1943078425573997e-04 -9.8433130461350886e-04
23 -2.2951590782728504e+00 1.1606385208734131e+00 -2.3600356755963983e+00
24 7.2701432066201888e-02 7.6224922982964599e-02 1.0727212071804376e-01
25 -1.1259499193288544e-01 1.6395143300644177e-02 -9.0439962448757879e-04
26 1.0304882476745540e-01 7.8050496446500431e-03 1.9255643852370385e-02
27 -4.3346315050731818e-02 -2.2993111981455712e-02 -1.1392238078737215e-02
run_vdwl: 0.546631276624111
24 7.2701432066201707e-02 7.6224922982964544e-02 1.0727212071804376e-01
25 -1.1259499193288544e-01 1.6395143300644177e-02 -9.0439962448757869e-04
26 1.0304882476745546e-01 7.8050496446500344e-03 1.9255643852370354e-02
27 -4.3346315050731707e-02 -2.2993111981455643e-02 -1.1392238078737184e-02
run_vdwl: 0.5466312766241109
run_coul: 0
run_stress: ! |2-
5.6665057159424261e+00 1.4285058934754046e+01 5.9048859060592864e+00 -8.4818814420023330e+00 5.2881315002022999e+00 -1.1970976964673721e+00
5.6665057159424252e+00 1.4285058934754080e+01 5.9048859060592900e+00 -8.4818814420023365e+00 5.2881315002022946e+00 -1.1970976964673801e+00
run_forces: ! |2
1 4.0537507872915053e-02 1.0013640201526581e-02 -7.4355259432510867e-02
2 -2.4485071669905174e-04 -5.6491959787860711e-05 1.5762341909211182e-05
3 -1.6525210356374609e-02 -1.0700896145717292e-02 -1.2466738605043475e-02
4 5.0895222294109008e-04 -3.7419904027191128e-02 -5.2521332284172585e-02
1 4.0537507872915053e-02 1.0013640201526579e-02 -7.4355259432510881e-02
2 -2.4485071669905206e-04 -5.6491959787860786e-05 1.5762341909211202e-05
3 -1.6525210356374616e-02 -1.0700896145717309e-02 -1.2466738605043484e-02
4 5.0895222294109789e-04 -3.7419904027191121e-02 -5.2521332284172599e-02
5 8.5578946640613943e-04 8.0514060368271588e-05 1.6089100898761854e-04
6 1.0911859985057569e+01 -7.9829483219779931e+00 1.1645117315742235e+01
6 1.0911859985057569e+01 -7.9829483219779931e+00 1.1645117315742233e+01
7 -4.1062783933935344e-03 -1.1807936887044740e-03 -1.9906886909716228e-03
8 1.5636388167915602e-01 -2.6781130173509270e-02 -6.1357481353796735e-03
8 1.5636388167915602e-01 -2.6781130173509270e-02 -6.1357481353796744e-03
9 -1.5567285888326367e-02 1.4722366247268760e-02 -1.1953767152526074e-02
10 1.8805531793129058e-04 3.7820400166769451e-04 1.4614304834967826e-04
11 -1.4864493912733895e-03 -1.0424975640019393e-01 -1.0816074777358398e-01
10 1.8805531793129033e-04 3.7820400166769559e-04 1.4614304834967718e-04
11 -1.4864493912734866e-03 -1.0424975640019385e-01 -1.0816074777358381e-01
12 -1.4904584977612405e+00 4.2295428937341466e+00 1.1884379359045367e+00
13 -1.1886876552110689e-01 2.9541662205201678e-02 -4.8308607756838103e-02
14 -4.1308859452544304e-02 -1.3119548152383659e-02 1.5120405320455541e-01
15 1.5979084315924958e+00 -4.1789376696435205e+00 -1.1491971372792293e+00
15 1.5979084315924958e+00 -4.1789376696435196e+00 -1.1491971372792293e+00
16 9.0310163053403483e-04 6.6079222833706974e-04 3.6708366832548456e-05
17 1.8715075729367327e-03 2.1147818438203180e-04 4.1547470949003804e-03
17 1.8715075729367327e-03 2.1147818438203175e-04 4.1547470949003804e-03
18 -3.0456290625962980e-02 -1.9427008524387373e-02 1.3856334852879893e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.8134551323710407e-03 -9.2563232531751437e-04 -2.5011200860506922e-04
21 6.5798593112743053e-03 1.0885497409975236e-03 5.0300594748037915e-04
22 -7.0187004021510127e-04 1.0724877221923711e-04 -8.7584649012749057e-04
23 -1.0963098689741106e+01 8.0069723546503813e+00 -1.1637002224325434e+01
24 4.2791276882802765e-02 7.5413656281613686e-02 9.2510054641217671e-02
21 6.5798593112743053e-03 1.0885497409975234e-03 5.0300594748037904e-04
22 -7.0187004021510192e-04 1.0724877221923722e-04 -8.7584649012749144e-04
23 -1.0963098689741106e+01 8.0069723546503830e+00 -1.1637002224325434e+01
24 4.2791276882802834e-02 7.5413656281613589e-02 9.2510054641217560e-02
25 -1.6396876440827662e-01 1.5180752630598059e-02 -5.8364823335845528e-03
26 1.2677571346204658e-01 9.1980780160170368e-03 2.1458873742780715e-02
26 1.2677571346204658e-01 9.1980780160170368e-03 2.1458873742780722e-02
27 -3.3538794640120287e-02 -1.7365037936021697e-02 -8.5471336286569340e-03
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:59 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-13
skip_tests: single
prerequisites: ! |
@ -26,65 +26,65 @@ natoms: 27
init_vdwl: -0.250320882681715
init_coul: 0
init_stress: ! |2-
1.6687682615058241e+00 1.1747891073356824e+01 1.0083450567162384e+00 -5.5144333681333002e+00 3.4548099128804161e-01 2.8508471154796613e+00
1.6687682615058166e+00 1.1747891073356826e+01 1.0083450567162291e+00 -5.5144333681332895e+00 3.4548099128804100e-01 2.8508471154796506e+00
init_forces: ! |2
1 4.2502214537152139e-02 6.8580119035896794e-03 -6.8677100496229632e-02
1 4.2502214537152139e-02 6.8580119035896777e-03 -6.8677100496229618e-02
2 -2.4409971231138493e-04 -5.8282143696384329e-05 1.8044935805594828e-05
3 -1.5879676810899381e-02 -1.3312213962585501e-02 -1.1959790230130862e-02
4 5.4778343227773751e-04 -2.4424984321614905e-02 -3.6445490162238962e-02
3 -1.5879676810899346e-02 -1.3312213962585421e-02 -1.1959790230130829e-02
4 5.4778343227773751e-04 -2.4424984321614926e-02 -3.6445490162238969e-02
5 7.4458982140296185e-04 5.3043116325022762e-05 1.1848540218007482e-04
6 2.2466945989093152e+00 -1.1355562227620701e+00 2.3685617789648945e+00
6 2.2466945989093152e+00 -1.1355562227620704e+00 2.3685617789648945e+00
7 -2.9420817632825631e-03 -7.4830177547552694e-04 -1.2326317038179192e-03
8 1.0456973881919868e-01 -2.8794438516942699e-02 -1.0767233651978712e-02
8 1.0456973881919868e-01 -2.8794438516942696e-02 -1.0767233651978710e-02
9 -1.8842568296904984e-02 1.7092235687070075e-02 -1.4248069827099497e-02
10 1.8278642893333129e-04 4.1941592242561638e-04 9.8624961124791906e-05
11 2.5605560774882380e-02 -1.0270993584698010e-01 -1.1452001476172038e-01
11 2.5605560774882352e-02 -1.0270993584698007e-01 -1.1452001476172038e-01
12 -1.7190177814448016e+00 4.3689733469586800e+00 1.2971816478431131e+00
13 -1.4111675314136379e-01 4.2420896699357342e-02 -6.2611143561578070e-02
14 -4.1487669742221053e-02 -9.8022075695912807e-03 1.5709450788901488e-01
15 1.8296904307488884e+00 -4.3363458812932363e+00 -1.2757754576583198e+00
15 1.8296904307488877e+00 -4.3363458812932354e+00 -1.2757754576583200e+00
16 1.2006895887469950e-03 8.6089636114693700e-04 4.8031493704482679e-05
17 6.1663662317927549e-04 -2.9235023723413927e-04 3.5387343984160471e-03
17 6.1663662317927538e-04 -2.9235023723413927e-04 3.5387343984160467e-03
18 -3.6474070486619471e-02 -2.2991550342271464e-02 1.6164948715920183e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.4513560799741325e-03 -1.0256280577842611e-03 -6.5496554886125568e-04
21 6.2575756583543186e-03 1.1941945764063838e-03 8.5597303165342044e-04
22 -8.0641944111497544e-04 1.1943078425573959e-04 -9.8433130461350322e-04
21 6.2575756583543186e-03 1.1941945764063840e-03 8.5597303165342033e-04
22 -8.0641944111497815e-04 1.1943078425573998e-04 -9.8433130461350604e-04
23 -2.2951590782728784e+00 1.1606385208734213e+00 -2.3600356755964280e+00
24 7.2701432066201735e-02 7.6224922982964224e-02 1.0727212071804387e-01
25 -1.1259499193288525e-01 1.6395143300644142e-02 -9.0439962448757977e-04
26 1.0304882476745569e-01 7.8050496446502114e-03 1.9255643852370365e-02
27 -4.3346315050731436e-02 -2.2993111981455479e-02 -1.1392238078737104e-02
run_vdwl: 0.546631276624125
24 7.2701432066201777e-02 7.6224922982964405e-02 1.0727212071804407e-01
25 -1.1259499193288525e-01 1.6395143300644142e-02 -9.0439962448757988e-04
26 1.0304882476745592e-01 7.8050496446501715e-03 1.9255643852370247e-02
27 -4.3346315050731700e-02 -2.2993111981455646e-02 -1.1392238078737184e-02
run_vdwl: 0.5466312766241253
run_coul: 0
run_stress: ! |2-
5.6665057159425141e+00 1.4285058934754488e+01 5.9048859060595005e+00 -8.4818814420024662e+00 5.2881315002023204e+00 -1.1970976964672442e+00
5.6665057159425096e+00 1.4285058934754492e+01 5.9048859060594117e+00 -8.4818814420024538e+00 5.2881315002023177e+00 -1.1970976964672473e+00
run_forces: ! |2
1 4.0537507872915039e-02 1.0013640201526628e-02 -7.4355259432510909e-02
1 4.0537507872915039e-02 1.0013640201526628e-02 -7.4355259432510895e-02
2 -2.4485071669905233e-04 -5.6491959787860793e-05 1.5762341909211158e-05
3 -1.6525210356374626e-02 -1.0700896145717401e-02 -1.2466738605043531e-02
4 5.0895222294107621e-04 -3.7419904027191864e-02 -5.2521332284173328e-02
3 -1.6525210356374637e-02 -1.0700896145717426e-02 -1.2466738605043538e-02
4 5.0895222294106493e-04 -3.7419904027191808e-02 -5.2521332284173307e-02
5 8.5578946640613932e-04 8.0514060368270612e-05 1.6089100898761840e-04
6 1.0911859985057617e+01 -7.9829483219779238e+00 1.1645117315742368e+01
6 1.0911859985057617e+01 -7.9829483219779247e+00 1.1645117315742368e+01
7 -4.1062783933935310e-03 -1.1807936887044700e-03 -1.9906886909716232e-03
8 1.5636388167915585e-01 -2.6781130173509173e-02 -6.1357481353797629e-03
8 1.5636388167915585e-01 -2.6781130173509173e-02 -6.1357481353797663e-03
9 -1.5567285888326300e-02 1.4722366247268678e-02 -1.1953767152526006e-02
10 1.8805531793129020e-04 3.7820400166769380e-04 1.4614304834967978e-04
11 -1.4864493912745413e-03 -1.0424975640019400e-01 -1.0816074777358338e-01
12 -1.4904584977612991e+00 4.2295428937343154e+00 1.1884379359045845e+00
13 -1.1886876552110487e-01 2.9541662205201210e-02 -4.8308607756837312e-02
10 1.8805531793128995e-04 3.7820400166769499e-04 1.4614304834967859e-04
11 -1.4864493912745413e-03 -1.0424975640019399e-01 -1.0816074777358338e-01
12 -1.4904584977612991e+00 4.2295428937343154e+00 1.1884379359045842e+00
13 -1.1886876552110640e-01 2.9541662205201574e-02 -4.8308607756837901e-02
14 -4.1308859452544325e-02 -1.3119548152383642e-02 1.5120405320455521e-01
15 1.5979084315925551e+00 -4.1789376696436884e+00 -1.1491971372792762e+00
15 1.5979084315925547e+00 -4.1789376696436875e+00 -1.1491971372792762e+00
16 9.0310163053403689e-04 6.6079222833707125e-04 3.6708366832548463e-05
17 1.8715075729367286e-03 2.1147818438202660e-04 4.1547470949003795e-03
17 1.8715075729367283e-03 2.1147818438202654e-04 4.1547470949003804e-03
18 -3.0456290625963053e-02 -1.9427008524387408e-02 1.3856334852879930e-02
19 0.0000000000000000e+00 0.0000000000000000e+00 0.0000000000000000e+00
20 -6.8134551323710381e-03 -9.2563232531751730e-04 -2.5011200860506922e-04
21 6.5798593112743045e-03 1.0885497409975256e-03 5.0300594748037633e-04
22 -7.0187004021510387e-04 1.0724877221923791e-04 -8.7584649012749393e-04
21 6.5798593112743045e-03 1.0885497409975258e-03 5.0300594748037622e-04
22 -7.0187004021510181e-04 1.0724877221923757e-04 -8.7584649012749144e-04
23 -1.0963098689741154e+01 8.0069723546503138e+00 -1.1637002224325569e+01
24 4.2791276882800683e-02 7.5413656281613561e-02 9.2510054641216644e-02
24 4.2791276882802154e-02 7.5413656281613117e-02 9.2510054641217143e-02
25 -1.6396876440827649e-01 1.5180752630597804e-02 -5.8364823335845511e-03
26 1.2677571346204791e-01 9.1980780160173560e-03 2.1458873742780590e-02
27 -3.3538794640120474e-02 -1.7365037936021819e-02 -8.5471336286569739e-03
26 1.2677571346204786e-01 9.1980780160173664e-03 2.1458873742780608e-02
27 -3.3538794640120356e-02 -1.7365037936021746e-02 -8.5471336286569392e-03
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:00 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 6e-12
skip_tests: single
prerequisites: ! |
@ -15,7 +15,7 @@ pair_coeff: ! |
2 2 Cu_u3.eam
extract: ! ""
natoms: 32
init_vdwl: -368.582927487109
init_vdwl: -368.58292748710903
init_coul: 0
init_stress: ! |-
-3.9250135569983178e+02 -4.6446788990492507e+02 -4.1339651642484176e+02 1.9400736722937040e+01 1.1111963280257418e+00 1.2102392154667420e+01
@ -52,7 +52,7 @@ init_forces: ! |2
30 -3.1599376372206285e+00 1.2411259590817284e+01 -3.3705452712365678e+00
31 -4.7553805255326385e+00 2.0807423151379889e+00 9.7968713347922520e+00
32 4.7774045900241520e+00 -3.5862707137300642e+00 -3.6201646908068756e+00
run_vdwl: -368.628082866892
run_vdwl: -368.6280828668923
run_coul: 0
run_stress: ! |-
-3.9249694064943384e+02 -4.6446111054680068e+02 -4.1341521022304943e+02 1.9383267246544207e+01 1.1036774867522274e+00 1.2092041596769240e+01

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:00 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -13,7 +13,7 @@ pair_coeff: ! |
* * CuNi.eam.alloy Cu Ni
extract: ! ""
natoms: 32
init_vdwl: -118.717513292074
init_vdwl: -118.71751329207396
init_coul: 0
init_stress: ! |2-
5.1014257789320709e+01 4.8593729597995065e+01 4.7112736045420640e+01 3.5405588622315474e+00 -1.0857130886013302e+00 -2.7579846998321549e+00
@ -50,7 +50,7 @@ init_forces: ! |2
30 -7.7628811007199061e-01 -1.1864112261858684e+00 -1.7057845890523824e+00
31 -5.5170344013648301e-02 -2.3455335239818620e+00 1.3686542848487442e+00
32 -4.4069686170352860e+00 -9.2275646480965812e-01 -2.8237489589371051e-01
run_vdwl: -118.721845820838
run_vdwl: -118.72184582083834
run_coul: 0
run_stress: ! |2-
5.1008838955726937e+01 4.8584006717520772e+01 4.7099721534677649e+01 3.5410070434379857e+00 -1.0820463688123025e+00 -2.7574764800554417e+00

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:00 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 7.5e-12
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
* * CuNi.eam.alloy Cu Ni
extract: ! ""
natoms: 32
init_vdwl: -2737.69103243002
init_vdwl: -2737.6910324300247
init_coul: 0
init_stress: ! |2-
1.1764167914493003e+03 1.1205980824873511e+03 1.0864455580995223e+03 8.1647231129873333e+01 -2.5037139879634061e+01 -6.3600641311730442e+01
@ -51,7 +51,7 @@ init_forces: ! |2
30 -1.7901630000432078e+01 -2.7359294215609122e+01 -3.9336329099287752e+01
31 -1.2722584214742627e+00 -5.4089290760925913e+01 3.1561919199814835e+01
32 -1.0162711573460497e+02 -2.1279270671809819e+01 -6.5117201231272759e+00
run_vdwl: -2737.72416936454
run_vdwl: -2737.724169364543
run_coul: 0
run_stress: ! |2-
1.1764787620345819e+03 1.1205547781193936e+03 1.0863293163772205e+03 8.1706260194005594e+01 -2.4940094344791824e+01 -6.3614824113069091e+01

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:00 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
* * FeCr.cdeam Fe Cr
extract: ! ""
natoms: 32
init_vdwl: -77.4194811493259
init_vdwl: -77.41948114932589
init_coul: 0
init_stress: ! |2-
2.9506366554526057e+01 2.9183156291462467e+01 2.2317338076293908e+01 7.8583791220531909e+00 -9.3405164902515037e-01 8.4666514895851674e-01
@ -51,7 +51,7 @@ init_forces: ! |2
30 -4.8386802956274799e-01 6.7845093285518510e-01 -7.2822185494105651e-01
31 -8.5629870279800413e-01 -1.3626475979016444e+00 2.4555267483126282e+00
32 -2.6135587355983043e+00 -1.5330500443455732e+00 -6.7557011932914857e-01
run_vdwl: -77.4214727154924
run_vdwl: -77.42147271549238
run_coul: 0
run_stress: ! |2-
2.9493005554949598e+01 2.9172864836203829e+01 2.2312049668403862e+01 7.8487811034540371e+00 -9.4002654430986221e-01 8.4333891294706553e-01

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:00 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
* * FeCr.cdeam Fe Cr
extract: ! ""
natoms: 32
init_vdwl: -77.3566448928927
init_vdwl: -77.35664489289273
init_coul: 0
init_stress: ! |2-
2.9405509133096274e+01 2.9077568336065784e+01 2.2113739361139935e+01 7.8904933627522267e+00 -9.3663625990408816e-01 8.1130320719355153e-01
@ -51,7 +51,7 @@ init_forces: ! |2
30 -4.8103274177570204e-01 6.7765823339012321e-01 -7.2776907743413610e-01
31 -8.5335875768564051e-01 -1.3518208677019026e+00 2.4663641279666662e+00
32 -2.6142628689137353e+00 -1.5189868845729886e+00 -6.7390297673000232e-01
run_vdwl: -77.3586232494724
run_vdwl: -77.35862324947242
run_coul: 0
run_stress: ! |2-
2.9392159617306476e+01 2.9067390891336895e+01 2.2108618910688079e+01 7.8809332873995865e+00 -9.4254846573098539e-01 8.0805977962507369e-01

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:00 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -15,7 +15,7 @@ pair_coeff: ! |
* * FeCr.cdeam Fe Cr
extract: ! ""
natoms: 32
init_vdwl: -1785.33573859861
init_vdwl: -1785.3357385986067
init_coul: 0
init_stress: ! |2-
6.8043301174259761e+02 6.7297960563391200e+02 5.1465006825793444e+02 1.8121853680469479e+02 -2.1539743820861666e+01 1.9524563154151824e+01
@ -52,7 +52,7 @@ init_forces: ! |2
30 -1.1158262405262278e+01 1.5645450981201224e+01 -1.6793195768740453e+01
31 -1.9746718194509157e+01 -3.1423401701143103e+01 5.6625794900273171e+01
32 -6.0270099286644076e+01 -3.5352975667087023e+01 -1.5579017839726909e+01
run_vdwl: -1785.32443012494
run_vdwl: -1785.3244301249376
run_coul: 0
run_stress: ! |2-
6.8033307307183838e+02 6.7295080184729852e+02 5.1465049023351878e+02 1.8108364252022736e+02 -2.1656087785470721e+01 1.9438707865457804e+01

View File

@ -1,7 +1,7 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Fri Feb 26 23:09:01 2021
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
* * AlFe_mm.eam.fs Al Fe
extract: ! ""
natoms: 32
init_vdwl: -108.262111462389
init_vdwl: -108.2621114623893
init_coul: 0
init_stress: ! |2-
9.9880622051717296e+01 9.1747240726677930e+01 8.7601365289659455e+01 5.9087784401945047e+00 -2.1299937451008777e+00 3.4718249594388439e-01
@ -51,7 +51,7 @@ init_forces: ! |2
30 -1.0374660230195671e+00 -1.1402475422746554e+00 -1.7211546087860548e+00
31 -1.0712777798403222e-01 -2.4507774686205819e+00 1.0846841028356100e+00
32 -4.7946208495149687e+00 -2.9144866547588686e+00 -1.3852412930860005e+00
run_vdwl: -108.277148649431
run_vdwl: -108.27714864943073
run_coul: 0
run_stress: ! |2-
9.9846864346759972e+01 9.1717939805174794e+01 8.7564501381757196e+01 5.9037090269161174e+00 -2.1310430207577928e+00 3.4797921426392381e-01

View File

@ -1,7 +1,7 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Fri Feb 26 23:09:01 2021
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 7.5e-12
skip_tests: single
prerequisites: ! |
@ -15,7 +15,7 @@ pair_coeff: ! |
* * AlFe_mm.eam.fs Al Fe
extract: ! ""
natoms: 32
init_vdwl: -2496.58372622189
init_vdwl: -2496.583726221894
init_coul: 0
init_stress: ! |2-
2.3033019789742661e+03 2.1157417403924674e+03 2.0201355767292255e+03 1.3625967475023566e+02 -4.9118825128602921e+01 8.0062189596547757e+00
@ -52,7 +52,7 @@ init_forces: ! |2
30 -2.3924536059675400e+01 -2.6294734320753790e+01 -3.9690770192486177e+01
31 -2.4704253734659591e+00 -5.6516273903225319e+01 2.5013410902965866e+01
32 -1.1056658903666084e+02 -6.7209662311916517e+01 -3.1944424716035719e+01
run_vdwl: -2496.65480914656
run_vdwl: -2496.654809146559
run_coul: 0
run_stress: ! |2-
2.3031173686359612e+03 2.1155351475115854e+03 2.0198681219493476e+03 1.3623771207922428e+02 -4.9117004849463832e+01 7.9864065254956884e+00

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:01 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -13,7 +13,7 @@ pair_coeff: ! |
* * PdHHe.eam.he Pd He
extract: ! ""
natoms: 32
init_vdwl: -15.3146152609365
init_vdwl: -15.314615260936534
init_coul: 0
init_stress: ! |2-
1.0127679615895376e+02 9.3559970433415444e+01 9.1432412459889193e+01 4.0035576925472673e+00 -9.7686923241135581e-01 2.8980241224200443e+00
@ -50,7 +50,7 @@ init_forces: ! |2
30 1.1712105233973889e-01 -6.9110122964840481e-01 9.5437848811806628e-02
31 1.9388288555816860e-01 -2.0146460156127194e-01 -2.0863139798712499e-01
32 -8.8731897202011578e-01 -3.3482718789714783e+00 -1.5659784019873610e+00
run_vdwl: -15.3236335310355
run_vdwl: -15.323633531035549
run_coul: 0
run_stress: ! |2-
1.0125543392557182e+02 9.3539230810233988e+01 9.1388997082229878e+01 4.0040941706030253e+00 -9.7826716756924303e-01 2.9018476991088571e+00

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:02 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 7.5e-12
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
* * PdHHe.eam.he Pd He
extract: ! ""
natoms: 32
init_vdwl: -353.163435640974
init_vdwl: -353.1634356409743
init_coul: 0
init_stress: ! |2-
2.3354985203865667e+03 2.1575442826183294e+03 2.1084816277194832e+03 9.2324238343315059e+01 -2.2527140800613445e+01 6.6830027278251166e+01
@ -51,7 +51,7 @@ init_forces: ! |2
30 2.7008757664122220e+00 -1.5937173770267322e+01 2.2008491889792485e+00
31 4.4710457826753673e+00 -4.6458843160683996e+00 -4.8111545762194012e+00
32 -2.0462062632899592e+01 -7.7212987730343386e+01 -3.6112321671970648e+01
run_vdwl: -353.230598025017
run_vdwl: -353.2305980250169
run_coul: 0
run_stress: ! |2-
2.3352018947327042e+03 2.1575803047701361e+03 2.1079997407908877e+03 9.2286943467903825e+01 -2.2591362673321409e+01 6.6981941401935686e+01

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:02 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:37 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -15,7 +15,7 @@ pair_coeff: ! |
2 2 Cu_u3.eam
extract: ! ""
natoms: 32
init_vdwl: -8499.72465987996
init_vdwl: -8499.724659879963
init_coul: 0
init_stress: ! |-
-9.0512967456823608e+03 -1.0710884534079103e+04 -9.5331506234443168e+03 4.4739163983539112e+02 2.5624797371065153e+01 2.7908780729994214e+02
@ -52,7 +52,7 @@ init_forces: ! |2
30 -7.2869896720070074e+01 2.8621045994576787e+02 -7.7726624384065360e+01
31 -1.0966168562269873e+02 4.7983060114616165e+01 2.2592123146266928e+02
32 1.1016957264107174e+02 -8.2701371521245974e+01 -8.3482985240425492e+01
run_vdwl: -8499.63392113313
run_vdwl: -8499.633921133134
run_coul: 0
run_stress: ! |-
-9.0505794012029874e+03 -1.0710658449701059e+04 -9.5327589626093231e+03 4.4723194233718323e+02 2.5525028652344783e+01 2.7889354001643403e+02

View File

@ -1,8 +1,9 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow, unstable
date_generated: Fri Feb 26 23:09:02 2021
epsilon: 7e-9
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 7e-09
skip_tests:
prerequisites: ! |
pair edip
pre_commands: ! |
@ -25,7 +26,7 @@ pair_coeff: ! |
* * Si.edip Si
extract: ! ""
natoms: 64
init_vdwl: -182.014209144965
init_vdwl: -182.0142091449655
init_coul: 0
init_stress: ! |-
-4.2173568991101043e+01 1.2184021199203226e+01 -3.1098538904940661e+01 -6.2316960880482128e+01 -1.4775210621376691e+00 6.1691884248437241e+01
@ -94,7 +95,7 @@ init_forces: ! |2
62 2.0868620672462157e+00 1.8643759502358841e+00 -4.5632350322176931e+00
63 -3.5570738268026387e+00 2.5008543365267459e+00 1.1838424424360452e+00
64 5.2916520498671140e+00 -6.4110346546503774e+00 2.1951485692450277e+00
run_vdwl: -182.051160424237
run_vdwl: -182.05116042423737
run_coul: 0
run_stress: ! |-
-4.1363752167737658e+01 1.2469786385410774e+01 -3.0444360293629781e+01 -6.2113035093307580e+01 -1.3949777252200883e+00 6.1189275714908646e+01

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:02 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 2e-11
skip_tests:
prerequisites: ! |
pair eim
pre_commands: ! ""
@ -13,7 +14,7 @@ pair_coeff: ! |
* * Na Li ffield.eim Li Na
extract: ! ""
natoms: 32
init_vdwl: 156.973813987572
init_vdwl: 156.97381398757182
init_coul: 0
init_stress: ! |2-
3.9849889936779880e+02 3.9964339700077471e+02 4.2394135449088486e+02 1.1463564258428973e+00 -1.0274413432821488e+01 -1.2970065269285907e+01
@ -50,7 +51,7 @@ init_forces: ! |2
30 -4.4268691057672088e-01 1.8614184084637593e+00 -3.0635131466682086e+00
31 3.1796191004214864e+00 -2.9038638862283421e+00 1.3534160908852291e+01
32 -1.5023162437974118e+01 -1.0281185077172976e+00 1.4167924044403386e+00
run_vdwl: 156.543907523153
run_vdwl: 156.54390752315328
run_coul: 0
run_stress: ! |2-
3.9785327522503184e+02 3.9895469050745766e+02 4.2324893277634811e+02 1.1324454072042596e+00 -1.0273666048004785e+01 -1.2969144723625490e+01

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:02 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 5e-12
skip_tests:
prerequisites: ! |
pair gauss
pre_commands: ! ""
@ -13,7 +14,7 @@ pair_coeff: ! |
2 2 0.005 1.1
extract: ! ""
natoms: 32
init_vdwl: -0.563282655796335
init_vdwl: -0.5632826557963347
init_coul: 0
init_stress: ! |-
-7.1147683670454420e-01 -6.1895022673299749e-01 -7.1191426374517874e-01 -1.3771409096140666e-03 8.9168242763744339e-05 -4.5069108788046326e-03

View File

@ -1,8 +1,8 @@
---
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:08 2021
epsilon: 2e-10
lammps_version: 17 Feb 2022
tags: unstable
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 2e-10
skip_tests: single
prerequisites: ! |
pair eam/fs

View File

@ -1,7 +1,7 @@
---
lammps_version: 8 Apr 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Mon Apr 19 08:49:08 2021
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 5e-12
skip_tests: single
prerequisites: ! |

View File

@ -1,7 +1,7 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:03 2021
epsilon: 5e-13
epsilon: 1e-12
prerequisites: ! |
pair kim
pre_commands: ! |

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Sun Feb 28 23:32:03 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
pair lj/relres
pre_commands: ! ""
@ -14,7 +15,7 @@ pair_coeff: ! |
2 2 0.00121585 3.905 0.00121585 3.905
extract: ! ""
natoms: 32
init_vdwl: 278.180950996338
init_vdwl: 278.1809509963377
init_coul: 0
init_stress: ! |2-
1.1877397131221412e+03 1.1638761902735005e+03 1.0939934354329380e+03 6.8492993891187240e+01 -3.1686913926055702e+00 -3.0318931219574608e+01
@ -51,7 +52,7 @@ init_forces: ! |2
30 -8.3053344792491117e+00 -6.7854505410487436e+00 -1.9926676569327796e+01
31 -3.9722675775001202e+00 -2.6202171362782902e+01 1.7034787150328516e+01
32 -4.7637017675627781e+01 -1.6616078530154439e+01 -4.7018745333836263e+00
run_vdwl: 277.787230338519
run_vdwl: 277.7872303385192
run_coul: 0
run_stress: ! |2-
1.1861045479571328e+03 1.1621545499754693e+03 1.0925950582629255e+03 6.7871794269310669e+01 -3.2811225906376507e+00 -3.0119921761225132e+01

View File

@ -1,8 +1,9 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Fri Feb 26 23:09:03 2021
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 2.5e-12
skip_tests:
prerequisites: ! |
pair meam
pre_commands: ! |
@ -16,7 +17,7 @@ pair_coeff: ! |
extract: ! |
scale 2
natoms: 32
init_vdwl: -45.2270369233974
init_vdwl: -45.22703692339744
init_coul: 0
init_stress: ! |2-
1.5974961690562833e+02 1.6798912455681204e+02 1.6589208101977775e+02 5.1496570430146571e+00 1.6587548782772799e+01 5.0320981727091478e+00
@ -53,7 +54,7 @@ init_forces: ! |2
30 7.7479118765962562e-01 -2.0113378117527199e+00 -1.1752517279578472e+00
31 -3.0187614250981643e-01 -1.9390174634551343e+00 1.0383705899546767e+00
32 -1.2004071740323694e+00 -1.7334188099495886e+00 -2.1413667718607474e+00
run_vdwl: -45.2391567908444
run_vdwl: -45.23915679084442
run_coul: 0
run_stress: ! |2-
1.5974816998957081e+02 1.6797053429091017e+02 1.6585129043852777e+02 5.1231901045278549e+00 1.6504160483904446e+01 5.0433930663133388e+00

View File

@ -1,8 +1,9 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow
date_generated: Fri Feb 26 23:09:03 2021
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 5e-14
skip_tests:
prerequisites: ! |
pair meam/spline
pre_commands: ! |
@ -15,7 +16,7 @@ pair_coeff: ! |
* * TiO.meam.spline Ti O
extract: ! ""
natoms: 32
init_vdwl: -135.560024161516
init_vdwl: -135.5600241615158
init_coul: 0
init_stress: ! |-
-1.3297046320597394e+02 -1.4273111356143593e+02 -1.2149083711144338e+02 -9.2199335163098581e+00 -2.3179321272432521e+01 3.4312876715331697e+01
@ -52,7 +53,7 @@ init_forces: ! |2
30 2.0771077210589186e+00 -4.6709171948180614e+00 1.3782704353736193e+00
31 1.4867111163388858e+00 2.4196890137058618e+00 -1.3329156106123738e+00
32 4.0861876180074033e+00 5.5424831866167956e-01 -2.5681732500505770e+00
run_vdwl: -135.569915239339
run_vdwl: -135.56991523933854
run_coul: 0
run_stress: ! |-
-1.3297571706861984e+02 -1.4278817708715408e+02 -1.2149323096249972e+02 -9.2133160597589718e+00 -2.3180777117992285e+01 3.4338894527841632e+01

View File

@ -1,8 +1,9 @@
---
lammps_version: 10 Feb 2021
lammps_version: 17 Feb 2022
tags: slow, unstable
date_generated: Fri Feb 26 23:09:03 2021
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
pair meam/sw/spline
pre_commands: ! |
@ -25,7 +26,7 @@ pair_coeff: ! |
* * Si.b.meam.sw.spline Si
extract: ! ""
natoms: 64
init_vdwl: -110.468577308835
init_vdwl: -110.4685773088353
init_coul: 0
init_stress: ! |2-
2.0342092779841650e+02 2.9353890615210491e+02 1.9138584169384231e+02 -1.3797329301045073e+02 6.0306018863011829e+01 1.2377595362950453e+02
@ -94,7 +95,7 @@ init_forces: ! |2
62 3.3475883989333277e+00 1.8378592752954344e+00 -7.1680291906892242e+00
63 -7.7783175923354015e+00 3.7799886336365374e+00 1.0295328521877045e+00
64 3.7357026805307170e+00 -1.3007690662030017e+01 -6.0208957069512170e+00
run_vdwl: -111.226309291836
run_vdwl: -111.22630929183559
run_coul: 0
run_stress: ! |2-
2.0268172075658492e+02 2.9202363331200354e+02 1.9043000043817165e+02 -1.3707745415338965e+02 6.0598083239028021e+01 1.2285776451761184e+02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:03 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 2.5e-12
skip_tests:
prerequisites: ! |
pair momb
pre_commands: ! ""
@ -12,7 +13,7 @@ pair_coeff: ! |
* * 6.08 0.317 2.340 24.18 11.51
extract: ! ""
natoms: 32
init_vdwl: -10463.8858411894
init_vdwl: -10463.885841189409
init_coul: 0
init_stress: ! |-
-4.5982351309125661e+03 -4.6159516977505191e+03 -4.5897073530458192e+03 -1.3518810495042906e+01 2.8104075512935403e+00 4.2970059621415224e+00
@ -49,7 +50,7 @@ init_forces: ! |2
30 -1.2442109923751410e-01 -1.0770559238740045e+00 3.1395720300646190e-02
31 9.2984933250948032e-02 -1.8228335119987582e+00 2.3781726323623342e-01
32 -1.2461785964541576e+00 -5.4977549941894166e-01 8.3509737369560444e-01
run_vdwl: -10465.7423386717
run_vdwl: -10465.74233867168
run_coul: 0
run_stress: ! |-
-4.5988993884891906e+03 -4.6177101080149896e+03 -4.5915627861079975e+03 -1.2437349307689638e+01 1.7003970965698816e+00 6.1002478300203276e+00

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:04 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 7.5e-14
skip_tests:
prerequisites: ! |
pair polymorphic
pre_commands: ! |
@ -15,7 +16,7 @@ pair_coeff: ! |
* * CuTa_eam.poly Cu Ta
extract: ! ""
natoms: 32
init_vdwl: -112.540387935517
init_vdwl: -112.54038793551683
init_coul: 0
init_stress: ! |2-
1.3377418322776046e+02 1.3013604387391047e+02 1.3325935858051224e+02 1.3759975178496845e+01 -5.1138734367336625e-01 -8.4676793711767679e+00
@ -52,7 +53,7 @@ init_forces: ! |2
30 -1.1772953098090733e+00 3.5197586410261525e+00 -3.5507225884796605e+00
31 6.9641430977980212e-01 -2.4233846293906267e+00 1.1255702676228792e+01
32 -8.7713084366180301e+00 3.3637284067716072e-01 5.2446663030603202e-01
run_vdwl: -112.561397617355
run_vdwl: -112.56139761735514
run_coul: 0
run_stress: ! |2-
1.3369777615744354e+02 1.3004752994085680e+02 1.3320208526824615e+02 1.3747668586704531e+01 -5.2218775435270448e-01 -8.4749563526951750e+00

View File

@ -1,8 +1,8 @@
---
lammps_version: 31 Aug 2021
lammps_version: 17 Feb 2022
tags: slow, unstable
date_generated: Tue Sep 21 15:02:20 2021
epsilon: 7.5e-9
date_generated: Fri Mar 18 22:17:38 2022
epsilon: 7.5e-09
skip_tests: omp
prerequisites: ! |
pair reaxff

View File

@ -1,9 +1,8 @@
---
lammps_version: 30 Jul 2021
lammps_version: 17 Feb 2022
tags: slow, unstable
date_generated: Mon Aug 23 20:32:04 2021
date_generated: Fri Mar 18 22:29:51 2022
epsilon: 2e-11
tags: unstable
skip_tests:
prerequisites: ! |
pair reaxff

View File

@ -1,7 +1,7 @@
---
lammps_version: 30 Jul 2021
tags: slow, unstable
date_generated: Mon Aug 23 20:32:05 2021
lammps_version: 17 Feb 2022
tags: slow, unstable, noWindows
date_generated: Fri Mar 18 22:17:41 2022
epsilon: 1e-12
skip_tests:
prerequisites: ! |

View File

@ -0,0 +1,178 @@
---
lammps_version: 17 Feb 2022
tags: slow, unstable, noWindows
date_generated: Fri Mar 18 22:17:41 2022
epsilon: 1e-10
skip_tests:
prerequisites: ! |
pair reaxff
fix qeq/reaxff
pre_commands: ! |
echo screen
shell cp ${input_dir}/reaxff.control reaxff-1.control
variable newton_pair delete
variable newton_pair index on
atom_modify map array
units real
atom_style charge
lattice diamond 3.77
region box block 0 2 0 2 0 2
create_box 3 box
create_atoms 1 box
displace_atoms all random 0.1 0.1 0.1 623426
mass 1 1.0
mass 2 12.0
mass 3 16.0
set type 1 type/fraction 2 0.5 998877
set type 2 type/fraction 3 0.5 887766
set type 1 charge 0.00
set type 2 charge 0.01
set type 3 charge -0.01
velocity all create 100 4534624 loop geom
post_commands: ! |
fix qeq all qeq/reaxff 1 0.0 8.0 1.0e-20 reaxff
input_file: in.empty
pair_style: reaxff NULL checkqeq yes tabulate 10000
pair_coeff: ! |
* * ffield.reax.mattsson H C O
extract: ! ""
natoms: 64
init_vdwl: -3296.3503506626616
init_coul: -327.0655125227951
init_stress: ! |-
-1.0522112314767739e+03 -1.2629480788300507e+03 -8.6765541430813960e+02 -2.5149818635818815e+02 2.0624598409312082e+02 -6.4309968343211722e+02
init_forces: ! |2
1 -8.8484559491556382e+01 -2.5824737864573983e+01 1.0916228789487873e+02
2 -1.1227736122977277e+02 -1.8092349731667605e+02 -2.2420586526897370e+02
3 -1.7210817575848947e+02 1.8292439782307875e+02 1.3552618819708533e+01
4 3.2997500231077154e+01 -5.1076027616179601e+01 9.0475628837081842e+01
5 1.8144778146276349e+02 1.6797701000585050e+01 -8.1725507301130364e+01
6 1.3634094180728192e+02 -3.0056789473999623e+02 2.9661495129810405e+01
7 -5.3287158661290789e+01 -1.2872927610193449e+02 -1.6347871108898252e+02
8 -1.5334883257588743e+02 4.0171483324132680e+01 1.5317461163040250e+02
9 1.8364155867626959e+01 8.1986572088184701e+01 2.8272397798085894e+01
10 8.4246730110715987e+01 1.4177487113457067e+02 1.2330079878579899e+02
11 -4.3218423112503842e+01 6.5551082199269587e+01 1.3464882148701912e+02
12 -9.7317470492945631e+01 -2.6234999414165472e+01 7.2277941881737764e+00
13 -6.3183329836750836e+01 -4.7368101002963598e+01 -3.7592654029327193e+01
14 7.8642975316494244e+01 -6.7997612991911694e+01 -9.9044775614588744e+01
15 -6.6373732796047932e+01 2.1787558547533155e+02 8.0103149369097338e+01
16 1.9216166082224782e+02 5.3228015320736134e+01 6.6260214054225131e+01
17 1.4496007689503503e+02 -3.9700923044581437e+01 -9.7503851828125505e+01
18 -4.4989550233791071e+01 -1.9360605894359685e+02 1.1274792197022768e+02
19 2.6657528138946020e+02 3.7189510796653042e+02 -3.3847307488286617e+02
20 -7.6341040242475444e+01 -8.8478925962195433e+01 1.3557778211944747e+00
21 -7.1188591900927975e+01 -5.1591439985149663e+01 -1.2279442803768826e+02
22 1.5504836733040739e+02 -1.3094504458747130e+02 8.1474408030773745e+01
23 7.8015302036850684e+01 -1.3272310040531675e+01 -2.2771427736555765e+01
24 -2.0546718065740677e+02 2.1611071031056295e+02 -1.2423208053538556e+02
25 -1.1402686646199388e+02 1.9100238121127512e+02 -8.3504908417575137e+01
26 2.8663576552100676e+02 -2.1773884754172562e+02 2.3144300100085067e+02
27 -6.3247409025600703e+01 6.9122196748089010e+01 1.8606936744368679e+02
28 -3.5426011056020812e+00 3.8764809029448422e+01 3.2874001946771756e+01
29 -7.1069178571897908e+01 3.5485903180455900e+01 2.7311648896337541e+01
30 -1.7036987830119247e+02 -1.9851827590032605e+02 -1.1511401829122852e+02
31 -1.3970409889743564e+02 1.6660943915627317e+02 -1.2913930522474985e+02
32 2.7179130444097446e+01 -6.0169059447608205e+01 -1.7669495182016888e+02
33 -6.2659679124097771e+01 -6.4422131921802787e+01 6.4150928205326565e+01
34 -2.2119065265688945e+01 1.0450386886831190e+02 -7.3998379587547589e+01
35 2.6982987783289036e+02 -2.1519317040004464e+02 1.3051628460667473e+02
36 1.0368628874510270e+02 1.8817377639771777e+02 -1.9748944223862577e+02
37 -1.8009522406830411e+02 1.2993653092252046e+02 -6.3523043394127271e+01
38 -2.9571205878459335e+02 1.0441609933480150e+02 1.5582204859043446e+02
39 8.7398805727037654e+01 -6.0025559644662380e+01 2.2209742009840170e+01
40 2.0540672579010515e+01 -1.0735874009092471e+02 5.8655918369889903e+01
41 -5.8895846271433207e+01 1.1852345624580465e+01 -6.6147257724520060e+01
42 -9.6895512314625066e+01 3.8928741136637136e+01 -7.5791929957169501e+01
43 2.2476051812062840e+02 9.5505204283227812e+01 1.2309042240718378e+02
44 8.9817373579481696e+01 -1.0616333580629221e+02 -8.6321519086262015e+01
45 1.7202629662563449e+01 1.2890307246702787e+02 5.2916171301120116e+01
46 1.3547783972599687e+01 -2.9276223331262454e+01 2.2187412696868645e+01
47 3.3389762514712750e+01 -1.9217585014964845e+02 -6.9956213241085010e+01
48 7.3631720332058350e+01 -2.0953007324684327e+02 -2.3183566221369695e+01
49 -3.7589944473226365e+02 -2.4083165714761193e+01 1.0770339502610332e+02
50 3.8603083564804365e+01 -7.3616481568807856e+01 9.0414065019653606e+01
51 1.3736420686697036e+02 -1.0204157331499393e+02 1.5813725581140881e+02
52 -1.0797257051088971e+02 1.1876975735152031e+02 -1.3295758126487445e+02
53 -5.3807540206216601e+01 3.3259462625846481e+02 -3.8426832264590871e-03
54 -1.0690184616179629e+01 6.2820270853641588e+01 1.8343158343322301e+02
55 1.1231900459987541e+02 -1.7906654831317354e+02 7.6533681064342233e+01
56 -4.1027190034880071e+01 -1.4085413191126139e+02 3.7483064289929089e+01
57 9.9904315214043436e+01 7.0938939080466611e+01 -6.8654961257655273e+01
58 -2.7563642882025118e+01 -6.7445498717118797e+00 -1.8442640542825089e+01
59 -6.6628933617811782e+01 1.0613066354106414e+02 8.7736153919801936e+01
60 -1.7748415247445365e+01 6.3757605316886128e+01 -1.5086907478327481e+02
61 -3.3560907195794940e+01 -1.0076987083174126e+02 -7.4536106106935293e+01
62 1.5883428926665619e+01 -5.8433760297918971e+00 2.8392494016028731e+01
63 1.3294494001299765e+02 -1.2724568063770006e+02 -6.4886848316829756e+01
64 1.0738157273931063e+02 1.2062173788161793e+02 7.4541400611720547e+01
run_vdwl: -3296.346882377935
run_coul: -327.0653995073889
run_stress: ! |-
-1.0521225462933053e+03 -1.2628780139897558e+03 -8.6757617693171233e+02 -2.5158592653599607e+02 2.0619472152439226e+02 -6.4312943979318675e+02
run_forces: ! |2
1 -8.8486129396000024e+01 -2.5824483374468659e+01 1.0916517213634297e+02
2 -1.1227648453174452e+02 -1.8093214754186096e+02 -2.2420118533941474e+02
3 -1.7210894875994919e+02 1.8292263268450859e+02 1.3551979435673994e+01
4 3.2999405001001179e+01 -5.1077312719540231e+01 9.0478579144055786e+01
5 1.8144963583124817e+02 1.6798391906829522e+01 -8.1723378082078895e+01
6 1.3640835897739544e+02 -3.0059507544861526e+02 2.9594750460787722e+01
7 -5.3287619129788126e+01 -1.2872953167027580e+02 -1.6348317368624893e+02
8 -1.5334990952322408e+02 4.0171746946782811e+01 1.5317542403105384e+02
9 1.8362961213920283e+01 8.1984428717781938e+01 2.8273598253031842e+01
10 8.4245458094792667e+01 1.4177227430519451e+02 1.2329899933660883e+02
11 -4.3217035356327344e+01 6.5547850976490480e+01 1.3463983671941662e+02
12 -9.7319343004584368e+01 -2.6236499899243547e+01 7.2232061905835634e+00
13 -6.3184735475527845e+01 -4.7368090836530385e+01 -3.7590268076047799e+01
14 7.8642680121811978e+01 -6.7994653297660861e+01 -9.9042134233426623e+01
15 -6.6371195967091822e+01 2.1787700653340664e+02 8.0102624694811567e+01
16 1.9215832443892984e+02 5.3231888618095191e+01 6.6253846562709271e+01
17 1.4496126989603567e+02 -3.9700366098754984e+01 -9.7506725874204676e+01
18 -4.4989211400009445e+01 -1.9360716191976400e+02 1.1274798810456160e+02
19 2.6657546213783013e+02 3.7189369483259810e+02 -3.3847202166066938e+02
20 -7.6352829159886866e+01 -8.8469178952293888e+01 1.3384778816960941e+00
21 -7.1188597560668626e+01 -5.1592404200752988e+01 -1.2279357314243077e+02
22 1.5504965184742042e+02 -1.3094582932681604e+02 8.1473922626951349e+01
23 7.8017376001382075e+01 -1.3263023728617453e+01 -2.2771654676285650e+01
24 -2.0547634460481828e+02 2.1612342044351584e+02 -1.2423651650061315e+02
25 -1.1402944116092222e+02 1.9100648219390598e+02 -8.3505645569840212e+01
26 2.8664542299412409e+02 -2.1774609219882660e+02 2.3144720166992016e+02
27 -6.3243843868032656e+01 6.9123801262967206e+01 1.8607035157681563e+02
28 -3.5444604842081215e+00 3.8760531647711197e+01 3.2869123667284832e+01
29 -7.1069494158200399e+01 3.5486459158788790e+01 2.7311657876198385e+01
30 -1.7037059987991728e+02 -1.9851840131670684e+02 -1.1511410156294964e+02
31 -1.3970663440086241e+02 1.6660841802304273e+02 -1.2914070628113075e+02
32 2.7179939937123169e+01 -6.0162678551463856e+01 -1.7668459764112271e+02
33 -6.2659124615696278e+01 -6.4421915847949094e+01 6.4151176691093468e+01
34 -2.2118740875414911e+01 1.0450303589341824e+02 -7.3997370482692702e+01
35 2.6987081482971610e+02 -2.1523754104001401e+02 1.3052736086177433e+02
36 1.0368798521809174e+02 1.8816694370717531e+02 -1.9748485159165185e+02
37 -1.8012152563997321e+02 1.2997662140310976e+02 -6.3547259053662522e+01
38 -2.9571525697590181e+02 1.0441941743732498e+02 1.5582112543443168e+02
39 8.7399620724583912e+01 -6.0025787992404332e+01 2.2209357601285220e+01
40 2.0541458171950481e+01 -1.0735817059033118e+02 5.8656280350522010e+01
41 -5.8893965304960851e+01 1.1850504754255528e+01 -6.6138932258972062e+01
42 -9.6894702780974654e+01 3.8926449644123046e+01 -7.5794133002818327e+01
43 2.2475651760389815e+02 9.5503072846826939e+01 1.2308683766845016e+02
44 8.9821846939836348e+01 -1.0615882525758136e+02 -8.6326896770196470e+01
45 1.7193681344320908e+01 1.2889564928825573e+02 5.2922372841304046e+01
46 1.3549091739277930e+01 -2.9276447091759820e+01 2.2187152043657580e+01
47 3.3389460345593911e+01 -1.9217121673024212e+02 -6.9954603582949275e+01
48 7.3644268618798534e+01 -2.0953201921818703e+02 -2.3192562071378255e+01
49 -3.7593958318940093e+02 -2.4028439106856851e+01 1.0779151134440758e+02
50 3.8603926624309118e+01 -7.3615255297997692e+01 9.0412505212301113e+01
51 1.3736689552205237e+02 -1.0204490780180465e+02 1.5814099219642898e+02
52 -1.0797151154268903e+02 1.1876989597627045e+02 -1.3296150756378304e+02
53 -5.3843453069379898e+01 3.3257024143948752e+02 -2.3416395286623981e-02
54 -1.0678049522660420e+01 6.2807424617051971e+01 1.8344969045861674e+02
55 1.1232135576105584e+02 -1.7906994470562006e+02 7.6534265234549238e+01
56 -4.1035945990491449e+01 -1.4084577238057412e+02 3.7489705598223743e+01
57 9.9903872061949045e+01 7.0936213558029181e+01 -6.8656338416446431e+01
58 -2.7563844572722548e+01 -6.7426705471903254e+00 -1.8442803060446984e+01
59 -6.6637290503326170e+01 1.0613630918456353e+02 8.7741455199743655e+01
60 -1.7749706497443636e+01 6.3756413885649643e+01 -1.5086911682893643e+02
61 -3.3559889608753323e+01 -1.0076809277084797e+02 -7.4536003122045486e+01
62 1.5883833834736718e+01 -5.8439916924713371e+00 2.8393403991140676e+01
63 1.3294237052897660e+02 -1.2724619636182842e+02 -6.4882384014242263e+01
64 1.0738250214939008e+02 1.2062290362869123e+02 7.4541927445538832e+01
...

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:09 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:41 2022
epsilon: 2e-12
skip_tests:
prerequisites: ! |
pair table
pre_commands: ! ""
@ -12,7 +13,7 @@ pair_coeff: ! |
* * ${input_dir}/pair_table_bitmap.txt beck_1_1
extract: ! ""
natoms: 32
init_vdwl: 1.66863069929167
init_vdwl: 1.668630699291665
init_coul: 0
init_stress: ! |2-
6.1952827280949752e+00 6.0616458078803026e+00 5.8879068387604203e+00 2.0730193733654706e-01 -2.1217457971568116e-02 -8.9424946009241696e-02
@ -49,7 +50,7 @@ init_forces: ! |2
30 -4.2584465166652936e-02 -3.0054615946788474e-02 -8.4428957096643942e-02
31 -2.0649926244740491e-02 -1.1590442114762316e-01 7.4794527710849712e-02
32 -1.9354598378544019e-01 -6.3287613853627508e-02 -2.2278111493111191e-02
run_vdwl: 1.66856268800034
run_vdwl: 1.6685626880003446
run_coul: 0
run_stress: ! |2-
6.1952311663382620e+00 6.0614392437022566e+00 5.8875647278117054e+00 2.0717006197774884e-01 -2.1333105104445964e-02 -8.9586451595579902e-02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:10 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:41 2022
epsilon: 2e-12
skip_tests:
prerequisites: ! |
pair table
pre_commands: ! ""
@ -14,7 +15,7 @@ pair_coeff: ! |
2 2 ${input_dir}/pair_table_beck.txt beck_2_2
extract: ! ""
natoms: 32
init_vdwl: 1.66849758741132
init_vdwl: 1.668497587411317
init_coul: 0
init_stress: ! |2-
6.1946715433684973e+00 6.0610621944595691e+00 5.8874237884568794e+00 2.0726669272562587e-01 -2.1210093847498168e-02 -8.9416411707758034e-02
@ -51,7 +52,7 @@ init_forces: ! |2
30 -4.2587368463202192e-02 -3.0047436022746527e-02 -8.4421201266270535e-02
31 -2.0646231349659299e-02 -1.1590205379082782e-01 7.4785818423894770e-02
32 -1.9352068689594826e-01 -6.3282139756026798e-02 -2.2278655095207611e-02
run_vdwl: 1.66842874884356
run_vdwl: 1.6684287488435634
run_coul: 0
run_stress: ! |2-
6.1946185356811014e+00 6.0608444906913288e+00 5.8870835095750591e+00 2.0713242742857005e-01 -2.1315300788911050e-02 -8.9580203233208117e-02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:10 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:42 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
pair table
pre_commands: ! ""
@ -14,7 +15,7 @@ pair_coeff: ! |
2 2 ${input_dir}/pair_table_beck.txt beck_2_2
extract: ! ""
natoms: 32
init_vdwl: 1.66822081098814
init_vdwl: 1.668220810988136
init_coul: 0
init_stress: ! |2-
6.1925708391090373e+00 6.0607873158796632e+00 5.8866502515961283e+00 2.0635047994864009e-01 -2.2304749096038870e-02 -8.9977381381968910e-02
@ -51,7 +52,7 @@ init_forces: ! |2
30 -4.2678491461167409e-02 -3.0167096740169222e-02 -8.4323491798094938e-02
31 -2.0446963122925290e-02 -1.1577119295225209e-01 7.4834425292344492e-02
32 -1.9338210089853922e-01 -6.2777766271189708e-02 -2.2198626823726184e-02
run_vdwl: 1.66836471086472
run_vdwl: 1.6683647108647246
run_coul: 0
run_stress: ! |2-
6.1942043291654469e+00 6.0612653540830586e+00 5.8861497905111531e+00 2.0800105441755243e-01 -2.1762342247091705e-02 -9.1029111210449057e-02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:10 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:42 2022
epsilon: 2e-12
skip_tests:
prerequisites: ! |
pair table
pre_commands: ! ""
@ -14,7 +15,7 @@ pair_coeff: ! |
2 2 ${input_dir}/pair_table_beck.txt beck_2_2
extract: ! ""
natoms: 32
init_vdwl: 1.66849237317226
init_vdwl: 1.6684923731722567
init_coul: 0
init_stress: ! |2-
6.1946491697735437e+00 6.0610401365658024e+00 5.8874025724620429e+00 2.0726580316940962e-01 -2.1210361695457737e-02 -8.9415208770840096e-02
@ -51,7 +52,7 @@ init_forces: ! |2
30 -4.2587398133307960e-02 -3.0047443784418228e-02 -8.4420705386072381e-02
31 -2.0646215207926085e-02 -1.1590108886476506e-01 7.4785520470549566e-02
32 -1.9351936740994052e-01 -6.3281923890906297e-02 -2.2278650628172247e-02
run_vdwl: 1.66842322373739
run_vdwl: 1.6684232237373946
run_coul: 0
run_stress: ! |2-
6.1945944680219887e+00 6.0608212867624980e+00 5.8870610546441418e+00 2.0713169827359051e-01 -2.1315981269016338e-02 -8.9579349983669246e-02

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:10 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:42 2022
epsilon: 2e-13
skip_tests: single
prerequisites: ! |
@ -24,7 +24,7 @@ pair_coeff: ! |
2 2 1.0
extract: ! ""
natoms: 27
init_vdwl: 1707.69163115118
init_vdwl: 1707.691631151183
init_coul: 0
init_stress: ! |2-
2.4925595248180834e+03 1.1916297836190974e+04 4.2828223324219935e+03 -6.2926457403782319e+02 -1.7226034441498136e+03 5.5422724571118408e+02
@ -56,7 +56,7 @@ init_forces: ! |2
25 3.9091258782696285e+00 -3.5326654057532719e-01 4.7334165925855037e-01
26 -6.0742511180270498e+01 2.1819250139897854e+01 -8.7460910512647203e+00
27 5.1550993740012451e+01 2.7042786325070402e+01 1.3526090147715118e+01
run_vdwl: 1323.07868576666
run_vdwl: 1323.0786857666649
run_coul: 0
run_stress: ! |2-
2.1967177306554954e+03 8.5663931752326953e+03 3.8861287529537371e+03 -4.2921958355450886e+02 -1.4997587809515621e+03 2.8001183019458591e+02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:21 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:50 2022
epsilon: 4e-13
skip_tests:
prerequisites: ! |
atom full
bond class2
@ -19,7 +20,7 @@ equilibrium: 5 1.42 1.1 1.3 1.2 0.97
extract: ! |
r0 1
natoms: 29
init_energy: 26.4298596421327
init_energy: 26.429859642132705
init_stress: ! |-
-3.0141734112468595e+02 -3.1150388091129679e+02 -2.6058470202224748e+02 -1.9292943555936553e+01 -1.4107089561246062e+00 1.2759470887440076e+01
init_forces: ! |2
@ -52,7 +53,7 @@ init_forces: ! |2
27 2.2674229580362422e+00 3.6953663496240573e+01 -8.8003614900515856e+00
28 2.1551008635816927e+01 -9.2616399704789991e+00 1.4581621559271095e+01
29 -2.3818431593853170e+01 -2.7692023525761574e+01 -5.7812600692195097e+00
run_energy: 26.0946187265871
run_energy: 26.09461872658714
run_stress: ! |-
-2.9913778299462206e+02 -3.1023436598826180e+02 -2.6088287404513943e+02 -1.8712697455436544e+01 -1.1958498347651703e-01 1.3198910331468596e+01
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:21 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:50 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
bond fene
@ -20,7 +21,7 @@ extract: ! |
kappa 1
r0 1
natoms: 29
init_energy: 7104.90048646724
init_energy: 7104.900486467235
init_stress: ! |-
-4.9948251498286945e+03 -4.7340263125122983e+03 -6.8013808554851912e+03 -2.4245897042972433e+02 -6.6838292208179359e+02 -4.4352973682370884e+02
init_forces: ! |2
@ -53,7 +54,7 @@ init_forces: ! |2
27 -7.4105937747798123e+01 6.5722929360523858e+02 -2.2054278458154329e+02
28 4.6683896868291521e+02 -2.0062608322401542e+02 3.1586777609755433e+02
29 -3.9273303093511709e+02 -4.5660321038122316e+02 -9.5324991516011053e+01
run_energy: 7049.62378855647
run_energy: 7049.623788556474
run_stress: ! |-
-4.9516947557536578e+03 -4.6967963286139684e+03 -6.7329756531097837e+03 -2.3212662371402772e+02 -6.5980197715716599e+02 -4.4431032503962462e+02
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:21 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:50 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
atom full
bond fene/expand
@ -18,7 +19,7 @@ bond_coeff: ! |
equilibrium: 5 1.5550000000000002 1.117 1.321 1.3139999999999998 1.06
extract: ! ""
natoms: 29
init_energy: 5926.02085912429
init_energy: 5926.020859124294
init_stress: ! |-
-4.4174665507749878e+03 -4.2320578947897247e+03 -5.8644836994169109e+03 -1.6285898653137428e+02 -6.2814567943242105e+02 -3.6789143362234518e+02
init_forces: ! |2
@ -51,7 +52,7 @@ init_forces: ! |2
27 -6.3329315340599010e+01 5.6398417998805996e+02 -1.8910602077885551e+02
28 4.0041383936090841e+02 -1.7207959413995059e+02 2.7092388905417050e+02
29 -3.3708452402030940e+02 -3.9190458584810938e+02 -8.1817868275314979e+01
run_energy: 5884.76273364903
run_energy: 5884.762733649028
run_stress: ! |-
-4.3845231413255087e+03 -4.2028636554336808e+03 -5.8135612975015601e+03 -1.5544208427397948e+02 -6.2071051485646331e+02 -3.6919986493529041e+02
run_forces: ! |2

View File

@ -1,6 +1,6 @@
---
lammps_version: 27 Oct 2021
date_generated: Fri Dec 3 14:19:54 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:50 2022
epsilon: 2.5e-13
skip_tests:
prerequisites: ! |
@ -23,7 +23,7 @@ extract: ! |
natoms: 29
init_energy: 7104.538647187164
init_stress: ! |-
-4.9973815323625913e+03 -4.7361840472269523e+03 -6.8040395883503370e+03 -2.4269128277669373e+02 -6.6891138241387910e+02 -4.4331343074095361e+02
-4.9973815323625913e+03 -4.7361840472269523e+03 -6.8040395883503370e+03 -2.4269128277669367e+02 -6.6891138241387910e+02 -4.4331343074095361e+02
init_forces: ! |2
1 1.5241450143465187e+02 -3.0525977546573915e+02 -6.3458098267970195e+02
2 -3.5350460570830404e+02 -2.9090700339261923e+02 4.1606484768643804e+02
@ -56,7 +56,7 @@ init_forces: ! |2
29 -3.9296232463985876e+02 -4.5686979412503501e+02 -9.5380646168758574e+01
run_energy: 7049.171322970109
run_stress: ! |-
-4.9544161293431789e+03 -4.6990550365348445e+03 -6.7357951494828403e+03 -2.3243877860807157e+02 -6.6038849056571530e+02 -4.4410638672086759e+02
-4.9544161293431789e+03 -4.6990550365348445e+03 -6.7357951494828403e+03 -2.3243877860807152e+02 -6.6038849056571541e+02 -4.4410638672086759e+02
run_forces: ! |2
1 1.4925184076342319e+02 -3.0497744106969486e+02 -6.2784067871414572e+02
2 -3.5055563426526174e+02 -2.8969290648665157e+02 4.1046831743568976e+02

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:21 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:50 2022
epsilon: 1e-12
skip_tests:
prerequisites: ! |
atom full
bond gaussian
@ -18,7 +19,7 @@ bond_coeff: ! |
equilibrium: 5 1.45 1.37 1.61 2.45 2.85
extract: ! ""
natoms: 29
init_energy: 194.978038221632
init_energy: 194.9780382216324
init_stress: ! |-
-2.4024989684355553e+01 -3.8521513996632500e+01 -1.0851224048428129e+01 1.2562604359180053e+01 1.3677283516797356e+01 4.3206731051245653e+00
init_forces: ! |2
@ -51,7 +52,7 @@ init_forces: ! |2
27 -1.5677247388593395e-295 -1.8232011058192963e-295 -3.8038051984576450e-296
28 -3.2483754529644398e-299 1.3960035208884715e-299 -2.1978823514938368e-299
29 1.5680495764046360e-295 1.8230615054672073e-295 3.8060030808091389e-296
run_energy: 194.96889016686
run_energy: 194.9688901668597
run_stress: ! |-
-2.4084235648269384e+01 -3.8596877573973650e+01 -1.0971337511117875e+01 1.2627485208541385e+01 1.3589007837800324e+01 4.4518443361436777e+00
run_forces: ! |2

View File

@ -1,7 +1,8 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:21 2021
lammps_version: 17 Feb 2022
date_generated: Fri Mar 18 22:17:50 2022
epsilon: 5e-13
skip_tests:
prerequisites: ! |
atom full
bond gromos
@ -20,7 +21,7 @@ extract: ! |
kappa 1
r0 1
natoms: 29
init_energy: 33.7093041764133
init_energy: 33.70930417641326
init_stress: ! |-
-4.9434621198085694e+02 -8.4488926562658799e+02 -5.9511281447935380e+02 4.2664504799973329e+01 1.0460761950422788e+02 -3.0526296320246485e+02
init_forces: ! |2
@ -53,7 +54,7 @@ init_forces: ! |2
27 2.7144514843627896e+01 2.5934786050804597e+01 8.1210486636920063e+00
28 -3.5319623664811428e+00 1.5178762340275660e+00 -2.3897600089130737e+00
29 -2.3612552477146753e+01 -2.7452662284832162e+01 -5.7312886547789326e+00
run_energy: 32.0991086197953
run_energy: 32.09910861979532
run_stress: ! |-
-4.8073464794278550e+02 -8.2777900460692445e+02 -5.9322822048461876e+02 4.4602479100490783e+01 1.0572617600226262e+02 -2.9197894291678909e+02
run_forces: ! |2

Some files were not shown because too many files have changed in this diff Show More