Commit ce05ed4c authored by Sebastian Hütter's avatar Sebastian Hütter
Browse files

MEAM/C: infer z parameter from lattice structure, eliminates possible user mistakes

parent 7e14dda7
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -139,6 +139,8 @@ potential parameters:

lat      = lattice structure of reference configuration
z        = number of nearest neighbors in the reference structure
             This field is only read for compatibility, the correct
             value is inferred from the lattice structure
ielement = atomic number
atwt     = atomic weight
alat     = lattice constant of reference structure
+1 −3
Original line number Diff line number Diff line
@@ -28,7 +28,6 @@ private:
  // Ec_meam = cohesive energy
  // re_meam = nearest-neighbor distance
  // B_meam = bulk modulus
  // Z_meam = number of first neighbors for reference structure
  // ielt_meam = atomic number of element
  // A_meam = adjustable parameter
  // alpha_meam = sqrt(9*Omega*B/Ec)
@@ -65,7 +64,6 @@ private:
  // nrar,rdrar = spline coeff array parameters

  double Ec_meam[maxelt][maxelt], re_meam[maxelt][maxelt];
  double Z_meam[maxelt];
  double A_meam[maxelt], alpha_meam[maxelt][maxelt], rho0_meam[maxelt];
  double delta_meam[maxelt][maxelt];
  double beta0_meam[maxelt], beta1_meam[maxelt];
@@ -237,7 +235,7 @@ public:
  }
  
  static int get_Zij(const lattice_t latt);
  void meam_setup_global(int nelt, lattice_t* lat, double* z, int* ielement, double* atwt, double* alpha,
  void meam_setup_global(int nelt, lattice_t* lat, int* ielement, double* atwt, double* alpha,
                         double* b0, double* b1, double* b2, double* b3, double* alat, double* esub,
                         double* asub, double* t0, double* t1, double* t2, double* t3, double* rozero,
                         int* ibar);
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ MEAM::meam_dens_final(int nlocal, int eflag_either, int eflag_global, int eflag_
        gamma[i] = gamma[i] / (rho0[i] * rho0[i]);
      }

      Z = this->Z_meam[elti];
      Z = get_Zij(this->lattce_meam[elti][elti]);

      G = G_gam(gamma[i], this->ibar_meam[elti], errorflag);
      if (errorflag != 0)
+3 −3
Original line number Diff line number Diff line
@@ -232,7 +232,7 @@ MEAM::get_shpfcn(const lattice_t latt, double (&s)[3])
}

//-----------------------------------------------------------------------------
// Number of neighbors for the reference structure
// Number of first neighbors for reference structure
//
int
MEAM::get_Zij(const lattice_t latt)
@@ -244,12 +244,12 @@ MEAM::get_Zij(const lattice_t latt)
      return 8;
    case HCP:
      return 12;
    case B1:
      return 6;
    case DIA:
      return 4;
    case DIM:
      return 1;
    case B1:
      return 6;
    case C11:
      return 10;
    case L12:
+1 −1
Original line number Diff line number Diff line
@@ -38,7 +38,7 @@ MEAM::MEAM(Memory* mem)

  neltypes = 0;
  for (int i = 0; i < maxelt; i++) {
    Z_meam[i] = A_meam[i] = rho0_meam[i] = beta0_meam[i] =
    A_meam[i] = rho0_meam[i] = beta0_meam[i] =
      beta1_meam[i]= beta2_meam[i] = beta3_meam[i] =
      t0_meam[i] = t1_meam[i] = t2_meam[i] = t3_meam[i] =
      rho_ref_meam[i] = ibar_meam[i] = ielt_meam[i] = 0.0;
Loading