Unverified Commit f4a79b4d authored by Steve Plimpton's avatar Steve Plimpton Committed by GitHub
Browse files

Merge pull request #794 from akohlmey/tersoff-fixes

Consistent checking of Tersoff potential parameters
parents 7441b062 17d98d09
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -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");

+14 −10
Original line number Diff line number Diff line
@@ -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 ||
    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].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)
        )
      error->all(FLERR,"Illegal Tersoff parameter");

    nparams++;
+14 −9
Original line number Diff line number Diff line
@@ -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].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)
      )
      error->all(FLERR,"Illegal Tersoff parameter");

    nparams++;
+15 −9
Original line number Diff line number Diff line
@@ -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++;
+12 −8
Original line number Diff line number Diff line
@@ -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
Loading