/* -*- c++ -*- ---------------------------------------------------------- LAMMPS - Large-scale Atomic/Molecular Massively Parallel Simulator http://lammps.sandia.gov, Sandia National Laboratories Steve Plimpton, sjplimp@sandia.gov Copyright (2003) Sandia Corporation. Under the terms of Contract DE-AC04-94AL85000 with Sandia Corporation, the U.S. Government retains certain rights in this software. This software is distributed under the GNU General Public License. See the README file in the top-level LAMMPS directory. ------------------------------------------------------------------------- */ #ifdef ATOM_CLASS AtomStyle(angle/kk,AtomVecAngleKokkos) AtomStyle(angle/kk/device,AtomVecAngleKokkos) AtomStyle(angle/kk/host,AtomVecAngleKokkos) #else #ifndef LMP_ATOM_VEC_ANGLE_KOKKOS_H #define LMP_ATOM_VEC_ANGLE_KOKKOS_H #include "atom_vec_kokkos.h" namespace LAMMPS_NS { class AtomVecAngleKokkos : public AtomVecKokkos { public: AtomVecAngleKokkos(class LAMMPS *); virtual ~AtomVecAngleKokkos() {} void grow(int); void copy(int, int, int); int pack_comm(int, int *, double *, int, int *); int pack_comm_vel(int, int *, double *, int, int *); void unpack_comm(int, int, double *); void unpack_comm_vel(int, int, double *); int pack_reverse(int, int, double *); void unpack_reverse(int, int *, double *); int pack_border(int, int *, double *, int, int *); int pack_border_vel(int, int *, double *, int, int *); int pack_border_hybrid(int, int *, double *); void unpack_border(int, int, double *); void unpack_border_vel(int, int, double *); int unpack_border_hybrid(int, int, double *); int pack_exchange(int, double *); int unpack_exchange(double *); int size_restart(); int pack_restart(int, double *); int unpack_restart(double *); void create_atom(int, double *); void data_atom(double *, tagint, char **); int data_atom_hybrid(int, char **); void pack_data(double **); int pack_data_hybrid(int, double *); void write_data(FILE *, int, double **); int write_data_hybrid(FILE *, double *); bigint memory_usage(); void grow_reset(); int pack_comm_kokkos(const int &n, const DAT::tdual_int_2d &k_sendlist, const int & iswap, const DAT::tdual_xfloat_2d &buf, const int &pbc_flag, const int pbc[]); void unpack_comm_kokkos(const int &n, const int &nfirst, const DAT::tdual_xfloat_2d &buf); int pack_comm_self(const int &n, const DAT::tdual_int_2d &list, const int & iswap, const int nfirst, const int &pbc_flag, const int pbc[]); int pack_border_kokkos(int n, DAT::tdual_int_2d k_sendlist, DAT::tdual_xfloat_2d buf,int iswap, int pbc_flag, int *pbc, ExecutionSpace space); void unpack_border_kokkos(const int &n, const int &nfirst, const DAT::tdual_xfloat_2d &buf, ExecutionSpace space); int pack_exchange_kokkos(const int &nsend,DAT::tdual_xfloat_2d &buf, DAT::tdual_int_1d k_sendlist, DAT::tdual_int_1d k_copylist, ExecutionSpace space, int dim, X_FLOAT lo, X_FLOAT hi); int unpack_exchange_kokkos(DAT::tdual_xfloat_2d &k_buf, int nrecv, int nlocal, int dim, X_FLOAT lo, X_FLOAT hi, ExecutionSpace space); void sync(ExecutionSpace space, unsigned int mask); void modified(ExecutionSpace space, unsigned int mask); void sync_overlapping_device(ExecutionSpace space, unsigned int mask); protected: tagint *tag; int *type,*mask; imageint *image; double **x,**v,**f; tagint *molecule; int **nspecial; tagint **special; int *num_bond; int **bond_type; tagint **bond_atom; int *num_angle; int **angle_type; tagint **angle_atom1,**angle_atom2,**angle_atom3; DAT::t_tagint_1d d_tag; DAT::t_int_1d d_type, d_mask; HAT::t_tagint_1d h_tag; HAT::t_int_1d h_type, h_mask; DAT::t_imageint_1d d_image; HAT::t_imageint_1d h_image; DAT::t_x_array d_x; DAT::t_v_array d_v; DAT::t_f_array d_f; HAT::t_x_array h_x; HAT::t_v_array h_v; HAT::t_f_array h_f; DAT::t_tagint_1d d_molecule; DAT::t_int_2d d_nspecial; DAT::t_tagint_2d d_special; DAT::t_int_1d d_num_bond; DAT::t_int_2d d_bond_type; DAT::t_tagint_2d d_bond_atom; HAT::t_tagint_1d h_molecule; HAT::t_int_2d h_nspecial; HAT::t_tagint_2d h_special; HAT::t_int_1d h_num_bond; HAT::t_int_2d h_bond_type; HAT::t_tagint_2d h_bond_atom; DAT::t_int_1d d_num_angle; DAT::t_int_2d d_angle_type; DAT::t_tagint_2d d_angle_atom1,d_angle_atom2,d_angle_atom3; HAT::t_int_1d h_num_angle; HAT::t_int_2d h_angle_type; HAT::t_tagint_2d h_angle_atom1,h_angle_atom2,h_angle_atom3; DAT::tdual_int_1d k_count; }; } #endif #endif /* ERROR/WARNING messages: E: Per-processor system is too big The number of owned atoms plus ghost atoms on a single processor must fit in 32-bit integer. E: Invalid atom type in Atoms section of data file Atom types must range from 1 to specified # of types. */