diff --git a/src/MANYBODY/pair_tersoff.cpp b/src/MANYBODY/pair_tersoff.cpp index 062eed3f999f01237b7a4702e59a50a87ee27f68..9f976281c866ef7018e308c019d2d56427ace37e 100644 --- a/src/MANYBODY/pair_tersoff.cpp +++ b/src/MANYBODY/pair_tersoff.cpp @@ -507,14 +507,20 @@ void PairTersoff::read_file(char *file) params[nparams].powermint = int(params[nparams].powerm); - if (params[nparams].c < 0.0 || params[nparams].d < 0.0 || - params[nparams].powern < 0.0 || params[nparams].beta < 0.0 || - params[nparams].lam2 < 0.0 || params[nparams].bigb < 0.0 || - params[nparams].bigr < 0.0 ||params[nparams].bigd < 0.0 || + if (params[nparams].c < 0.0 || + params[nparams].d < 0.0 || + params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || + params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || + params[nparams].bigr < 0.0 || + params[nparams].bigd < 0.0 || params[nparams].bigd > params[nparams].bigr || - params[nparams].lam1 < 0.0 || params[nparams].biga < 0.0 || + params[nparams].lam1 < 0.0 || + params[nparams].biga < 0.0 || params[nparams].powerm - params[nparams].powermint != 0.0 || - (params[nparams].powermint != 3 && params[nparams].powermint != 1) || + (params[nparams].powermint != 3 && + params[nparams].powermint != 1) || params[nparams].gamma < 0.0) error->all(FLERR,"Illegal Tersoff parameter"); diff --git a/src/MANYBODY/pair_tersoff_mod.cpp b/src/MANYBODY/pair_tersoff_mod.cpp index e554a58fc2d04c037807c5b51823d9ad5ace64db..e810130dbabb425e8ee5f35a435ad7ee7804c168 100644 --- a/src/MANYBODY/pair_tersoff_mod.cpp +++ b/src/MANYBODY/pair_tersoff_mod.cpp @@ -162,19 +162,23 @@ void PairTersoffMOD::read_file(char *file) params[nparams].c4 = atof(words[18]); params[nparams].c5 = atof(words[19]); - // currently only allow m exponent of 1 + // currently only allow m exponent of 1 or 3 params[nparams].powermint = int(params[nparams].powerm); - if ( - params[nparams].lam3 < 0.0 || params[nparams].powern < 0.0 || - params[nparams].beta < 0.0 || params[nparams].lam2 < 0.0 || - params[nparams].bigb < 0.0 || params[nparams].bigr < 0.0 || - params[nparams].bigd < 0.0 || - params[nparams].bigd > params[nparams].bigr || - params[nparams].lam3 < 0.0 || params[nparams].biga < 0.0 || - params[nparams].powerm - params[nparams].powermint != 0.0 || - (params[nparams].powermint != 3 && params[nparams].powermint != 1)) + if (params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || + params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || + params[nparams].bigr < 0.0 || + params[nparams].bigd < 0.0 || + params[nparams].bigd > params[nparams].bigr || + params[nparams].lam1 < 0.0 || + params[nparams].biga < 0.0 || + params[nparams].powerm - params[nparams].powermint != 0.0 || + (params[nparams].powermint != 3 && + params[nparams].powermint != 1) + ) error->all(FLERR,"Illegal Tersoff parameter"); nparams++; diff --git a/src/MANYBODY/pair_tersoff_mod_c.cpp b/src/MANYBODY/pair_tersoff_mod_c.cpp index 712e0482a851939a490c7ed2ac6167f8bdd9d9f5..0edf2ddef98a6141d5149d4045453a0550f1dc16 100644 --- a/src/MANYBODY/pair_tersoff_mod_c.cpp +++ b/src/MANYBODY/pair_tersoff_mod_c.cpp @@ -158,19 +158,24 @@ void PairTersoffMODC::read_file(char *file) params[nparams].c5 = atof(words[19]); params[nparams].c0 = atof(words[20]); - // currently only allow m exponent of 1 + // currently only allow m exponent of 1 or 3 params[nparams].powermint = int(params[nparams].powerm); if ( - params[nparams].lam3 < 0.0 || params[nparams].powern < 0.0 || - params[nparams].beta < 0.0 || params[nparams].lam2 < 0.0 || - params[nparams].bigb < 0.0 || params[nparams].bigr < 0.0 || - params[nparams].bigd < 0.0 || - params[nparams].bigd > params[nparams].bigr || - params[nparams].lam3 < 0.0 || params[nparams].biga < 0.0 || - params[nparams].powerm - params[nparams].powermint != 0.0 || - (params[nparams].powermint != 3 && params[nparams].powermint != 1)) + params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || + params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || + params[nparams].bigr < 0.0 || + params[nparams].bigd < 0.0 || + params[nparams].bigd > params[nparams].bigr || + params[nparams].lam1 < 0.0 || + params[nparams].biga < 0.0 || + params[nparams].powerm - params[nparams].powermint != 0.0 || + (params[nparams].powermint != 3 && + params[nparams].powermint != 1) + ) error->all(FLERR,"Illegal Tersoff parameter"); nparams++; diff --git a/src/MANYBODY/pair_tersoff_zbl.cpp b/src/MANYBODY/pair_tersoff_zbl.cpp index b900283ca34a0c609d06aa29cdeb14b6ea1cfdf5..15163c2bf9843607dde1f65d8e78d0abdef78957 100644 --- a/src/MANYBODY/pair_tersoff_zbl.cpp +++ b/src/MANYBODY/pair_tersoff_zbl.cpp @@ -184,19 +184,25 @@ void PairTersoffZBL::read_file(char *file) params[nparams].powermint = int(params[nparams].powerm); - if ( - params[nparams].lam3 < 0.0 || params[nparams].c < 0.0 || - params[nparams].d < 0.0 || params[nparams].powern < 0.0 || - params[nparams].beta < 0.0 || params[nparams].lam2 < 0.0 || - params[nparams].bigb < 0.0 || params[nparams].bigr < 0.0 || + if (params[nparams].c < 0.0 || + params[nparams].d < 0.0 || + params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || + params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || + params[nparams].bigr < 0.0 || params[nparams].bigd < 0.0 || params[nparams].bigd > params[nparams].bigr || - params[nparams].lam3 < 0.0 || params[nparams].biga < 0.0 || + params[nparams].lam1 < 0.0 || + params[nparams].biga < 0.0 || params[nparams].powerm - params[nparams].powermint != 0.0 || - (params[nparams].powermint != 3 && params[nparams].powermint != 1) || + (params[nparams].powermint != 3 && + params[nparams].powermint != 1) || params[nparams].gamma < 0.0 || - params[nparams].Z_i < 1.0 || params[nparams].Z_j < 1.0 || - params[nparams].ZBLcut < 0.0 || params[nparams].ZBLexpscale < 0.0) + params[nparams].Z_i < 1.0 || + params[nparams].Z_j < 1.0 || + params[nparams].ZBLcut < 0.0 || + params[nparams].ZBLexpscale < 0.0) error->all(FLERR,"Illegal Tersoff parameter"); nparams++; diff --git a/src/USER-MISC/pair_tersoff_table.cpp b/src/USER-MISC/pair_tersoff_table.cpp index 536730322a769ca2cf6c8bf3fcf840e15180011c..0afb963402c054382877fd98607bd7ee2eed0069 100644 --- a/src/USER-MISC/pair_tersoff_table.cpp +++ b/src/USER-MISC/pair_tersoff_table.cpp @@ -939,8 +939,10 @@ void PairTersoffTable::read_file(char *file) params[nparams].beta = atof(words[10]); params[nparams].lam2 = atof(words[11]); params[nparams].bigb = atof(words[12]); + // current implementation is based on functional form // of tersoff_2 as reported in the reference paper + double bigr = atof(words[13]); double bigd = atof(words[14]); params[nparams].cutoffR = bigr - bigd; @@ -948,15 +950,17 @@ void PairTersoffTable::read_file(char *file) params[nparams].lam1 = atof(words[15]); params[nparams].biga = atof(words[16]); - // currently only allow m exponent of 1 or 3 - params[nparams].powermint = int(params[nparams].powerm); - - if (params[nparams].c < 0.0 || params[nparams].d < 0.0 || - params[nparams].powern < 0.0 || params[nparams].beta < 0.0 || - params[nparams].lam2 < 0.0 || params[nparams].bigb < 0.0 || - params[nparams].cutoffR < 0.0 ||params[nparams].cutoffS < 0.0 || + if (params[nparams].c < 0.0 || + params[nparams].d < 0.0 || + params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || + params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || + params[nparams].cutoffR < 0.0 || + params[nparams].cutoffS < 0.0 || params[nparams].cutoffR > params[nparams].cutoffS || - params[nparams].lam1 < 0.0 || params[nparams].biga < 0.0 + params[nparams].lam1 < 0.0 || + params[nparams].biga < 0.0 ) error->all(FLERR,"Illegal Tersoff parameter"); // only tersoff_2 parametrization is implemented diff --git a/src/USER-OMP/pair_tersoff_zbl_omp.cpp b/src/USER-OMP/pair_tersoff_zbl_omp.cpp index f5c08741ce44ba59dab6b9dbfe6c20ab938f64c4..f53778d1a13fe7d46b1fcfd7659cdc0e52fc1e83 100644 --- a/src/USER-OMP/pair_tersoff_zbl_omp.cpp +++ b/src/USER-OMP/pair_tersoff_zbl_omp.cpp @@ -205,18 +205,24 @@ void PairTersoffZBLOMP::read_file(char *file) params[nparams].powermint = int(params[nparams].powerm); if ( - params[nparams].lam3 < 0.0 || params[nparams].c < 0.0 || - params[nparams].d < 0.0 || params[nparams].powern < 0.0 || - params[nparams].beta < 0.0 || params[nparams].lam2 < 0.0 || - params[nparams].bigb < 0.0 || params[nparams].bigr < 0.0 || + params[nparams].c < 0.0 || + params[nparams].d < 0.0 || + params[nparams].powern < 0.0 || + params[nparams].beta < 0.0 || + params[nparams].lam2 < 0.0 || + params[nparams].bigb < 0.0 || + params[nparams].bigr < 0.0 || params[nparams].bigd < 0.0 || params[nparams].bigd > params[nparams].bigr || - params[nparams].lam3 < 0.0 || params[nparams].biga < 0.0 || + params[nparams].biga < 0.0 || params[nparams].powerm - params[nparams].powermint != 0.0 || - (params[nparams].powermint != 3 && params[nparams].powermint != 1) || + (params[nparams].powermint != 3 && + params[nparams].powermint != 1) || params[nparams].gamma < 0.0 || - params[nparams].Z_i < 1.0 || params[nparams].Z_j < 1.0 || - params[nparams].ZBLcut < 0.0 || params[nparams].ZBLexpscale < 0.0) + params[nparams].Z_i < 1.0 || + params[nparams].Z_j < 1.0 || + params[nparams].ZBLcut < 0.0 || + params[nparams].ZBLexpscale < 0.0) error->all(FLERR,"Illegal Tersoff parameter"); nparams++;