From b92fa00337d0f3af54634fae3c7343e9db4e3a88 Mon Sep 17 00:00:00 2001 From: sjplimp <sjplimp@f3b2605a-c512-4ea7-a41b-209d697bcdaa> Date: Thu, 27 Jun 2013 20:15:36 +0000 Subject: [PATCH] git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@10104 f3b2605a-c512-4ea7-a41b-209d697bcdaa --- src/MANYBODY/pair_adp.cpp | 1 + src/MANYBODY/pair_airebo.cpp | 1 + src/MANYBODY/pair_bop.cpp | 2 ++ src/MANYBODY/pair_comb.cpp | 1 + src/MANYBODY/pair_eam.cpp | 1 + src/MANYBODY/pair_eam_alloy.cpp | 1 + src/MANYBODY/pair_eam_fs.cpp | 1 + src/MANYBODY/pair_eim.cpp | 1 + src/MANYBODY/pair_lcbop.cpp | 1 + src/MANYBODY/pair_sw.cpp | 1 + src/MANYBODY/pair_tersoff.cpp | 1 + src/MEAM/pair_meam.cpp | 1 + src/REAX/pair_reax.cpp | 1 + src/USER-MISC/pair_edip.cpp | 1 + src/USER-MISC/pair_meam_spline.cpp | 1 + src/USER-MISC/pair_meam_sw_spline.cpp | 1 + src/USER-MISC/pair_tersoff_table.cpp | 1 + src/USER-REAXC/pair_reax_c.cpp | 1 + src/pair.cpp | 19 ++++++++++++++++++- src/pair.h | 1 + 20 files changed, 38 insertions(+), 1 deletion(-) diff --git a/src/MANYBODY/pair_adp.cpp b/src/MANYBODY/pair_adp.cpp index 90d6eab223..4939965528 100644 --- a/src/MANYBODY/pair_adp.cpp +++ b/src/MANYBODY/pair_adp.cpp @@ -66,6 +66,7 @@ PairADP::PairADP(LAMMPS *lmp) : Pair(lmp) single_enable = 0; one_coeff = 1; + manybody_flag = 1; } /* ---------------------------------------------------------------------- diff --git a/src/MANYBODY/pair_airebo.cpp b/src/MANYBODY/pair_airebo.cpp index 28939dbeb3..8665b736a9 100644 --- a/src/MANYBODY/pair_airebo.cpp +++ b/src/MANYBODY/pair_airebo.cpp @@ -58,6 +58,7 @@ PairAIREBO::PairAIREBO(LAMMPS *lmp) : Pair(lmp) maxpage = 0; pages = NULL; nC = nH = NULL; + manybody_flag = 1; } /* ---------------------------------------------------------------------- diff --git a/src/MANYBODY/pair_bop.cpp b/src/MANYBODY/pair_bop.cpp index a66fa34d41..3410e6c3f2 100644 --- a/src/MANYBODY/pair_bop.cpp +++ b/src/MANYBODY/pair_bop.cpp @@ -62,6 +62,8 @@ PairBOP::PairBOP(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; one_coeff = 1; + manybody_flag = 1; + map = NULL; pi_a = NULL; pro_delta = NULL; diff --git a/src/MANYBODY/pair_comb.cpp b/src/MANYBODY/pair_comb.cpp index f6170bdf6c..2a071b91ad 100644 --- a/src/MANYBODY/pair_comb.cpp +++ b/src/MANYBODY/pair_comb.cpp @@ -50,6 +50,7 @@ PairComb::PairComb(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nmax = 0; NCo = NULL; diff --git a/src/MANYBODY/pair_eam.cpp b/src/MANYBODY/pair_eam.cpp index 5e5f8f3930..629620101e 100644 --- a/src/MANYBODY/pair_eam.cpp +++ b/src/MANYBODY/pair_eam.cpp @@ -37,6 +37,7 @@ using namespace LAMMPS_NS; PairEAM::PairEAM(LAMMPS *lmp) : Pair(lmp) { restartinfo = 0; + manybody_flag = 1; nmax = 0; rho = NULL; diff --git a/src/MANYBODY/pair_eam_alloy.cpp b/src/MANYBODY/pair_eam_alloy.cpp index 318d6421e6..6e46f6edb9 100644 --- a/src/MANYBODY/pair_eam_alloy.cpp +++ b/src/MANYBODY/pair_eam_alloy.cpp @@ -33,6 +33,7 @@ using namespace LAMMPS_NS; PairEAMAlloy::PairEAMAlloy(LAMMPS *lmp) : PairEAM(lmp) { one_coeff = 1; + manybody_flag = 1; } /* ---------------------------------------------------------------------- diff --git a/src/MANYBODY/pair_eam_fs.cpp b/src/MANYBODY/pair_eam_fs.cpp index 875822fd5c..80f4239928 100644 --- a/src/MANYBODY/pair_eam_fs.cpp +++ b/src/MANYBODY/pair_eam_fs.cpp @@ -33,6 +33,7 @@ using namespace LAMMPS_NS; PairEAMFS::PairEAMFS(LAMMPS *lmp) : PairEAM(lmp) { one_coeff = 1; + manybody_flag = 1; } /* ---------------------------------------------------------------------- diff --git a/src/MANYBODY/pair_eim.cpp b/src/MANYBODY/pair_eim.cpp index f4418a25d2..f4f3fcc653 100644 --- a/src/MANYBODY/pair_eim.cpp +++ b/src/MANYBODY/pair_eim.cpp @@ -39,6 +39,7 @@ PairEIM::PairEIM(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; setfl = NULL; nmax = 0; diff --git a/src/MANYBODY/pair_lcbop.cpp b/src/MANYBODY/pair_lcbop.cpp index 0de291b286..06f04b1f2f 100644 --- a/src/MANYBODY/pair_lcbop.cpp +++ b/src/MANYBODY/pair_lcbop.cpp @@ -46,6 +46,7 @@ using namespace MathConst; PairLCBOP::PairLCBOP(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; one_coeff = 1; + manybody_flag = 1; ghostneigh = 1; maxlocal = 0; diff --git a/src/MANYBODY/pair_sw.cpp b/src/MANYBODY/pair_sw.cpp index 7af668d37f..5efc5b7c64 100755 --- a/src/MANYBODY/pair_sw.cpp +++ b/src/MANYBODY/pair_sw.cpp @@ -43,6 +43,7 @@ PairSW::PairSW(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nelements = 0; elements = NULL; diff --git a/src/MANYBODY/pair_tersoff.cpp b/src/MANYBODY/pair_tersoff.cpp index 6c3c006b12..9e90a8902b 100755 --- a/src/MANYBODY/pair_tersoff.cpp +++ b/src/MANYBODY/pair_tersoff.cpp @@ -44,6 +44,7 @@ PairTersoff::PairTersoff(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nelements = 0; elements = NULL; diff --git a/src/MEAM/pair_meam.cpp b/src/MEAM/pair_meam.cpp index 4a3b15898c..bdfc9ea159 100644 --- a/src/MEAM/pair_meam.cpp +++ b/src/MEAM/pair_meam.cpp @@ -49,6 +49,7 @@ PairMEAM::PairMEAM(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nmax = 0; rho = rho0 = rho1 = rho2 = rho3 = frhop = NULL; diff --git a/src/REAX/pair_reax.cpp b/src/REAX/pair_reax.cpp index 341aba65d7..e8db8a2a3d 100644 --- a/src/REAX/pair_reax.cpp +++ b/src/REAX/pair_reax.cpp @@ -48,6 +48,7 @@ PairREAX::PairREAX(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; no_virial_fdotr_compute = 1; nextra = 14; diff --git a/src/USER-MISC/pair_edip.cpp b/src/USER-MISC/pair_edip.cpp index 47585562e2..bc0d75adfd 100755 --- a/src/USER-MISC/pair_edip.cpp +++ b/src/USER-MISC/pair_edip.cpp @@ -55,6 +55,7 @@ PairEDIP::PairEDIP(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nelements = 0; elements = NULL; diff --git a/src/USER-MISC/pair_meam_spline.cpp b/src/USER-MISC/pair_meam_spline.cpp index 24ca5d0a67..1684bed227 100644 --- a/src/USER-MISC/pair_meam_spline.cpp +++ b/src/USER-MISC/pair_meam_spline.cpp @@ -49,6 +49,7 @@ PairMEAMSpline::PairMEAMSpline(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nelements = 0; elements = NULL; diff --git a/src/USER-MISC/pair_meam_sw_spline.cpp b/src/USER-MISC/pair_meam_sw_spline.cpp index bf3917a769..d0385ab010 100644 --- a/src/USER-MISC/pair_meam_sw_spline.cpp +++ b/src/USER-MISC/pair_meam_sw_spline.cpp @@ -47,6 +47,7 @@ PairMEAMSWSpline::PairMEAMSWSpline(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; nelements = 0; elements = NULL; diff --git a/src/USER-MISC/pair_tersoff_table.cpp b/src/USER-MISC/pair_tersoff_table.cpp index ce25a86393..f9940d8d86 100644 --- a/src/USER-MISC/pair_tersoff_table.cpp +++ b/src/USER-MISC/pair_tersoff_table.cpp @@ -56,6 +56,7 @@ PairTersoffTable::PairTersoffTable(LAMMPS *lmp) : Pair(lmp) { single_enable = 0; one_coeff = 1; + manybody_flag = 1; nelements = 0; elements = NULL; diff --git a/src/USER-REAXC/pair_reax_c.cpp b/src/USER-REAXC/pair_reax_c.cpp index d4945afee6..1f5ee66a97 100644 --- a/src/USER-REAXC/pair_reax_c.cpp +++ b/src/USER-REAXC/pair_reax_c.cpp @@ -61,6 +61,7 @@ PairReaxC::PairReaxC(LAMMPS *lmp) : Pair(lmp) single_enable = 0; restartinfo = 0; one_coeff = 1; + manybody_flag = 1; ghostneigh = 1; system = (reax_system *) diff --git a/src/pair.cpp b/src/pair.cpp index 3908dbb324..5efa8dd602 100644 --- a/src/pair.cpp +++ b/src/pair.cpp @@ -71,6 +71,7 @@ Pair::Pair(LAMMPS *lmp) : Pointers(lmp) // pair_modify settings compute_flag = 1; + manybody_flag = 0; offset_flag = 0; mix_flag = GEOMETRIC; tail_flag = 0; @@ -172,11 +173,27 @@ void Pair::init() if (tail_flag && domain->nonperiodic && comm->me == 0) error->warning(FLERR,"Using pair tail corrections with nonperiodic system"); - if (!allocated) error->all(FLERR,"All pair coeffs are not set"); + // for manybody potentials + // check if bonded exclusions could invalidate the neighbor list + + if (manybody_flag && atom->molecular) { + int flag = 0; + if (atom->nbonds > 0 && force->special_lj[1] == 0.0 && + force->special_coul[1] == 0.0) flag = 1; + if (atom->nangles > 0 && force->special_lj[2] == 0.0 && + force->special_coul[2] == 0.0) flag = 1; + if (atom->ndihedrals > 0 && force->special_lj[3] == 0.0 && + force->special_coul[3] == 0.0) flag = 1; + if (flag && comm->me == 0) + error->warning(FLERR,"Using a manybody potential with " + "bonds/angles/dihedrals and special_bond exclusions"); + } // I,I coeffs must be set // init_one() will check if I,J is set explicitly or inferred by mixing + if (!allocated) error->all(FLERR,"All pair coeffs are not set"); + for (i = 1; i <= atom->ntypes; i++) if (setflag[i][i] == 0) error->all(FLERR,"All pair coeffs are not set"); diff --git a/src/pair.h b/src/pair.h index 72eb257c85..e1cea71ddb 100644 --- a/src/pair.h +++ b/src/pair.h @@ -95,6 +95,7 @@ class Pair : protected Pointers { unsigned int datamask_ext; int compute_flag; // 0 if skip compute() + int manybody_flag; // 1 if abort for manybody style with bonds Pair(class LAMMPS *); virtual ~Pair(); -- GitLab