Commit 15a3364c authored by Stan Moore's avatar Stan Moore
Browse files

Make memory_kokkos its own class

parent 83ec9815
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -29,7 +29,6 @@ action () {
# force rebuild of files with LMP_KOKKOS switch

touch ../accelerator_kokkos.h
touch ../memory.h

# list of files with optional dependcies

+7 −7
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include "comm.h"
#include "force.h"
#include "math_const.h"
#include "memory.h"
#include "memory_kokkos.h"
#include "error.h"
#include "atom_masks.h"

@@ -51,8 +51,8 @@ template<class DeviceType>
AngleCharmmKokkos<DeviceType>::~AngleCharmmKokkos()
{
  if (!copymode) {
    memory->destroy_kokkos(k_eatom,eatom);
    memory->destroy_kokkos(k_vatom,vatom);
    memoryKK->destroy_kokkos(k_eatom,eatom);
    memoryKK->destroy_kokkos(k_vatom,vatom);
  }
}

@@ -71,15 +71,15 @@ void AngleCharmmKokkos<DeviceType>::compute(int eflag_in, int vflag_in)

  if (eflag_atom) {
    //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");
      memoryKK->destroy_kokkos(k_eatom,eatom);
      memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"improper:eatom");
      d_eatom = k_eatom.template view<DeviceType>();
    //}
  }
  if (vflag_atom) {
    //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");
      memoryKK->destroy_kokkos(k_vatom,vatom);
      memoryKK->create_kokkos(k_vatom,vatom,maxvatom,6,"improper:vatom");
      d_vatom = k_vatom.template view<DeviceType>();
    //}
  }
+7 −7
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include "comm.h"
#include "force.h"
#include "math_const.h"
#include "memory.h"
#include "memory_kokkos.h"
#include "error.h"
#include "atom_masks.h"

@@ -51,8 +51,8 @@ template<class DeviceType>
AngleClass2Kokkos<DeviceType>::~AngleClass2Kokkos()
{
  if (!copymode) {
    memory->destroy_kokkos(k_eatom,eatom);
    memory->destroy_kokkos(k_vatom,vatom);
    memoryKK->destroy_kokkos(k_eatom,eatom);
    memoryKK->destroy_kokkos(k_vatom,vatom);
  }
}

@@ -70,13 +70,13 @@ void AngleClass2Kokkos<DeviceType>::compute(int eflag_in, int vflag_in)
  // reallocate per-atom arrays if necessary

  if (eflag_atom) {
    memory->destroy_kokkos(k_eatom,eatom);
    memory->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom");
    memoryKK->destroy_kokkos(k_eatom,eatom);
    memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom");
    d_eatom = k_eatom.template view<DeviceType>();
  }
  if (vflag_atom) {
    memory->destroy_kokkos(k_vatom,vatom);
    memory->create_kokkos(k_vatom,vatom,maxvatom,6,"angle:vatom");
    memoryKK->destroy_kokkos(k_vatom,vatom);
    memoryKK->create_kokkos(k_vatom,vatom,maxvatom,6,"angle:vatom");
    d_vatom = k_vatom.template view<DeviceType>();
  }

+7 −7
Original line number Diff line number Diff line
@@ -24,7 +24,7 @@
#include "comm.h"
#include "force.h"
#include "math_const.h"
#include "memory.h"
#include "memory_kokkos.h"
#include "error.h"
#include "atom_masks.h"

@@ -51,8 +51,8 @@ template<class DeviceType>
AngleHarmonicKokkos<DeviceType>::~AngleHarmonicKokkos()
{
  if (!copymode) {
    memory->destroy_kokkos(k_eatom,eatom);
    memory->destroy_kokkos(k_vatom,vatom);
    memoryKK->destroy_kokkos(k_eatom,eatom);
    memoryKK->destroy_kokkos(k_vatom,vatom);
  }
}

@@ -70,13 +70,13 @@ void AngleHarmonicKokkos<DeviceType>::compute(int eflag_in, int vflag_in)
  // reallocate per-atom arrays if necessary

  if (eflag_atom) {
    memory->destroy_kokkos(k_eatom,eatom);
    memory->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom");
    memoryKK->destroy_kokkos(k_eatom,eatom);
    memoryKK->create_kokkos(k_eatom,eatom,maxeatom,"angle:eatom");
    d_eatom = k_eatom.template view<DeviceType>();
  }
  if (vflag_atom) {
    memory->destroy_kokkos(k_vatom,vatom);
    memory->create_kokkos(k_vatom,vatom,maxvatom,6,"angle:vatom");
    memoryKK->destroy_kokkos(k_vatom,vatom);
    memoryKK->create_kokkos(k_vatom,vatom,maxvatom,6,"angle:vatom");
    d_vatom = k_vatom.template view<DeviceType>();
  }

+75 −75
Original line number Diff line number Diff line
@@ -19,7 +19,7 @@
#include "update.h"
#include "domain.h"
#include "atom_masks.h"
#include "memory.h"
#include "memory_kokkos.h"
#include "error.h"
#include "kokkos.h"

@@ -33,59 +33,59 @@ AtomKokkos::AtomKokkos(LAMMPS *lmp) : Atom(lmp) {}

AtomKokkos::~AtomKokkos()
{
  memory->destroy_kokkos(k_tag, tag);
  memory->destroy_kokkos(k_mask, mask);
  memory->destroy_kokkos(k_type, type);
  memory->destroy_kokkos(k_image, image);
  memory->destroy_kokkos(k_molecule, molecule);

  memory->destroy_kokkos(k_x, x);
  memory->destroy_kokkos(k_v, v);
  memory->destroy_kokkos(k_f, f);

  memory->destroy_kokkos(k_mass, mass);
  memory->destroy_kokkos(k_q, q);

  memory->destroy_kokkos(k_radius, radius);
  memory->destroy_kokkos(k_rmass, rmass);
  memory->destroy_kokkos(k_omega, omega);
  memory->destroy_kokkos(k_angmom, angmom);
  memory->destroy_kokkos(k_torque, torque);

  memory->destroy_kokkos(k_nspecial, nspecial);
  memory->destroy_kokkos(k_special, special);
  memory->destroy_kokkos(k_num_bond, num_bond);
  memory->destroy_kokkos(k_bond_type, bond_type);
  memory->destroy_kokkos(k_bond_atom, bond_atom);
  memory->destroy_kokkos(k_num_angle, num_angle);
  memory->destroy_kokkos(k_angle_type, angle_type);
  memory->destroy_kokkos(k_angle_atom1, angle_atom1);
  memory->destroy_kokkos(k_angle_atom2, angle_atom2);
  memory->destroy_kokkos(k_angle_atom3, angle_atom3);
  memory->destroy_kokkos(k_num_dihedral, num_dihedral);
  memory->destroy_kokkos(k_dihedral_type, dihedral_type);
  memory->destroy_kokkos(k_dihedral_atom1, dihedral_atom1);
  memory->destroy_kokkos(k_dihedral_atom2, dihedral_atom2);
  memory->destroy_kokkos(k_dihedral_atom3, dihedral_atom3);
  memory->destroy_kokkos(k_dihedral_atom4, dihedral_atom4);
  memory->destroy_kokkos(k_num_improper, num_improper);
  memory->destroy_kokkos(k_improper_type, improper_type);
  memory->destroy_kokkos(k_improper_atom1, improper_atom1);
  memory->destroy_kokkos(k_improper_atom2, improper_atom2);
  memory->destroy_kokkos(k_improper_atom3, improper_atom3);
  memory->destroy_kokkos(k_improper_atom4, improper_atom4);
  memoryKK->destroy_kokkos(k_tag, tag);
  memoryKK->destroy_kokkos(k_mask, mask);
  memoryKK->destroy_kokkos(k_type, type);
  memoryKK->destroy_kokkos(k_image, image);
  memoryKK->destroy_kokkos(k_molecule, molecule);

  memoryKK->destroy_kokkos(k_x, x);
  memoryKK->destroy_kokkos(k_v, v);
  memoryKK->destroy_kokkos(k_f, f);

  memoryKK->destroy_kokkos(k_mass, mass);
  memoryKK->destroy_kokkos(k_q, q);

  memoryKK->destroy_kokkos(k_radius, radius);
  memoryKK->destroy_kokkos(k_rmass, rmass);
  memoryKK->destroy_kokkos(k_omega, omega);
  memoryKK->destroy_kokkos(k_angmom, angmom);
  memoryKK->destroy_kokkos(k_torque, torque);

  memoryKK->destroy_kokkos(k_nspecial, nspecial);
  memoryKK->destroy_kokkos(k_special, special);
  memoryKK->destroy_kokkos(k_num_bond, num_bond);
  memoryKK->destroy_kokkos(k_bond_type, bond_type);
  memoryKK->destroy_kokkos(k_bond_atom, bond_atom);
  memoryKK->destroy_kokkos(k_num_angle, num_angle);
  memoryKK->destroy_kokkos(k_angle_type, angle_type);
  memoryKK->destroy_kokkos(k_angle_atom1, angle_atom1);
  memoryKK->destroy_kokkos(k_angle_atom2, angle_atom2);
  memoryKK->destroy_kokkos(k_angle_atom3, angle_atom3);
  memoryKK->destroy_kokkos(k_num_dihedral, num_dihedral);
  memoryKK->destroy_kokkos(k_dihedral_type, dihedral_type);
  memoryKK->destroy_kokkos(k_dihedral_atom1, dihedral_atom1);
  memoryKK->destroy_kokkos(k_dihedral_atom2, dihedral_atom2);
  memoryKK->destroy_kokkos(k_dihedral_atom3, dihedral_atom3);
  memoryKK->destroy_kokkos(k_dihedral_atom4, dihedral_atom4);
  memoryKK->destroy_kokkos(k_num_improper, num_improper);
  memoryKK->destroy_kokkos(k_improper_type, improper_type);
  memoryKK->destroy_kokkos(k_improper_atom1, improper_atom1);
  memoryKK->destroy_kokkos(k_improper_atom2, improper_atom2);
  memoryKK->destroy_kokkos(k_improper_atom3, improper_atom3);
  memoryKK->destroy_kokkos(k_improper_atom4, improper_atom4);

  // USER-DPD package
  memory->destroy_kokkos(k_uCond,uCond);
  memory->destroy_kokkos(k_uMech,uMech);
  memory->destroy_kokkos(k_uChem,uChem);
  memory->destroy_kokkos(k_uCG,uCG);
  memory->destroy_kokkos(k_uCGnew,uCGnew);
  memory->destroy_kokkos(k_rho,rho);
  memory->destroy_kokkos(k_dpdTheta,dpdTheta);
  memory->destroy_kokkos(k_duChem,duChem);

  memory->destroy_kokkos(k_dvector,dvector);
  memoryKK->destroy_kokkos(k_uCond,uCond);
  memoryKK->destroy_kokkos(k_uMech,uMech);
  memoryKK->destroy_kokkos(k_uChem,uChem);
  memoryKK->destroy_kokkos(k_uCG,uCG);
  memoryKK->destroy_kokkos(k_uCGnew,uCGnew);
  memoryKK->destroy_kokkos(k_rho,rho);
  memoryKK->destroy_kokkos(k_dpdTheta,dpdTheta);
  memoryKK->destroy_kokkos(k_duChem,duChem);

  memoryKK->destroy_kokkos(k_dvector,dvector);
  dvector = NULL;
}

@@ -232,10 +232,10 @@ void AtomKokkos::sort()
void AtomKokkos::grow(unsigned int mask){

  if (mask & SPECIAL_MASK){
    memory->destroy_kokkos(k_special, special);
    memoryKK->destroy_kokkos(k_special, special);
    sync(Device, mask);
    modified(Device, mask);
    memory->grow_kokkos(k_special,special,nmax,maxspecial,"atom:special");
    memoryKK->grow_kokkos(k_special,special,nmax,maxspecial,"atom:special");
    avec->grow_reset();
    sync(Host, mask);
  }
@@ -270,7 +270,7 @@ int AtomKokkos::add_custom(const char *name, int flag)
    int n = strlen(name) + 1;
    dname[index] = new char[n];
    strcpy(dname[index],name);
    memory->grow_kokkos(k_dvector,dvector,ndvector,nmax,
    memoryKK->grow_kokkos(k_dvector,dvector,ndvector,nmax,
                        "atom:dvector");
  }

@@ -291,7 +291,7 @@ void AtomKokkos::remove_custom(int flag, int index)
    delete [] iname[index];
    iname[index] = NULL;
  } else {
    //memory->destroy_kokkos(dvector);
    //memoryKK->destroy_kokkos(dvector);
    dvector[index] = NULL;
    delete [] dname[index];
    dname[index] = NULL;
@@ -302,25 +302,25 @@ void AtomKokkos::remove_custom(int flag, int index)

void AtomKokkos::deallocate_topology()
{
  memory->destroy_kokkos(k_bond_type, bond_type);
  memory->destroy_kokkos(k_bond_atom, bond_atom);

  memory->destroy_kokkos(k_angle_type, angle_type);
  memory->destroy_kokkos(k_angle_atom1, angle_atom1);
  memory->destroy_kokkos(k_angle_atom2, angle_atom2);
  memory->destroy_kokkos(k_angle_atom3, angle_atom3);

  memory->destroy_kokkos(k_dihedral_type, dihedral_type);
  memory->destroy_kokkos(k_dihedral_atom1, dihedral_atom1);
  memory->destroy_kokkos(k_dihedral_atom2, dihedral_atom2);
  memory->destroy_kokkos(k_dihedral_atom3, dihedral_atom3);
  memory->destroy_kokkos(k_dihedral_atom4, dihedral_atom4);

  memory->destroy_kokkos(k_improper_type, improper_type);
  memory->destroy_kokkos(k_improper_atom1, improper_atom1);
  memory->destroy_kokkos(k_improper_atom2, improper_atom2);
  memory->destroy_kokkos(k_improper_atom3, improper_atom3);
  memory->destroy_kokkos(k_improper_atom4, improper_atom4);
  memoryKK->destroy_kokkos(k_bond_type, bond_type);
  memoryKK->destroy_kokkos(k_bond_atom, bond_atom);

  memoryKK->destroy_kokkos(k_angle_type, angle_type);
  memoryKK->destroy_kokkos(k_angle_atom1, angle_atom1);
  memoryKK->destroy_kokkos(k_angle_atom2, angle_atom2);
  memoryKK->destroy_kokkos(k_angle_atom3, angle_atom3);

  memoryKK->destroy_kokkos(k_dihedral_type, dihedral_type);
  memoryKK->destroy_kokkos(k_dihedral_atom1, dihedral_atom1);
  memoryKK->destroy_kokkos(k_dihedral_atom2, dihedral_atom2);
  memoryKK->destroy_kokkos(k_dihedral_atom3, dihedral_atom3);
  memoryKK->destroy_kokkos(k_dihedral_atom4, dihedral_atom4);

  memoryKK->destroy_kokkos(k_improper_type, improper_type);
  memoryKK->destroy_kokkos(k_improper_atom1, improper_atom1);
  memoryKK->destroy_kokkos(k_improper_atom2, improper_atom2);
  memoryKK->destroy_kokkos(k_improper_atom3, improper_atom3);
  memoryKK->destroy_kokkos(k_improper_atom4, improper_atom4);
}

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