73 lines
2.0 KiB
C
73 lines
2.0 KiB
C
/***************************************************************************
|
|
*cr
|
|
*cr (C) Copyright 2008-2010 The Board of Trustees of the
|
|
*cr University of Illinois
|
|
*cr All Rights Reserved
|
|
*cr
|
|
***************************************************************************/
|
|
|
|
#ifndef CUTOFF_H
|
|
#define CUTOFF_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#define SHIFTED
|
|
|
|
/* A structure to record how points in 3D space map to array
|
|
elements. Array element (z, y, x)
|
|
where 0 <= x < nx, 0 <= y < ny, 0 <= z < nz
|
|
maps to coordinate (xlo, ylo, zlo) + h * (x, y, z).
|
|
*/
|
|
typedef struct LatticeDim_t {
|
|
/* Number of lattice points in x, y, z dimensions */
|
|
int nx, ny, nz;
|
|
|
|
/* Lowest corner of lattice */
|
|
Vec3 lo;
|
|
|
|
/* Lattice spacing */
|
|
float h;
|
|
} LatticeDim;
|
|
|
|
/* An electric potential field sampled on a regular grid. The
|
|
lattice size and grid point positions are specified by 'dim'.
|
|
*/
|
|
typedef struct Lattice_t {
|
|
LatticeDim dim;
|
|
float *lattice;
|
|
} Lattice;
|
|
|
|
LatticeDim lattice_from_bounding_box(Vec3 lo, Vec3 hi, float h);
|
|
|
|
Lattice *create_lattice(LatticeDim dim);
|
|
void destroy_lattice(Lattice *);
|
|
|
|
int gpu_compute_cutoff_potential_lattice(
|
|
struct pb_TimerSet *timers,
|
|
Lattice *lattice,
|
|
float cutoff, /* cutoff distance */
|
|
Atoms *atom, /* array of atoms */
|
|
int verbose, /* print info/debug messages */
|
|
struct pb_Parameters *parameters
|
|
);
|
|
|
|
int cpu_compute_cutoff_potential_lattice(
|
|
Lattice *lattice, /* the lattice */
|
|
float cutoff, /* cutoff distance */
|
|
Atoms *atoms /* array of atoms */
|
|
);
|
|
|
|
int remove_exclusions(
|
|
Lattice *lattice, /* the lattice */
|
|
float exclcutoff, /* exclusion cutoff distance */
|
|
Atoms *atom /* array of atoms */
|
|
);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* CUTOFF_H */
|