git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@3785 f3b2605a-c512-4ea7-a41b-209d697bcdaa
63 lines
2.2 KiB
C
63 lines
2.2 KiB
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.
|
|
------------------------------------------------------------------------- */
|
|
|
|
/* ----------------------------------------------------------------------
|
|
Contributing authors: Mike Brown (SNL), wmbrown@sandia.gov
|
|
Peng Wang (Nvidia), penwang@nvidia.com
|
|
Paul Crozier (SNL), pscrozi@sandia.gov
|
|
------------------------------------------------------------------------- */
|
|
|
|
#ifndef PAIR_GPU_CELL_H
|
|
#define PAIR_GPU_CELL_H
|
|
|
|
|
|
typedef struct {
|
|
float3 *pos;
|
|
unsigned int *idx;
|
|
int *type;
|
|
int *natom;
|
|
} cell_list;
|
|
|
|
__global__ void kernel_set_cell_list(unsigned int *cell_idx);
|
|
__global__ void kernel_build_cell_list(float3 *cell_list,
|
|
unsigned int *cell_idx,
|
|
int *cell_type,
|
|
int *cell_atom,
|
|
float3 *pos,
|
|
int *type,
|
|
const int inum,
|
|
const int nall);
|
|
__global__ void kernel_test_rebuild(float3 *cell_list, int *cell_atom, int *rebuild);
|
|
__global__ void kernel_copy_list(float3 *cell_list,
|
|
unsigned int *cell_idx,
|
|
int *cell_atom,
|
|
float3 *pos);
|
|
__global__ void kernel_test_overflow(int *cell_atom, int *overflow, const int ncell);
|
|
void sortBlocks(unsigned int *keys, float3 *values1, int *values2, const int size);
|
|
|
|
void init_cell_list_const(double cell_size, double skin,
|
|
double *boxlo, double *boxhi);
|
|
void init_cell_list(cell_list &cell_list_gpu,
|
|
const int nall,
|
|
const int ncell,
|
|
const int buffer);
|
|
|
|
void build_cell_list(double *atom_pos, int *atom_type,
|
|
cell_list &cell_list_gpu,
|
|
const int ncell, const int ncell1D, const int buffer,
|
|
const int inum, const int nall, const int ago);
|
|
|
|
void clear_cell_list(cell_list &cell_list_gpu);
|
|
|
|
#endif
|