Commit 207adc39 authored by sjplimp's avatar sjplimp Committed by GitHub
Browse files

Merge pull request #373 from stanmoore1/kk_more_bugfixes

Fixing Kokkos per-atom energy/virial issues
parents 84c51715 067119f6
Loading
Loading
Loading
Loading
+6 −6
Original line number Diff line number Diff line
@@ -70,18 +70,18 @@ void AngleCharmmKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
  // reallocate per-atom arrays if necessary

  if (eflag_atom) {
    if(k_eatom.dimension_0()<maxeatom) {
    //if(k_eatom.dimension_0()<maxeatom) { // won't work without adding zero functor
      memory->destroy_kokkos(k_eatom,eatom);
      memory->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
      d_eatom = k_eatom.d_view;
    }
      d_eatom = k_eatom.template view<DeviceType>();
    //}
  }
  if (vflag_atom) {
    if(k_vatom.dimension_0()<maxvatom) {
    //if(k_vatom.dimension_0()<maxvatom) { // won't work without adding zero functor
      memory->destroy_kokkos(k_vatom,vatom);
      memory->create_kokkos(k_vatom,vatom,maxvatom,6,"improper:vatom");
      d_vatom = k_vatom.d_view;
    }
      d_vatom = k_vatom.template view<DeviceType>();
    //}
  }

  x = atomKK->k_x.view<DeviceType>();
+2 −2
Original line number Diff line number Diff line
@@ -77,12 +77,12 @@ void BondFENEKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
  if (eflag_atom) {
    memory->destroy_kokkos(k_eatom,eatom);
    memory->create_kokkos(k_eatom,eatom,maxeatom,"bond:eatom");
    d_eatom = k_eatom.d_view;
    d_eatom = k_eatom.view<DeviceType>();
  }
  if (vflag_atom) {
    memory->destroy_kokkos(k_vatom,vatom);
    memory->create_kokkos(k_vatom,vatom,maxvatom,6,"bond:vatom");
    d_vatom = k_vatom.d_view;
    d_vatom = k_vatom.view<DeviceType>();
  }

  k_k.template sync<DeviceType>();
+2 −2
Original line number Diff line number Diff line
@@ -66,8 +66,8 @@ class BondFENEKokkos : public BondFENE {

  DAT::tdual_efloat_1d k_eatom;
  DAT::tdual_virial_array k_vatom;
  DAT::t_efloat_1d d_eatom;
  DAT::t_virial_array d_vatom;
  typename ArrayTypes<DeviceType>::t_efloat_1d d_eatom;
  typename ArrayTypes<DeviceType>::t_virial_array d_vatom;

  DAT::tdual_int_scalar k_warning_flag;
  typename AT::t_int_scalar d_warning_flag;
+6 −6
Original line number Diff line number Diff line
@@ -67,18 +67,18 @@ void BondHarmonicKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
  // reallocate per-atom arrays if necessary

  if (eflag_atom) {
    if(k_eatom.dimension_0()<maxeatom) {
    //if(k_eatom.dimension_0()<maxeatom) { // won't work without adding zero functor
      memory->destroy_kokkos(k_eatom,eatom);
      memory->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
      d_eatom = k_eatom.d_view;
    }
      d_eatom = k_eatom.template view<DeviceType>();
    //}
  }
  if (vflag_atom) {
    if(k_vatom.dimension_0()<maxvatom) {
    //if(k_vatom.dimension_0()<maxvatom) { // won't work without adding zero functor
      memory->destroy_kokkos(k_vatom,vatom);
      memory->create_kokkos(k_vatom,vatom,maxvatom,6,"improper:vatom");
      d_vatom = k_vatom.d_view;
    }
      d_vatom = k_vatom.template view<DeviceType>();
    //}
  }

//  if (eflag || vflag) atomKK->modified(execution_space,datamask_modify);
+8 −8
Original line number Diff line number Diff line
@@ -80,22 +80,22 @@ void DihedralCharmmKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
  // reallocate per-atom arrays if necessary

  if (eflag_atom) {
    if(k_eatom.dimension_0()<maxeatom) {
    //if(k_eatom.dimension_0()<maxeatom) { // won't work without adding zero functor
      memory->destroy_kokkos(k_eatom,eatom);
      memory->create_kokkos(k_eatom,eatom,maxeatom,"dihedral:eatom");
      d_eatom = k_eatom.d_view;
      d_eatom = k_eatom.template view<DeviceType>();
      k_eatom_pair = Kokkos::DualView<E_FLOAT*,Kokkos::LayoutRight,DeviceType>("dihedral:eatom_pair",maxeatom);
      d_eatom_pair = k_eatom.d_view;
    }
      d_eatom_pair = k_eatom.template view<DeviceType>();
    //}
  }
  if (vflag_atom) {
    if(k_vatom.dimension_0()<maxvatom) {
    //if(k_vatom.dimension_0()<maxvatom) { // won't work without adding zero functor
      memory->destroy_kokkos(k_vatom,vatom);
      memory->create_kokkos(k_vatom,vatom,maxvatom,6,"dihedral:vatom");
      d_vatom = k_vatom.d_view;
      d_vatom = k_vatom.template view<DeviceType>();
      k_vatom_pair = Kokkos::DualView<F_FLOAT*[6],Kokkos::LayoutRight,DeviceType>("dihedral:vatom_pair",maxvatom);
      d_vatom_pair = k_vatom.d_view;
    }
      d_vatom_pair = k_vatom.template view<DeviceType>();
    //}
  }

  x = atomKK->k_x.view<DeviceType>();
Loading