From 22d2d1cdf312122da87737746aabb38dc1bd841e Mon Sep 17 00:00:00 2001 From: Stan Moore Date: Thu, 11 Jan 2018 10:01:34 -0700 Subject: [PATCH] Fix issue in pair_snap_kokkos memory_usage --- src/KOKKOS/pair_snap_kokkos.h | 1 + src/KOKKOS/pair_snap_kokkos_impl.h | 19 +++++++++++++++++++ src/KOKKOS/sna_kokkos.h | 2 ++ src/KOKKOS/sna_kokkos_impl.h | 18 ++++++++++++++++++ 4 files changed, 40 insertions(+) diff --git a/src/KOKKOS/pair_snap_kokkos.h b/src/KOKKOS/pair_snap_kokkos.h index f73ddc43d9..3b56789cc1 100644 --- a/src/KOKKOS/pair_snap_kokkos.h +++ b/src/KOKKOS/pair_snap_kokkos.h @@ -48,6 +48,7 @@ public: void coeff(int, char**); void init_style(); void compute(int, int); + double memory_usage(); template KOKKOS_INLINE_FUNCTION diff --git a/src/KOKKOS/pair_snap_kokkos_impl.h b/src/KOKKOS/pair_snap_kokkos_impl.h index e0514753e9..db694b1a2a 100644 --- a/src/KOKKOS/pair_snap_kokkos_impl.h +++ b/src/KOKKOS/pair_snap_kokkos_impl.h @@ -615,3 +615,22 @@ void PairSNAPKokkos::v_tally_xyz(EV_FLOAT &ev, const int &i, const i v_vatom(j,5) += 0.5*v5; } } + +/* ---------------------------------------------------------------------- + memory usage +------------------------------------------------------------------------- */ + +template +double PairSNAPKokkos::memory_usage() +{ + double bytes = Pair::memory_usage(); + int n = atom->ntypes+1; + bytes += n*n*sizeof(int); + bytes += n*n*sizeof(double); + bytes += 3*nmax*sizeof(double); + bytes += nmax*sizeof(int); + bytes += (2*ncoeffall)*sizeof(double); + bytes += (ncoeff*3)*sizeof(double); + bytes += snaKK.memory_usage(); + return bytes; +} diff --git a/src/KOKKOS/sna_kokkos.h b/src/KOKKOS/sna_kokkos.h index 8434e76b8d..7a80b262b7 100644 --- a/src/KOKKOS/sna_kokkos.h +++ b/src/KOKKOS/sna_kokkos.h @@ -65,6 +65,8 @@ inline inline T_INT size_thread_scratch_arrays(); + double memory_usage(); + int ncoeff; // functions for bispectrum coefficients diff --git a/src/KOKKOS/sna_kokkos_impl.h b/src/KOKKOS/sna_kokkos_impl.h index 79222e71de..086802573d 100644 --- a/src/KOKKOS/sna_kokkos_impl.h +++ b/src/KOKKOS/sna_kokkos_impl.h @@ -1269,3 +1269,21 @@ double SNAKokkos::compute_dsfac(double r, double rcut) return 0.0; } +/* ---------------------------------------------------------------------- + memory usage of arrays +------------------------------------------------------------------------- */ + +template +double SNAKokkos::memory_usage() +{ + int jdim = twojmax + 1; + double bytes; + bytes = jdim * jdim * jdim * jdim * jdim * sizeof(double); + bytes += 2 * jdim * jdim * jdim * sizeof(std::complex); + bytes += 2 * jdim * jdim * jdim * sizeof(double); + bytes += jdim * jdim * jdim * 3 * sizeof(std::complex); + bytes += jdim * jdim * jdim * 3 * sizeof(double); + bytes += ncoeff * sizeof(double); + bytes += jdim * jdim * jdim * jdim * jdim * sizeof(std::complex); + return bytes; +}