Unverified Commit 0fc87dff authored by Axel Kohlmeyer's avatar Axel Kohlmeyer
Browse files

add conversion support to eam variants for KOKKOS

parent b665ca3b
Loading
Loading
Loading
Loading
+14 −1
Original line number Diff line number Diff line
@@ -985,8 +985,13 @@ void PairEAMAlloyKokkos<DeviceType>::read_file(char *filename)

  // read potential file
  if(comm->me == 0) {
    PotentialFileReader reader(lmp, filename, "EAM");
    PotentialFileReader reader(lmp, filename, "EAMAlloy", unit_convert_flag);

    // transparently convert units for supported conversions

    int unit_convert = reader.get_unit_convert();
    double conversion_factor = utils::get_conversion_factor(utils::ENERGY,
                                                            unit_convert);
    try {
      reader.skip_line();
      reader.skip_line();
@@ -1031,11 +1036,19 @@ void PairEAMAlloyKokkos<DeviceType>::read_file(char *filename)

        reader.next_dvector(&file->frho[i][1], file->nrho);
        reader.next_dvector(&file->rhor[i][1], file->nr);
        if (unit_convert) {
          for (int j = 1; j < file->nrho; ++j)
            file->frho[i][j] *= conversion_factor;
        }
      }

      for (int i = 0; i < file->nelements; i++) {
        for (int j = 0; j <= i; j++) {
          reader.next_dvector(&file->z2r[i][j][1], file->nr);
          if (unit_convert) {
            for (int k = 1; k < file->nr; ++k)
              file->z2r[i][j][k] *= conversion_factor;
          }
        }
      }
    } catch (TokenizerException & e) {
+14 −1
Original line number Diff line number Diff line
@@ -985,8 +985,13 @@ void PairEAMFSKokkos<DeviceType>::read_file(char *filename)

  // read potential file
  if(comm->me == 0) {
    PotentialFileReader reader(lmp, filename, "EAM");
    PotentialFileReader reader(lmp, filename, "EAMFS", unit_convert_flag);

    // transparently convert units for supported conversions

    int unit_convert = reader.get_unit_convert();
    double conversion_factor = utils::get_conversion_factor(utils::ENERGY,
                                                            unit_convert);
    try {
      reader.skip_line();
      reader.skip_line();
@@ -1030,6 +1035,10 @@ void PairEAMFSKokkos<DeviceType>::read_file(char *filename)
        file->mass[i] = values.next_double();

        reader.next_dvector(&file->frho[i][1], file->nrho);
        if (unit_convert) {
          for (int j = 1; j <= file->nrho; ++j)
            file->frho[i][j] *= conversion_factor;
        }

        for (int j = 0; j < file->nelements; j++) {
          reader.next_dvector(&file->rhor[i][j][1], file->nr);
@@ -1039,6 +1048,10 @@ void PairEAMFSKokkos<DeviceType>::read_file(char *filename)
      for (int i = 0; i < file->nelements; i++) {
        for (int j = 0; j <= i; j++) {
          reader.next_dvector(&file->z2r[i][j][1], file->nr);
          if (unit_convert) {
            for (int k = 1; k < file->nr; ++k)
              file->z2r[i][j][k] *= conversion_factor;
          }
        }
      }
    } catch (TokenizerException & e) {