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

Merge pull request #937 from stanmoore1/kk_bonds

Fix issues in Kokkos topology files
parents ebd93cac 142de878
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -30,9 +30,9 @@ class AngleClass2 : public Angle {
  AngleClass2(class LAMMPS *);
  virtual ~AngleClass2();
  virtual void compute(int, int);
  void coeff(int, char **);
  virtual void coeff(int, char **);
  double equilibrium_angle(int);
  void write_restart(FILE *);
  virtual void write_restart(FILE *);
  void read_restart(FILE *);
  void write_data(FILE *);
  double single(int, int, int, int);
+2 −2
Original line number Diff line number Diff line
@@ -30,10 +30,10 @@ class BondClass2 : public Bond {
  BondClass2(class LAMMPS *);
  virtual ~BondClass2();
  virtual void compute(int, int);
  void coeff(int, char **);
  virtual void coeff(int, char **);
  double equilibrium_distance(int);
  void write_restart(FILE *);
  void read_restart(FILE *);
  virtual void read_restart(FILE *);
  void write_data(FILE *);
  double single(int, double, int, int, double &);

+2 −2
Original line number Diff line number Diff line
@@ -30,9 +30,9 @@ class DihedralClass2 : public Dihedral {
  DihedralClass2(class LAMMPS *);
  virtual ~DihedralClass2();
  virtual void compute(int, int);
  void coeff(int, char **);
  virtual void coeff(int, char **);
  void write_restart(FILE *);
  void read_restart(FILE *);
  virtual void read_restart(FILE *);
  void write_data(FILE *);

 protected:
+2 −2
Original line number Diff line number Diff line
@@ -30,9 +30,9 @@ class ImproperClass2 : public Improper {
  ImproperClass2(class LAMMPS *);
  virtual ~ImproperClass2();
  virtual void compute(int, int);
  void coeff(int, char **);
  virtual void coeff(int, char **);
  void write_restart(FILE *);
  void read_restart(FILE *);
  virtual void read_restart(FILE *);
  void write_data(FILE *);

 protected:
+37 −0
Original line number Diff line number Diff line
@@ -292,7 +292,44 @@ void AngleCharmmKokkos<DeviceType>::coeff(int narg, char **arg)
  k_theta0.template sync<DeviceType>();
  k_k_ub.template sync<DeviceType>();
  k_r_ub.template sync<DeviceType>();
}

/* ----------------------------------------------------------------------
   proc 0 reads coeffs from restart file, bcasts them
------------------------------------------------------------------------- */

template<class DeviceType>
void AngleCharmmKokkos<DeviceType>::read_restart(FILE *fp)
{
  AngleCharmm::read_restart(fp);

  int n = atom->nangletypes;
  Kokkos::DualView<F_FLOAT*,DeviceType> k_k("AngleCharmm::k",n+1);
  Kokkos::DualView<F_FLOAT*,DeviceType> k_theta0("AngleCharmm::theta0",n+1);
  Kokkos::DualView<F_FLOAT*,DeviceType> k_k_ub("AngleCharmm::k_ub",n+1);
  Kokkos::DualView<F_FLOAT*,DeviceType> k_r_ub("AngleCharmm::r_ub",n+1);

  d_k = k_k.template view<DeviceType>();
  d_theta0 = k_theta0.template view<DeviceType>();
  d_k_ub = k_k_ub.template view<DeviceType>();
  d_r_ub = k_r_ub.template view<DeviceType>();

  for (int i = 1; i <= n; i++) {
    k_k.h_view[i] = k[i];
    k_theta0.h_view[i] = theta0[i];
    k_k_ub.h_view[i] = k_ub[i];
    k_r_ub.h_view[i] = r_ub[i];
  }

  k_k.template modify<LMPHostType>();
  k_theta0.template modify<LMPHostType>();
  k_k_ub.template modify<LMPHostType>();
  k_r_ub.template modify<LMPHostType>();

  k_k.template sync<DeviceType>();
  k_theta0.template sync<DeviceType>();
  k_k_ub.template sync<DeviceType>();
  k_r_ub.template sync<DeviceType>();
}

/* ----------------------------------------------------------------------
Loading