Last commit for lattice.h: 8a155c1522c0818d43b6bae4cc5806ea41f88793

Parallel md code using OpenMP and MPI

Ramses van Zon [2016-09-29 14:34:01]
Parallel md code using OpenMP and MPI
#ifndef LATTICEH
#define LATTICEH

#define NO_LATTICE_POSITION -1

typedef struct lattice_t {
    double    a;         /**<lattice distance (cubic) */
    double    L;         /**<length of system in each direction */
    int       i;         /**<indices of last point, in each direction */
    int       j;
    int       k;
    long long maxpoints; /**<maximum number of points */
    long long maxperdim; /**<maximum number of points per direction */
    int       starti;    /**<first point in i direction */
    int       startj;    /**<first point in j direction */
    int       startk;    /**<first point in k direction */
    int       stopi;     /**<last point in i direction */
    int       stopj;     /**<last point in j direction */
    int       stopk;     /**<last point in k direction */
} lattice_t;

/** Initialize a lattice point generator for a system of size LxLxL
   with N points. Coordinates of the points will lie between -L/2 and
   +L/2 in each direction.*/
lattice_t init_lattice(double L, long long N);

/** Initialize a lattice point generator for a part of a system of size
   LxLxL with total number of N points (with points between -L/2 and
   L/2). Part is defined by its origin and dimensions
   localL. Coordinates of the points will lie between origin[d] and
   origin[d]n+localL[d] in each direction d=0,1,2. */
lattice_t init_partial_lattice(double L, long long N, double* origin, double* localL);

/** Fill x, y, z with the next point of the lattice. */
long long make_lattice_position(lattice_t* lat, double* x, double* y, double* z);

#endif
ViewGit