Merge branch 'master' into refactor-reaxff-parser

This commit is contained in:
Axel Kohlmeyer
2021-04-20 20:52:18 -04:00
40 changed files with 811 additions and 810 deletions

View File

@ -802,7 +802,10 @@ if(PKG_GPU)
message(STATUS "<<< GPU package settings >>>
-- GPU API: ${GPU_API}")
if(GPU_API STREQUAL "CUDA")
message(STATUS "CUDA Compiler: ${CUDA_NVCC_EXECUTABLE}")
message(STATUS "GPU default architecture: ${GPU_ARCH}")
message(STATUS "GPU binning with CUDPP: ${CUDPP_OPT}")
message(STATUS "CUDA MPS support: ${CUDA_MPS_SUPPORT}")
elseif(GPU_API STREQUAL "HIP")
message(STATUS "HIP platform: ${HIP_PLATFORM}")
message(STATUS "HIP architecture: ${HIP_ARCH}")

View File

@ -452,6 +452,9 @@ the same or else LAMMPS will generate an error.
Pair style *hybrid/scaled* currently only works for non-accelerated
pair styles and pair styles from the OPT package.
When using pair styles from the GPU package they must not be listed
multiple times. LAMMPS will detect this and abort.
Related commands
""""""""""""""""

View File

@ -150,7 +150,7 @@ int CHARMMT::loop(const int eflag, const int vflag) {
&_cut_coul_innersq, &this->_threads_per_atom);
} else {
this->k_pair.set_size(GX,BX);
this->k_pair.run(&this->atom->x, &ljd, &sp_lj,
this->k_pair.run(&this->atom->x, &lj1, &_lj_types, &sp_lj,
&this->nbor->dev_nbor, this->_nbor_data,
&this->ans->force, &this->ans->engv, &eflag,
&vflag, &ainum, &nbor_pitch, &this->atom->q,

View File

@ -29,7 +29,8 @@ _texture(q_tex, int2);
#endif
__kernel void k_charmm(const __global numtyp4 *restrict x_,
const __global numtyp2 *restrict ljd,
const __global numtyp4 *restrict lj1,
const int lj_types,
const __global numtyp *restrict sp_lj,
const __global int *dev_nbor,
const __global int *dev_packed,
@ -88,20 +89,14 @@ __kernel void k_charmm(const __global numtyp4 *restrict x_,
numtyp delz = ix.z-jx.z;
numtyp rsq = delx*delx+dely*dely+delz*delz;
int mtype=itype*lj_types+jtype;
if (rsq<cut_bothsq) {
numtyp r2inv=ucl_recip(rsq);
numtyp forcecoul, force_lj, force, switch1;
numtyp lj3, lj4;
numtyp forcecoul, force_lj, force, r6inv, switch1;
if (rsq < cut_ljsq) {
numtyp eps = ucl_sqrt(ljd[itype].x*ljd[jtype].x);
numtyp sig6 = (numtyp)0.5 * (ljd[itype].y+ljd[jtype].y);
numtyp sig_r_6 = sig6*sig6*r2inv;
sig_r_6 = sig_r_6*sig_r_6*sig_r_6;
lj4 = (numtyp)4.0*eps*sig_r_6;
lj3 = lj4*sig_r_6;
force_lj = factor_lj*((numtyp)12.0 * lj3 - (numtyp)6.0 * lj4);
r6inv = r2inv*r2inv*r2inv;
force_lj = factor_lj*r6inv*(lj1[mtype].x*r6inv-lj1[mtype].y);
if (rsq > cut_lj_innersq) {
switch1 = (cut_ljsq-rsq);
numtyp switch2 = (numtyp)12.0*rsq*switch1*(rsq-cut_lj_innersq)*
@ -109,7 +104,7 @@ __kernel void k_charmm(const __global numtyp4 *restrict x_,
switch1 *= switch1;
switch1 *= (cut_ljsq+(numtyp)2.0*rsq-(numtyp)3.0*cut_lj_innersq)*
denom_lj;
switch2 *= lj3-lj4;
switch2 *= r6inv*(lj1[mtype].z*r6inv-lj1[mtype].w);
force_lj = force_lj*switch1+switch2;
}
} else
@ -137,7 +132,7 @@ __kernel void k_charmm(const __global numtyp4 *restrict x_,
if (EVFLAG && eflag) {
e_coul += forcecoul;
if (rsq < cut_ljsq) {
numtyp e=lj3-lj4;
numtyp e=r6inv*(lj1[mtype].z*r6inv-lj1[mtype].w);
if (rsq > cut_lj_innersq)
e *= switch1;
energy+=factor_lj*e;

View File

@ -108,10 +108,7 @@ int TersoffT::init(const int ntypes, const int nlocal, const int nall, const int
_nparams = nparams;
_nelements = nelements;
UCL_H_Vec<numtyp> host_write(ntypes*ntypes,*(this->ucl_device),
UCL_READ_WRITE);
host_write.zero();
cutsq_pair.alloc(ntypes*ntypes,*(this->ucl_device),UCL_READ_ONLY);
_cutsq_max=0.0;
for (int ii=1; ii<ntypes; ii++) {
const int i=host_map[ii];
for (int jj=1; jj<ntypes; jj++) {
@ -120,12 +117,10 @@ int TersoffT::init(const int ntypes, const int nlocal, const int nall, const int
const int k=host_map[kk];
if (i<0 || j<0 || k<0) continue;
const int ijkparam = host_elem2param[i][j][k];
if (host_cutsq[ijkparam]>host_write[ii*ntypes+jj])
host_write[ii*ntypes+jj]=host_cutsq[ijkparam];
if (host_cutsq[ijkparam]>_cutsq_max) _cutsq_max=host_cutsq[ijkparam];
}
}
}
ucl_copy(cutsq_pair,host_write,ntypes*ntypes);
// --------------------------------------------------------------------
UCL_H_Vec<numtyp4> dview(nparams,*(this->ucl_device),
@ -235,7 +230,6 @@ void TersoffT::clear() {
ts3.clear();
ts4.clear();
ts5.clear();
cutsq_pair.clear();
map.clear();
elem2param.clear();
_zetaij.clear();
@ -286,7 +280,7 @@ int TersoffT::loop(const int eflag, const int vflag, const int evatom,
int BX=this->block_pair();
int GX=static_cast<int>(ceil(static_cast<double>(ainum)/BX));
this->k_short_nbor.set_size(GX,BX);
this->k_short_nbor.run(&this->atom->x, &cutsq_pair, &_ntypes,
this->k_short_nbor.run(&this->atom->x, &_cutsq_max, &_ntypes,
&this->nbor->dev_nbor, &this->nbor->dev_packed,
&ainum, &nbor_pitch, &this->_threads_per_atom);

View File

@ -226,17 +226,13 @@ _texture_2d( pos_tex,int4);
#endif
__kernel void k_tersoff_short_nbor(const __global numtyp4 *restrict x_,
const __global numtyp *restrict cutsq_pair,
const int ntypes, __global int * dev_nbor,
const numtyp cutsq, const int ntypes,
__global int * dev_nbor,
const __global int * dev_packed,
const int inum, const int nbor_pitch,
const int t_per_atom_in) {
const int ii=GLOBAL_ID_X;
#ifdef ONETYPE
const numtyp cutsq=cutsq_pair[ONETYPE];
#endif
if (ii<inum) {
const int i=dev_packed[ii];
int nbor=ii+nbor_pitch;
@ -245,9 +241,6 @@ __kernel void k_tersoff_short_nbor(const __global numtyp4 *restrict x_,
const int nbor_end=nbor+fast_mul(numj,nbor_pitch);
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
#ifndef ONETYPE
const int itype=ix.w*ntypes;
#endif
int newj=0;
__global int *out_list=dev_nbor+2*nbor_pitch+ii*t_per_atom;
@ -258,11 +251,6 @@ __kernel void k_tersoff_short_nbor(const __global numtyp4 *restrict x_,
int j = sj & NEIGHMASK;
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
#ifndef ONETYPE
const int mtype=jx.w+itype;
const numtyp cutsq=cutsq_pair[mtype];
#endif
// Compute r12
numtyp delx = ix.x-jx.x;
numtyp dely = ix.y-jx.y;

View File

@ -73,7 +73,7 @@ class Tersoff : public BaseThree<numtyp, acctyp> {
/// ts5.x = beta, ts5.y = powern, ts5.z = lam2, ts5.w = bigb
UCL_D_Vec<numtyp4> ts5;
UCL_D_Vec<numtyp> cutsq_pair;
numtyp _cutsq_max;
UCL_D_Vec<int> elem2param;
UCL_D_Vec<int> map;

View File

@ -142,7 +142,10 @@ ucl_inline numtyp ters_fa_d(const numtyp r,
numtyp *ans_d)
{
#ifndef ONETYPE
if (r > param_bigr + param_bigd) return (numtyp)0.0;
if (r > param_bigr + param_bigd) {
*ans_d = (numtyp)0.0;
return (numtyp)0.0;
}
#endif
numtyp dfc;
const numtyp fc=ters_fc_d(r,param_bigr,param_bigd,&dfc);

View File

@ -105,10 +105,7 @@ int TersoffMT::init(const int ntypes, const int nlocal, const int nall, const in
_nparams = nparams;
_nelements = nelements;
UCL_H_Vec<numtyp> host_write(ntypes*ntypes,*(this->ucl_device),
UCL_READ_WRITE);
host_write.zero();
cutsq_pair.alloc(ntypes*ntypes,*(this->ucl_device),UCL_READ_ONLY);
_cutsq_max=0.0;
for (int ii=1; ii<ntypes; ii++) {
const int i=host_map[ii];
for (int jj=1; jj<ntypes; jj++) {
@ -117,12 +114,10 @@ int TersoffMT::init(const int ntypes, const int nlocal, const int nall, const in
const int k=host_map[kk];
if (i<0 || j<0 || k<0) continue;
const int ijkparam = host_elem2param[i][j][k];
if (host_cutsq[ijkparam]>host_write[ii*ntypes+jj])
host_write[ii*ntypes+jj]=host_cutsq[ijkparam];
if (host_cutsq[ijkparam]>_cutsq_max) _cutsq_max=host_cutsq[ijkparam];
}
}
}
ucl_copy(cutsq_pair,host_write,ntypes*ntypes);
UCL_H_Vec<numtyp4> dview(nparams,*(this->ucl_device),
UCL_WRITE_ONLY);
@ -229,7 +224,6 @@ void TersoffMT::clear() {
ts3.clear();
ts4.clear();
ts5.clear();
cutsq_pair.clear();
map.clear();
elem2param.clear();
_zetaij.clear();
@ -275,7 +269,7 @@ int TersoffMT::loop(const int eflag, const int vflag, const int evatom,
int BX=this->block_pair();
int GX=static_cast<int>(ceil(static_cast<double>(ainum)/BX));
this->k_short_nbor.set_size(GX,BX);
this->k_short_nbor.run(&this->atom->x, &cutsq_pair, &_ntypes,
this->k_short_nbor.run(&this->atom->x, &_cutsq_max, &_ntypes,
&this->nbor->dev_nbor, &this->nbor->dev_packed,
&ainum, &nbor_pitch, &this->_threads_per_atom);

View File

@ -220,17 +220,13 @@ _texture_2d( pos_tex,int4);
#endif
__kernel void k_tersoff_mod_short_nbor(const __global numtyp4 *restrict x_,
const __global numtyp *restrict cutsq_pair,
const int ntypes, __global int * dev_nbor,
const numtyp cutsq, const int ntypes,
__global int * dev_nbor,
const __global int * dev_packed,
const int inum, const int nbor_pitch,
const int t_per_atom) {
const int ii=GLOBAL_ID_X;
#ifdef ONETYPE
const numtyp cutsq=cutsq_pair[ONETYPE];
#endif
if (ii<inum) {
const int i=dev_packed[ii];
int nbor=ii+nbor_pitch;
@ -239,9 +235,6 @@ __kernel void k_tersoff_mod_short_nbor(const __global numtyp4 *restrict x_,
const int nbor_end=nbor+fast_mul(numj,nbor_pitch);
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
#ifndef ONETYPE
const int itype=ix.w*ntypes;
#endif
int newj=0;
__global int *out_list=dev_nbor+2*nbor_pitch+ii*t_per_atom;
@ -252,11 +245,6 @@ __kernel void k_tersoff_mod_short_nbor(const __global numtyp4 *restrict x_,
int j = sj & NEIGHMASK;
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
#ifndef ONETYPE
const int mtype=jx.w+itype;
const numtyp cutsq=cutsq_pair[mtype];
#endif
// Compute r12
numtyp delx = ix.x-jx.x;
numtyp dely = ix.y-jx.y;

View File

@ -76,7 +76,7 @@ class TersoffMod : public BaseThree<numtyp, acctyp> {
/// ts5.x = c5, ts5.y = h
UCL_D_Vec<numtyp4> ts5;
UCL_D_Vec<numtyp> cutsq_pair;
numtyp _cutsq_max;
UCL_D_Vec<int> elem2param;
UCL_D_Vec<int> map;

View File

@ -112,10 +112,7 @@ int TersoffZT::init(const int ntypes, const int nlocal, const int nall,
_nparams = nparams;
_nelements = nelements;
UCL_H_Vec<numtyp> host_write(ntypes*ntypes,*(this->ucl_device),
UCL_READ_WRITE);
host_write.zero();
cutsq_pair.alloc(ntypes*ntypes,*(this->ucl_device),UCL_READ_ONLY);
_cutsq_max=0.0;
for (int ii=1; ii<ntypes; ii++) {
const int i=host_map[ii];
for (int jj=1; jj<ntypes; jj++) {
@ -124,12 +121,10 @@ int TersoffZT::init(const int ntypes, const int nlocal, const int nall,
const int k=host_map[kk];
if (i<0 || j<0 || k<0) continue;
const int ijkparam = host_elem2param[i][j][k];
if (host_cutsq[ijkparam]>host_write[ii*ntypes+jj])
host_write[ii*ntypes+jj]=host_cutsq[ijkparam];
if (host_cutsq[ijkparam]>_cutsq_max) _cutsq_max=host_cutsq[ijkparam];
}
}
}
ucl_copy(cutsq_pair,host_write,ntypes*ntypes);
UCL_H_Vec<numtyp4> dview(nparams,*(this->ucl_device),
UCL_WRITE_ONLY);
@ -253,7 +248,6 @@ void TersoffZT::clear() {
ts4.clear();
ts5.clear();
ts6.clear();
cutsq_pair.clear();
map.clear();
elem2param.clear();
_zetaij.clear();
@ -299,7 +293,7 @@ int TersoffZT::loop(const int eflag, const int vflag, const int evatom,
int BX=this->block_pair();
int GX=static_cast<int>(ceil(static_cast<double>(ainum)/BX));
this->k_short_nbor.set_size(GX,BX);
this->k_short_nbor.run(&this->atom->x, &cutsq_pair, &_ntypes,
this->k_short_nbor.run(&this->atom->x, &_cutsq_max, &_ntypes,
&this->nbor->dev_nbor, &this->nbor->dev_packed,
&ainum, &nbor_pitch, &this->_threads_per_atom);

View File

@ -238,17 +238,13 @@ _texture( ts6_tex,int4);
#endif
__kernel void k_tersoff_zbl_short_nbor(const __global numtyp4 *restrict x_,
const __global numtyp *restrict cutsq_pair,
const int ntypes, __global int * dev_nbor,
const numtyp cutsq, const int ntypes,
__global int * dev_nbor,
const __global int * dev_packed,
const int inum, const int nbor_pitch,
const int t_per_atom) {
const int ii=GLOBAL_ID_X;
#ifdef ONETYPE
const numtyp cutsq=cutsq_pair[ONETYPE];
#endif
if (ii<inum) {
const int i=dev_packed[ii];
int nbor=ii+nbor_pitch;
@ -257,9 +253,6 @@ __kernel void k_tersoff_zbl_short_nbor(const __global numtyp4 *restrict x_,
const int nbor_end=nbor+fast_mul(numj,nbor_pitch);
numtyp4 ix; fetch4(ix,i,pos_tex); //x_[i];
#ifndef ONETYPE
const int itype=ix.w*ntypes;
#endif
int newj=0;
__global int *out_list=dev_nbor+2*nbor_pitch+ii*t_per_atom;
@ -270,11 +263,6 @@ __kernel void k_tersoff_zbl_short_nbor(const __global numtyp4 *restrict x_,
int j = sj & NEIGHMASK;
numtyp4 jx; fetch4(jx,j,pos_tex); //x_[j];
#ifndef ONETYPE
const int mtype=jx.w+itype;
const numtyp cutsq=cutsq_pair[mtype];
#endif
// Compute r12
numtyp delx = ix.x-jx.x;
numtyp dely = ix.y-jx.y;

View File

@ -80,7 +80,7 @@ class TersoffZBL : public BaseThree<numtyp, acctyp> {
/// ts6.x = Z_i, ts6.y = Z_j, ts6.z = ZBLcut, ts6.w = ZBLexpscale
UCL_D_Vec<numtyp4> ts6;
UCL_D_Vec<numtyp> cutsq_pair;
numtyp _cutsq_max;
UCL_D_Vec<int> elem2param;
UCL_D_Vec<int> map;

View File

@ -69,7 +69,6 @@
void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
{
int i,total,length,offset,num;
FFT_SCALAR norm;
#if defined(FFT_FFTW3)
FFT_SCALAR *out_ptr;
@ -99,9 +98,6 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
// 1d FFTs along fast axis
total = plan->total1;
length = plan->length1;
#if defined(FFT_MKL)
if (flag == 1)
DftiComputeForward(plan->handle_fast,data);
@ -114,11 +110,14 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
theplan=plan->plan_fast_backward;
FFTW_API(execute_dft)(theplan,data,data);
#else
int total = plan->total1;
int length = plan->length1;
if (flag == 1)
for (offset = 0; offset < total; offset += length)
for (int offset = 0; offset < total; offset += length)
kiss_fft(plan->cfg_fast_forward,&data[offset],&data[offset]);
else
for (offset = 0; offset < total; offset += length)
for (int offset = 0; offset < total; offset += length)
kiss_fft(plan->cfg_fast_backward,&data[offset],&data[offset]);
#endif
@ -133,9 +132,6 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
// 1d FFTs along mid axis
total = plan->total2;
length = plan->length2;
#if defined(FFT_MKL)
if (flag == 1)
DftiComputeForward(plan->handle_mid,data);
@ -148,11 +144,14 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
theplan=plan->plan_mid_backward;
FFTW_API(execute_dft)(theplan,data,data);
#else
total = plan->total2;
length = plan->length2;
if (flag == 1)
for (offset = 0; offset < total; offset += length)
for (int offset = 0; offset < total; offset += length)
kiss_fft(plan->cfg_mid_forward,&data[offset],&data[offset]);
else
for (offset = 0; offset < total; offset += length)
for (int offset = 0; offset < total; offset += length)
kiss_fft(plan->cfg_mid_backward,&data[offset],&data[offset]);
#endif
@ -167,9 +166,6 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
// 1d FFTs along slow axis
total = plan->total3;
length = plan->length3;
#if defined(FFT_MKL)
if (flag == 1)
DftiComputeForward(plan->handle_slow,data);
@ -182,11 +178,14 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
theplan=plan->plan_slow_backward;
FFTW_API(execute_dft)(theplan,data,data);
#else
total = plan->total3;
length = plan->length3;
if (flag == 1)
for (offset = 0; offset < total; offset += length)
for (int offset = 0; offset < total; offset += length)
kiss_fft(plan->cfg_slow_forward,&data[offset],&data[offset]);
else
for (offset = 0; offset < total; offset += length)
for (int offset = 0; offset < total; offset += length)
kiss_fft(plan->cfg_slow_backward,&data[offset],&data[offset]);
#endif
@ -201,11 +200,11 @@ void fft_3d(FFT_DATA *in, FFT_DATA *out, int flag, struct fft_plan_3d *plan)
if (flag == -1 && plan->scaled) {
norm = plan->norm;
num = plan->normnum;
const int num = plan->normnum;
#if defined(FFT_FFTW3)
out_ptr = (FFT_SCALAR *)out;
#endif
for (i = 0; i < num; i++) {
for (int i = 0; i < num; i++) {
#if defined(FFT_FFTW3)
*(out_ptr++) *= norm;
*(out_ptr++) *= norm;

View File

@ -71,21 +71,6 @@ AtomVec::AtomVec(LAMMPS *lmp) : Pointers(lmp)
default_create = "id type mask image x v";
default_data_atom = "";
default_data_vel = "";
// initializations
init_method(&mgrow);
init_method(&mcopy);
init_method(&mcomm);
init_method(&mcomm_vel);
init_method(&mreverse);
init_method(&mborder);
init_method(&mborder_vel);
init_method(&mexchange);
init_method(&mrestart);
init_method(&mcreate);
init_method(&mdata_atom);
init_method(&mdata_vel);
}
/* ---------------------------------------------------------------------- */
@ -129,19 +114,6 @@ AtomVec::~AtomVec()
}
}
destroy_method(&mgrow);
destroy_method(&mcopy);
destroy_method(&mcomm);
destroy_method(&mcomm_vel);
destroy_method(&mreverse);
destroy_method(&mborder);
destroy_method(&mborder_vel);
destroy_method(&mexchange);
destroy_method(&mrestart);
destroy_method(&mcreate);
destroy_method(&mdata_atom);
destroy_method(&mdata_vel);
delete [] threads;
}
@ -2395,18 +2367,18 @@ void AtomVec::setup_fields()
// populate field-based data struct for each method to use
create_method(ngrow,&mgrow);
create_method(ncopy,&mcopy);
create_method(ncomm,&mcomm);
create_method(ncomm_vel,&mcomm_vel);
create_method(nreverse,&mreverse);
create_method(nborder,&mborder);
create_method(nborder_vel,&mborder_vel);
create_method(nexchange,&mexchange);
create_method(nrestart,&mrestart);
create_method(ncreate,&mcreate);
create_method(ndata_atom,&mdata_atom);
create_method(ndata_vel,&mdata_vel);
init_method(ngrow,&mgrow);
init_method(ncopy,&mcopy);
init_method(ncomm,&mcomm);
init_method(ncomm_vel,&mcomm_vel);
init_method(nreverse,&mreverse);
init_method(nborder,&mborder);
init_method(nborder_vel,&mborder_vel);
init_method(nexchange,&mexchange);
init_method(nrestart,&mrestart);
init_method(ncreate,&mcreate);
init_method(ndata_atom,&mdata_atom);
init_method(ndata_vel,&mdata_vel);
// create threads data struct for grow and memory_usage to use
@ -2480,7 +2452,6 @@ void AtomVec::setup_fields()
int AtomVec::process_fields(char *str, const char *default_str, Method *method)
{
if (str == nullptr) {
method->index = nullptr;
return 0;
}
@ -2496,17 +2467,19 @@ int AtomVec::process_fields(char *str, const char *default_str, Method *method)
Atom::PerAtom *peratom = atom->peratom;
int nperatom = atom->nperatom;
int *index;
// allocate memory in method
method->resize(nfield);
std::vector<int> & index = method->index;
int match;
if (nfield) index = new int[nfield];
for (int i = 0; i < nfield; i++) {
const char * field = words[i].c_str();
const std::string & field = words[i];
// find field in master Atom::peratom list
for (match = 0; match < nperatom; match++)
if (strcmp(field, peratom[match].name) == 0) break;
if (field == peratom[match].name) break;
if (match == nperatom)
error->all(FLERR,fmt::format("Peratom field {} not recognized", field));
index[i] = match;
@ -2520,38 +2493,19 @@ int AtomVec::process_fields(char *str, const char *default_str, Method *method)
// error if field is in default str
for (match = 0; match < ndef; match++)
if (strcmp(field, def_words[match].c_str()) == 0)
if (field == def_words[match])
error->all(FLERR,fmt::format("Peratom field {} is a default", field));
}
if (nfield) method->index = index;
else method->index = nullptr;
return nfield;
}
/* ----------------------------------------------------------------------
create a method data structs for processing fields
init method data structs for processing fields
------------------------------------------------------------------------- */
void AtomVec::create_method(int nfield, Method *method)
void AtomVec::init_method(int nfield, Method *method)
{
if (nfield > 0) {
method->pdata = new void*[nfield];
method->datatype = new int[nfield];
method->cols = new int[nfield];
method->maxcols = new int*[nfield];
method->collength = new int[nfield];
method->plength = new void*[nfield];
} else {
method->pdata = nullptr;
method->datatype = nullptr;
method->cols = nullptr;
method->maxcols = nullptr;
method->collength = nullptr;
method->plength = nullptr;
return;
}
for (int i = 0; i < nfield; i++) {
Atom::PerAtom *field = &atom->peratom[method->index[i]];
method->pdata[i] = (void *) field->address;
@ -2566,31 +2520,15 @@ void AtomVec::create_method(int nfield, Method *method)
}
/* ----------------------------------------------------------------------
free memory in a method data structs
Method class members
------------------------------------------------------------------------- */
void AtomVec::init_method(Method *method)
{
method->pdata = nullptr;
method->datatype = nullptr;
method->cols = nullptr;
method->maxcols = nullptr;
method->collength = nullptr;
method->plength = nullptr;
method->index = nullptr;
}
/* ----------------------------------------------------------------------
free memory in a method data structs
------------------------------------------------------------------------- */
void AtomVec::destroy_method(Method *method)
{
delete [] method->pdata;
delete [] method->datatype;
delete [] method->cols;
delete [] method->maxcols;
delete [] method->collength;
delete [] method->plength;
delete [] method->index;
void AtomVec::Method::resize(int nfield) {
pdata.resize(nfield);
datatype.resize(nfield);
cols.resize(nfield);
maxcols.resize(nfield);
collength.resize(nfield);
plength.resize(nfield);
index.resize(nfield);
}

View File

@ -191,13 +191,15 @@ class AtomVec : protected Pointers {
const char *default_create,*default_data_atom,*default_data_vel;
struct Method {
void **pdata;
int *datatype;
int *cols;
int **maxcols;
int *collength;
void **plength;
int *index;
std::vector<void *> pdata;
std::vector<int> datatype;
std::vector<int> cols;
std::vector<int*> maxcols;
std::vector<int> collength;
std::vector<void *> plength;
std::vector<int> index;
void resize(int nfield);
};
Method mgrow,mcopy;
@ -219,9 +221,7 @@ class AtomVec : protected Pointers {
int grow_nmax_bonus(int);
void setup_fields();
int process_fields(char *, const char *, Method *);
void create_method(int, Method *);
void init_method(Method *);
void destroy_method(Method *);
void init_method(int, Method *);
};
}

View File

@ -237,15 +237,12 @@ ComputeChunkAtom::ComputeChunkAtom(LAMMPS *lmp, int narg, char **arg) :
else if (strcmp(arg[iarg+1],"y") == 0) idim = 1;
else if (strcmp(arg[iarg+1],"z") == 0) idim = 2;
else error->all(FLERR,"Illegal compute chunk/atom command");
minflag[idim] = COORD;
if (strcmp(arg[iarg+2],"lower") == 0) minflag[idim] = LOWER;
else minflag[idim] = COORD;
if (minflag[idim] == COORD)
minvalue[idim] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
else minvalue[idim] = utils::numeric(FLERR,arg[iarg+2],false,lmp);
maxflag[idim] = COORD;
if (strcmp(arg[iarg+3],"upper") == 0) maxflag[idim] = UPPER;
else maxflag[idim] = COORD;
if (maxflag[idim] == COORD)
maxvalue[idim] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
else error->all(FLERR,"Illegal compute chunk/atom command");
else maxvalue[idim] = utils::numeric(FLERR,arg[iarg+3],false,lmp);
iarg += 4;
} else if (strcmp(arg[iarg],"units") == 0) {
if (iarg+2 > narg) error->all(FLERR,"Illegal compute chunk/atom command");

View File

@ -36,8 +36,6 @@
using namespace LAMMPS_NS;
#define MAXLINE 1024
/* ---------------------------------------------------------------------- */
Force::Force(LAMMPS *lmp) : Pointers(lmp)

View File

@ -30,11 +30,13 @@
#include "region.h"
#include "tokenizer.h"
#include "variable.h"
#include "exceptions.h"
#include <cmath>
#include <cstring>
#include <map>
#include <utility>
#include <vector>
using namespace LAMMPS_NS;
@ -151,12 +153,14 @@ void Group::assign(int narg, char **arg)
// add a new group if igroup = -1
int igroup = find(arg[0]);
bool created = false;
if (igroup == -1) {
if (ngroup == MAX_GROUP) error->all(FLERR,"Too many groups");
igroup = find_unused();
names[igroup] = utils::strdup(arg[0]);
ngroup++;
created = true;
}
double **x = atom->x;
@ -164,6 +168,7 @@ void Group::assign(int narg, char **arg)
int nlocal = atom->nlocal;
int bit = bitmask[igroup];
try {
// style = region
// add to group if atom is in region
@ -380,7 +385,7 @@ void Group::assign(int narg, char **arg)
if (narg < 4) error->all(FLERR,"Illegal group command");
int length = narg-2;
int *list = new int[length];
std::vector<int> list(length);
int jgroup;
for (int iarg = 2; iarg < narg; iarg++) {
@ -409,8 +414,6 @@ void Group::assign(int narg, char **arg)
if (mask[i] & otherbit) mask[i] &= inverse;
}
delete [] list;
// style = union
} else if (strcmp(arg[1],"union") == 0) {
@ -418,7 +421,7 @@ void Group::assign(int narg, char **arg)
if (narg < 3) error->all(FLERR,"Illegal group command");
int length = narg-2;
int *list = new int[length];
std::vector<int> list(length);
int jgroup;
for (int iarg = 2; iarg < narg; iarg++) {
@ -439,8 +442,6 @@ void Group::assign(int narg, char **arg)
if (mask[i] & otherbit) mask[i] |= bit;
}
delete [] list;
// style = intersect
} else if (strcmp(arg[1],"intersect") == 0) {
@ -448,7 +449,7 @@ void Group::assign(int narg, char **arg)
if (narg < 4) error->all(FLERR,"Illegal group command");
int length = narg-2;
int *list = new int[length];
std::vector<int> list(length);
int jgroup;
for (int iarg = 2; iarg < narg; iarg++) {
@ -472,8 +473,6 @@ void Group::assign(int narg, char **arg)
if (ok) mask[i] |= bit;
}
delete [] list;
// style = dynamic
// create a new FixGroup to dynamically determine atoms in group
@ -514,6 +513,16 @@ void Group::assign(int narg, char **arg)
} else error->all(FLERR,"Illegal group command");
} catch (LAMMPSException & e) {
// undo created group in case of an error
if (created) {
delete [] names[igroup];
names[igroup] = nullptr;
ngroup--;
}
throw e;
}
// print stats for changed group
int n;
@ -539,13 +548,12 @@ void Group::assign(int narg, char **arg)
void Group::assign(const std::string &groupcmd)
{
auto args = utils::split_words(groupcmd);
char **newarg = new char*[args.size()];
std::vector<char*> newarg(args.size());
int i=0;
for (const auto &arg : args) {
newarg[i++] = (char *)arg.c_str();
}
assign(args.size(),newarg);
delete[] newarg;
assign(args.size(),newarg.data());
}
/* ----------------------------------------------------------------------

View File

@ -964,13 +964,12 @@ void Modify::add_fix(int narg, char **arg, int trysuffix)
void Modify::add_fix(const std::string &fixcmd, int trysuffix)
{
auto args = utils::split_words(fixcmd);
char **newarg = new char*[args.size()];
int i=0;
std::vector<char *> newarg(args.size());
int i = 0;
for (const auto &arg : args) {
newarg[i++] = (char *)arg.c_str();
}
add_fix(args.size(),newarg,trysuffix);
delete[] newarg;
add_fix(args.size(),newarg.data(),trysuffix);
}

View File

@ -36,7 +36,6 @@
using namespace LAMMPS_NS;
using namespace MathConst;
#define MAXLINE 1024
#define DELTA 4
#define PGDELTA 1
#define MAXNEIGH 24

View File

@ -547,6 +547,15 @@ void PairHybrid::init_style()
if (used == 0) error->all(FLERR,"Pair hybrid sub-style is not used");
}
// The GPU library uses global data for each pair style, so the
// same style must not be used multiple times
for (istyle = 0; istyle < nstyles; istyle++) {
bool is_gpu = (((PairHybrid *)styles[istyle])->suffix_flag & Suffix::GPU);
if (multiple[istyle] && is_gpu)
error->all(FLERR,"GPU package styles must not be used multiple times");
}
// check if special_lj/special_coul overrides are compatible
for (istyle = 0; istyle < nstyles; istyle++) {

View File

@ -27,8 +27,6 @@
using namespace LAMMPS_NS;
#define MAXLINE 2048
/* ---------------------------------------------------------------------- */
Run::Run(LAMMPS *lmp) : Command(lmp) {}

View File

@ -412,7 +412,7 @@ void Variable::set(int narg, char **arg)
if (style[ivar] != EQUAL)
error->all(FLERR,"Cannot redefine variable as a different style");
delete [] data[ivar][0];
copy(1,&arg[2],data[ivar]);
data[ivar][0] = utils::strdup(arg[2]);
replaceflag = 1;
} else {
if (nvar == maxvar) grow();
@ -421,7 +421,7 @@ void Variable::set(int narg, char **arg)
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
data[nvar][0] = utils::strdup(arg[2]);
data[nvar][1] = new char[VALUELENGTH];
strcpy(data[nvar][1],"(undefined)");
}
@ -438,7 +438,7 @@ void Variable::set(int narg, char **arg)
if (style[ivar] != ATOM)
error->all(FLERR,"Cannot redefine variable as a different style");
delete [] data[ivar][0];
copy(1,&arg[2],data[ivar]);
data[ivar][0] = utils::strdup(arg[2]);
replaceflag = 1;
} else {
if (nvar == maxvar) grow();
@ -447,7 +447,7 @@ void Variable::set(int narg, char **arg)
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
data[nvar][0] = utils::strdup(arg[2]);
}
// VECTOR
@ -462,7 +462,7 @@ void Variable::set(int narg, char **arg)
if (style[ivar] != VECTOR)
error->all(FLERR,"Cannot redefine variable as a different style");
delete [] data[ivar][0];
copy(1,&arg[2],data[ivar]);
data[ivar][0] = utils::strdup(arg[2]);
replaceflag = 1;
} else {
if (nvar == maxvar) grow();
@ -471,7 +471,7 @@ void Variable::set(int narg, char **arg)
which[nvar] = 0;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
data[nvar][0] = utils::strdup(arg[2]);
}
// PYTHON
@ -488,7 +488,7 @@ void Variable::set(int narg, char **arg)
if (style[ivar] != PYTHON)
error->all(FLERR,"Cannot redefine variable as a different style");
delete [] data[ivar][0];
copy(1,&arg[2],data[ivar]);
data[ivar][0] = utils::strdup(arg[2]);
replaceflag = 1;
} else {
if (nvar == maxvar) grow();
@ -497,7 +497,7 @@ void Variable::set(int narg, char **arg)
which[nvar] = 1;
pad[nvar] = 0;
data[nvar] = new char*[num[nvar]];
copy(1,&arg[2],data[nvar]);
data[nvar][0] = utils::strdup(arg[2]);
data[nvar][1] = new char[VALUELENGTH];
strcpy(data[nvar][1],"(undefined)");
}

View File

@ -7,6 +7,7 @@ add_test(NAME RunLammps
COMMAND $<TARGET_FILE:lmp> -log none -echo none -in in.empty
WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR})
set_tests_properties(RunLammps PROPERTIES
ENVIRONMENT "TSAN_OPTIONS='ignore_noninstrumented_modules=1'"
PASS_REGULAR_EXPRESSION "^LAMMPS \\([0-9]+ [A-Za-z]+ 2[0-9][0-9][0-9]\\)")
if(BUILD_MPI)

View File

@ -297,7 +297,7 @@ TEST_F(GroupTest, Dynamic)
command("group grow delete");
command("variable ramp equal step");
END_HIDE_OUTPUT();
ASSERT_EQ(group->ngroup, 4);
ASSERT_EQ(group->ngroup, 3);
TEST_FAILURE(".*ERROR: Group dynamic cannot reference itself.*",
command("group half dynamic half region top"););

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:02 2021
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:08 2021
epsilon: 1e-11
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
2 2 eam Ni_u3.eam
extract: ! ""
natoms: 32
init_vdwl: 0.713225916338978
init_vdwl: 0.7132259163389776
init_coul: 0
init_stress: ! |2-
2.6556151567263032e+02 2.6660724159085703e+02 2.4812081237895359e+02 6.0264893464561915e+00 -6.6027371615114303e+00 -1.4187579099120772e+01
@ -51,7 +51,7 @@ init_forces: ! |2
30 -8.7442364632334701e-01 -8.5922993943854902e+00 -3.1671240722317777e+00
31 3.1880080741982892e+00 -5.0021160844369490e+00 -2.7083467494366831e-01
32 -1.5986786450380142e+01 -5.5759911113046883e+00 -1.5504124024744577e+00
run_vdwl: 0.669352105052575
run_vdwl: 0.6693521050525746
run_coul: 0
run_stress: ! |2-
2.6541041873586806e+02 2.6644256162479292e+02 2.4793398704069506e+02 5.9903981717659827e+00 -6.6045526000630410e+00 -1.4160943794248436e+01

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:03 2021
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:08 2021
epsilon: 5e-12
skip_tests: single
prerequisites: ! |
@ -14,7 +14,7 @@ pair_coeff: ! |
* * eam/fs AlFe_mm.eam.fs NULL Al
extract: ! ""
natoms: 32
init_vdwl: 15.6583494469006
init_vdwl: 15.658349446900637
init_coul: 0
init_stress: ! |2-
3.1757662346015599e+02 3.1488042003987044e+02 2.9518192213010605e+02 8.0970202601485379e+00 -4.6038792816319125e+00 -1.1521259274290610e+01
@ -51,7 +51,7 @@ init_forces: ! |2
30 -2.0584055270338175e+00 -5.2207163606526530e+00 -4.6304543222177532e+00
31 1.2014109675977875e+00 -6.5554529419137078e+00 2.1453874832093329e+00
32 -1.5986786450380142e+01 -5.5759911113046883e+00 -1.5504124024744577e+00
run_vdwl: 15.6055369596825
run_vdwl: 15.605536959682482
run_coul: 0
run_stress: ! |2-
3.1739734448741643e+02 3.1467775824072135e+02 2.9494960877836593e+02 8.0575431550134713e+00 -4.6069278562709943e+00 -1.1484582135772436e+01

View File

@ -2,7 +2,6 @@
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:20 2021
epsilon: 5e-13
skip_tests: gpu
prerequisites: ! |
pair tersoff
pre_commands: ! |

View File

@ -1,8 +1,7 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:09:20 2021
epsilon: 5e-11
skip_tests: gpu
epsilon: 5e-9
prerequisites: ! |
pair tersoff/zbl
pre_commands: ! |

View File

@ -1,8 +1,7 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:45 2021
epsilon: 5e-14
skip_tests: gpu
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:07 2021
epsilon: 7.5e-14
prerequisites: ! |
atom full
pair lj/cut
@ -17,86 +16,85 @@ pair_coeff: ! |
1 2 lj/cut 0.01 1.75 8
1 3 lj/cut 0.02 2.85 8
1 4 lj/cut 0.0173205 2.8 8
1 5 lj/cut 0.0173205 2.8 8
2 2 lj/cut 0.005 1 8
2 3 lj/cut 0.01 2.1 8
2 4 lj/cut 0.005 0.5 8
2 5 lj/cut 0.00866025 2.05 8
3 3 lj/cut 0.02 3.2 8
3 4 lj/cut 0.0173205 3.15 8
3 5 lj/cut 0.0173205 3.15 8
4 4 lj/cut 0.015 3.1 8
4 5 lj/cut 0.015 3.1 8
5 5 lj/cut 0.015 3.1 8
* * coul/cut
3 3 none
extract: ! ""
natoms: 29
init_vdwl: 749.237031537357
init_coul: -127.494586297384
init_vdwl: 745.8729165577952
init_coul: -138.51281549901438
init_stress: ! |2-
2.1525607963688685e+03 2.1557327421151899e+03 4.6078904881742919e+03 -7.6038602729615206e+02 1.6844266627640316e+01 6.6957549356541904e+02
2.1433945387773583e+03 2.1438418525427405e+03 4.5749493230631624e+03 -7.5161300805564053e+02 2.2812993218099149e+00 6.7751226426357493e+02
init_forces: ! |2
1 -2.1092656751925425e+01 2.6988675971196511e+02 3.3315496490210148e+02
1 -1.9649291084632637e+01 2.6691357149380127e+02 3.3265232188338541e+02
2 1.5859534558925552e+02 1.2807631885753918e+02 -1.8817306436807144e+02
3 -1.3530454720678361e+02 -3.8712939850050407e+02 -1.4565941679363837e+02
3 -1.3530567831970495e+02 -3.8712983044177196e+02 -1.4566129338928388e+02
4 -7.8195539840070643e+00 2.1451967639963558e+00 -5.9041143405612999e+00
5 -2.9163954623584245e+00 -3.3469203159528891e+00 1.2074681739853981e+01
6 -8.2989063447195736e+02 9.6019318342576571e+02 1.1479359629470548e+03
7 5.7874538635311936e+01 -3.3533985555183068e+02 -1.7140659049826711e+03
8 1.4280513303191131e+02 -1.0509295075299345e+02 4.0233495763755388e+02
6 -8.2989098462283039e+02 9.6019325436904921e+02 1.1479348548947717e+03
7 6.6019203897045301e+01 -3.4002739206175022e+02 -1.6963964881803979e+03
8 1.3359110241269076e+02 -9.8018932606492385e+01 3.8583797257557939e+02
9 8.0984846358566287e+01 7.9600519879262990e+01 3.5197302607961126e+02
10 5.3089511229361369e+02 -6.0998478582862322e+02 -1.8376190026890427e+02
10 5.3089359350918085e+02 -6.0998285656765029e+02 -1.8376081267141316e+02
11 -3.3416993160125812e+00 -4.7792759715873308e+00 -1.0199030124309976e+01
12 2.0837574127335213e+01 9.8678992274266921e+00 -6.6547856883058829e+00
12 2.0835873540321462e+01 9.8712254444709888e+00 -6.6533607886298407e+00
13 7.7163253261199216e+00 -3.2213746930547997e+00 -1.5767800864580894e-01
14 -4.6138299494911639e+00 1.1336312962250332e+00 -8.7660603717255832e+00
15 1.6301594996052212e-02 8.3212544078493291e+00 2.0473863128880430e+00
16 4.6221152690976908e+02 -3.3124444344467344e+02 -1.1865036959698600e+03
17 -4.5568726200724092e+02 3.2159231068141992e+02 1.1980747895060381e+03
18 1.2559081069243214e+00 6.6417071126352401e+00 -9.8829024661057083e+00
16 4.6221076301291345e+02 -3.3124285139751140e+02 -1.1865012258764175e+03
17 -4.5606960458862824e+02 3.2217194951510470e+02 1.1974188947377352e+03
18 1.2642503785059469e+00 6.6487748605328285e+00 -9.8967964193854954e+00
19 1.6184514948299680e+00 -1.6594104323923884e+00 5.6561121961572223e+00
20 -3.4526823962510336e+00 -3.1794201827804485e+00 4.2593058942069533e+00
21 -6.9075184494915916e+01 -8.0130885501011278e+01 2.1539206802020570e+02
21 -6.9068952751967188e+01 -8.0138116375988346e+01 2.1538477896980064e+02
22 -1.0659100672969126e+02 -2.5122518903211912e+01 -1.6283765584018167e+02
23 1.7515797811309091e+02 1.0400246780074602e+02 -5.2024018223038112e+01
24 3.4171625917777114e+01 -2.0194713552213176e+02 1.0982444762500101e+02
24 3.4173068949839667e+01 -2.0194449586908348e+02 1.0982812303394964e+02
25 -1.4493448920889654e+02 2.0799041369281703e+01 -1.2091050237305346e+02
26 1.0983611557367320e+02 1.8026252731144598e+02 1.2199612526237862e+01
27 4.8962849172262665e+01 -2.1594262411895852e+02 8.6423873663236122e+01
27 4.8960638929347951e+01 -2.1594451942422438e+02 8.6425489362011916e+01
28 -1.7556665080686602e+02 7.2243004627719102e+01 -1.1798867746650107e+02
29 1.2734696054095977e+02 1.4335517724642804e+02 3.2138218235426962e+01
run_vdwl: 719.583657033589
run_coul: -127.40544584254
run_vdwl: 716.3802195867241
run_coul: -138.41949137400766
run_stress: ! |2-
2.1066855251881925e+03 2.1118463017620702e+03 4.3411898896739367e+03 -7.3939094916433964e+02 3.4004309224046892e+01 6.3091802194682043e+02
2.0979303990927456e+03 2.1001765345686881e+03 4.3095704231054315e+03 -7.3090278796437826e+02 1.9971774954468970e+01 6.3854079301261561e+02
run_forces: ! |2
1 -1.8063372896871861e+01 2.6678105157873705e+02 3.2402996659149238e+02
2 1.5330358878115447e+02 1.2380492572678898e+02 -1.8151333240574237e+02
3 -1.3354888440944052e+02 -3.7931758440809585e+02 -1.4288689214683646e+02
4 -7.7881294728555828e+00 2.1395223669670709e+00 -5.8946911982403414e+00
5 -2.9015406841040750e+00 -3.3190775902304690e+00 1.2028378254388521e+01
6 -8.0488833369818803e+02 9.1802981835006187e+02 1.0244099127408372e+03
7 5.5465440662485150e+01 -3.1049131627300432e+02 -1.5711945284966396e+03
8 1.3295629283853211e+02 -9.6566834572636509e+01 3.9097872808487460e+02
9 7.8594917874857543e+01 7.6787239820699739e+01 3.4114513928465578e+02
10 5.2093084326233679e+02 -5.9871672888830824e+02 -1.8144904320802175e+02
11 -3.3489474910616370e+00 -4.7299066233626039e+00 -1.0148722292306179e+01
12 2.0817110693939330e+01 9.8621648346024777e+00 -6.7801624810903709e+00
13 7.6705047254095406e+00 -3.1868508087899996e+00 -1.5820764985177732e-01
14 -4.5784791310044675e+00 1.1138053855319887e+00 -8.6502065778611730e+00
15 -2.0858645012343142e-03 8.3343285345071436e+00 2.0653788728248101e+00
16 4.3381526742384807e+02 -3.1216388880293573e+02 -1.1109931745334770e+03
17 -4.2715774864577224e+02 3.0231264864237801e+02 1.1227484174344033e+03
18 1.2031503133104606e+00 6.6109154581424221e+00 -9.8172457746610178e+00
19 1.6542029696015907e+00 -1.6435312394752812e+00 5.6634735276627497e+00
20 -3.4397850729417945e+00 -3.1640002526012512e+00 4.1983600861482540e+00
21 -6.8065111490654829e+01 -7.8373161130023504e+01 2.1145341222255522e+02
22 -1.0497862711706458e+02 -2.4878742273401844e+01 -1.5988817620288421e+02
23 1.7253257365878264e+02 1.0200250230245655e+02 -5.1030905034776815e+01
24 3.5759299481226734e+01 -2.0057859782619599e+02 1.1032111627497152e+02
25 -1.4570195714964908e+02 2.0679748005808605e+01 -1.2162175868970056e+02
26 1.0901403460528100e+02 1.7901644500696690e+02 1.2412674623332103e+01
27 4.8035883250870448e+01 -2.1205445789284894e+02 8.4315888267103702e+01
28 -1.7229323056476886e+02 7.0823266235363889e+01 -1.1557273097021344e+02
29 1.2500312314724302e+02 1.4088629633289813e+02 3.1828931397054006e+01
1 -1.6610877533029917e+01 2.6383021332799052e+02 3.2353483319348879e+02
2 1.5330154436698174e+02 1.2380568506592064e+02 -1.8151165007810525e+02
3 -1.3355888938990938e+02 -3.7933844699879148e+02 -1.4289670293816388e+02
4 -7.7881120826204668e+00 2.1395098313701606e+00 -5.8946811108039316e+00
5 -2.9015331574965137e+00 -3.3190957550906650e+00 1.2028358182322860e+01
6 -8.0526764288323773e+02 9.1843645125221315e+02 1.0247463799396066e+03
7 6.3415313059583099e+01 -3.1516725367592539e+02 -1.5545584841600896e+03
8 1.2443895440675962e+02 -8.9966546620018491e+01 3.7528288654519253e+02
9 7.8562021792928846e+01 7.6737772485099740e+01 3.4097956793351517e+02
10 5.2084083656240523e+02 -5.9861234059469723e+02 -1.8138805681750645e+02
11 -3.3489824667518393e+00 -4.7298446901938807e+00 -1.0148711690275450e+01
12 2.0815589888478105e+01 9.8654168641522730e+00 -6.7785848461804141e+00
13 7.6704892224392722e+00 -3.1868449584865046e+00 -1.5821377982473980e-01
14 -4.5785422362324342e+00 1.1138107530543817e+00 -8.6501509346025998e+00
15 -2.1389037192471316e-03 8.3343251445103643e+00 2.0653551218031234e+00
16 4.3381854759590340e+02 -3.1216576452973555e+02 -1.1109981398263690e+03
17 -4.2754398440828430e+02 3.0289566960675381e+02 1.1220989215843697e+03
18 1.2114513551044401e+00 6.6180216089215458e+00 -9.8312525087926925e+00
19 1.6542558848822984e+00 -1.6435031778340830e+00 5.6635143081937196e+00
20 -3.4397798875877807e+00 -3.1640142907323199e+00 4.1983853511543821e+00
21 -6.8058847895033125e+01 -7.8380439852912886e+01 2.1144611822725810e+02
22 -1.0497864675042641e+02 -2.4878735013483009e+01 -1.5988818740798348e+02
23 1.7253258234009186e+02 1.0200252121753527e+02 -5.1030908277968685e+01
24 3.5760727178399790e+01 -2.0057598226072813e+02 1.1032480117076591e+02
25 -1.4570194437506802e+02 2.0679739580300286e+01 -1.2162176434722556e+02
26 1.0901404321356092e+02 1.7901646282634897e+02 1.2412667553028452e+01
27 4.8033700837518651e+01 -2.1205635024551196e+02 8.4317526475629421e+01
28 -1.7229323238986416e+02 7.0823275743089638e+01 -1.1557274387241809e+02
29 1.2500309665422407e+02 1.4088628735688107e+02 3.1828917009980870e+01
...

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:45 2021
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:07 2021
epsilon: 5e-14
skip_tests: gpu intel omp
prerequisites: ! |
@ -31,74 +31,75 @@ pair_coeff: ! |
5 5 lj/cut 0.015 3.1 8
* * coul/cut 1
* * coul/cut 2
2 3 none
extract: ! ""
natoms: 29
init_vdwl: 749.237031537357
init_coul: -127.494586297384
init_vdwl: 695.3728483503972
init_coul: 118.95803822933868
init_stress: ! |2-
2.1525607963688685e+03 2.1557327421151899e+03 4.6078904881742919e+03 -7.6038602729615206e+02 1.6844266627640316e+01 6.6957549356541904e+02
2.1020038760662910e+03 2.1696900014167491e+03 4.2400143530641753e+03 -8.4820804228720078e+02 3.1662186032408862e+01 6.7609982605789560e+02
init_forces: ! |2
1 -2.1092656751925425e+01 2.6988675971196511e+02 3.3315496490210148e+02
2 1.5859534558925552e+02 1.2807631885753918e+02 -1.8817306436807144e+02
1 1.2395744433084418e+02 4.0360040310773837e+02 1.4710329775938777e+02
2 2.0403866219573294e+00 3.7427015227202860e+00 -5.2095053499948687e+00
3 -1.3530454720678361e+02 -3.8712939850050407e+02 -1.4565941679363837e+02
4 -7.8195539840070643e+00 2.1451967639963558e+00 -5.9041143405612999e+00
5 -2.9163954623584245e+00 -3.3469203159528891e+00 1.2074681739853981e+01
6 -8.2989063447195736e+02 9.6019318342576571e+02 1.1479359629470548e+03
7 5.7874538635311936e+01 -3.3533985555183068e+02 -1.7140659049826711e+03
8 1.4280513303191131e+02 -1.0509295075299345e+02 4.0233495763755388e+02
9 8.0984846358566287e+01 7.9600519879262990e+01 3.5197302607961126e+02
10 5.3089511229361369e+02 -6.0998478582862322e+02 -1.8376190026890427e+02
11 -3.3416993160125812e+00 -4.7792759715873308e+00 -1.0199030124309976e+01
12 2.0837574127335213e+01 9.8678992274266921e+00 -6.6547856883058829e+00
13 7.7163253261199216e+00 -3.2213746930547997e+00 -1.5767800864580894e-01
14 -4.6138299494911639e+00 1.1336312962250332e+00 -8.7660603717255832e+00
15 1.6301594996052212e-02 8.3212544078493291e+00 2.0473863128880430e+00
16 4.6221152690976908e+02 -3.3124444344467344e+02 -1.1865036959698600e+03
17 -4.5568726200724092e+02 3.2159231068141992e+02 1.1980747895060381e+03
18 1.2559081069243214e+00 6.6417071126352401e+00 -9.8829024661057083e+00
19 1.6184514948299680e+00 -1.6594104323923884e+00 5.6561121961572223e+00
20 -3.4526823962510336e+00 -3.1794201827804485e+00 4.2593058942069533e+00
4 -8.8457203481064290e+00 2.0775655304814062e+00 -6.4577920902830810e+00
5 -3.8621595793596168e+00 -3.4155992315339034e+00 1.2662823025931699e+01
6 -8.2989063447195713e+02 9.6019318342576582e+02 1.1479359629470543e+03
7 5.7874538635311936e+01 -3.3533985555183062e+02 -1.7140659049826709e+03
8 2.1951760889665016e+02 -2.7745841022748479e+01 7.5004437999744698e+02
9 5.2714873038389127e+00 -8.4861250407806690e+00 6.9224510478542918e+00
10 5.3089511229361347e+02 -6.0998478582862344e+02 -1.8376190026890421e+02
11 -2.8872927401613704e+00 -5.8162507264509147e+00 -1.0845838127234256e+01
12 2.0837574127335216e+01 9.8678992274266957e+00 -6.6547856883058802e+00
13 8.7535743331999196e+00 -3.5826004829028451e+00 -5.0574000969376898e-01
14 -3.5497769084795245e+00 7.9766504428704821e-01 -1.0037637362299094e+01
15 1.9984402152167433e+00 8.5838951595651096e+00 1.4145761197403108e+00
16 4.6221152690976896e+02 -3.3124444344467344e+02 -1.1865036959698600e+03
17 -4.5568726200724080e+02 3.2159231068141997e+02 1.1980747895060381e+03
18 1.2559081069243216e+00 6.6417071126352401e+00 -9.8829024661057083e+00
19 3.1958200177362119e+00 3.7689524813885311e-01 4.2824321381874042e-01
20 -1.2082334569560751e+00 -9.0511517312734613e-01 9.8083091385568755e-01
21 -6.9075184494915916e+01 -8.0130885501011278e+01 2.1539206802020570e+02
22 -1.0659100672969126e+02 -2.5122518903211912e+01 -1.6283765584018167e+02
23 1.7515797811309091e+02 1.0400246780074602e+02 -5.2024018223038112e+01
24 3.4171625917777114e+01 -2.0194713552213176e+02 1.0982444762500101e+02
25 -1.4493448920889654e+02 2.0799041369281703e+01 -1.2091050237305346e+02
26 1.0983611557367320e+02 1.8026252731144598e+02 1.2199612526237862e+01
27 4.8962849172262665e+01 -2.1594262411895852e+02 8.6423873663236122e+01
28 -1.7556665080686602e+02 7.2243004627719102e+01 -1.1798867746650107e+02
29 1.2734696054095977e+02 1.4335517724642804e+02 3.2138218235426962e+01
run_vdwl: 719.583657033589
run_coul: -127.40544584254
22 -1.0570319068625072e+02 -2.6153578761410891e+01 -1.6388724340449593e+02
23 1.7632012115728725e+02 1.0321660965756321e+02 -5.2838552485947986e+01
24 3.4171625917777135e+01 -2.0194713552213176e+02 1.0982444762500104e+02
25 -1.4171132869700503e+02 2.4473995934890809e+01 -1.1380863842227539e+02
26 1.1207773375764390e+02 1.8255009969585140e+02 1.5493459542368809e+01
27 4.8962849172262672e+01 -2.1594262411895849e+02 8.6423873663236122e+01
28 -1.7737980202409483e+02 6.9833302792655687e+01 -1.1687995083239473e+02
29 1.2576338082394257e+02 1.4027600476554844e+02 3.4298300872164091e+01
run_vdwl: 666.6114372300175
run_coul: 119.0349803664172
run_stress: ! |2-
2.1066855251881925e+03 2.1118463017620702e+03 4.3411898896739367e+03 -7.3939094916433964e+02 3.4004309224046892e+01 6.3091802194682043e+02
2.0554653461439952e+03 2.1240816159348624e+03 3.9864296321079441e+03 -8.2113807711720642e+02 4.5860921368817714e+01 6.3795624388863928e+02
run_forces: ! |2
1 -1.8063372896871861e+01 2.6678105157873705e+02 3.2402996659149238e+02
2 1.5330358878115447e+02 1.2380492572678898e+02 -1.8151333240574237e+02
3 -1.3354888440944052e+02 -3.7931758440809585e+02 -1.4288689214683646e+02
4 -7.7881294728555828e+00 2.1395223669670709e+00 -5.8946911982403414e+00
5 -2.9015406841040750e+00 -3.3190775902304690e+00 1.2028378254388521e+01
6 -8.0488833369818803e+02 9.1802981835006187e+02 1.0244099127408372e+03
7 5.5465440662485150e+01 -3.1049131627300432e+02 -1.5711945284966396e+03
8 1.3295629283853211e+02 -9.6566834572636509e+01 3.9097872808487460e+02
9 7.8594917874857543e+01 7.6787239820699739e+01 3.4114513928465578e+02
10 5.2093084326233679e+02 -5.9871672888830824e+02 -1.8144904320802175e+02
11 -3.3489474910616370e+00 -4.7299066233626039e+00 -1.0148722292306179e+01
12 2.0817110693939330e+01 9.8621648346024777e+00 -6.7801624810903709e+00
13 7.6705047254095406e+00 -3.1868508087899996e+00 -1.5820764985177732e-01
14 -4.5784791310044675e+00 1.1138053855319887e+00 -8.6502065778611730e+00
15 -2.0858645012343142e-03 8.3343285345071436e+00 2.0653788728248101e+00
16 4.3381526742384807e+02 -3.1216388880293573e+02 -1.1109931745334770e+03
17 -4.2715774864577224e+02 3.0231264864237801e+02 1.1227484174344033e+03
18 1.2031503133104606e+00 6.6109154581424221e+00 -9.8172457746610178e+00
19 1.6542029696015907e+00 -1.6435312394752812e+00 5.6634735276627497e+00
20 -3.4397850729417945e+00 -3.1640002526012512e+00 4.1983600861482540e+00
21 -6.8065111490654829e+01 -7.8373161130023504e+01 2.1145341222255522e+02
22 -1.0497862711706458e+02 -2.4878742273401844e+01 -1.5988817620288421e+02
23 1.7253257365878264e+02 1.0200250230245655e+02 -5.1030905034776815e+01
24 3.5759299481226734e+01 -2.0057859782619599e+02 1.1032111627497152e+02
25 -1.4570195714964908e+02 2.0679748005808605e+01 -1.2162175868970056e+02
26 1.0901403460528100e+02 1.7901644500696690e+02 1.2412674623332103e+01
27 4.8035883250870448e+01 -2.1205445789284894e+02 8.4315888267103702e+01
28 -1.7229323056476886e+02 7.0823266235363889e+01 -1.1557273097021344e+02
29 1.2500312314724302e+02 1.4088629633289813e+02 3.1828931397054006e+01
1 1.2147752778287347e+02 3.9534374510798301e+02 1.4413605468707195e+02
2 2.0399930128993224e+00 3.7557805682682748e+00 -5.2058063128492336e+00
3 -1.3333096721751764e+02 -3.7844737951764535e+02 -1.4238961467845959e+02
4 -8.8134959904656007e+00 2.0713309772867512e+00 -6.4488585600230390e+00
5 -3.8477726201647444e+00 -3.3895758075040905e+00 1.2617145909886416e+01
6 -8.0167356407303771e+02 9.1511139207343115e+02 1.0260272560535318e+03
7 5.5505611657656395e+01 -3.1051895449278589e+02 -1.5710947343097826e+03
8 2.0529374503578478e+02 -2.0214215494247814e+01 7.2625230302681450e+02
9 5.2759827822743706e+00 -8.5029606929125237e+00 6.9437749095564918e+00
10 5.1965622207475565e+02 -5.9755369618722887e+02 -1.8157960265809501e+02
11 -2.8945778423069450e+00 -5.7662137070620867e+00 -1.0795655996511190e+01
12 2.0805414458419623e+01 9.8601745071951186e+00 -6.7782082590913761e+00
13 8.7071353977142216e+00 -3.5468381013374746e+00 -5.0622413568933977e-01
14 -3.5154376369702902e+00 7.7780954572734984e-01 -9.9213826027447922e+00
15 1.9841048852047882e+00 8.5994997942103542e+00 1.4318674533257378e+00
16 4.3381844145946962e+02 -3.1216471119732176e+02 -1.1109885080754987e+03
17 -4.2715530816964593e+02 3.0229606646197493e+02 1.1227416717947804e+03
18 1.2084471423281700e+00 6.6044276302722391e+00 -9.8277754487894136e+00
19 3.2313284340457584e+00 3.9423765207539685e-01 4.3538203547548804e-01
20 -1.1969830459758257e+00 -8.8960771143457151e-01 9.2526061301410900e-01
21 -6.8060732684000939e+01 -7.8361174093266939e+01 2.1144116321844479e+02
22 -1.0408301224632098e+02 -2.5910595170511762e+01 -1.6092979318531198e+02
23 1.7368084263289987e+02 1.0120586644080414e+02 -5.1841492516928824e+01
24 3.5901478353702402e+01 -2.0053113579605662e+02 1.1040539818330446e+02
25 -1.4257916099779564e+02 2.4374225442971877e+01 -1.1459703108843671e+02
26 1.1121725716987784e+02 1.8123540984908496e+02 1.5706480723289609e+01
27 4.7997433858479745e+01 -2.1209575374436324e+02 8.4297950741699410e+01
28 -1.7410976565710496e+02 6.8409754929264125e+01 -1.1446187451410728e+02
29 1.2345981204292134e+02 1.3785309073312925e+02 3.4004852992123624e+01
...

View File

@ -1,99 +1,99 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:45 2021
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:07 2021
epsilon: 5e-14
skip_tests: gpu
prerequisites: ! |
atom full
pair lj/cut
pair lj96/cut
pre_commands: ! ""
post_commands: ! ""
input_file: in.fourmol
pair_style: hybrid lj/cut 8.0 lj/cut 8.0
pair_style: hybrid lj/cut 8.0 lj96/cut 8.0
pair_coeff: ! |
1 1 lj/cut 1 0.02 2.5 8
1 2 lj/cut 1 0.01 1.75 8
1 3 lj/cut 1 0.02 2.85 8
1 4 lj/cut 1 0.0173205 2.8 8
1 5 lj/cut 1 0.0173205 2.8 8
2 2 lj/cut 1 0.005 1 8
2 3 lj/cut 1 0.01 2.1 8
2 4 lj/cut 2 0.005 0.5 8
2 5 lj/cut 2 0.00866025 2.05 8
3 3 lj/cut 2 0.02 3.2 8
3 4 lj/cut 2 0.0173205 3.15 8
3 5 lj/cut 2 0.0173205 3.15 8
4 4 lj/cut 2 0.015 3.1 8
4 5 lj/cut 2 0.015 3.1 8
5 5 lj/cut 2 0.015 3.1 8
1 1 lj/cut 0.02 2.5 8
1 2 lj/cut 0.01 1.75 8
1 3 lj/cut 0.02 2.85 8
1 4 lj/cut 0.0173205 2.8 8
1 5 none
2 2 lj/cut 0.005 1 8
2 3 lj/cut 0.01 2.1 8
2 4 lj96/cut 0.005 0.5 8
2 5 lj96/cut 0.00866025 2.05 8
3 3 lj96/cut 0.02 3.2 8
3 4 lj96/cut 0.0173205 3.15 8
3 5 lj96/cut 0.0173205 3.15 8
4 4 lj96/cut 0.015 3.1 8
4 5 none
5 5 lj96/cut 0.015 3.1 8
extract: ! ""
natoms: 29
init_vdwl: 749.237031537357
init_vdwl: 652.4450882982227
init_coul: 0
init_stress: ! |2-
2.1793853434038251e+03 2.1988955172192786e+03 4.6653977523326275e+03 -7.5956547636050641e+02 2.4751536734034119e+01 6.6652028436400667e+02
1.6199549089538609e+03 1.8652222871458566e+03 4.3555170935393007e+03 -9.5632547516887212e+02 -2.2845869578774162e+02 6.9982627975055175e+02
init_forces: ! |2
1 -2.3333390280895383e+01 2.6994567613322732e+02 3.3272827850356794e+02
2 1.5828554630414868e+02 1.3025008843535846e+02 -1.8629682358935690e+02
3 -1.3528903738169089e+02 -3.8704313358320059e+02 -1.4568978437133126e+02
4 -7.8711096705893420e+00 2.1350518625373542e+00 -5.5954532185548151e+00
5 -2.5176757268228527e+00 -4.0521510681020221e+00 1.2152704057877008e+01
6 -8.3190662465252262e+02 9.6394149462625705e+02 1.1509093566509250e+03
7 5.8203388932513640e+01 -3.3608997951626816e+02 -1.7179617996573054e+03
8 1.4451392284291583e+02 -1.0927475861089046e+02 3.9990593492420493e+02
9 7.9156945283097571e+01 8.5273009783986680e+01 3.5032175698445252e+02
10 5.3118875219105416e+02 -6.1040990859419469e+02 -1.8355872642619312e+02
11 -2.3530157267965532e+00 -5.9077640073819744e+00 -9.6590723955414326e+00
12 1.7527155146800411e+01 1.0633119523437488e+01 -7.9254398064483143e+00
13 8.0986409579532861e+00 -3.2098088264781510e+00 -1.4896399843793828e-01
14 -3.3852721292265100e+00 6.8636181241903504e-01 -8.7507190862499726e+00
15 -2.0454999188605286e-01 8.4846165523049883e+00 3.0131615419406708e+00
16 4.6326310311812085e+02 -3.3087715736498177e+02 -1.1893024561782547e+03
17 -4.5334300923766710e+02 3.1554283255882558e+02 1.2058417793481196e+03
18 -1.8862623280672657e-02 -3.3402010907951640e-02 3.1000479299095243e-02
19 3.1843079640570080e-04 -2.3918627818763423e-04 1.7427252638513441e-03
20 -9.9760831209706009e-04 -1.0209184826753088e-03 3.6910972636601454e-04
21 -7.1566125273265527e+01 -8.1615678329920812e+01 2.2589561408339878e+02
22 -1.0808835729977487e+02 -2.6193787235943859e+01 -1.6957904943161384e+02
23 1.7964455474779510e+02 1.0782097695276961e+02 -5.6305786479140700e+01
24 3.6591406576585001e+01 -2.1181587621785556e+02 1.1218301872572404e+02
25 -1.4851489147738829e+02 2.3907118122949107e+01 -1.2485634873166315e+02
26 1.1191129453598201e+02 1.8789774664223359e+02 1.2650137204319886e+01
27 5.1810388677546058e+01 -2.2705458321213791e+02 9.0849111082069683e+01
28 -1.8041307121444072e+02 7.7534042932772934e+01 -1.2206956760706599e+02
29 1.2861057254925004e+02 1.4952711274394565e+02 3.1216025556267869e+01
run_vdwl: 719.443281677466
1 -2.3333467289742931e+01 2.6993142283476851e+02 3.3272495963292283e+02
2 1.5828552013445056e+02 1.3025008546972211e+02 -1.8629688302475225e+02
3 -1.3529016849461223e+02 -3.8704356552446848e+02 -1.4569166096697677e+02
4 -7.8711116846129050e+00 2.1350517679284451e+00 -5.5954561911890046e+00
5 -2.5177006460693390e+00 -4.0521653208614632e+00 1.2152678277353530e+01
6 -8.3190697480339566e+02 9.6394156556954056e+02 1.1509082485986419e+03
7 6.4961865086373535e+01 -3.3998877273576284e+02 -1.7032949977108992e+03
8 1.3800067755917669e+02 -1.0575764259058835e+02 3.8568183849544192e+02
9 7.9156940582018805e+01 8.5272978047670051e+01 3.5032172427046436e+02
10 5.3118723340662132e+02 -6.1040797933322176e+02 -1.8355763882870201e+02
11 -2.3531003777844695e+00 -5.9077049537176469e+00 -9.6590265504356907e+00
12 1.7525454559786660e+01 1.0636445740481784e+01 -7.9240149067722738e+00
13 8.0985903919880737e+00 -3.2096212808671210e+00 -1.4884740337815178e-01
14 -3.3853022166233191e+00 6.8640988271648729e-01 -8.7507072432538457e+00
15 -2.0454983537269980e-01 8.4846157143527687e+00 3.0131531921339136e+00
16 4.6326233922126522e+02 -3.3087556531781973e+02 -1.1892999860848122e+03
17 -4.5359533332836713e+02 3.1593155242296575e+02 1.2054040116538242e+03
18 -1.2313292578060062e-02 -2.5378393942268991e-02 2.2968315649798128e-02
19 3.0439100375925543e-04 -2.4779478988349023e-04 1.7258398467618651e-03
20 -9.8045055969651082e-04 -1.0028949153285463e-03 3.5715001758946177e-04
21 -5.7186294103147572e+00 -6.6344147796080684e+00 1.8654007864095536e+01
22 -8.9567671655515344e+00 -2.1701845330290590e+00 -1.4052631842883260e+01
23 1.4673371058172327e+01 8.8071981142288021e+00 -4.5994772330864269e+00
24 3.2769508891728725e+00 -1.7316771489185900e+01 9.3887574366841235e+00
25 -1.2406052232816045e+01 1.9955673026898786e+00 -1.0432202322872895e+01
26 9.1216838958879958e+00 1.5316110435596807e+01 1.0304939537049307e+00
27 3.8455233865293490e+00 -1.8678583225803411e+01 7.2399697763695485e+00
28 -1.4536949587460585e+01 6.2480560831561052e+00 -9.8361741655762192e+00
29 1.0692946253413785e+01 1.2432540782763471e+01 2.5948100184389560e+00
run_vdwl: 624.1198434527859
run_coul: 0
run_stress: ! |2-
2.1330153957371017e+03 2.1547728168285512e+03 4.3976497417710170e+03 -7.3873328448298525e+02 4.1743821105367225e+01 6.2788012209191243e+02
1.5811055300513408e+03 1.8260026652593124e+03 4.0928122296059910e+03 -9.3274940961565028e+02 -2.0869586127604293e+02 6.5975565836651401e+02
run_forces: ! |2
1 -2.0299419751359796e+01 2.6686193378822901e+02 3.2358785870694004e+02
2 1.5298617928491248e+02 1.2596516341409225e+02 -1.7961292655338647e+02
3 -1.3353630652439793e+02 -3.7923748696131213e+02 -1.4291839793625775e+02
4 -7.8374717836161771e+00 2.1276610789823414e+00 -5.5845014473820624e+00
5 -2.5014258630866699e+00 -4.0250131424704385e+00 1.2103512372025625e+01
6 -8.0681462887292412e+02 9.2165637136761688e+02 1.0270795806932804e+03
7 5.5780279349903594e+01 -3.1117530951561696e+02 -1.5746991292869038e+03
8 1.3452983055534955e+02 -1.0064659350255846e+02 3.8851791558207583e+02
9 7.6746213883426122e+01 8.2501469877402286e+01 3.3944351200617950e+02
10 5.2128033527695618e+02 -5.9920098848285909e+02 -1.8126029815043356e+02
11 -2.3573118090915246e+00 -5.8616944550888350e+00 -9.6049808811326240e+00
12 1.7503975847822890e+01 1.0626930310560827e+01 -8.0603160272054950e+00
13 8.0530313322973104e+00 -3.1756495170399104e+00 -1.4618315664740525e-01
14 -3.3416065168069760e+00 6.6492606336082127e-01 -8.6345131440469647e+00
15 -2.2253843262374870e-01 8.5025661635348619e+00 3.0369735873081569e+00
16 4.3476311264989528e+02 -3.1171086735551455e+02 -1.1135217194927461e+03
17 -4.2469846140777202e+02 2.9615411776780638e+02 1.1302573488400678e+03
18 -1.8849981672825901e-02 -3.3371636477421286e-02 3.0986293443778724e-02
19 3.0940277774413972e-04 -2.4634536455373055e-04 1.7433360008861018e-03
20 -9.8648131277150768e-04 -1.0112587134526944e-03 3.6932948773965422e-04
21 -7.0490745283106705e+01 -7.9749153581142281e+01 2.2171003384646417e+02
22 -1.0638717908920059e+02 -2.5949502163177943e+01 -1.6645589526812256e+02
23 1.7686797710735050e+02 1.0571018898885526e+02 -5.5243337084099444e+01
24 3.8206017656281247e+01 -2.1022820141992992e+02 1.1260711266189016e+02
25 -1.4918881473530885e+02 2.3762151395876515e+01 -1.2549188139143089e+02
26 1.1097059498808326e+02 1.8645503634228552e+02 1.2861559677865269e+01
27 5.0800844984832011e+01 -2.2296588090685447e+02 8.8607367716323097e+01
28 -1.7694190504288861e+02 7.6029945485181912e+01 -1.1950518150242056e+02
29 1.2614894925528131e+02 1.4694250820033537e+02 3.0893386672863009e+01
1 -2.0299545735132892e+01 2.6684807204226053e+02 3.2358468359237850e+02
2 1.5298613010577799e+02 1.2596515036763115e+02 -1.7961295708782035e+02
3 -1.3353752998744326e+02 -3.7923796991710333e+02 -1.4292028045209116e+02
4 -7.8374742335759366e+00 2.1276610876297597e+00 -5.5845047399918775e+00
5 -2.5014507165598512e+00 -4.0250273077928105e+00 1.2103486006755219e+01
6 -8.0709614974024726e+02 9.2196952917801661e+02 1.0273844835710092e+03
7 6.2368964790102126e+01 -3.1505972760991460e+02 -1.5609074758304780e+03
8 1.2853739032019485e+02 -9.7465044500250556e+01 3.7497119240743029e+02
9 7.6715909814250395e+01 8.2459997325499288e+01 3.3929722449258207e+02
10 5.2123917690492942e+02 -5.9914969452129674e+02 -1.8122078898785443e+02
11 -2.3573941156945706e+00 -5.8616368783617920e+00 -9.6049336125719105e+00
12 1.7502383808896312e+01 1.0630235744520755e+01 -8.0588289450962680e+00
13 8.0529802801748964e+00 -3.1754616291151323e+00 -1.4606677296755816e-01
14 -3.3416363973176253e+00 6.6497430894639287e-01 -8.6345016037082427e+00
15 -2.2253805990966902e-01 8.5025662406844038e+00 3.0369660480415672e+00
16 4.3476506269170443e+02 -3.1171159958023998e+02 -1.1135242200065077e+03
17 -4.2495337371832613e+02 2.9654505216420324e+02 1.1298239214745126e+03
18 -1.2304275579819248e-02 -2.5351950229154721e-02 2.2962838569349546e-02
19 2.9523284665120854e-04 -2.5507040924857842e-04 1.7263527188201720e-03
20 -9.6972071754998339e-04 -9.9365617456234753e-04 3.5770286471788313e-04
21 -5.7779283683910396e+00 -6.6373783567402054e+00 1.8717023177597437e+01
22 -9.0188479017520962e+00 -2.2015411814231656e+00 -1.4100630927846634e+01
23 1.4794749299535622e+01 8.8415202426425061e+00 -4.6144921197234865e+00
24 3.4171983592341331e+00 -1.7549081284618467e+01 9.5729670271818517e+00
25 -1.2674530181010821e+01 2.0106979870159911e+00 -1.0661184439552951e+01
26 9.2499114441813344e+00 1.5533293107821931e+01 1.0752648395769842e+00
27 3.9098603108147572e+00 -1.8759688298395208e+01 7.2506773670471274e+00
28 -1.4631015477945336e+01 6.2801033491768763e+00 -9.8799560206646078e+00
29 1.0722675266961424e+01 1.2481598596015642e+01 2.6278846486097209e+00
...

View File

@ -0,0 +1,99 @@
---
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:08 2021
epsilon: 5e-14
skip_tests: gpu
prerequisites: ! |
atom full
pair lj/cut
pre_commands: ! ""
post_commands: ! ""
input_file: in.fourmol
pair_style: hybrid lj/cut 8.0 lj/cut 8.0
pair_coeff: ! |
1 1 lj/cut 1 0.02 2.5 8
1 2 lj/cut 1 0.01 1.75 8
1 3 lj/cut 1 0.02 2.85 8
1 4 lj/cut 1 0.0173205 2.8 8
1 5 lj/cut 1 0.0173205 2.8 8
2 2 lj/cut 1 0.005 1 8
2 3 none
2 4 lj/cut 2 0.005 0.5 8
2 5 lj/cut 2 0.00866025 2.05 8
3 3 lj/cut 2 0.02 3.2 8
3 4 lj/cut 2 0.0173205 3.15 8
3 5 lj/cut 2 0.0173205 3.15 8
4 4 none
4 5 lj/cut 2 0.015 3.1 8
5 5 lj/cut 2 0.015 3.1 8
extract: ! ""
natoms: 29
init_vdwl: 695.3923515458562
init_coul: 0
init_stress: ! |2-
2.0701694962880379e+03 2.1161697936676396e+03 4.2064778387649758e+03 -8.5392301766114281e+02 5.8381311611070338e+01 6.7526909503583579e+02
init_forces: ! |2
1 1.3470193899351008e+02 3.9971667505559770e+02 1.4653534158640173e+02
2 -2.5920146506056333e-04 -3.7955921659898438e-03 1.6073626919112927e-04
3 -1.3528903738169089e+02 -3.8704313358320059e+02 -1.4568978437133126e+02
4 -7.8050743980642938e+00 2.1869547823331810e+00 -5.5398195700937443e+00
5 -2.3463115265684147e+00 -3.6110080311379984e+00 1.1991043207479338e+01
6 -8.3190662465252262e+02 9.6394149462625705e+02 1.1509093566509250e+03
7 5.8196056725569250e+01 -3.3609532232737348e+02 -1.7179637678770343e+03
8 2.2371752997318714e+02 -2.4044581303870338e+01 7.5018536133648945e+02
9 -1.9409760262620549e-03 7.2485476558358224e-03 5.8859368216628563e-03
10 5.3118875219105416e+02 -6.1040990859419469e+02 -1.8355872642619312e+02
11 -2.3694888595131456e+00 -5.8683646131501845e+00 -9.6273569602169200e+00
12 1.7527155146800411e+01 1.0633119523437488e+01 -7.9254398064483143e+00
13 8.1017386753150031e+00 -3.2103099553624541e+00 -1.4999876338278073e-01
14 -3.3827233651141047e+00 6.8626763970182614e-01 -8.7541119515926020e+00
15 -2.2835033173800551e-01 8.4695347876005833e+00 3.0205948609978988e+00
16 4.6326310311812085e+02 -3.3087715736498177e+02 -1.1893024561782547e+03
17 -4.5334049545249684e+02 3.1553975228548006e+02 1.2058468481979494e+03
18 -1.4044201506550015e-02 -2.4978926457057571e-02 2.7899849198216014e-02
19 5.7908066872909211e-04 2.3580122518177659e-05 9.4432839946607169e-04
20 -7.9929144000317922e-04 -8.5923998915859100e-04 9.3688470857894682e-05
21 -7.1566125273265527e+01 -8.1615678329920812e+01 2.2589561408339878e+02
22 -1.0808832728447032e+02 -2.6193822094038484e+01 -1.6957908491609356e+02
23 1.7964458878508086e+02 1.0782095393625858e+02 -5.6305810335528790e+01
24 3.6591406576585001e+01 -2.1181587621785556e+02 1.1218301872572404e+02
25 -1.4851247198601720e+02 2.3908563011127814e+01 -1.2485206982576771e+02
26 1.1191155617819715e+02 1.8789792679177191e+02 1.2650470167620387e+01
27 5.1810388677546058e+01 -2.2705458321213791e+02 9.0849111082069683e+01
28 -1.8041314710135907e+02 7.7533961534478649e+01 -1.2206952271304674e+02
29 1.2861042716162333e+02 1.4952690328401346e+02 3.1216205256769118e+01
run_vdwl: 666.4782147617275
run_coul: 0
run_stress: ! |2-
2.0230459789503245e+03 2.0702509496053467e+03 3.9518738620330496e+03 -8.2693736200387241e+02 7.2394119974104541e+01 6.3708810010786885e+02
run_forces: ! |2
1 1.3222884765649096e+02 3.9147464530754542e+02 1.4358022294156322e+02
2 -3.0864727869908275e-04 -3.8828117503160744e-03 1.7172318042670622e-04
3 -1.3332620470087795e+02 -3.7836092101534376e+02 -1.4242041283928734e+02
4 -7.7728646036501301e+00 2.1785693730418103e+00 -5.5299592481691731e+00
5 -2.3308414297947593e+00 -3.5861079994724223e+00 1.1943272718268586e+01
6 -8.0362787449170855e+02 9.1873908852320062e+02 1.0286784127827473e+03
7 5.5811219820327509e+01 -3.1120381969697877e+02 -1.5746114945931058e+03
8 2.0944769168608951e+02 -1.6467844308363212e+01 7.2633940157846291e+02
9 -1.8576332682468917e-03 7.0788521064532543e-03 5.6952330037911550e-03
10 5.1993646731938259e+02 -5.9797705136296099e+02 -1.8137145374090557e+02
11 -2.3735947029864999e+00 -5.8227345663909000e+00 -9.5735721932593005e+00
12 1.7496750082385656e+01 1.0626428651973894e+01 -8.0588816332352362e+00
13 8.0561193459222018e+00 -3.1761461937053199e+00 -1.4721657561379659e-01
14 -3.3390327331317540e+00 6.6483212295920502e-01 -8.6379436016166640e+00
15 -2.4691219203353357e-01 8.4871512091352503e+00 3.0445957174405320e+00
16 4.3476322109548175e+02 -3.1171106479661643e+02 -1.1135217352066604e+03
17 -4.2469483753690730e+02 2.9614920041309318e+02 1.1302640053436066e+03
18 -1.4041685725000265e-02 -2.4956350669900162e-02 2.7904010910612693e-02
19 5.7049372682756931e-04 1.6554736417528457e-05 9.4341990684141492e-04
20 -7.8849148841722897e-04 -8.4994368910122327e-04 9.4566031895818034e-05
21 -7.0490744649332854e+01 -7.9749153638697052e+01 2.2171003329264727e+02
22 -1.0638714881331208e+02 -2.5949537046722948e+01 -1.6645593048575904e+02
23 1.7686801069212282e+02 1.0571016567965997e+02 -5.5243360803916154e+01
24 3.8206094080913594e+01 -2.1022820935692107e+02 1.1260716750436217e+02
25 -1.4918646093941553e+02 2.3763610305920544e+01 -1.2548765023777884e+02
26 1.1097085296101896e+02 1.8645520999549970e+02 1.2861892631557549e+01
27 5.0800842221321886e+01 -2.2296588391583720e+02 8.8607366497542188e+01
28 -1.7694198089845398e+02 7.6029863930484495e+01 -1.1950513646089449e+02
29 1.2614880669418112e+02 1.4694230208476219e+02 3.0893567658970003e+01
...

View File

@ -2,7 +2,6 @@
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:45 2021
epsilon: 7e-14
skip_tests: gpu
prerequisites: ! |
atom full
pair lj/charmm/coul/charmm

View File

@ -1,6 +1,6 @@
---
lammps_version: 10 Feb 2021
date_generated: Fri Feb 26 23:08:56 2021
lammps_version: 8 Apr 2021
date_generated: Mon Apr 19 08:49:08 2021
epsilon: 5e-14
prerequisites: ! |
atom full
@ -15,8 +15,8 @@ pair_coeff: ! |
* * python py_pot.LJCutFourMol 1 2 3 4 5
extract: ! ""
natoms: 29
init_vdwl: 769.435514792906
init_coul: -127.494586297384
init_vdwl: 769.4355147929056
init_coul: -127.49458629738443
init_stress: ! |2-
2.2678521911648518e+03 2.2247029630324569e+03 4.6668446509523028e+03 -7.1863043563709800e+02 6.6980305204573611e+01 6.6425623166019000e+02
init_forces: ! |2
@ -49,8 +49,8 @@ init_forces: ! |2
27 5.8858131514524516e+01 -2.5934658519982310e+02 1.0378659589349859e+02
28 -2.1004851662389484e+02 8.7061736878465183e+01 -1.4131944246679177e+02
29 1.5193395589309270e+02 1.7194075642255194e+02 3.8106025733269696e+01
run_vdwl: 738.975921529802
run_coul: -127.388878149465
run_vdwl: 738.9759215298017
run_coul: -127.38887814946516
run_stress: ! |2-
2.2173727908784563e+03 2.1780484935540412e+03 4.3978310588967724e+03 -6.9936430337437957e+02 8.2321786589523725e+01 6.2596079360064653e+02
run_forces: ! |2

View File

@ -48,7 +48,7 @@
using LAMMPS_NS::utils::split_words;
static void create_molecule_files()
static void create_molecule_files(const std::string & h2o_filename, const std::string & co2_filename)
{
// create molecule files
const char h2o_file[] = "# Water molecule. SPC/E model.\n\n3 atoms\n2 bonds\n1 angles\n\n"
@ -73,18 +73,16 @@ static void create_molecule_files()
"Special Bond Counts\n\n1 2 0 0\n2 1 1 0\n3 1 1 0\n\n"
"Special Bonds\n\n1 2 3\n2 1 3\n3 1 2\n\n";
FILE *fp = fopen("tmp.h2o.mol", "w");
FILE *fp = fopen(h2o_filename.c_str(), "w");
if (fp) {
fputs(h2o_file, fp);
fclose(fp);
}
rename("tmp.h2o.mol", "h2o.mol");
fp = fopen("tmp.co2.mol", "w");
fp = fopen(co2_filename.c_str(), "w");
if (fp) {
fputs(co2_file, fp);
fclose(fp);
}
rename("tmp.co2.mol", "co2.mol");
}
// whether to print verbose output (i.e. not capturing LAMMPS screen output).
@ -97,6 +95,15 @@ using ::testing::Eq;
class AtomStyleTest : public LAMMPSTest {
protected:
static void SetUpTestSuite() {
create_molecule_files("h2o.mol", "co2.mol");
}
static void TearDownTestSuite() {
remove("h2o.mol");
remove("co2.mol");
}
void SetUp() override
{
testbinary = "AtomStyleTest";
@ -2618,7 +2625,6 @@ TEST_F(AtomStyleTest, body_nparticle)
TEST_F(AtomStyleTest, template)
{
if (!LAMMPS::is_installed_pkg("MOLECULE")) GTEST_SKIP();
create_molecule_files();
BEGIN_HIDE_OUTPUT();
command("molecule twomols h2o.mol co2.mol offset 2 1 1 0 0");
command("atom_style template twomols");
@ -3014,7 +3020,6 @@ TEST_F(AtomStyleTest, template)
TEST_F(AtomStyleTest, template_charge)
{
if (!LAMMPS::is_installed_pkg("MOLECULE")) GTEST_SKIP();
create_molecule_files();
BEGIN_HIDE_OUTPUT();
command("molecule twomols h2o.mol co2.mol offset 2 1 1 0 0");
command("atom_style hybrid template twomols charge");

View File

@ -35,7 +35,7 @@ using utils::split_words;
#define test_name test_info_->name()
static void create_molecule_files()
static void create_molecule_files(const std::string & h2o_filename, const std::string & co2_filename)
{
// create molecule files
const char h2o_file[] = "# Water molecule. SPC/E model.\n\n3 atoms\n2 bonds\n1 angles\n\n"
@ -60,18 +60,16 @@ static void create_molecule_files()
"Special Bond Counts\n\n1 2 0 0\n2 1 1 0\n3 1 1 0\n\n"
"Special Bonds\n\n1 2 3\n2 1 3\n3 1 2\n\n";
FILE *fp = fopen("tmp.h2o.mol", "w");
FILE *fp = fopen(h2o_filename.c_str(), "w");
if (fp) {
fputs(h2o_file, fp);
fclose(fp);
}
rename("tmp.h2o.mol", "h2o.mol");
fp = fopen("tmp.co2.mol", "w");
fp = fopen(co2_filename.c_str(), "w");
if (fp) {
fputs(co2_file, fp);
fclose(fp);
}
rename("tmp.co2.mol", "co2.mol");
}
// whether to print verbose output (i.e. not capturing LAMMPS screen output).
@ -79,26 +77,30 @@ bool verbose = false;
class MoleculeFileTest : public LAMMPSTest {
protected:
static void SetUpTestSuite() {
create_molecule_files("moltest.h2o.mol", "moltest.co2.mol");
}
static void TearDownTestSuite() {
remove("moltest.h2o.mol");
remove("moltest.co2.mol");
}
void SetUp() override
{
testbinary = "MoleculeFileTest";
LAMMPSTest::SetUp();
ASSERT_NE(lmp, nullptr);
BEGIN_HIDE_OUTPUT();
create_molecule_files();
END_HIDE_OUTPUT();
}
void TearDown() override
{
LAMMPSTest::TearDown();
remove("h2o.mol");
remove("co2.mol");
}
void run_mol_cmd(const std::string &name, const std::string &args, const std::string &content)
{
std::string file = name + ".mol";
std::string file = fmt::format("moltest_{}.mol", name);
FILE *fp = fopen(file.c_str(), "w");
fputs(content.c_str(), fp);
fclose(fp);
@ -195,7 +197,7 @@ TEST_F(MoleculeFileTest, twomols)
TEST_F(MoleculeFileTest, twofiles)
{
BEGIN_CAPTURE_OUTPUT();
command("molecule twomols h2o.mol co2.mol offset 2 1 1 0 0");
command("molecule twomols moltest.h2o.mol moltest.co2.mol offset 2 1 1 0 0");
auto output = END_CAPTURE_OUTPUT();
ASSERT_THAT(output, MatchesRegex(".*Read molecule template twomols:.*1 molecules.*3 atoms "
"with max type 2.*2 bonds with max type 1.*"

View File

@ -42,6 +42,9 @@ using ::testing::MatchesRegex;
auto mesg = ::testing::internal::GetCapturedStdout(); \
ASSERT_THAT(mesg, MatchesRegex(errmsg)); \
} \
else { \
std::cerr << "[ ] [ INFO ] Skipping death test (no exception support) \n"; \
} \
}
// whether to print verbose output (i.e. not capturing LAMMPS screen output).