Files
lammps/lib/gpu/pair_gpu_cell.h
pscrozi 4ae4792b00 Updating lib/gpu to version 2.
git-svn-id: svn://svn.icms.temple.edu/lammps-ro/trunk@3785 f3b2605a-c512-4ea7-a41b-209d697bcdaa
2010-02-04 21:33:18 +00:00

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