Merge pull request #2114 from akohlmey/more-unittest-changes

More updates and corrections for unit tests
This commit is contained in:
Axel Kohlmeyer 2020-05-29 15:33:30 -04:00 committed by GitHub
commit d173ea4ad9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
30 changed files with 1349 additions and 610 deletions

View File

@ -15,14 +15,35 @@ if(ENABLE_COVERAGE)
gen_coverage_xml
COMMAND ${GCOVR_BINARY} -s -x -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.xml
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating XML Coverage Report..."
COMMENT "Generating XML coverage report..."
)
set(COVERAGE_HTML_DIR ${CMAKE_BINARY_DIR}/coverage_html)
add_custom_target(coverage_html_folder
COMMAND ${CMAKE_COMMAND} -E make_directory ${COVERAGE_HTML_DIR})
add_custom_target(
gen_coverage_html
COMMAND ${GCOVR_BINARY} -s --html --html-details -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o coverage.html
COMMAND ${GCOVR_BINARY} -s --html --html-details -r ${ABSOLUTE_LAMMPS_SOURCE_DIR} --object-directory=${CMAKE_BINARY_DIR} -o ${COVERAGE_HTML_DIR}/index.html
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Generating HTML Coverage Report..."
COMMENT "Generating HTML coverage report..."
)
add_dependencies(gen_coverage_html coverage_html_folder)
add_custom_target(clean_coverage_html
${CMAKE_COMMAND} -E remove_directory ${COVERAGE_HTML_DIR}
COMMENT "Deleting HTML coverage report..."
)
add_custom_target(reset_coverage
${CMAKE_COMMAND} -E remove -f */*.gcda */*/*.gcda */*/*/*.gcda
*/*/*/*/*.gcda */*/*/*/*/*.gcda */*/*/*/*/*/*.gcda
*/*/*/*/*/*/*/*.gcda */*/*/*/*/*/*/*/*.gcda
*/*/*/*/*/*/*/*/*/*.gcda */*/*/*/*/*/*/*/*/*/*.gcda
WORKIND_DIRECTORY ${CMAKE_BINARY_DIR}
COMMENT "Deleting coverage data files..."
)
add_dependencies(reset_coverage clean_coverage_html)
endif()
endif()

View File

@ -244,22 +244,35 @@ and working.
of mis-compiled code (or undesired large of precision due to
reordering of operations).
------------
Collect and visualize code coverage metrics
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
You can also collect code coverage metrics while running the tests by
enabling coverage support during building.
You can also collect code coverage metrics while running LAMMPS or the
tests by enabling code coverage support during the CMake configuration:
.. code-block:: bash
-D ENABLE_COVERAGE=value # enable coverage measurements, value = no (default) or yes
-D ENABLE_COVERAGE=on # enable coverage measurements (off by default)
This will also add the following targets to generate coverage reports
after running the LAMMPS executable or the unit tests:
This will instrument all object files to write information about which
lines of code were accessed during execution in files next to the
corresponding object files. These can be post-processed to visually
show the degree of coverage and which code paths are accessed and which
are not taken. When working on unit tests (see above), this can be
extremely helpful to determine which parts of the code are not executed
and thus what kind of tests are still missing. The coverage data is
cumulative, i.e. new data is added with each new run.
Enabling code coverage will also add the following build targets to
generate coverage reports after running the LAMMPS executable or the
unit tests:
.. code-block:: bash
make gen_coverage_html # generate coverage report in HTML format
make gen_coverage_xml # generate coverage report in XML format
make gen_coverage_html # generate coverage report in HTML format
make gen_coverage_xml # generate coverage report in XML format
make clean_coverage_html # delete folder with HTML format coverage report
make reset_coverage # delete all collected coverage data and HTML output
These reports require `GCOVR <https://gcovr.com/>`_ to be installed. The easiest way
to do this to install it via pip:
@ -267,3 +280,29 @@ to do this to install it via pip:
.. code-block:: bash
pip install git+https://github.com/gcovr/gcovr.git
After post-processing with ``gen_coverage_html`` the results are in
a folder ``coverage_html`` and can be viewed with a web browser.
The images below illustrate how the data is presented.
.. list-table::
* - .. figure:: JPG/coverage-overview-top.png
:target: JPG/coverage-overview-top.png
Top of the overview page
- .. figure:: JPG/coverage-overview-manybody.png
:target: JPG/coverage-overview-manybody.png
Styles with good coverage
- .. figure:: JPG/coverage-file-top.png
:target: JPG/coverage-file-top.png
Top of individual source page
- .. figure:: JPG/coverage-file-branches.png
:target: JPG/coverage-file-branches.png
Source page with branches

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 302 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

View File

@ -1035,145 +1035,6 @@ void PairBOP::gneigh()
/* ---------------------------------------------------------------------- */
void PairBOP::theta()
{
int i,j,ii,jj,kk;
int itype,jtype,i12;
int temp_ij,temp_ik,temp_ijk;
int n,nlocal,nall,ks;
int nlisti;
int *ilist;
int *iilist;
int **firstneigh;
double rj2,rk2,rsq,ps;
double rj1k1,rj2k2;
double **x = atom->x;
int *type = atom->type;
nlocal = atom->nlocal;
nall = nlocal+atom->nghost;
ilist = list->ilist;
firstneigh = list->firstneigh;
if(update_list!=0)
memory_theta_grow();
else
memory_theta_create();
for (ii = 0; ii < nall; ii++) {
if(ii<nlocal)
i= ilist[ii];
else
i=ii;
itype = map[type[i]]+1;
iilist=firstneigh[i];
nlisti=BOP_total[i];
for(jj=0;jj<nlisti;jj++) {
temp_ij=BOP_index[i]+jj;
j=iilist[neigh_index[temp_ij]];
jtype = map[type[j]]+1;
if(itype==jtype)
i12=itype-1;
else if(itype<jtype)
i12=itype*bop_types-itype*(itype+1)/2+jtype-1;
else
i12=jtype*bop_types-jtype*(jtype+1)/2+itype-1;
if(i12>=npairs) {
error->one(FLERR,"Too many atom pairs for pair bop");
}
disij[0][temp_ij]=x[j][0]-x[i][0];
disij[1][temp_ij]=x[j][1]-x[i][1];
disij[2][temp_ij]=x[j][2]-x[i][2];
rsq=disij[0][temp_ij]*disij[0][temp_ij]
+disij[1][temp_ij]*disij[1][temp_ij]
+disij[2][temp_ij]*disij[2][temp_ij];
rij[temp_ij]=sqrt(rsq);
if(rij[temp_ij]<=rcut[i12])
neigh_flag[temp_ij]=1;
else
neigh_flag[temp_ij]=0;
if(rij[temp_ij]<=rcut3[i12])
neigh_flag3[temp_ij]=1;
else
neigh_flag3[temp_ij]=0;
ps=rij[temp_ij]*rdr[i12]+1.0;
ks=(int)ps;
if(nr-1<ks)
ks=nr-1;
ps=ps-ks;
if(ps>1.0)
ps=1.0;
betaS[temp_ij]=((pBetaS3[i12][ks-1]*ps+pBetaS2[i12][ks-1])*ps+pBetaS1[i12][ks-1])*ps+pBetaS[i12][ks-1];
dBetaS[temp_ij]=(pBetaS6[i12][ks-1]*ps+pBetaS5[i12][ks-1])*ps
+pBetaS4[i12][ks-1];
betaP[temp_ij]=((pBetaP3[i12][ks-1]*ps+pBetaP2[i12][ks-1])*ps
+pBetaP1[i12][ks-1])*ps+pBetaP[i12][ks-1];
dBetaP[temp_ij]=(pBetaP6[i12][ks-1]*ps+pBetaP5[i12][ks-1])*ps
+pBetaP4[i12][ks-1];
repul[temp_ij]=((pRepul3[i12][ks-1]*ps+pRepul2[i12][ks-1])*ps
+pRepul1[i12][ks-1])*ps+pRepul[i12][ks-1];
dRepul[temp_ij]=(pRepul6[i12][ks-1]*ps+pRepul5[i12][ks-1])*ps
+pRepul4[i12][ks-1];
}
}
for (ii = 0; ii < nall; ii++) {
n=0;
if(ii<nlocal)
i= ilist[ii];
else
i=ii;
iilist=firstneigh[i];
nlisti=BOP_total[i];
for(jj=0;jj<nlisti;jj++) {
temp_ij=BOP_index[i]+jj;
j=iilist[neigh_index[temp_ij]];
rj2=rij[temp_ij]*rij[temp_ij];
for(kk=jj+1;kk<nlisti;kk++) {
if(cos_index[i]+n>=cos_total) {
error->one(FLERR,"Too many atom triplets for pair bop");
}
temp_ik=BOP_index[i]+kk;
temp_ijk=cos_index[i]+n;
if(temp_ijk>=cos_total) {
error->one(FLERR,"Too many atom triplets for pair bop");
}
rk2=rij[temp_ik]*rij[temp_ik];
rj1k1=rij[temp_ij]*rij[temp_ik];
rj2k2=rj1k1*rj1k1;
if(temp_ijk>=cos_total) {
error->one(FLERR,"Too many atom triplets for pair bop");
}
cosAng[temp_ijk]=(disij[0][temp_ij]*disij[0][temp_ik]+disij[1][temp_ij]
*disij[1][temp_ik]+disij[2][temp_ij]*disij[2][temp_ik])/rj1k1;
dcAng[temp_ijk][0][0]=(disij[0][temp_ik]*rj1k1-cosAng[temp_ijk]
*disij[0][temp_ij]*rk2)/(rj2k2);
dcAng[temp_ijk][1][0]=(disij[1][temp_ik]*rj1k1-cosAng[temp_ijk]
*disij[1][temp_ij]*rk2)/(rj2k2);
dcAng[temp_ijk][2][0]=(disij[2][temp_ik]*rj1k1-cosAng[temp_ijk]
*disij[2][temp_ij]*rk2)/(rj2k2);
dcAng[temp_ijk][0][1]=(disij[0][temp_ij]*rj1k1-cosAng[temp_ijk]
*disij[0][temp_ik]*rj2)/(rj2k2);
dcAng[temp_ijk][1][1]=(disij[1][temp_ij]*rj1k1-cosAng[temp_ijk]
*disij[1][temp_ik]*rj2)/(rj2k2);
dcAng[temp_ijk][2][1]=(disij[2][temp_ij]*rj1k1-cosAng[temp_ijk]
*disij[2][temp_ik]*rj2)/(rj2k2);
n++;
}
}
}
}
/* ---------------------------------------------------------------------- */
void PairBOP::theta_mod()
{
if(update_list!=0)
memory_theta_grow();
else
memory_theta_create();
}
/* ---------------------------------------------------------------------- */
/* The formulation differs slightly to avoid negative square roots
in the calculation of Sigma^(1/2) of (a) Eq. 6 and (b) Eq. 11 */
@ -5556,26 +5417,6 @@ void _noopt PairBOP::read_table(char *filename)
}
}
/* ---------------------------------------------------------------------- */
double PairBOP::cutoff(double rp,double vrcut,int mode,double r)
{
double tmp,tmp_beta,tmp_alpha,cut_store;
if(mode==1) {
tmp=(rsmall-rbig)*(r-rp)/(vrcut-rp)+rbig;
cut_store=(erfc(tmp)-erfc(rsmall))/(erfc(rbig)-erfc(rsmall));
}
else {
tmp_beta=log(log(rbig)/log(rsmall))/log(rp/vrcut);
tmp_alpha=-log(rbig)/pow(rp,tmp_beta);
cut_store=(exp(-tmp_alpha*pow(r,tmp_beta))-exp(-tmp_alpha*pow(vrcut
,tmp_beta)))/(exp(-tmp_alpha*pow(rp,tmp_beta))-exp(-tmp_alpha
*pow(vrcut,tmp_beta)));
}
return(cut_store);
}
/* ----------------------------------------------------------------------
memory usage of local atom-based arrays
------------------------------------------------------------------------- */

View File

@ -199,14 +199,11 @@ class PairBOP : public Pair {
void setPrepul();
void setSign();
void gneigh();
void theta();
void theta_mod();
double sigmaBo(int, int);
double PiBo(int, int);
void memory_theta_create();
void memory_theta_destroy();
void memory_theta_grow();
double cutoff(double, double, int, double);
void read_table(char *);
void allocate();

View File

@ -207,15 +207,12 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
for (auto& angle_coeff : cfg.angle_coeff) {
command("angle_coeff " + angle_coeff);
}
for (auto& post_command : cfg.post_commands) {
command(post_command);
}
command("run 0 post no");
}
// re-generate yaml file with current settings.
void generate_yaml_file(const char *outfile, const TestConfig &config)
@ -288,6 +285,14 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
}
writer.emit_block("angle_coeff", block);
// equilibrium angle
std::stringstream eqstr;
eqstr << lmp->force->angle->equilibrium_angle(1);
for (std::size_t i=1; i < config.angle_coeff.size(); ++i) {
eqstr << " " << lmp->force->angle->equilibrium_angle(i+1);
}
writer.emit("equilibrium", eqstr.str());
// extract
block.clear();
std::stringstream outstr;
@ -445,67 +450,71 @@ TEST(AngleStyle, plain) {
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);
// 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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon);
EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon);
if (print_stats)
std::cerr << "run_energy stats, newton off:" << stats << std::endl;
}
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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon);
EXPECT_FP_LE_WITH_EPS(angle->energy, 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);
@ -588,6 +597,7 @@ TEST(AngleStyle, omp) {
::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 /omp suffix\n"
@ -683,72 +693,225 @@ TEST(AngleStyle, 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);
// 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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon);
// TODO: this is currently broken for USER-OMP with angle style hybrid
// needs to be fixed in the main code somewhere. Not sure where, though.
if (test_config.angle_style.substr(0,6) != "hybrid")
EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon);
if (print_stats)
std::cerr << "run_energy stats, newton off:" << stats << std::endl;
}
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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(angle->energy, test_config.run_energy, epsilon);
// TODO: this is currently broken for USER-OMP with angle style hybrid
// needs to be fixed in the main code somewhere. Not sure where, though.
if (test_config.angle_style.substr(0,6) != "hybrid")
EXPECT_FP_LE_WITH_EPS(angle->energy, energy, epsilon);
if (print_stats)
std::cerr << "run_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
};
TEST(AngleStyle, single) {
const char *args[] = {"AngleStyle", "-log", "none", "-echo", "screen", "-nocite" };
char **argv = (char **)args;
int argc = sizeof(args)/sizeof(char *);
// create a LAMMPS instance with standard settings to detect the number of atom types
if (!verbose) ::testing::internal::CaptureStdout();
LAMMPS *lmp = init_lammps(argc,argv,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
if (!lmp) {
std::cerr << "One or more prerequisite styles are not available "
"in this LAMMPS configuration:\n";
for (auto& prerequisite : test_config.prerequisites) {
std::cerr << prerequisite.first << "_style "
<< prerequisite.second << "\n";
}
GTEST_SKIP();
}
// gather some information and skip if unsupported
int nangletypes = lmp->atom->nangletypes;
int molecular = lmp->atom->molecular;
if (molecular != 1) {
std::cerr << "Only simple molecular atom styles are supported\n";
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
GTEST_SKIP();
}
// utility lambda to improve readability
auto command = [&](const std::string & line) {
lmp->input->one(line.c_str());
};
// now start over
if (!verbose) ::testing::internal::CaptureStdout();
command("clear");
command("variable newton_bond delete");
command("variable newton_bond index on");
command("variable input_dir index " + INPUT_FOLDER);
for (auto& pre_command : test_config.pre_commands) {
command(pre_command);
}
command("atom_style molecular");
command("units ${units}");
command("boundary p p p");
command("newton ${newton_pair} ${newton_bond}");
command("special_bonds lj/coul "
"${bond_factor} ${angle_factor} ${dihedral_factor}");
command("atom_modify map array");
command("region box block -10.0 10.0 -10.0 10.0 -10.0 10.0 units box");
char buf[10];
std::string cmd("create_box 1 box");
cmd += " angle/types ";
snprintf(buf,10,"%d",nangletypes);
cmd += buf;
cmd += " extra/angle/per/atom 2";
cmd += " extra/special/per/atom 2";
command(cmd);
command("pair_style zero 8.0");
command("pair_coeff * *");
command("angle_style " + test_config.angle_style);
Angle *angle = lmp->force->angle;
for (auto& angle_coeff : test_config.angle_coeff) {
command("angle_coeff " + angle_coeff);
}
// create (only) three atoms and one angle
command("mass * 1.0");
command("create_atoms 1 single 5.0 -0.75 0.4 units box");
command("create_atoms 1 single 5.5 0.25 -0.1 units box");
command("create_atoms 1 single 5.0 0.75 0.4 units box");
command("create_bonds single/angle 1 1 2 3");
for (auto& post_command : test_config.post_commands) {
command(post_command);
}
command("run 0 post no");
if (!verbose) ::testing::internal::GetCapturedStdout();
int idx1 = lmp->atom->map(1);
int idx2 = lmp->atom->map(2);
int idx3 = lmp->atom->map(3);
double epsilon = test_config.epsilon;
double eangle[4], esingle[4];
eangle[0] = angle->energy;
esingle[0] = angle->single(1, idx1, idx2, idx3);
if (!verbose) ::testing::internal::CaptureStdout();
command("displace_atoms all random 0.5 0.5 0.5 23456");
command("run 0 post no");
if (!verbose) ::testing::internal::GetCapturedStdout();
idx1 = lmp->atom->map(1);
idx2 = lmp->atom->map(2);
idx3 = lmp->atom->map(3);
eangle[1] = angle->energy;
esingle[1] = angle->single(1, idx1, idx2, idx3);
if (!verbose) ::testing::internal::CaptureStdout();
command("displace_atoms all random 0.5 0.5 0.5 456963");
command("run 0 post no");
if (!verbose) ::testing::internal::GetCapturedStdout();
idx1 = lmp->atom->map(1);
idx2 = lmp->atom->map(2);
idx3 = lmp->atom->map(3);
eangle[2] = angle->energy;
esingle[2] = angle->single(1, idx1, idx2, idx3);
if (!verbose) ::testing::internal::CaptureStdout();
command("displace_atoms all random 0.5 0.5 0.5 9726532");
command("run 0 post no");
if (!verbose) ::testing::internal::GetCapturedStdout();
idx1 = lmp->atom->map(1);
idx2 = lmp->atom->map(2);
idx3 = lmp->atom->map(3);
eangle[3] = angle->energy;
esingle[3] = angle->single(1, idx1, idx2, idx3);
ErrorStats stats;
EXPECT_FP_LE_WITH_EPS(eangle[0], esingle[0], epsilon);
EXPECT_FP_LE_WITH_EPS(eangle[1], esingle[1], epsilon);
EXPECT_FP_LE_WITH_EPS(eangle[2], esingle[2], epsilon);
EXPECT_FP_LE_WITH_EPS(eangle[3], esingle[3], epsilon);
if (print_stats)
std::cerr << "single_energy stats:" << stats << std::endl;
int i = 0;
for (auto &dist : test_config.equilibrium)
EXPECT_NEAR(dist,angle->equilibrium_angle(++i),0.00001);
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
}

View File

@ -74,7 +74,7 @@ LAMMPS *init_lammps(int argc, char **argv,
// check if prerequisite styles are available
Info *info = new Info(lmp);
int nfail = 0;
for (auto prerequisite : cfg.prerequisites) {
for (auto& prerequisite : cfg.prerequisites) {
std::string style = prerequisite.second;
// this is a test for bond styles, so if the suffixed
@ -207,11 +207,9 @@ void data_lammps(LAMMPS *lmp, const TestConfig &cfg)
for (auto& bond_coeff : cfg.bond_coeff) {
command("bond_coeff " + bond_coeff);
}
for (auto& post_command : cfg.post_commands) {
command(post_command);
}
command("run 0 post no");
}
@ -227,7 +225,7 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
if (!lmp) {
std::cerr << "One or more prerequisite styles are not available "
"in this LAMMPS configuration:\n";
for (auto prerequisite : config.prerequisites) {
for (auto& prerequisite : config.prerequisites) {
std::cerr << prerequisite.first << "_style "
<< prerequisite.second << "\n";
}
@ -255,21 +253,21 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
// prerequisites
block.clear();
for (auto prerequisite : config.prerequisites) {
for (auto& prerequisite : config.prerequisites) {
block += prerequisite.first + " " + prerequisite.second + "\n";
}
writer.emit_block("prerequisites", block);
// pre_commands
block.clear();
for (auto command : config.pre_commands) {
for (auto& command : config.pre_commands) {
block += command + "\n";
}
writer.emit_block("pre_commands", block);
// post_commands
block.clear();
for (auto command : config.post_commands) {
for (auto& command : config.post_commands) {
block += command + "\n";
}
writer.emit_block("post_commands", block);
@ -282,15 +280,23 @@ void generate_yaml_file(const char *outfile, const TestConfig &config)
// bond_coeff
block.clear();
for (auto bond_coeff : config.bond_coeff) {
for (auto& bond_coeff : config.bond_coeff) {
block += bond_coeff + "\n";
}
writer.emit_block("bond_coeff", block);
// equilibrium distance
std::stringstream eqstr;
eqstr << lmp->force->bond->equilibrium_distance(1);
for (std::size_t i=1; i < config.bond_coeff.size(); ++i) {
eqstr << " " << lmp->force->bond->equilibrium_distance(i+1);
}
writer.emit("equilibrium", eqstr.str());
// extract
block.clear();
std::stringstream outstr;
for (auto data : config.extract) {
for (auto& data : config.extract) {
outstr << data.first << " " << data.second << std::endl;
}
writer.emit_block("extract", outstr.str());
@ -357,7 +363,7 @@ TEST(BondStyle, plain) {
if (!lmp) {
std::cerr << "One or more prerequisite styles are not available "
"in this LAMMPS configuration:\n";
for (auto prerequisite : test_config.prerequisites) {
for (auto& prerequisite : test_config.prerequisites) {
std::cerr << prerequisite.first << "_style "
<< prerequisite.second << "\n";
}
@ -444,67 +450,71 @@ TEST(BondStyle, plain) {
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);
// 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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.run_energy, epsilon);
EXPECT_FP_LE_WITH_EPS(bond->energy, energy, epsilon);
if (print_stats)
std::cerr << "run_energy stats, newton off:" << stats << std::endl;
}
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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.run_energy, epsilon);
EXPECT_FP_LE_WITH_EPS(bond->energy, 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);
@ -587,11 +597,12 @@ TEST(BondStyle, omp) {
::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 /omp suffix\n"
"are not available in this LAMMPS configuration:\n";
for (auto prerequisite : test_config.prerequisites) {
for (auto& prerequisite : test_config.prerequisites) {
std::cerr << prerequisite.first << "_style "
<< prerequisite.second << "\n";
}
@ -622,7 +633,6 @@ TEST(BondStyle, omp) {
Bond *bond = lmp->force->bond;
double *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);
@ -682,69 +692,73 @@ TEST(BondStyle, 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);
// 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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.run_energy, epsilon);
// TODO: this is currently broken for USER-OMP with bond style hybrid
// needs to be fixed in the main code somewhere. Not sure where, though.
if (test_config.bond_style.substr(0,6) != "hybrid")
EXPECT_FP_LE_WITH_EPS(bond->energy, energy, epsilon);
if (print_stats)
std::cerr << "run_energy stats, newton off:" << stats << std::endl;
}
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;
stats.reset();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.init_energy, epsilon);
if (print_stats)
std::cerr << "init_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
run_lammps(lmp);
if (!verbose) ::testing::internal::GetCapturedStdout();
f = lmp->atom->f;
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;
stats.reset();
id = lmp->modify->find_compute("sum");
energy = lmp->modify->compute[id]->compute_scalar();
EXPECT_FP_LE_WITH_EPS(bond->energy, test_config.run_energy, epsilon);
// TODO: this is currently broken for USER-OMP with bond style hybrid
// needs to be fixed in the main code somewhere. Not sure where, though.
if (test_config.bond_style.substr(0,6) != "hybrid")
EXPECT_FP_LE_WITH_EPS(bond->energy, energy, epsilon);
if (print_stats)
std::cerr << "run_energy stats, newton off:" << stats << std::endl;
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp,test_config);
@ -760,10 +774,11 @@ TEST(BondStyle, single) {
if (!verbose) ::testing::internal::CaptureStdout();
LAMMPS *lmp = init_lammps(argc,argv,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
if (!lmp) {
std::cerr << "One or more prerequisite styles are not available "
"in this LAMMPS configuration:\n";
for (auto prerequisite : test_config.prerequisites) {
for (auto& prerequisite : test_config.prerequisites) {
std::cerr << prerequisite.first << "_style "
<< prerequisite.second << "\n";
}
@ -786,8 +801,6 @@ TEST(BondStyle, single) {
lmp->input->one(line.c_str());
};
Bond *bond = lmp->force->bond;
// now start over
if (!verbose) ::testing::internal::CaptureStdout();
command("clear");
@ -823,9 +836,9 @@ TEST(BondStyle, single) {
command("pair_coeff * *");
command("bond_style " + test_config.bond_style);
bond = lmp->force->bond;
Bond *bond = lmp->force->bond;
for (auto bond_coeff : test_config.bond_coeff) {
for (auto& bond_coeff : test_config.bond_coeff) {
command("bond_coeff " + bond_coeff);
}
@ -1005,6 +1018,10 @@ TEST(BondStyle, single) {
if (print_stats)
std::cerr << "single_energy stats:" << stats << std::endl;
int i = 0;
for (auto &dist : test_config.equilibrium)
EXPECT_NEAR(dist,bond->equilibrium_distance(++i),0.00001);
if (!verbose) ::testing::internal::CaptureStdout();
cleanup_lammps(lmp,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();

View File

@ -1050,7 +1050,7 @@ TEST(PairStyle, single) {
// create a LAMMPS instance with standard settings to detect the number of atom types
if (!verbose) ::testing::internal::CaptureStdout();
LAMMPS *lmp = init_lammps(argc,argv,test_config);
if (!verbose) ::testing::internal::GetCapturedStdout();
if (!verbose) ::testing::internal::GetCapturedStdout();
if (!lmp) {
std::cerr << "One or more prerequisite styles are not available "

View File

@ -47,6 +47,7 @@ public:
std::vector<std::string> angle_coeff;
std::vector<std::string> dihedral_coeff;
std::vector<std::string> improper_coeff;
std::vector<double> equilibrium;
std::vector<std::pair<std::string,int>> extract;
int natoms;
double init_energy;

View File

@ -50,31 +50,21 @@ TestConfigReader::TestConfigReader(TestConfig & config)
consumers["bond_style"] = &TestConfigReader::bond_style;
consumers["bond_coeff"] = &TestConfigReader::bond_coeff;
consumers["init_energy"] = &TestConfigReader::init_energy;
consumers["run_energy"] = &TestConfigReader::run_energy;
consumers["angle_style"] = &TestConfigReader::angle_style;
consumers["angle_coeff"] = &TestConfigReader::angle_coeff;
consumers["init_energy"] = &TestConfigReader::init_energy;
consumers["run_energy"] = &TestConfigReader::run_energy;
consumers["equilibrium"] = &TestConfigReader::equilibrium;
}
void TestConfigReader::prerequisites(const yaml_event_t & event) {
config.prerequisites.clear();
std::stringstream data((char *)event.data.scalar.value);
std::string line;
std::string key, value;
while(std::getline(data, line, '\n')) {
std::size_t found = line.find_first_of(" \t");
std::string key = line.substr(0,found);
found = line.find_first_not_of(" \t",found);
// skip invalid data
if (found == std::string::npos) {
std::cerr << "Skipping invalid prerequisite line:\n"
<< line << std::endl;
continue;
}
std::string value = line.substr(found,line.find_first_of(" \t",found));
while(1) {
data >> key >> value;
if (data.eof()) break;
config.prerequisites.push_back(std::make_pair(key,value));
}
}
@ -118,12 +108,11 @@ void TestConfigReader::input_file(const yaml_event_t & event) {
void TestConfigReader::extract(const yaml_event_t & event) {
config.extract.clear();
std::stringstream data((char *)event.data.scalar.value);
std::string line;
while (std::getline(data, line, '\n')) {
std::size_t found = line.find_first_of(" \t");
std::string name = line.substr(0,found);
int value = atoi(line.substr(found).c_str());
std::string name;
int value;
while(1) {
data >> name >> value;
if (data.eof()) break;
config.extract.push_back(make_pair(name, value));
}
}
@ -220,6 +209,17 @@ void TestConfigReader::angle_coeff(const yaml_event_t & event) {
}
}
void TestConfigReader::equilibrium(const yaml_event_t & event) {
std::stringstream data((char *)event.data.scalar.value);
config.equilibrium.clear();
double value;
while (1) {
data >> value;
if (data.eof()) break;
config.equilibrium.push_back(value);
}
}
void TestConfigReader::init_vdwl(const yaml_event_t & event) {
config.init_vdwl = atof((char *)event.data.scalar.value);
}

View File

@ -41,6 +41,7 @@ public:
void bond_coeff(const yaml_event_t & event);
void angle_style(const yaml_event_t & event);
void angle_coeff(const yaml_event_t & event);
void equilibrium(const yaml_event_t & event);
void init_vdwl(const yaml_event_t & event);
void init_coul(const yaml_event_t & event);
void run_vdwl(const yaml_event_t & event);

View File

@ -1,6 +1,6 @@
---
lammps_version: 5 May 2020
date_generated: Tue May 19 19:19:41 202
date_generated: Thu May 28 22:02:50 202
epsilon: 2.5e-13
prerequisites: ! |
atom full
@ -14,6 +14,7 @@ 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: 1.92161 1.94255 2.0944 1.89368
extract: ! ""
natoms: 29
init_energy: 85.4248638845977

View File

@ -1,6 +1,6 @@
---
lammps_version: 5 May 2020
date_generated: Tue May 19 19:00:35 202
date_generated: Thu May 28 22:02:43 202
epsilon: 2.5e-13
prerequisites: ! |
atom full
@ -14,6 +14,7 @@ angle_coeff: ! |
2 45.0 111.0
3 50.0 120.0
4 100.0 108.5
equilibrium: 1.92161 1.93732 2.0944 1.89368
extract: ! ""
natoms: 29
init_energy: 41.530817896491

View File

@ -1,7 +1,7 @@
---
lammps_version: 5 May 2020
date_generated: Mon May 18 18:18:26 202
epsilon: 1.0e-14
date_generated: Thu May 28 22:02:55 202
epsilon: 1e-14
prerequisites: ! |
atom full
angle zero
@ -14,6 +14,7 @@ angle_coeff: ! |
2 111
3 120
4 108.5
equilibrium: 1.92161 1.93732 2.0944 1.89368
extract: ! ""
natoms: 29
init_energy: 0

View File

@ -0,0 +1,90 @@
---
lammps_version: 5 May 2020
date_generated: Thu May 28 06:23:01 202
epsilon: 5e-12
prerequisites: ! |
pair eam/cd/old
pre_commands: ! ""
post_commands: ! |
change_box all x final 0 10 y final 0 10 z final 0 10
input_file: in.metal
pair_style: eam/cd/old
pair_coeff: ! |
* * FeCr.cdeam Fe Cr
extract: ! ""
natoms: 32
init_vdwl: -77.3566448928927
init_coul: 0
init_stress: ! |2-
2.9405509133096274e+01 2.9077568336065784e+01 2.2113739361139935e+01 7.8904933627522267e+00 -9.3663625990408816e-01 8.1130320719355153e-01
init_forces: ! |2
8 -2.4395655011794004e-01 -1.5333218084741596e+00 -5.5245484545491697e-01
11 -7.8706069939087697e-01 -6.3256079782490671e-01 5.4125643283892681e-02
13 5.1518155226706963e-01 6.8274677994766197e-01 -4.2850986846545980e-01
18 -3.9256582801572564e+00 -1.5618588551742114e+00 -1.9139821131009855e+00
29 1.4999378064208269e+00 3.4792718713414832e+00 -3.6648974322266664e-01
4 4.2464232689549453e-01 -9.7164204677538535e-01 -9.7219077261848585e-01
9 -4.1883835783416828e-01 -2.9640623407730660e-01 -9.3659089760684641e-02
15 -7.7638636434137465e-01 1.5329378947070542e+00 -1.1035208637789840e+00
22 -2.8700086895519467e-01 -2.0643765194685284e+00 8.5229634089584366e-02
25 2.5743829864820831e+00 1.5066523137107746e+00 -1.2624906599123387e-01
3 -9.0726681299683187e-01 1.0619426753822845e+00 -5.8362819906686325e-01
10 -2.7746664677947930e-01 -9.9414875982860917e-02 -6.9345163681304967e-01
16 2.3481539742343385e+00 -1.1310953819765714e+00 -8.5356283146096967e-01
21 1.5363256394734701e+00 1.8113878750853332e+00 1.1372797726733304e+00
26 -1.5263877243918971e+00 -1.6426898707601700e+00 1.0185360426954311e+00
7 -1.0984506174307791e+00 1.2895286552767053e+00 -5.4447897480978547e-01
12 1.6057913185256654e+00 -9.4698230673325845e-01 -5.8571244556639712e-01
17 4.6309553650227248e-01 1.9577141871283613e-01 9.4588389196297584e-01
30 -4.8103274177570204e-01 6.7765823339012321e-01 -7.2776907743413610e-01
2 -9.6746966328518896e-02 -2.0660058647238458e-01 5.1376678118360786e-01
19 -2.4660378601709181e+00 -3.1428997639171015e+00 3.6929505266594292e-01
24 4.6125255774631988e+00 2.0934708458658551e+00 2.3354130173781136e+00
27 1.6537006967519022e-01 4.0030582114974539e-01 7.6202897807556333e-02
6 -5.5673454781795384e-01 6.4352466176927337e-01 -5.0416324732898266e-01
20 5.3753132262499415e-01 -4.8016263425435718e-01 3.2102890572308612e-01
31 -8.5335875768564051e-01 -1.3518208677019026e+00 2.4663641279666662e+00
5 -7.4639221870381012e-01 5.6748273743689703e-01 5.0398965766459269e-01
28 -3.3427836201448913e-01 2.2430792656431101e-01 1.1564659047727996e-01
32 -2.6142628689137353e+00 -1.5189868845729886e+00 -6.7390297673000232e-01
1 3.7750702521380647e-01 -1.2775122604877289e-02 -2.3192012230744505e-01
14 4.9905260884493080e-01 -4.3548863736972288e-01 1.3704420563876023e+00
23 1.2378195011832249e+00 1.8620934838003551e+00 -3.5755819804861416e-01
run_vdwl: -77.5908146669562
run_coul: 0
run_stress: ! |2-
2.8485191578893058e+01 2.8198695634641155e+01 2.1600480977108983e+01 7.4831961344053015e+00 -1.0657036014691093e+00 8.1083296213634959e-01
run_forces: ! |2
8 -2.6687662328951439e-01 -1.5323983128806480e+00 -5.3650003340444363e-01
11 -7.6894416406912669e-01 -6.3558503412677736e-01 3.8197957557271150e-02
13 5.0470405196269419e-01 6.8947168162484451e-01 -4.2691120946149397e-01
18 -3.6854522670425158e+00 -1.4559988082140753e+00 -1.8074005610504837e+00
29 1.3524738452403593e+00 3.2946498298818288e+00 -3.3499173170850133e-01
4 4.0729758180114273e-01 -9.4491662268062182e-01 -9.5450134374689677e-01
9 -4.1599974909284382e-01 -3.0446259231679634e-01 -1.1153295601432243e-01
15 -7.2971570976124900e-01 1.5042763436302977e+00 -1.0747802112135652e+00
22 -2.2250198294686541e-01 -1.9965841181629400e+00 7.1747050733221227e-02
25 2.4950084662696983e+00 1.4707797579395552e+00 -1.3594695871930362e-01
3 -9.0534014592010392e-01 1.0332760987936294e+00 -5.7650969402625052e-01
10 -2.4598170004171149e-01 -9.1061063106574108e-02 -6.4286211566594620e-01
16 2.2585093380006076e+00 -1.1168061549089283e+00 -8.4057202310250323e-01
21 1.4601582272558056e+00 1.7066533856947079e+00 1.1129911037189397e+00
26 -1.4181737451422176e+00 -1.5291168458460618e+00 9.5602794273735947e-01
7 -1.0726809843117340e+00 1.2799606830754382e+00 -5.4314026901401546e-01
12 1.5850988167998827e+00 -9.1572194416915975e-01 -5.6882585734207169e-01
17 4.7006057082843539e-01 1.9337850521959463e-01 9.3772077301591306e-01
30 -4.5467752591799759e-01 6.6316947806197213e-01 -6.9376708110580343e-01
2 -8.8659229971455075e-02 -2.1347769705954714e-01 5.0057777700323369e-01
19 -2.3079714228833410e+00 -2.9608093698018987e+00 3.7108228042443869e-01
24 4.2950019630782688e+00 1.9475688188592346e+00 2.2351682655037335e+00
27 1.7749931668796490e-01 3.8675424964670363e-01 5.9748810010048489e-02
6 -5.4727635910881256e-01 6.3807859667675315e-01 -4.7985870047603307e-01
20 5.2623598439294483e-01 -4.7516744794791216e-01 3.0914307217963943e-01
31 -8.0935941564949265e-01 -1.3301958218136074e+00 2.3859777045237114e+00
5 -7.2603632278983410e-01 5.5101408460680934e-01 4.8498734148834588e-01
28 -3.4089135725955205e-01 2.2341523534112284e-01 1.2257324449666285e-01
32 -2.5991916652162788e+00 -1.4776784092373672e+00 -6.6499163713851406e-01
1 3.4051925606376454e-01 -2.6258862226114895e-02 -2.5087755767694686e-01
14 5.0915603335540283e-01 -4.0999165632064422e-01 1.3825486730786496e+00
23 1.2240069186776739e+00 1.8337840117671826e+00 -3.2452205560407349e-01
...

View File

@ -0,0 +1,92 @@
---
lammps_version: 5 May 2020
date_generated: Thu May 28 20:40:34 202
epsilon: 1e-12
prerequisites: ! |
pair polymorphic
pre_commands: ! |
variable newton_pair delete
variable newton_pair index on
post_commands: ! |
change_box all x final 0 18 y final 0 18 z final 0 18
input_file: in.metal
pair_style: polymorphic
pair_coeff: ! |
* * CuTa_eam.poly Cu Ta
extract: ! ""
natoms: 32
init_vdwl: -112.540387935517
init_coul: 0
init_stress: ! |2-
1.3377418322776046e+02 1.3013604387391047e+02 1.3325935858051224e+02 1.3759975178496845e+01 -5.1138734367336625e-01 -8.4676793711767679e+00
init_forces: ! |2
8 -2.2428945755373189e+00 -7.4033009258893054e+00 -3.3569122605412978e+00
11 -2.2492158743627382e+00 -5.3145999197784999e-01 -5.8021531673742044e-01
13 9.4024341587392729e-02 1.9430385765330092e+00 -2.7217771787755627e+00
18 -1.3683111266194363e+01 -4.0310939154243384e+00 -6.2567972447127955e+00
29 -3.2705040788228013e-01 1.1755074200588027e+01 -3.6942877850791345e-01
4 3.5920251384794515e+00 -4.8543560492093514e+00 -3.7098310564003221e+00
9 6.5278902431052910e-01 -4.1080503436516247e-01 -1.0739465989669055e+00
15 -1.6631012866658601e+00 5.5259707118640575e+00 -8.0378281678873051e+00
22 9.2028590714961545e-01 -1.1767883482997037e+01 -6.5352089706661676e-01
25 1.2100772285199820e+01 5.0819826435384030e+00 5.5995850889647503e-01
3 -3.3993960060133306e+00 5.7675320200190585e+00 -1.7749442267251097e+00
10 -7.6151995305441378e-01 -1.4898183719318012e+00 -3.5737578367712590e+00
16 3.5771820542441142e+00 -1.7610223782546945e+00 -1.5158002704977778e+00
21 2.5627124726293382e+00 2.6408685673275389e+00 2.9796448634533559e+00
26 -2.1607424352570717e+00 -3.9509308569028003e+00 4.1556311798004941e+00
7 -1.6524529987381311e+00 2.7289756091934927e+00 -2.1027161735874915e+00
12 3.6087174128798059e+00 -2.9258088984474795e-01 -1.8569680714945807e+00
17 2.8955979016474900e+00 2.1397954911122525e+00 1.3436060182985605e+00
30 -1.1772953098090733e+00 3.5197586410261525e+00 -3.5507225884796605e+00
2 -1.1774259881259390e+00 -7.3896307522828297e-01 1.9491558173232677e+00
19 -6.3293342539461976e+00 -8.1592946406166362e+00 1.6334019789853360e+00
24 9.8387195546733075e+00 2.0725630779782303e+00 8.7607267623043388e+00
27 1.0911673619729612e+00 8.6522540377444346e-01 5.7785580453669882e-01
6 -1.4997571913295353e+00 4.6207158121952879e-01 1.7915790651672241e+00
20 3.5440271077062615e+00 -2.1308387118890439e+00 1.2532128862707759e+00
31 6.9641430977980212e-01 -2.4233846293906267e+00 1.1255702676228792e+01
5 -1.3985000009486332e+00 9.0401150178608247e-01 5.1497955825116704e-01
28 -9.3144848273222586e-02 1.0519539666581097e+00 -7.2011907825660215e-01
32 -8.7713084366180301e+00 3.3637284067716072e-01 5.2446663030603202e-01
1 5.1104047916067052e-01 -2.1939944684027357e-01 8.4576032874873946e-02
14 1.6060668602637211e+00 -2.1413705272557282e+00 5.9289753074458167e+00
23 1.2947086210718493e+00 5.5113080947221302e+00 -1.4581873447345914e+00
run_vdwl: -114.579218859094
run_coul: 0
run_stress: ! |2-
1.2682783976501629e+02 1.2273466726841482e+02 1.2679647640259789e+02 1.2775833963287322e+01 -1.1864416554153783e+00 -7.7826768849259231e+00
run_forces: ! |2
8 -2.2254562718397524e+00 -7.0577940840175080e+00 -3.0962690738540943e+00
11 -2.1929239154433446e+00 -5.3928826149999021e-01 -6.0654499237996318e-01
13 5.3833905841821170e-02 1.8745491522866751e+00 -2.6359286367580852e+00
18 -1.2358313574771616e+01 -3.6529012493973747e+00 -5.5079972779843223e+00
29 -5.1151379646253270e-01 1.0538375334834587e+01 -2.8672542718355953e-01
4 3.3538324650551039e+00 -4.4992140684738446e+00 -3.4606966129033019e+00
9 7.1590051950955458e-01 -4.2103946884691956e-01 -1.1456141506066282e+00
15 -1.4629310401742095e+00 5.0304022223617570e+00 -7.3851813747064234e+00
22 1.0896911108801459e+00 -1.0787930676808893e+01 -8.1418001542183371e-01
25 1.1168485829416628e+01 4.7097483866175471e+00 4.4664623989799684e-01
3 -3.1621474806768193e+00 5.2930284092497768e+00 -1.7015133774218951e+00
10 -7.0101615323216615e-01 -1.3515941554175164e+00 -3.3293577876623597e+00
16 3.2520318780195163e+00 -1.5996393571100542e+00 -1.5067493862673176e+00
21 2.4145324622622071e+00 2.5215587904387955e+00 2.8706167158401157e+00
26 -2.0718724043183725e+00 -3.5926178393787467e+00 3.8320270066646733e+00
7 -1.5987451653319409e+00 2.7413942248593166e+00 -2.1168147897998852e+00
12 3.5731246168602149e+00 -2.3462802672495844e-01 -1.8060184232978318e+00
17 2.8445091823292974e+00 2.0789765810758944e+00 1.3134516493575699e+00
30 -1.0980785799734369e+00 3.1399692933387495e+00 -3.0791049438024598e+00
2 -1.1289422736647199e+00 -8.0921577037559367e-01 1.8152658202464940e+00
19 -5.7274233665183294e+00 -7.3163054105423857e+00 1.5641743686962271e+00
24 8.5071019627289477e+00 1.8102333582834893e+00 7.9697162151700791e+00
27 1.1087347847647036e+00 7.6622506480526842e-01 5.3675592400142980e-01
6 -1.3876886373523303e+00 4.5387290626449639e-01 1.8317734815991413e+00
20 3.4092304692375435e+00 -2.0427196989538072e+00 1.1275332681388128e+00
31 7.4624042429388004e-01 -2.3900962747552450e+00 1.0373889218509238e+01
5 -1.3177311901465094e+00 8.5257263853703158e-01 5.0228895435624199e-01
28 -1.1362727186873163e-01 1.0342403636003235e+00 -6.9515254620422950e-01
32 -8.3353220233959657e+00 3.2428940106811888e-01 5.7637395907890621e-01
1 4.3104820933110216e-01 -2.6368885400461839e-01 6.0881198145076927e-02
14 1.4992490201053872e+00 -1.8390091571631242e+00 5.6335813085637065e+00
23 1.2261863045347119e+00 5.2282462258487570e+00 -1.2811265120115127e+00
...

View File

@ -1,7 +1,7 @@
---
lammps_version: 5 May 2020
date_generated: Mon May 18 18:18:26 202
epsilon: 1.0e-13
date_generated: Thu May 28 22:04:42 202
epsilon: 1e-13
prerequisites: ! |
atom full
bond class2
@ -15,6 +15,7 @@ bond_coeff: ! |
3 1.3 299.67 -501.77 679.81
4 1.2 345.00 -691.89 844.60
5 0.97 532.50 -1282.90 2004.76
equilibrium: 1.42 1.1 1.3 1.2 0.97
extract: ! |
r0 1
natoms: 29

View File

@ -1,6 +1,6 @@
---
lammps_version: 5 May 2020
date_generated: Mon May 18 18:18:26 202
date_generated: Thu May 28 22:04:14 202
epsilon: 2.5e-13
prerequisites: ! |
atom full
@ -15,7 +15,8 @@ bond_coeff: ! |
3 350.0 1.3
4 650.0 1.2
5 450.0 1.0
extract: !
equilibrium: 1.5 1.1 1.3 1.2 1
extract: ! |
kappa 1
r0 1
natoms: 29

View File

@ -1,6 +1,6 @@
---
lammps_version: 5 May 2020
date_generated: Mon May 18 18:18:26 202
date_generated: Thu May 28 22:04:30 202
epsilon: 2.5e-13
prerequisites: ! |
atom full
@ -16,6 +16,7 @@ bond_coeff: ! |
3 morse 7000.0 0.2 1.3
4 harmonic 650.0 1.2
5 harmonic 450.0 1.0
equilibrium: 1.5 1.1 1.3 1.2 1
extract: ! ""
natoms: 29
init_energy: 4.63957309438403

View File

@ -1,6 +1,6 @@
---
lammps_version: 5 May 2020
date_generated: Mon May 18 18:18:26 202
date_generated: Thu May 28 22:04:25 202
epsilon: 2.5e-13
prerequisites: ! |
atom full
@ -15,6 +15,7 @@ bond_coeff: ! |
3 7000.0 0.2 1.3
4 7500.0 0.4 1.2
5 7000.0 0.3 1.0
equilibrium: 1.5 1.1 1.3 1.2 1
extract: ! |
r0 1
natoms: 29

View File

@ -1,7 +1,7 @@
---
lammps_version: 5 May 2020
date_generated: Mon May 18 18:18:26 202
epsilon: 1.0e-14
date_generated: Thu May 28 22:03:25 202
epsilon: 1e-14
prerequisites: ! |
atom full
bond zero
@ -15,6 +15,7 @@ bond_coeff: ! |
3 1.3
4 1.2
5 1.0
equilibrium: 1.5 1.1 1.3 1.2 1
extract: ! |
r0 1
natoms: 29

View File

@ -1,7 +1,7 @@
---
lammps_version: 5 May 2020
date_generated: Wed May 27 16:13:46 202
epsilon: 1e-7
epsilon: 2e-7
prerequisites: ! |
pair airebo
pre_commands: ! |

View File

@ -1,7 +1,7 @@
---
lammps_version: 5 May 2020
date_generated: Wed May 27 08:47:16 202
epsilon: 1.0e-12
date_generated: Wed May 27 20:55:13 202
epsilon: 1e-12
prerequisites: ! |
pair bop
pre_commands: ! |
@ -13,145 +13,145 @@ post_commands: ! |
input_file: in.manybody
pair_style: bop
pair_coeff: ! |
* * CdTeSe.bop.table Cd Cd Cd Cd Te Te Te Te
* * CdTeSe.bop.table Cd Cd Cd Cd Te Se Te Se
extract: ! ""
natoms: 64
init_vdwl: 364.079153050312
init_coul: -362.149690315186
init_vdwl: 339.733829635833
init_coul: -368.231322836704
init_stress: ! |2-
3.3966990987465391e+02 3.4618689287108629e+02 3.5156848915263754e+02 -1.3102148647712403e+01 7.4326391569063162e+01 7.7877176766647125e+00
2.9664812306213270e+02 3.0033452819550314e+02 3.0554910490323380e+02 -1.4022398127673540e+01 6.2687826572337514e+01 7.2310160412711042e+00
init_forces: ! |2
2 -6.7657618631759320e+00 -1.9714098031450331e+00 -1.9574584176744636e+00
4 1.0073795610759633e+00 7.5990103200194462e-02 -5.8614142738747335e+00
5 -9.6916612925424761e-01 -5.7449962139494515e+00 6.5347260611804403e-01
9 -4.7372121746239149e+00 -3.6913333483613084e+00 -4.6722330861953925e+00
10 6.5517587473301320e-01 -1.7923448826721364e+00 -3.3434598459917941e+00
13 -2.7112085630579242e-03 6.8277139871033308e+00 -2.2967681340898873e+00
11 3.8967108732919096e+00 -7.4863880154293847e+00 2.7429474841013213e+00
12 -6.0786679901186860e+00 -6.5606904870075722e+00 -7.0097334945819778e+00
19 -1.7051822875205003e+00 -2.4963962264706905e+00 -1.0171419383091147e+00
21 5.2535601695601941e-01 -1.1442379692370610e+00 -7.5688704498758330e+00
8 2.2991025920759403e+00 3.2348220076122085e+00 -4.2554181134301299e+00
29 -2.9515619067627727e+00 3.6964468816763860e+00 -6.1091411229897217e+00
16 3.4260526614622595e+00 -1.3582336844726486e+00 8.0004094028242871e+00
27 2.9076777081348526e+00 -7.2234664630934009e-01 2.5896765519829730e+00
17 6.3109121239111241e+00 5.4271391393203663e+00 -5.0896847619900853e+00
18 -5.6029679425178438e+00 3.2287653035761439e+00 2.4808240180642303e+00
24 5.4793943041977211e-02 -5.3091883236113424e-01 -3.9702491353797651e+00
26 -7.6538149065316063e-01 -8.0209393058521639e-01 1.5253821301928547e+00
32 -3.1641759637807927e+00 -3.8887179334672979e+00 3.6371024153362974e+00
3 7.2828945770122666e-01 5.0746746934603495e+00 -5.2357860370670162e-01
1 2.9878128835774347e+00 3.6232079193306399e+00 -3.4190494158568923e+00
36 9.4554100886202516e-02 -4.0632108448704152e+00 7.5162502634858575e-02
37 -5.4896426605849733e+00 3.3497073647069810e+00 -2.4858333711053930e+00
7 -4.5026815551032362e+00 -4.9146963782824402e+00 1.4532565381955123e+00
41 -7.9419395483959665e-01 -3.7177238164899422e+00 -4.1004039149083282e-01
45 -1.8023567510083716e+00 1.0484554921422611e+00 -4.5031991967635960e+00
15 -2.6550018749979118e+00 7.4116035524664472e+00 -4.8785640639793701e+00
44 5.0745595651603175e+00 -5.3222158275140954e+00 1.1433849398407878e+00
33 5.2740664364980301e+00 -5.9924587745178206e+00 6.9488645221507763e+00
6 -9.6846313530244921e-01 4.7063849616364610e+00 1.7080520383161544e+00
49 -6.4790387967623753e+00 -5.1067927650861664e+00 -5.8398039126287351e+00
53 3.0358696560082143e+00 4.1465981272189882e+00 2.4970205255104476e+00
14 -2.2007084555052439e+00 5.5889331094398349e+00 1.1645038686485254e+00
23 3.3428784301885011e+00 5.6055975388833144e+00 1.8288572266250294e+00
40 6.1487390491364913e+00 -3.1471194692615514e+00 -2.0061243219260261e+00
57 6.6864389377393674e-01 -1.4293143155631594e+00 -6.5820341835587970e-01
61 -1.4122995154977305e+00 3.3786882898898583e+00 -2.0026259570256739e+00
31 2.8235069055251558e+00 1.0029513917910076e+00 8.9676078912529833e-01
48 4.1918055806946262e+00 2.0896352886038452e+00 -1.8960857449914978e+00
22 -8.8688410254286989e+00 5.9931333032237175e+00 -4.5163300472689407e+00
52 5.8245504749275669e+00 -5.6694210051322145e+00 6.3767288732700305e+00
30 -2.1733428452088170e+00 4.4305531038524091e+00 -1.6142368233992368e+00
56 -1.6711637522303655e+00 5.6437624670000481e+00 -1.7966404860118679e+00
60 -2.5613653424537404e+00 -7.4496034384791576e+00 -3.6119241718702568e+00
64 6.1865871833238231e+00 6.6770194193023533e+00 7.0072357693189105e+00
35 2.7108219798661657e+00 -5.7229975437790408e+00 2.7804868821946576e+00
39 4.9976230161028468e-01 1.4057044143573156e+00 1.7075684778185964e+00
42 -5.9251395098072077e+00 -3.0589360944757233e+00 -2.1037057648428517e-01
43 -3.1937882823257886e-02 -9.3088887425344939e+00 5.5939077706891682e-01
47 3.3571615219749580e+00 2.5333754416591745e+00 6.4749224854034670e+00
34 3.6319983575980341e+00 -4.9364126234068900e-01 4.2847049717273394e-01
38 -1.8402541213279926e+00 -3.3470208661635530e+00 2.3306996537380402e+00
51 -1.5659016606221563e+00 4.5292625031636931e+00 5.3067910507389762e+00
46 3.1668195336170962e-01 -3.3508790518989966e+00 8.4153924926837913e+00
55 7.2404286363884063e-01 -4.3826049365009201e+00 -4.3537813417676006e+00
59 4.3560941143105127e+00 1.9447058398794210e+00 -2.1942060052546348e+00
63 9.2037343963997085e+00 -1.4101187164290188e+00 -3.3925625337270975e+00
50 -4.7408183311934264e+00 9.3062023815190320e-01 1.8211432908588741e+00
54 6.6722010590671610e-01 3.0099048585519621e+00 1.7908413874842583e-01
58 3.8330262244172193e+00 -9.6204119537453447e-01 1.2981402971696039e+00
62 -3.5157184765854192e+00 6.7575744298784954e+00 -3.4529555923914099e+00
25 5.3681423297453723e-01 -1.0510350898224763e+00 5.4477656032387234e+00
20 -4.2428272235584821e+00 5.0649397606199544e+00 6.7132393552842489e+00
28 -1.1178971963308753e+00 -3.4704282371437234e-01 1.0724951546013367e+01
run_vdwl: 351.785836133929
run_coul: -357.532014697746
2 -5.8267302347683101e+00 -1.0985738664512801e+00 -1.1207325480685282e+00
4 1.6389231939707416e+00 1.3039054265757934e+00 -4.9484541697996569e+00
5 -9.2839172578555040e-01 -5.8117814364858527e+00 6.1937509525762235e-01
9 -4.5762270446238613e+00 -3.9204995645732330e+00 -4.6408361207050985e+00
10 3.8618996343997142e-01 -4.8246711362228695e-01 -3.7526005081196723e+00
13 -4.3804509161657346e-02 7.0660812021913753e+00 -2.1254459135586732e+00
11 3.8886725671841260e+00 -7.4853011189508871e+00 2.7200784131222786e+00
12 -5.6266554608940966e+00 -6.2227575850462040e+00 -6.7641807522819004e+00
19 -1.5797692251244013e+00 -4.2188505139224297e+00 -9.4790097400171314e-01
21 3.8592661596890726e-01 -1.4883663814395640e+00 -7.4891167147829378e+00
8 1.5621349267812392e+00 2.4576975160454420e+00 -3.1358448152260672e+00
29 -3.0255832723134746e+00 3.3927756633754584e+00 -6.0557583963081578e+00
16 2.6737613591719089e+00 -5.0915540944779225e-01 7.8962024622872171e+00
27 2.9079657925408924e+00 -1.9990089259048922e+00 2.7522842124838891e+00
17 5.7262605488897504e+00 4.7425068157791719e+00 -4.5038058973398165e+00
18 -4.9473883073572056e+00 4.0798454854730934e+00 3.1816208338734104e+00
24 1.4757687162926025e-01 -4.4440023665013301e-01 -1.9985463666180416e+00
26 -7.9632329659887191e-01 9.2714287042141752e-01 1.5745552832318039e+00
32 -1.2694222887563127e+00 -1.6824841867717204e+00 1.4704352584404901e+00
3 9.1289719044486706e-01 3.3335157010128356e+00 -8.5963837679782584e-01
1 1.4195759595451263e+00 1.7481274335943620e+00 -1.6315447028005174e+00
36 -1.4664876494816967e-01 -2.6215215046323128e+00 -1.0023899035559496e-01
37 -5.4264855248617803e+00 3.1861274438294198e+00 -2.4621905013504666e+00
7 -4.3255606592069187e+00 -4.6111368458594564e+00 1.6128097211296950e+00
41 -7.8678341332792789e-01 -3.7942894328039767e+00 -4.0798905604583535e-01
45 -1.9502924097548135e+00 1.4087782428004525e+00 -4.6291163060161038e+00
15 -2.6643905088894462e+00 7.5649247873111243e+00 -4.9108669990802944e+00
44 5.4794791334143422e+00 -3.9823134823509605e+00 1.7520385731242125e+00
33 5.2674360316474216e+00 -6.0617684774014382e+00 6.8823394510972093e+00
6 -5.3225918200326572e-01 4.9386042922997362e+00 1.9118378310624808e+00
49 -6.0184343889129206e+00 -5.8995776774325650e+00 -6.5046996708641398e+00
53 3.4205242091354151e+00 4.0891111321222473e+00 2.4058297207651580e+00
14 -2.3264779482243632e+00 5.8149129961896771e+00 9.5014458735634721e-01
23 3.4703238757116277e+00 5.3672082723011698e+00 1.6425403994309145e+00
40 6.5130875840840048e+00 -3.2723799054436933e+00 -2.4706268430282115e+00
57 4.4760818926750356e-01 -2.8488413602069711e+00 -5.6555890710257728e-01
61 -1.5120822865104833e+00 3.0576754346807191e+00 -1.9337375919944377e+00
31 2.8516292766400619e+00 6.5863160391523878e-01 9.9682202079080040e-01
48 2.9926209643952428e+00 1.1227614175601421e+00 -1.1715531045366330e+00
22 -8.4711410302594228e+00 5.8304011037945616e+00 -5.7015594000095282e+00
52 6.5879215791932753e+00 -4.7407764014303870e+00 7.0014238546920788e+00
30 -1.9777414910942188e+00 2.7173694651266573e+00 -1.5121154607863037e+00
56 -1.6887663553216334e+00 3.5691582670953483e+00 -1.8056264248838270e+00
60 -2.9651232553515801e+00 -5.5291477203574848e+00 -3.9147366021943402e+00
64 5.7753579488954081e+00 5.6893699286631358e+00 6.1188593857076974e+00
35 2.7491420931207142e+00 -5.8950425368461667e+00 2.6664136974805470e+00
39 3.1214774344817403e-01 1.3259890606544225e+00 1.7918011273453589e+00
42 -6.1298505645080388e+00 -1.5622737212548481e+00 -8.2710324136479288e-02
43 -5.2881711241098063e-02 -9.3044002747173309e+00 5.3902960319543580e-01
47 3.2984509939278075e+00 2.5465467247381470e+00 6.4412563543168480e+00
34 2.8255868816948211e+00 5.6904869676083880e-01 -4.1019702894249982e-01
38 -4.9223809099622962e-01 -2.0994167335759810e+00 1.0341827178200973e+00
51 -2.2706292600043141e+00 3.1887251962324710e+00 6.0722304901594635e+00
46 -6.7619318999617894e-01 -2.7385245483999534e+00 7.9011510613417961e+00
55 7.1872792391677520e-01 -4.3800511897017582e+00 -4.7368265069805311e+00
59 4.7992102161580945e+00 8.3852777377055798e-01 -2.9586297155134558e+00
63 9.0442902049721958e+00 -1.4095410747099721e+00 -3.3538816791526131e+00
50 -4.0447784759406700e+00 2.1475720348760432e+00 2.7880727533516918e+00
54 4.2285251590640366e-01 9.2479703347555364e-01 2.5886939236416312e-01
58 3.7503965772039942e+00 5.2062902627700891e-01 1.1329590126248945e+00
62 -3.4726169504324123e+00 5.2740847068077086e+00 -2.8158025997879781e+00
25 1.2768186113963365e+00 -1.9626922200900589e+00 4.6100355763822085e+00
20 -5.1944276144712305e+00 5.9225406589647793e+00 6.0059985600064563e+00
28 -1.9073991020555257e+00 7.5224803176560950e-01 9.6918725189281645e+00
run_vdwl: 328.12039190566
run_coul: -363.312225096902
run_stress: ! |2-
3.2502861569484554e+02 3.3248530108814219e+02 3.3780581632472934e+02 -1.1265394480964254e+01 6.5895104375977297e+01 1.1568837976308686e+01
2.8230013128814915e+02 2.8656131447460984e+02 2.9181631824346204e+02 -1.1936544781278243e+01 5.4258103085030932e+01 1.0743049228637322e+01
run_forces: ! |2
2 -6.4284410820684617e+00 -1.9894118842410569e+00 -2.0119074272464359e+00
4 1.0761378638596346e+00 1.3506540014811311e-01 -5.6559613986341910e+00
5 -1.0226964787807371e+00 -5.5034334318031704e+00 8.4968495316868742e-01
9 -4.6615484411764250e+00 -3.6245143840616842e+00 -4.5525928443167443e+00
10 2.6228771258712075e-01 -1.7695774689630435e+00 -2.4036217812779577e+00
13 9.4764664531173948e-01 5.7568072616007226e+00 -1.9566737186565777e+00
11 3.0821937526256549e+00 -6.7525343415425434e+00 2.0595210149575669e+00
12 -5.1947587608873889e+00 -5.5111239452835257e+00 -6.2370307870091555e+00
19 -1.8889969861524638e+00 -2.5775217471297580e+00 -9.5846490135697759e-01
21 6.9109055234252625e-01 -9.0637034046382270e-01 -7.3200875061337882e+00
8 2.0855691509530678e+00 3.1234762747355762e+00 -4.2380649857891548e+00
29 -2.5645133031881087e+00 3.2707414621059763e+00 -5.9760659563228975e+00
16 3.3561615871740091e+00 -1.7235512311356596e+00 6.8546620719382361e+00
27 2.6626074109614257e+00 -4.8824487035100628e-01 2.2463215939167060e+00
17 5.4676759723740886e+00 4.8149645136732175e+00 -4.5797881790297534e+00
18 -5.6254487783269411e+00 2.8280036616238733e+00 2.2775946470427892e+00
24 4.0268519702353522e-01 -9.4384801397092932e-01 -4.1004077349148185e+00
26 -9.0290284709195490e-01 -4.1279824598453319e-01 1.4734036561674229e+00
32 -2.8113601803223971e+00 -3.4637133712206327e+00 3.2388692481105417e+00
3 3.7291790123703505e-01 5.0418966614484724e+00 -1.8944386219202431e-02
1 2.6064160595481720e+00 3.1733493639320152e+00 -2.9962126802596867e+00
36 -3.4500225871777734e-01 -3.6484043147143077e+00 -4.6127854570157895e-01
37 -5.1780456429954160e+00 2.9005970197316882e+00 -1.9109146677325546e+00
7 -4.0128657104347187e+00 -4.1942698246003127e+00 7.6358037371075382e-01
41 -3.9995258401325662e-01 -3.5673491332867528e+00 -4.4269791600961596e-02
45 -1.9370751044809944e+00 2.8595487004431830e-01 -3.7921074366615963e+00
15 -1.8808775679916470e+00 6.4712927193613030e+00 -3.8667064978564794e+00
44 4.7905078082882548e+00 -4.7686063239762566e+00 4.9849631958514096e-01
33 4.5334576000498936e+00 -5.1255175507461272e+00 5.8788497092034779e+00
6 -3.4138813927398742e-01 4.1965254501856384e+00 1.6295820475598599e+00
49 -6.4665139894018902e+00 -4.7796570404318972e+00 -5.4301967622702261e+00
53 2.7239405096565088e+00 3.8778410341278131e+00 2.8212956803496612e+00
14 -2.3147495381157883e+00 5.0137175130809695e+00 1.2672503214154052e+00
23 3.2730973659862550e+00 5.3647978520243127e+00 1.5760460947160091e+00
40 5.8681115056022888e+00 -2.5555657086470598e+00 -1.9185736945695473e+00
57 5.4706955248333455e-01 -1.6901453459815567e+00 -6.5298854847136345e-01
61 -1.1617906296121197e+00 3.2031258967649876e+00 -1.6519131093739499e+00
31 2.9313114356603180e+00 9.9192359289695309e-01 8.4371205219677503e-01
48 4.0435368126557805e+00 2.2542969385734208e+00 -1.9622097712351030e+00
22 -7.7074375979699949e+00 5.3826506692414577e+00 -3.4086660371764976e+00
52 5.0604948986047553e+00 -4.3251500424307938e+00 5.2466196063559627e+00
30 -1.9309649892470224e+00 4.0610325584742792e+00 -1.4111807875518345e+00
56 -1.4398037292777492e+00 5.0922050222811857e+00 -1.5231351422560362e+00
60 -2.3586401663444279e+00 -6.6149057003353606e+00 -3.3904476747968268e+00
64 5.6160139995824165e+00 6.2252165512934523e+00 6.5300959010856774e+00
35 2.4561350466935026e+00 -5.1779350983190220e+00 2.5063565141049269e+00
39 2.0478584393521634e-01 1.1628817589633458e+00 1.6533790874978509e+00
42 -5.3953278191144625e+00 -3.0726027723562344e+00 -2.4136088292066518e-01
43 -1.1159324203179266e-01 -8.5707375268285855e+00 4.8560236506779320e-01
47 2.8929308692555633e+00 2.2376987077384287e+00 6.0722862344458672e+00
34 3.7556766831686166e+00 -5.5567698189182013e-01 4.5146116239050049e-01
38 -1.6827392499482428e+00 -3.2249867743527743e+00 2.1221499243998383e+00
51 -1.7328156337978344e+00 4.1114754026224682e+00 4.9683989313620307e+00
46 6.2243842744659084e-01 -3.1132272922744511e+00 8.0184356980255238e+00
55 2.5983790393762567e-02 -3.7932385314603665e+00 -3.2529207105424476e+00
59 4.0783392061320560e+00 1.8702149414754154e+00 -1.9520143148375737e+00
63 8.5318360113418468e+00 -1.0716110293219621e+00 -3.0838079119642754e+00
50 -4.5186944717635411e+00 7.7642615579205776e-01 1.6773835851206986e+00
54 6.2796992329714940e-01 3.0057545019380294e+00 5.8373247242377198e-02
58 3.5386252221039540e+00 -3.5140458991781304e-01 7.3232643627886984e-01
62 -2.8330884129493548e+00 6.1396705491527532e+00 -2.9199756394784822e+00
25 4.5314736481101126e-01 -8.4352784134735936e-01 5.3236718065537580e+00
20 -3.4345613967938782e+00 4.2350346298868669e+00 6.0567433903552494e+00
28 -1.3042049508762901e+00 -2.9347623554693669e-01 9.6983385398395061e+00
2 -5.5075765243395516e+00 -1.1490755696913171e+00 -1.2010272822402699e+00
4 1.6449866941055584e+00 1.3157691009108203e+00 -4.8005796253978295e+00
5 -9.6600352996619721e-01 -5.5486425670668087e+00 8.0466800051422105e-01
9 -4.4862976177645884e+00 -3.8649250462825440e+00 -4.5119249002601522e+00
10 9.3797199787040722e-02 -4.9196623851915222e-01 -2.6912698424760753e+00
13 8.7721831238569203e-01 5.9997306505759207e+00 -1.8140526415237341e+00
11 3.0734731059713334e+00 -6.7505501313840579e+00 2.0415883121595879e+00
12 -4.5867239258321444e+00 -4.9994870019006612e+00 -5.7646682591032015e+00
19 -1.7822908776371351e+00 -4.1630745817047794e+00 -8.9918948897748996e-01
21 5.2331194905821710e-01 -1.2867428882094816e+00 -7.2027500903962745e+00
8 1.3897208072975273e+00 2.3855097659298137e+00 -3.1735199887051473e+00
29 -2.6642634943080372e+00 2.9934911573505811e+00 -5.8750554017726095e+00
16 2.5436669799001654e+00 -1.0057929518796414e+00 6.4839169113188433e+00
27 2.6810098523443600e+00 -1.7002540834840822e+00 2.3947552507437293e+00
17 4.8083665670664200e+00 4.0667532717743784e+00 -3.9323641938744185e+00
18 -4.9278238691878267e+00 3.6754820075571049e+00 2.9552705503994323e+00
24 4.6097367619129404e-01 -7.8636498340568595e-01 -2.2066042710147649e+00
26 -9.0301834169602868e-01 1.1731702985146959e+00 1.5686119136705698e+00
32 -1.0716261381239105e+00 -1.4466979138459053e+00 1.2512585618004359e+00
3 5.6280893116800612e-01 3.3807783301019096e+00 -3.8927085897114910e-01
1 1.2094006584471133e+00 1.4972012980182414e+00 -1.3966614118871765e+00
36 -6.1947059398008408e-01 -2.2788751004462711e+00 -6.3226292177021803e-01
37 -5.0892672185532151e+00 2.7593899198380747e+00 -1.8750975210857241e+00
7 -3.8506648858913270e+00 -3.9000788676588707e+00 9.2046483420051983e-01
41 -3.9392661479233299e-01 -3.6326650788264541e+00 -4.4852960786515211e-02
45 -2.0903024652290947e+00 6.5403696832838498e-01 -3.8954629800648335e+00
15 -1.8847664851218144e+00 6.6312098846629608e+00 -3.8884149600049422e+00
44 5.0531181537102166e+00 -3.4334901733861405e+00 9.3114428555247419e-01
33 4.5215187429555277e+00 -5.1886187743287877e+00 5.8085608076614106e+00
6 1.8737050995498130e-02 4.4376121957876951e+00 1.8870203152016429e+00
49 -5.9485520777752026e+00 -5.5665450586946150e+00 -6.0830757377442710e+00
53 3.0848111502772113e+00 3.8405885878548869e+00 2.7427754922007561e+00
14 -2.3949790895045791e+00 5.1078232404778783e+00 1.1090928235716313e+00
23 3.3946219231880281e+00 5.1554894158129567e+00 1.4001045047031935e+00
40 6.1442830836550728e+00 -2.5948798656177550e+00 -2.2293415126040563e+00
57 3.5395757614019313e-01 -3.0475765881143806e+00 -5.9029962853607421e-01
61 -1.2744632882178495e+00 2.9325120669119698e+00 -1.6224561254464971e+00
31 2.9122176189253612e+00 6.8463354598274240e-01 9.6539522572680381e-01
48 2.9273899954311946e+00 1.3452816241286942e+00 -1.2628885222097392e+00
22 -7.0420904760678154e+00 4.8874483918285243e+00 -4.2523907014654894e+00
52 5.4306396741489111e+00 -3.1496371163570522e+00 5.4598735627672799e+00
30 -1.7631227690722784e+00 2.4014697413552710e+00 -1.3580540782727011e+00
56 -1.4207198828513452e+00 3.0787883554068443e+00 -1.5334043620685021e+00
60 -2.7430036755452867e+00 -4.7959755743412966e+00 -3.6589121362809793e+00
64 5.2745493408596680e+00 5.2305891172169332e+00 5.6658788951829120e+00
35 2.4928765089432634e+00 -5.3448694059941877e+00 2.3887118108529313e+00
39 4.7796063099958055e-02 1.0725963032581594e+00 1.7181088217424652e+00
42 -5.5692649798368743e+00 -1.6821639303091762e+00 -1.6723324968033218e-01
43 -1.4424925399687047e-01 -8.5523666921010619e+00 4.5258384510590621e-01
47 2.8527903759034379e+00 2.2528612008427649e+00 6.0359906613190466e+00
34 2.9635654591320097e+00 4.5094070096428251e-01 -3.4863299140598214e-01
38 -4.4510095261199589e-01 -2.0519825732102226e+00 9.2628347441614856e-01
51 -2.2828573674769213e+00 2.7781767264767150e+00 5.5620675245726012e+00
46 -2.4348265082156259e-01 -2.4117878531942281e+00 7.4570747320737123e+00
55 1.9489480373191797e-02 -3.7664964421140614e+00 -3.5726411020126752e+00
59 4.4138648986537783e+00 7.4012459625505356e-01 -2.5604939889732048e+00
63 8.3675946045751228e+00 -1.0836984638943927e+00 -3.0411489023050922e+00
50 -3.8404253960403993e+00 1.8877511590750304e+00 2.5404296022143984e+00
54 3.7304377536521460e-01 1.0130983067357455e+00 2.2264278235622006e-01
58 3.5290378879387294e+00 1.0620195995436412e+00 6.3876917379625520e-01
62 -2.9013359109981898e+00 4.7074815481252905e+00 -2.3570644684369930e+00
25 1.1155416794510971e+00 -1.7075022097207639e+00 4.4944420039447115e+00
20 -4.3187029083473529e+00 5.0333583520922209e+00 5.2930036036827008e+00
28 -2.0038065158576912e+00 7.4961629598766333e-01 8.7125788243024953e+00
...

View File

@ -0,0 +1,157 @@
---
lammps_version: 5 May 2020
date_generated: Wed May 27 21:24:18 202
epsilon: 1e-12
prerequisites: ! |
pair bop
pre_commands: ! |
variable newton_pair delete
variable newton_pair index on
comm_modify cutoff 14.0
post_commands: ! |
change_box all x final 0 14 y final 0 14 z final 0 14
input_file: in.manybody
pair_style: bop save
pair_coeff: ! |
* * GaAs.bop.table Ga Ga Ga Ga As As As As
extract: ! ""
natoms: 64
init_vdwl: 229.502330049105
init_coul: -360.686843310281
init_stress: ! |2-
9.8370636261617548e+01 1.0009271927427929e+02 9.8087673650799545e+01 -4.9666892788617059e+00 3.2480551415561195e+01 2.9884184142795789e-01
init_forces: ! |2
2 -1.8263567394371500e+00 -1.4180608690010226e+00 -1.1411979976674089e+00
4 5.0719016091806335e-01 -1.8057237340563612e-01 -1.0962975623380717e+00
5 -6.7895029755583602e-01 -1.1580184070865132e+00 1.0818217940471213e-01
9 -1.8693470551310727e+00 -1.2573015652812067e+00 -1.7447668003980394e+00
10 5.7344802761954361e-02 -2.0806591931751330e+00 -2.2262743599885200e+00
13 -2.4770517088274593e-01 4.4980575375194309e+00 -1.6377667054880565e+00
11 2.5047344239743370e+00 -3.4373732553424845e+00 2.1244778732828440e+00
12 -3.8636884971528436e+00 -4.3108978790114660e+00 -3.1418220562973738e+00
19 -1.0198800384860394e+00 -2.6761322253962025e+00 -3.3752922644567274e-01
21 -3.3298325356360209e-01 -3.8359267846884343e-01 -2.4806772337379965e+00
8 6.1798335543716698e-01 1.1820243894248470e+00 -1.7194019919057053e+00
29 -1.9945147130630443e+00 2.0803903462660407e+00 -2.2949545520905996e+00
16 1.4206310073812822e+00 -2.4085434647313092e-01 4.1430359498826812e+00
27 2.0068541740671089e+00 7.4395140739738241e-01 2.3459485096441921e+00
17 3.0229948833836806e+00 2.6748936562210877e+00 -2.3005394630036706e+00
18 -1.2210285062801753e+00 1.3155928491394759e+00 1.2686961377008017e+00
24 8.2638670208218620e-02 7.4144365811842625e-02 2.0666734068897675e-02
26 2.7093549436023746e-02 -6.9271060385762451e-01 1.2566811127273807e+00
32 -1.1595965681352090e-01 -1.3976800635927192e-01 1.3224245455988184e-01
3 8.2873058770991515e-01 9.3748007320394444e-01 -7.7535951065591868e-01
1 1.1595965681352090e-01 1.3976800635927192e-01 -1.3224245455988184e-01
36 -1.5234174848921145e-01 -2.9408786312426165e+00 -2.1961904356420331e-01
37 -1.3486114100020841e+00 1.1087408367864624e+00 -1.3777395790432716e+00
7 -1.3847541000785899e+00 -1.6046313040626370e+00 2.5262726038150296e+00
41 -3.5708864948996127e-01 -3.5940473779357168e-01 -5.4409457293803098e-01
45 -2.1641827357075734e+00 1.3307244288035727e+00 -3.4942166132949914e+00
15 -2.2171765787184574e+00 3.6547208095766375e+00 -1.9122298110085372e+00
44 3.5025068376725392e+00 -3.4617648386702573e+00 1.6106876842359206e+00
33 2.0266642505183672e+00 -2.6151288802501806e+00 2.5974523746415268e+00
6 -3.4842674703718884e-01 3.9043095404011803e+00 1.5983721408115077e+00
49 -2.7992316142200173e+00 -3.4205797218301242e+00 -3.5748188465203090e+00
53 2.7070516292437072e+00 2.9398311720118095e+00 1.6434285984414441e+00
14 -1.8177844790510349e+00 4.1434377791796457e+00 8.1493072449443904e-01
23 2.5610315795839864e+00 3.8836155348401404e+00 9.9814813230913091e-01
40 4.6986931841003567e+00 -1.9976837829184362e+00 -2.3125763095944700e+00
57 9.0474073001001146e-02 -1.0601913072984239e+00 -3.2960174902767808e-01
61 -1.6988167265427365e+00 1.8269669536015463e+00 -1.3720117275573034e+00
31 -1.9511654550951410e-01 3.8023218952608451e-01 4.2356012115267899e-01
48 1.5249422172107330e+00 7.5787368686969489e-02 4.4491770840391194e-02
22 -5.0430988309384253e+00 3.7020413609545004e+00 -3.8366800609269323e+00
52 4.3088244010357961e+00 -4.4356698267659249e+00 3.9254257628894274e+00
30 -1.3826582975741704e+00 1.0400985651230477e+00 -1.2260786047796837e+00
56 -1.0555049620942776e+00 1.3079942977807582e+00 -1.0745752137552673e+00
60 -1.6962505059009771e+00 -4.6137790972044801e+00 -2.1705934346532421e+00
64 3.0808261336511231e+00 3.1413604768568071e+00 3.1108884069467564e+00
35 1.3959955882157520e+00 -8.4631665492868635e-01 1.6674810145319829e+00
39 6.2820048659314787e-01 8.4229042021358932e-02 -1.0525117161665161e+00
42 -4.3799230472689930e+00 -1.4432995671646112e+00 2.8942575671754828e-01
43 5.8738872271264875e-01 -4.0150410920217450e+00 8.4856684462307697e-01
47 1.9530970591294399e+00 1.4187167780538439e+00 1.6133000921150709e+00
34 2.7626798587583837e-02 1.9334244652182114e-02 1.7419395950024935e-01
38 -2.1970789600406074e-01 -4.6762524302687118e-02 2.2021579972798938e-01
51 -1.8186738648918022e+00 2.0272296035989621e+00 4.2937244752484158e+00
46 -7.1460784727451476e-01 -1.3596469452119908e+00 4.9033501008237304e+00
55 6.7576842217513966e-01 -3.1074132695932213e+00 -3.3864997798374872e+00
59 2.9787943807382571e+00 1.6957261296696793e+00 -2.6807679537178868e+00
63 3.7475032428567294e+00 -1.2789954722960686e+00 -1.6076519751193632e+00
50 -1.3170106211213679e+00 1.1217072289962471e+00 9.7546031986257298e-01
54 2.8650966177596177e-01 -7.2293610544508791e-01 1.0058639724555830e-01
58 3.1128109616492874e+00 -5.8959484660624151e-01 8.5372265373140332e-01
62 -2.1820541673479572e+00 2.4884510598694281e+00 -1.7590338866984598e+00
25 2.1421443829733200e-01 -3.0491955555929523e-01 1.3612216311080305e+00
20 -3.0135333842372920e+00 3.0475984378967742e+00 2.5905800789514295e+00
28 -8.2411065297393349e-01 2.1142309379385305e-01 4.3747123967438419e+00
run_vdwl: 225.483123234619
run_coul: -358.525864873204
run_stress: ! |2-
9.2708340634004202e+01 9.4567250047602442e+01 9.3542392878203984e+01 -3.5188898428941879e+00 2.9172111770024983e+01 2.5838714184808751e+00
run_forces: ! |2
2 -1.7952445271246664e+00 -1.4218851239799628e+00 -1.1587702523913164e+00
4 8.3608443721893311e-01 -2.9300301286855118e-01 -1.1300615346589309e+00
5 -8.0974284598680624e-01 -1.1743905637767758e+00 2.1194443649806144e-01
9 -2.1137406565834995e+00 -1.1189587128414018e+00 -1.8438345474652282e+00
10 -4.6803591985296066e-02 -1.9385835289305713e+00 -1.5715631476098573e+00
13 3.9516728015980274e-01 3.9884977620308151e+00 -1.3897244200262227e+00
11 2.1224282563066663e+00 -2.9696720334420705e+00 1.8102331225775177e+00
12 -3.5004456137542599e+00 -3.8012444953626483e+00 -2.6619954059079718e+00
19 -1.1827353281628663e+00 -2.7464995051745813e+00 -3.6513716492539117e-01
21 -1.3429601822013132e-01 -5.1202911643149118e-01 -2.5076125153203370e+00
8 5.2713815910806328e-01 1.1469424140595932e+00 -1.7206517405282333e+00
29 -1.8897897534108272e+00 1.9770299404566545e+00 -2.2761449369499362e+00
16 1.3574951697085507e+00 -3.5051996831920607e-01 3.5716346025832233e+00
27 1.9754081314959220e+00 5.5512144980327649e-01 2.1965106618877410e+00
17 2.6289345928448711e+00 2.3763340923405312e+00 -2.0313511348228737e+00
18 -1.3798861331946473e+00 1.3762714646580598e+00 1.2919153852528387e+00
24 3.3664631526424588e-01 -1.5598462775154304e-01 -1.6158927212020158e-01
26 -9.1319903515587442e-02 -4.9365927912993712e-01 1.2865878118928920e+00
32 -5.2461464343452280e-02 -6.3445874771083419e-02 6.0047690872422295e-02
3 5.5478781578872816e-01 1.0166262832007475e+00 -4.9270600194063685e-01
1 5.2461464343452280e-02 6.3445874771083419e-02 -6.0047690872422295e-02
36 -4.7957755204510966e-01 -2.6483422747174021e+00 -5.3805190516420609e-01
37 -1.2572679750686964e+00 9.6992929966066066e-01 -1.2270961498140143e+00
7 -1.1517087766541612e+00 -1.3245607639320900e+00 2.1503751717710062e+00
41 -1.4701041079431029e-01 -2.3080938022581338e-01 -3.2673541047210419e-01
45 -2.2413643960036964e+00 8.0325775766222773e-01 -3.0500826497180862e+00
15 -1.9891876262290782e+00 3.2416687992734254e+00 -1.5262610748773309e+00
44 3.3056208366847240e+00 -3.1571749982962367e+00 1.1182639533515728e+00
33 1.7888171042420402e+00 -2.2881077231541429e+00 2.2107802977083013e+00
6 1.2489390499997166e-01 3.6849603458227351e+00 1.6822337738199962e+00
49 -2.9994424951631067e+00 -3.4664174572228661e+00 -3.5674747455451401e+00
53 2.8124956399141539e+00 2.9660559514684497e+00 2.0685373458888394e+00
14 -1.9138573726925181e+00 3.8523404640765238e+00 7.5928353092630863e-01
23 2.5768083422823507e+00 3.8533003897315776e+00 9.5312752430003289e-01
40 4.6449644387898941e+00 -1.6920062703763807e+00 -2.1914395923558603e+00
57 5.1553323845256911e-02 -1.3671813398210970e+00 -3.8987060991398564e-01
61 -1.5348486017580774e+00 1.8011009782375174e+00 -1.2455408136685975e+00
31 -1.0066976443270784e-01 4.4203964938993617e-01 4.3880141855445942e-01
48 1.4535565137158473e+00 2.5952187241157976e-01 -3.3210475966326744e-02
22 -4.4355917278004471e+00 3.3178935668910494e+00 -3.2692290811528362e+00
52 3.8934964666261980e+00 -3.6369191438635475e+00 3.3519451907149684e+00
30 -1.2621388545199415e+00 8.1319864719143164e-01 -1.1462593883015966e+00
56 -9.6853921654063602e-01 9.6676984125909227e-01 -9.6934788270562888e-01
60 -1.8398166572824817e+00 -4.3838737927324054e+00 -2.2439588488613342e+00
64 3.0311416397213189e+00 3.1186981920332699e+00 3.0736206205182972e+00
35 1.3411637976344630e+00 -7.0966057217261513e-01 1.6154129097815140e+00
39 5.2435475770006990e-01 9.7036165266308726e-03 -1.0441916236238242e+00
42 -4.0727737583055967e+00 -1.6478523453785263e+00 1.4125120578899897e-01
43 3.7242001529259333e-01 -3.5616918801080111e+00 6.2600470217084692e-01
47 1.8346387590092910e+00 1.2824286835337535e+00 1.6235696472149697e+00
34 1.2954727830525320e-01 -6.0200675544908475e-02 1.8457241518256831e-01
38 -1.9027904716765798e-01 -4.3608165108422019e-03 1.9502009170946963e-01
51 -1.9595456145203474e+00 1.8918550738777526e+00 4.0715722065171711e+00
46 -5.5711891827535098e-01 -1.2214898451190077e+00 4.7520809728771933e+00
55 2.3521436347037364e-01 -2.7981702783839077e+00 -2.8171838683883714e+00
59 2.8374050093362801e+00 1.7351585453119913e+00 -2.4230495267529832e+00
63 3.5357973549417805e+00 -1.2721885918023130e+00 -1.5842416063937024e+00
50 -1.2415474182280879e+00 9.7988551618719577e-01 8.1053008547612437e-01
54 2.7074545892326524e-01 -6.6977778932741894e-01 1.1922242430325722e-01
58 3.0454225555369119e+00 -2.4963396862218679e-01 5.8727287281650487e-01
62 -1.9550862969301015e+00 2.2314107372332956e+00 -1.5611613409585052e+00
25 2.0909936419783498e-01 -2.2212812320858885e-01 1.2631598119352292e+00
20 -2.5961589908050140e+00 2.6426591433127462e+00 2.2346853176560528e+00
28 -9.1571123990994119e-01 2.8831752088653273e-01 4.0653791576256069e+00
...

View File

@ -0,0 +1,156 @@
---
lammps_version: 5 May 2020
date_generated: Thu May 28 20:26:24 202
epsilon: 1e-12
prerequisites: ! |
pair polymorphic
pre_commands: ! |
variable newton_pair delete
variable newton_pair index on
post_commands: ! |
change_box all x final 0 9.8 y final 0 9.8 z final 0 9.8
input_file: in.manybody
pair_style: polymorphic
pair_coeff: ! |
* * GaN_sw.poly Ga Ga Ga Ga N N N N
extract: ! ""
natoms: 64
init_vdwl: -110.558587505304
init_coul: 0
init_stress: ! |-
-1.6871753140960841e+01 6.7120289611391286e+01 -2.6350807630371186e+01 -3.7494795095495206e+01 -3.5036126410883412e+01 3.0898629782251593e+01
init_forces: ! |2
1 -1.1876356686746147e+01 8.3228947849512878e+01 8.8917387625898012e+00
2 4.7296776233945348e+00 5.9647313236460253e-01 -9.3956721546004529e-01
3 -1.6045330981700412e-02 -6.7535865814758687e+00 1.4247262360590556e+00
4 2.1732620398553579e+00 8.9577905222859258e+00 8.4192920490925029e+00
5 4.1837921590018352e+00 1.1866420133320579e+01 2.1153051759137846e+01
9 -2.2384113017649545e+00 4.4536752704903400e+00 1.5096218238548453e+00
10 -2.9177426731426925e-01 -1.7303903390080693e+00 -1.3038967110556552e+00
11 -3.4983141002625708e+00 9.0652143349687826e+00 3.2178991471040082e+00
12 -9.9212036790697744e-01 2.2449356862892449e+00 2.9577096846264554e+00
13 -4.9316300937888069e-01 2.4422561908341036e+00 9.1219811758773617e-01
17 -1.8734015294806287e+01 3.0718420983330070e+01 1.1107207643605946e+01
19 -7.1238170210446949e-01 -2.1714784222861332e+00 3.1521235207803971e-01
8 -2.4317481980233051e+00 -2.2822568229610609e+00 3.4571517294012284e+00
25 3.4400858498533871e-01 1.5226731357055667e+00 -6.0820587782977578e+00
16 -3.1848477377047648e+00 6.6076663459050855e-01 2.5922723422669014e+00
27 1.1137706196275878e+00 5.8862855612158246e-02 4.0389979052289343e-01
18 1.0758770915143348e+01 -6.6194988940053658e+00 6.8483543911987832e+00
20 -6.2434030705621355e+00 -6.7516052940948521e+00 -4.5133702312336572e+00
21 5.2237364213406918e+00 2.9030600913792837e+00 5.9048187718238827e+00
24 2.2719438779448344e+00 2.5663554163640621e+00 9.8704278040802595e+00
26 1.0169145023293402e+00 4.9900797947442760e-01 -2.3444818586904415e-01
28 -2.7802655147758819e+00 -7.7736637855039681e-01 -9.3913183626105035e+00
29 -3.0027267996067777e+00 -3.0757159365914584e+00 6.7939382681691809e+00
32 -4.9670256055705408e-01 4.3000056772385467e+00 -1.4364174845027060e+00
33 -1.3596327450926818e+01 1.8414065535303045e+01 2.4334263710095701e+01
36 -5.3253768122809786e-01 -6.9422274314231169e-01 -2.2019860155014509e-01
7 4.2563687880916135e+00 4.0506626097092981e+00 4.3748195077329406e+00
41 1.1585103537587949e+00 5.0503755615975221e+00 -8.5430630696074650e-01
15 -4.6848914176164573e+00 4.4556948103194921e-01 -1.0791330113399094e+00
44 1.2694984075473326e-04 -2.7635220537281918e-01 2.6187403800177576e+00
6 7.8616535471324733e-01 1.5954258588644912e+00 5.1167669165787177e-01
49 4.4458115932912792e+00 -2.2959173243188595e+00 2.6540455608229876e+00
57 -6.4314667746578003e-01 -2.5995746206906561e-01 2.4684842120937420e-01
14 -6.0533578980418379e-01 2.0108343404544127e+00 -2.4054802910511142e-01
22 1.2537555380551291e+01 -1.0604620153104181e+01 -3.2880354910376319e+01
52 7.7471965556027609e+00 -8.2657558724752001e+00 3.9972347545367497e+00
23 5.7702309695920584e-01 2.8877157891265132e-01 5.5544328953631872e-01
30 1.0783647586182532e-01 -5.4641509054446882e+00 7.3374486675282335e-01
31 -6.4694659578752232e+00 5.7553633669109883e-01 -2.1973848204178221e+00
60 -2.6889428139329166e+00 -1.6475993616724236e+00 -7.0243130435758205e-01
34 -7.3629953239847454e+00 2.5605883637087925e+00 -5.4898025041264304e+00
35 1.3871854674124702e+00 2.7747076128110986e+00 -2.6257448062479676e+00
37 6.5898703758578989e+00 6.6508341602498744e-01 -1.6772014855456816e+00
39 1.9779086834666131e+00 -4.0384199145682480e+00 -7.8174849523008190e+00
42 1.9893929553260841e-02 9.0841234766752554e-01 -1.3315158150186110e+00
43 1.1430633351592987e+00 4.0282338029110338e+00 -1.1248415509691769e+00
45 -1.9076955138745046e+00 1.3903236004232424e+00 -1.2815693112841717e+00
47 -1.8581734433208236e+01 2.0739774918848162e+00 -5.4002387242185748e+00
38 1.7035656926068818e+01 -2.8571950398402265e+01 -1.3809923561275051e+01
51 -2.8777132956215135e-01 1.0135288187474920e+00 -6.9659813589718800e-01
40 2.0605775687918704e+00 -7.7402004101008171e-01 -1.6802151119150648e+00
46 -1.5632717229640027e+00 1.6285024746575694e-01 -4.1339579873977828e-01
48 -3.4369353064395689e+00 -2.6083655148640315e+00 1.9285780693031578e+00
59 1.0065893993811101e+00 1.9522168013291357e+00 -2.7320606701689365e+00
50 6.9157952496030912e+00 6.7983669013250916e+00 -8.7391056351942531e+00
53 2.4593632121410924e+00 1.5874078756976844e+00 9.7589780141945059e-01
54 1.7793110091954848e+01 -9.8334301284218412e+01 -2.4810713563228799e+01
55 1.0540520136483824e+00 -9.6004612877438511e-01 -2.0082647736978805e+00
56 1.4745164837558393e+00 -5.6319701841044774e+00 -1.0893415324199731e+00
58 -1.0698480722375397e-01 -1.4887976576832087e+00 3.2692801165676189e-01
61 -1.1049989258046302e+00 -9.8925992286869532e-02 -3.5975803029667830e-01
62 8.3847363183302388e+00 -7.9441779730970898e+00 -1.9428697652986431e+00
63 -6.4026447196181824e+00 -8.9658730208109318e+00 5.5791283935903966e+00
64 -5.7668345333930739e+00 -5.3444816699294773e+00 2.4892095494490190e+00
run_vdwl: -144.992990349495
run_coul: 0
run_stress: ! |-
-3.1701076082952088e+01 -3.7656770030899871e+01 -5.4490422529108301e+01 -1.1611843352902998e+01 -1.9941609984748986e+01 5.8892703036043648e-01
run_forces: ! |2
1 2.6001753980068312e+00 8.8453956044365452e+00 -9.8797166618993941e+00
2 4.7965777681525594e+00 3.1418955328442177e-01 -6.7264903627663886e-01
3 1.0165193459026138e+00 -6.9858270050310001e+00 1.8628184449968073e+00
4 3.8602538711737191e+00 8.4722642593294442e+00 8.8567452606533053e+00
5 1.4325862819782447e+00 9.6460774612528724e+00 1.8484498014247425e+01
9 -1.1481583330859353e+00 3.6688819286639918e+00 2.0596448842899480e+00
10 -1.5948540569760689e-01 -1.7804814659974553e+00 -1.0111342802770735e+00
11 -2.8695789524802331e+00 8.0006124848439448e+00 2.9516495359219297e+00
12 -1.3694287291703762e+00 2.6454487190474807e+00 2.8765938514624372e+00
13 -5.4843165416037032e-01 2.4178430786947298e+00 1.1398502101802370e+00
17 -1.1381825725808325e+01 1.2915502454739507e+01 5.1238681810529574e+00
19 -7.5431623569785000e-01 -2.1661936391034660e+00 2.4918735731106073e-01
8 -2.2825002748067025e+00 -2.1223012980285478e+00 3.5281401425639487e+00
25 1.7333054580403262e-01 1.3337276459680432e+00 -6.1609668099787775e+00
16 -3.0802569601088012e+00 9.5925986030005028e-01 2.2666056736776650e+00
27 1.2682618334346174e+00 -1.4700543015080925e-01 6.0935929813436018e-01
18 9.6111051916319816e+00 -4.7298952633755444e+00 5.5528105778138421e+00
20 -5.7550438939721049e+00 -5.8408478677394928e+00 -4.9085613229771701e+00
21 5.4549105790401802e+00 2.6630471078722162e+00 6.0325918454019254e+00
24 1.9791326592062606e+00 1.5389863050677755e+00 9.4124356044129698e+00
26 1.0230811841295624e+00 5.4629680416587312e-01 -2.0268842134531423e-01
28 -1.8827867210279361e+00 -8.0983579348143708e-02 -8.0957444624412709e+00
29 -2.7782453830324263e+00 -2.5573236098459677e+00 6.7705114865425902e+00
32 -7.1101699485116887e-01 2.7906283637156255e+00 -9.1751469515765138e-01
33 -6.8060323342038727e+00 1.2668101760691528e+01 1.0975710263736646e+01
36 -7.0034117601634915e-01 -7.3481334049701386e-01 -3.2923650090110673e-01
7 3.8845315180472229e+00 4.1363004105214696e+00 4.1612397006953481e+00
41 9.9038174862740713e-01 5.2034287095562535e+00 -9.2279549656139437e-01
15 -4.3970394902375318e+00 2.7529926135490668e-01 -1.0537111051268997e+00
44 -4.3138030953488220e-02 -2.1730377457745106e-01 2.5879362252594804e+00
6 9.9340453391254468e-01 1.6560100312784802e+00 7.8977347536819120e-01
49 4.1632394287441876e+00 -2.6793965025719482e+00 2.3094287627967724e+00
57 -6.9229115466318514e-01 -3.3674905932471810e-01 2.6880467900088900e-01
14 -6.4833543831883622e-01 1.8793140665316381e+00 -4.1708918178362042e-01
22 6.8075019401962757e+00 -6.2213593280347208e+00 -1.8529952635070035e+01
52 6.0477513556601279e+00 -6.8466072151236883e+00 2.9952979114061438e+00
23 4.6278885706494510e-01 3.8608940279342213e-01 8.5014465678374362e-01
30 4.8720777514052538e-01 -5.4014658873264407e+00 3.6862303261910623e-01
31 -6.7438316872628379e+00 4.4362126872178842e-01 -1.9853303658062882e+00
60 -3.0228065714741517e+00 -1.9614689041002695e+00 -9.8795271024452358e-01
34 -7.6430167294980933e+00 3.1186302206809264e+00 -6.4742189675725701e+00
35 7.0112612235293548e-01 3.2263957902917295e+00 -1.6627434314520302e+00
37 6.9659019279999326e+00 6.6687056140876833e-01 -1.7233441201475324e+00
39 1.2282661288072532e+00 -2.8886872299953255e+00 -8.5998645412511383e+00
42 -1.7823656100406512e-01 6.3207831041068252e-01 -1.2857226015957983e+00
43 7.5310776116899159e-01 4.0022631696456701e+00 -1.4783935084238897e+00
45 -1.9253816101880521e+00 1.3252488113122081e+00 -1.2487618876812336e+00
47 -1.8506359747177516e+01 6.3237428091566317e-01 -4.1112559217521163e+00
38 1.0144657031880191e+01 -1.0180115609902439e+01 -8.1296975662497548e+00
51 -7.6976444738773875e-01 7.2408105720737537e-01 -2.0882810980395097e-01
40 2.2197909873190063e+00 -7.9705770507637119e-01 -1.6269370534025505e+00
46 -1.4334721232398184e+00 1.8708798225467027e-01 -3.4929993475111276e-01
48 -3.3460942707282499e+00 -2.1689603476053896e+00 1.6173482627519267e+00
59 9.0492207431875471e-01 1.9820913506452942e+00 -2.6150393093642141e+00
50 6.3005475103750506e+00 5.0761727277929296e+00 -6.6034546604114785e+00
53 2.9350764434089260e+00 1.7618197320303048e+00 1.2296397931736294e+00
54 5.5219180293126131e+00 -2.1620842486142536e+01 -4.2059340473074602e+00
55 9.4497148035695844e-01 -8.8829453241008549e-01 -1.9741545697816292e+00
56 1.3986670274834250e+00 -5.8733780758809022e+00 -7.8406096467097630e-01
58 1.9591652237395313e-02 -1.3594894300349787e+00 3.5228908450816110e-01
61 -1.0808324746228049e+00 -9.8892831798155223e-02 -4.0399214029008695e-01
62 6.7102847473646960e+00 -7.3289558365414296e+00 -2.1817303825752870e+00
63 -5.6961477142673687e+00 -7.4946638072487755e+00 3.0071800556862467e+00
64 -5.4473739150961515e+00 -5.2320794746151691e+00 2.4517511318822947e+00
...

View File

@ -0,0 +1,156 @@
---
lammps_version: 5 May 2020
date_generated: Thu May 28 20:29:01 202
epsilon: 1e-12
prerequisites: ! |
pair polymorphic
pre_commands: ! |
variable newton_pair delete
variable newton_pair index on
post_commands: ! |
change_box all x final 0 9.9 y final 0 9.9 z final 0 9.9
input_file: in.manybody
pair_style: polymorphic
pair_coeff: ! |
* * GaN_tersoff.poly Ga Ga Ga Ga N N N N
extract: ! ""
natoms: 64
init_vdwl: -112.241357306965
init_coul: 0
init_stress: ! |2-
4.3249132419495197e+02 6.1806988005325991e+02 4.8708813529781338e+02 -2.2467788013860402e+02 -1.5225332287691344e+02 1.2236676585794305e+02
init_forces: ! |2
1 -3.6576527209649853e+01 1.2938151330813227e+02 3.6345316984166146e+01
2 3.0977771717520954e+00 1.0739593384813553e+00 -4.6576264507651288e-01
3 9.8530602450832117e-01 -5.2416805937742517e+00 2.3321799148388038e+00
4 -9.9225324315448091e+00 1.5221288458098677e+01 8.8143676672282432e+00
5 3.2314320694378168e+01 1.1087279427646233e+02 1.3420046940012486e+02
9 4.4839529210690365e+00 5.4432932554408353e+00 1.0556917325814013e+00
10 -1.7521535083648562e-01 -1.0618497917189478e+00 -4.7535767072727675e-01
11 -2.2854505757948473e+00 5.1507466341367323e+00 4.5622702229903123e+00
12 -2.8113964035294297e+00 4.2388645326806227e+00 2.2147723017377579e+00
13 -1.2765060495244165e-01 1.0068988592168191e+00 -1.2365763873232410e-01
17 -2.3501002243763395e+01 3.3055061638078982e+01 1.7854192244654975e+01
19 -3.8181868116858864e-01 -1.2946600508103308e+00 4.3806378281490377e-01
8 -1.2106106126943370e+00 -1.0004811284718682e+00 2.2528835072663225e+00
25 1.1442499752518618e+00 1.3049784576661452e+00 -3.9372445813136152e+00
16 -1.6680446535103393e+00 3.4347842991462080e-01 1.8159391012790485e+00
27 3.8681985124513663e-01 2.1817713130227312e-01 -7.4274211430628095e-02
18 8.0626637261147565e+00 -1.0097638287045562e+01 9.2069941284667038e+00
20 -1.1961654715441478e+01 -1.4551730941350193e+01 -6.4766250405568355e+00
21 4.0081675615990839e+00 2.6895369384044807e+00 4.1167490865191887e+00
24 8.6492696284632693e+00 -6.0561557014483157e+01 7.2286862275972936e+01
26 1.1494621549537498e+00 -7.2432026533234029e-01 1.0869393856530929e+00
28 1.2645066510058989e-01 1.4320131071408668e+00 -6.7340392379246126e+00
29 -3.3702155567364684e+00 -3.2549006098999866e+00 4.8884522133575947e+00
32 -8.8483084469915610e+01 -1.1200047244916043e+01 9.5784775552006948e+01
33 -1.8644046130608288e+01 1.9364538700579399e+01 2.5778779302511367e+01
36 -2.8042870420021032e-01 -2.1860793435872525e-01 -7.6864979554238350e-02
7 2.5181109971965268e+00 3.2698722922262653e+00 2.8164026735484646e+00
41 5.5172958489046664e-01 2.9453718703404639e+00 -7.3110142207332629e-01
15 -2.3683646352557584e+01 2.1693607895628791e+01 -1.5164189390961038e+00
44 2.6573938517485385e-01 -5.4034160139055132e-01 9.6066687059865619e-01
6 1.9715873814008808e-01 7.7695128654241785e-01 6.0931852686477728e-01
49 3.3322235015568324e+00 -2.2418812526744318e+00 2.6146135232678560e+00
57 -4.0596556673288997e-01 -9.5749284320264763e-02 9.3874613972158169e-02
14 -3.2648583794155717e-01 7.4898927303350349e-01 -1.8298065978446745e-01
22 3.8037998520385763e+01 -3.5663802423995136e+01 -2.7458250761362578e+01
52 3.3239246849248909e+00 -3.5990994242240335e+00 2.8668757850233484e-01
23 4.8249073367896089e-01 4.1184614571846628e-01 -4.2839171008370558e-01
30 -2.9576701575095754e-01 -3.2760747002556472e+00 5.5196911179426422e-01
31 -4.7032916381504091e+00 1.8947124025478370e+00 -2.0884543144298373e+00
60 1.3469801683713634e-01 6.2189078552010812e-01 -3.2416745673411806e-01
34 -4.9077438486304317e+00 1.6092134233186410e+00 -1.5936338429999157e+00
35 2.5233224849597855e+00 3.5549922547808208e+00 -3.9173351808482244e+00
37 3.7345607063959041e+00 -4.5675353117101725e-01 -1.3118764437189274e+00
39 1.0238170156802811e+01 6.1259246571220871e+01 -6.9566508281160054e+01
42 3.1048969454169895e-01 7.0535058868601708e-01 -3.9123279022002549e-01
43 2.3421035807655830e+00 9.1704233370645483e-01 -1.7921408586477086e+00
45 -1.2462272926486704e+00 6.6243737496148558e-01 -3.9134993283158831e-01
47 -1.3714599075673763e+02 1.0122387435383013e+02 -6.1180372654184829e+00
38 2.2053662681085775e+01 -3.2675141691136901e+01 -1.9787196459938222e+01
51 -1.5107811740662136e-01 -9.5420656021299466e-01 -2.2740038600456280e-01
40 7.8343540459539973e-01 -2.0865227827621957e-01 -1.0896699134917764e+00
46 7.5199515301374475e-02 -3.7924801419959309e-01 -6.1781121018344654e-01
48 -1.8713289346764626e+00 -1.0088751558808138e+00 4.6162952627592091e-01
59 1.4812329930198839e-01 5.6950694539734759e-01 -1.1129911705762310e+00
50 4.8606176355069817e+00 8.2338518628894164e+00 -9.7207551169384487e+00
53 1.5020789095255760e+00 7.4762683643922823e-01 4.5499335434524368e-01
54 2.1648470709051230e+02 -3.2495513568950082e+02 -2.6797326382032088e+02
55 3.0448492140988748e-01 -5.7103418134695261e-01 -1.2743693125056259e+00
56 1.5544822032079768e+00 -4.5781311536801752e+00 -1.2969815929432023e+00
58 4.7136839274753717e-01 -6.9091586523089177e-01 5.5335017914685647e-01
61 -7.3439574845735711e-01 -2.1675143521702822e-01 -2.2874475272149264e-01
62 6.4996283247232540e+00 -7.4637247642767051e+00 -5.0174108531675454e+00
63 -5.7071873855477513e+00 -9.3348074441081295e+00 6.5081800066406998e+00
64 -4.5601626990206690e+00 -4.5257272492649570e+00 3.5749156843886922e+00
run_vdwl: -203.611092321268
run_coul: 0
run_stress: ! |-
-4.2049484348235183e+01 -5.9189088685535481e+01 -5.0689386485552980e+01 -1.8364326484744367e+01 -1.2822694127765459e+01 1.7363774136149935e+01
run_forces: ! |2
1 1.7939756373154978e+00 -1.1208319637796436e+01 -4.7866634606556708e+00
2 3.7204026301607032e+00 5.0628621597397228e-01 -5.3413782443010405e-01
3 1.8471257413913276e+00 -6.2823444167750928e+00 1.3665870486084699e+00
4 -3.2320065638233331e+00 6.7270122311417211e+00 8.1723438304257279e+00
5 4.6217901401315915e+00 1.0863412036937085e+01 1.1126624417063194e+01
9 -5.7081176786978531e+00 5.1677579033206058e+00 4.4647480813472766e+00
10 -1.3063455353378964e-01 -1.0836814049526238e+00 -3.2753858483337051e-01
11 -2.4246549271165598e+00 5.7101324774375772e+00 4.9315474886301178e+00
12 -3.7965311006712561e+00 5.8417042217798363e+00 2.7925668054307655e+00
13 -9.3612493581427925e-02 1.1534950866682339e+00 1.0344539998300817e-01
17 -1.0130328608941838e+01 1.0319068327042208e+01 5.2364714182394518e+00
19 -4.0037881131041847e-01 -1.2527014456384118e+00 3.6823689760325146e-01
8 -1.2232870679980579e+00 -1.0004421013562073e+00 2.3099733087226308e+00
25 9.6032966256812280e-01 1.1449000944189454e+00 -4.0054320422643075e+00
16 -1.6580254677123794e+00 2.1049836131872629e-01 1.5607821069119807e+00
27 4.7488975754088597e-01 8.9514263858711571e-02 5.8726290073366536e-02
18 7.4601352685103635e+00 -5.5310059308322508e+00 5.3125956730780217e+00
20 -7.0926635534301194e+00 -7.2590543601985615e+00 -6.1674919978387237e+00
21 4.1908954283746649e+00 3.0491822757804119e+00 4.4518291509682308e+00
24 5.7590645389044584e+00 4.3564682716409280e+00 6.4508519865865583e+00
26 1.4217364583576858e-01 1.4960650360445182e-01 4.5718190780874096e-01
28 1.1349236573774526e+00 2.2761435327220783e+00 -5.9730933464743714e+00
29 -2.7867012040747063e+00 -2.4702199788611980e+00 4.7211936268532444e+00
32 -1.1532642739483379e+00 2.9149579740167866e+00 -5.8998040394914284e+00
33 -8.1720168390170969e+00 1.0536116946211063e+01 7.8839425873690150e+00
36 -3.5717324453145044e-01 -2.2255539137938293e-01 -8.3906857577034130e-02
7 2.2209848870416780e+00 3.2189941222874436e+00 2.5910209493227510e+00
41 4.8936661703074336e-01 3.0547346740064669e+00 -7.3906935937596785e-01
15 -2.9409678566978847e+00 6.1085688155501927e-01 2.9475390395049600e-01
44 1.9541097803380220e-01 -4.4468176101268314e-01 1.0176986248574860e+00
6 3.0987750315356288e-01 8.3678762081949221e-01 7.0235938485577731e-01
49 2.9103116184165554e+00 -2.3426722789735948e+00 2.1935227677704248e+00
57 -4.1483289858517808e-01 -1.6475409302825694e-01 8.8751421011581177e-02
14 -3.6664330256500349e-01 7.5120063095742429e-01 -2.6314287009643650e-01
22 7.3478252843488718e+00 -6.1689027765702136e+00 -1.2191865417888138e+01
52 2.8234453813943876e+00 -3.2347981236230305e+00 4.6846318946505017e-01
23 5.2487632403478568e-01 4.5848786084689036e-01 -2.8426094252701828e-01
30 6.9788385652458373e-04 -3.2692120625975409e+00 2.4134335178597510e-01
31 -4.7289364647448959e+00 1.6531052258817445e+00 -1.7169707860995391e+00
60 -1.6047921602890547e-01 4.3809780266159670e-01 -4.9231335386324615e-01
34 -5.4996907115520708e+00 7.5181319813262526e-01 -2.3171213923254221e+00
35 4.8106995828675210e+00 7.1169887708264916e+00 -5.6110197589213691e+00
37 3.9037369696598163e+00 -3.5890001237788355e-01 -1.1199415586639974e+00
39 6.3364725802017006e+00 -5.4176635698201068e+00 -7.3318779334885562e+00
42 -3.9528153001845484e-01 1.5597737723367203e-01 5.2784338346775851e-02
43 2.2657812576932397e+00 1.9712039200390983e+00 -1.2370089231886103e+00
45 -1.2260709579840805e+00 6.1245263557219842e-01 -4.3698060412983547e-01
47 -1.0420135908179688e+01 5.7001528094305343e-01 -9.0003704553925488e+00
38 9.7334516769680874e+00 -8.8132706217214860e+00 -8.4313924553967841e+00
51 -1.5893799847955918e+00 -8.3821253179133404e-01 1.2455496182737864e+00
40 9.3358332318778159e-01 -2.4842482840019792e-01 -1.1357782777258685e+00
46 5.3072693972158191e-02 -4.1780244594259308e-01 -5.8470587436144816e-01
48 -1.7851692820511502e+00 -8.2285670190056948e-01 3.5445348939455101e-01
59 1.8342901227573127e-01 3.1930603555127135e-01 -8.5429628645135613e-01
50 4.9209401662251961e+00 6.4162503219489153e+00 -6.3625199989179393e+00
53 1.7195958602754113e+00 8.6752486866952305e-01 6.2371405899840404e-01
54 -3.3730515088927611e+00 -8.2571374860614952e+00 4.5905709087303457e+00
55 2.9111712152328195e-01 -6.0568036958349580e-01 -1.2650082903307274e+00
56 1.3734924894688838e+00 -4.7988036888201933e+00 -1.0498689187601902e+00
58 5.2202454854535030e-01 -2.0969163457055551e-01 1.0326238710272539e+00
61 -7.4031928141422254e-01 -2.4982528971416698e-01 -2.7078923661290932e-01
62 4.7240540893840048e+00 -6.5824371146058915e+00 -4.5927562090591252e+00
63 -4.2130786356549734e+00 -6.8532850187004968e+00 3.8433571293767557e+00
64 -4.4865200301162247e+00 -4.4107168742006451e+00 3.9565120242715395e+00
...

View File

@ -1,7 +1,7 @@
---
lammps_version: 5 May 2020
date_generated: Wed May 27 10:27:56 202
epsilon: 5e-13
epsilon: 1e-12
prerequisites: ! |
pair tersoff/mod
pre_commands: ! |