#include <stdlib.h>#include <stdio.h>#include <string.h>#include <math.h>#include "msmpot.h"Go to the source code of this file.
| Compounds | |
| struct | Msmpot_t | 
| Defines | |
| #define | GRID_TEMPLATE(TYPE) | 
| #define | GRID_INIT(a) | 
| #define | GRID_DONE(a) free((a)->buffer) | 
| #define | GRID_INDEX(a, _i, _j, _k) (((_k)*((a)->nj) + (_j))*(IndexType)((a)->ni) + (_i)) | 
| #define | GRID_POINTER(a, _i, _j, _k) ((a)->data + GRID_INDEX(a, _i, _j, _k)) | 
| #define | GRID_RESIZE(a, __i0, __ni, __j0, __nj, __k0, __nk) | 
| #define | GRID_ZERO(a) memset((a)->buffer, 0, (a)->numbytes) | 
| #define | GRID_INDEX_CHECK(a, _i, _j, _k) | 
| #define | DEFAULT_HMIN 2.f | 
| #define | DEFAULT_CUTOFF 12.f | 
| #define | DEFAULT_INTERP MSMPOT_INTERP_CUBIC | 
| #define | DEFAULT_SPLIT MSMPOT_SPLIT_TAYLOR2 | 
| #define | DEFAULT_BINLENMAX 4.f | 
| #define | DEFAULT_BINDEPTH 8 | 
| #define | DEFAULT_BINFILL 0.75f | 
| #define | DEFAULT_DENSITY 0.1f | 
| #define | DEFAULT_OVER 20 | 
| #define | DEFAULT_ERRTOL 5e-3 | 
| #define | ATOM_SIZE 4 | 
| #define | ATOM_X(i) ((i)<<2) | 
| #define | ATOM_Y(i) (((i)<<2)+1) | 
| #define | ATOM_Z(i) (((i)<<2)+2) | 
| #define | ATOM_Q(i) (((i)<<2)+3) | 
| #define | SET_X(flag) ((flag) |= 0x01) | 
| #define | SET_Y(flag) ((flag) |= 0x02) | 
| #define | SET_Z(flag) ((flag) |= 0x04) | 
| #define | IS_SET_X(flag) ((flag) & 0x01) | 
| #define | IS_SET_Y(flag) ((flag) & 0x02) | 
| #define | IS_SET_Z(flag) ((flag) & 0x04) | 
| #define | IS_SET_ANY(flag) ((flag) & 0x07) | 
| #define | IS_SET_ALL(flag) ((flag) == 0x07) | 
| #define | ERROR(err) (err) | 
| #define | ERRMSG(err, msg) (err) | 
| #define | ASSERT(expr) | 
| #define | REPORT(msg) | 
| #define | SPOLY(pg, s, split) | 
| Typedefs | |
| typedef int | IndexType | 
| Functions | |
| GRID_TEMPLATE (float) | |
| void | Msmpot_set_defaults (Msmpot *msm) | 
| int | Msmpot_check_params (Msmpot *msm, const float *epotmap, int mx, int my, int mz, float lx, float ly, float lz, float vx, float vy, float vz, const float *atom, int natoms) | 
| int | Msmpot_setup (Msmpot *msm) | 
| void | Msmpot_cleanup (Msmpot *msm) | 
| int | Msmpot_compute_shortrng_bins (Msmpot *msm) | 
| int | Msmpot_compute_shortrng_bin_neighborhood (Msmpot *msm, float rx, float ry, float rz) | 
| int | Msmpot_compute_shortrng_bin_hashing (Msmpot *msm) | 
| int | Msmpot_compute_shortrng_linklist (Msmpot *msm, const float *atom, int natoms) | 
| int | Msmpot_compute_longrng (Msmpot *msm) | 
| int | Msmpot_compute_longrng_cubic (Msmpot *msm) | 
| 
 | 
| 
 Definition at line 387 of file msmpot_internal.h. Referenced by anterpolation, interpolation, latticecutoff, Msmpot_compute_shortrng_bin_hashing, setup_bins, setup_domain, setup_hierarchy, setup_mapinterp, and setup_mapinterpcoef_1d. | 
| 
 | 
| 
 Definition at line 129 of file msmpot_internal.h. Referenced by linklist_evaluation, linklist_hashing, and Msmpot_compute_shortrng_bin_hashing. | 
| 
 | 
| 
 Definition at line 124 of file msmpot_internal.h. Referenced by bin_evaluation, Msmpot_compute_shortrng_bin_hashing, and setup_bins. | 
| 
 | 
| 
 Definition at line 126 of file msmpot_internal.h. Referenced by linklist_evaluation, linklist_hashing, Msmpot_compute_shortrng_bin_hashing, and setup_domain. | 
| 
 | 
| 
 Definition at line 127 of file msmpot_internal.h. Referenced by linklist_evaluation, linklist_hashing, Msmpot_compute_shortrng_bin_hashing, and setup_domain. | 
| 
 | 
| 
 Definition at line 128 of file msmpot_internal.h. Referenced by linklist_evaluation, linklist_hashing, Msmpot_compute_shortrng_bin_hashing, and setup_domain. | 
| 
 | 
| 
 Definition at line 116 of file msmpot_internal.h. Referenced by Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 117 of file msmpot_internal.h. Referenced by Msmpot_configure, and Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 114 of file msmpot_internal.h. | 
| 
 | 
| 
 Definition at line 110 of file msmpot_internal.h. Referenced by Msmpot_configure, and Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 118 of file msmpot_internal.h. Referenced by Msmpot_configure, and Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 122 of file msmpot_internal.h. Referenced by Msmpot_configure, and Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 109 of file msmpot_internal.h. Referenced by Msmpot_configure, and Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 111 of file msmpot_internal.h. Referenced by Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 120 of file msmpot_internal.h. Referenced by setup_bins. | 
| 
 | 
| 
 Definition at line 112 of file msmpot_internal.h. Referenced by Msmpot_set_defaults. | 
| 
 | 
| 
 Definition at line 376 of file msmpot_internal.h. Referenced by Msmpot_check_params, Msmpot_compute_longrng, Msmpot_cuda_setup, Msmpot_use_cuda, setup_mapinterp, setup_mapinterpcoef_1d, and setup_periodic_hlevelparams_1d. | 
| 
 | 
| 
 | 
| 
 Definition at line 57 of file msmpot_internal.h. Referenced by Msmpot_cleanup. | 
| 
 | 
| 
 Definition at line 61 of file msmpot_internal.h. Referenced by anterpolation, interpolation, latticecutoff, and setup_hierarchy. | 
| 
 | 
| 
 Definition at line 104 of file msmpot_internal.h. Referenced by anterpolation, interpolation, latticecutoff, and setup_hierarchy. | 
| 
 | 
| Value: ((a)->buffer=NULL, (a)->data=NULL, (a)->numbytes=0, (a)->maxbytes=0, \ (a)->i0=0, (a)->j0=0, (a)->k0=0, (a)->ni=0, (a)->nj=0, (a)->nk=0) Definition at line 52 of file msmpot_internal.h. Referenced by setup_hierarchy. | 
| 
 | 
| 
 Definition at line 65 of file msmpot_internal.h. | 
| 
 | 
| Value: do { \
    int _i0=(__i0), _ni=(__ni); \
    int _j0=(__j0), _nj=(__nj); \
    int _k0=(__k0), _nk=(__nk); \
    size_t _numbytes = (_nk * _nj) * (size_t) _ni * sizeof((a)->buffer[0]); \
    if ((a)->maxbytes < _numbytes) { \
      void *_t = realloc((a)->buffer, _numbytes); \
      if (NULL == _t) return ERROR(MSMPOT_ERROR_MALLOC); \
      (a)->buffer = (float *) _t; \
      (a)->maxbytes = _numbytes; \
    } \
    (a)->numbytes = _numbytes; \
    (a)->i0 = _i0, (a)->ni = _ni; \
    (a)->j0 = _j0, (a)->nj = _nj; \
    (a)->k0 = _k0, (a)->nk = _nk; \
    (a)->data = (a)->buffer + GRID_INDEX((a), -_i0, -_j0, -_k0); \
  } while (0)Definition at line 71 of file msmpot_internal.h. Referenced by setup_hierarchy. | 
| 
 | 
| Value: typedef struct TYPE##Grid_t { \
    TYPE *buffer;         \
    TYPE *data;           \
    size_t numbytes;      \
    size_t maxbytes;      \
    int i0, j0, k0;       \
    int ni, nj, nk;       \
  } TYPE##GridDefinition at line 41 of file msmpot_internal.h. | 
| 
 | 
| 
 Definition at line 91 of file msmpot_internal.h. Referenced by anterpolation. | 
| 
 | 
| 
 Definition at line 138 of file msmpot_internal.h. | 
| 
 | 
| 
 Definition at line 137 of file msmpot_internal.h. Referenced by anterpolation, interpolation, and setup_hierarchy. | 
| 
 | 
| 
 Definition at line 134 of file msmpot_internal.h. Referenced by bin_evaluation, cuda_shortrange, interpolation_factored, latticecutoff, linklist_evaluation, linklist_hashing, Msmpot_compute_shortrng_bin_hashing, Msmpot_cuda_condense_qgrids, prolongation, restriction, setup_domain, setup_hierarchy, and setup_origin. | 
| 
 | 
| 
 Definition at line 135 of file msmpot_internal.h. Referenced by bin_evaluation, cuda_shortrange, interpolation_factored, latticecutoff, linklist_evaluation, linklist_hashing, Msmpot_compute_shortrng_bin_hashing, Msmpot_cuda_condense_qgrids, prolongation, restriction, setup_domain, setup_hierarchy, and setup_origin. | 
| 
 | 
| 
 Definition at line 136 of file msmpot_internal.h. Referenced by bin_evaluation, cuda_shortrange, interpolation_factored, latticecutoff, linklist_evaluation, linklist_hashing, Msmpot_compute_shortrng_bin_hashing, Msmpot_cuda_condense_qgrids, prolongation, restriction, setup_domain, setup_hierarchy, and setup_origin. | 
| 
 | 
| 
 Definition at line 407 of file msmpot_internal.h. Referenced by Msmpot_compute, Msmpot_compute_longrng_cubic, Msmpot_compute_shortrng_bins, Msmpot_compute_shortrng_linklist, Msmpot_cuda_cleanup, Msmpot_cuda_compute_shortrng, Msmpot_cuda_setup, Msmpot_cuda_setup_shortrng, and Msmpot_setup. | 
| 
 | 
| 
 Definition at line 131 of file msmpot_internal.h. Referenced by Msmpot_compute, and setup_origin. | 
| 
 | 
| 
 Definition at line 132 of file msmpot_internal.h. Referenced by Msmpot_compute, and setup_origin. | 
| 
 | 
| 
 Definition at line 133 of file msmpot_internal.h. Referenced by Msmpot_compute, and setup_origin. | 
| 
 | 
| Value: do { \
    float _s = s;    \
    float _g = 0; \
    ASSERT(0 <= _s && _s <= 1); \
    switch (split) { \
      case MSMPOT_SPLIT_TAYLOR2: \
        _g = 1 + (_s-1)*(-1.f/2 + (_s-1)*(3.f/8)); \
        break; \
      case MSMPOT_SPLIT_TAYLOR3: \
        _g = 1 + (_s-1)*(-1.f/2 + (_s-1)*(3.f/8 + (_s-1)*(-5.f/16))); \
        break; \
      case MSMPOT_SPLIT_TAYLOR4: \
        _g = 1 + (_s-1)*(-1.f/2 + (_s-1)*(3.f/8 + (_s-1)*(-5.f/16 \
                + (_s-1)*(35.f/128)))); \
        break; \
      default: \
        return ERRMSG(MSMPOT_ERROR_SUPPORT, \
            "splitting function not implemented"); \
    } \
    *(pg) = _g; \
  } while (0)Definition at line 420 of file msmpot_internal.h. Referenced by bin_evaluation, linklist_evaluation, Msmpot_cuda_setup_latcut, and setup_hierarchy. | 
| 
 | 
| 
 Definition at line 36 of file msmpot_internal.h. | 
| 
 | 
| 
 | 
| 
 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 Definition at line 21 of file msmpot_setup.c. | 
| 
 | 
| 
 Definition at line 132 of file msmpot_setup.c. | 
| 
 | 
| 
 Definition at line 139 of file msmpot_compute.c. Referenced by Msmpot_compute. | 
| 
 | 
| 
 Definition at line 54 of file msmpot_cubic.c. Referenced by Msmpot_compute_longrng. | 
| 
 | 
| 
 Definition at line 351 of file msmpot_compute.c. Referenced by Msmpot_compute_shortrng_bins, and Msmpot_cuda_compute_shortrng. | 
| 
 | ||||||||||||||||||||
| 
 Definition at line 218 of file msmpot_compute.c. Referenced by Msmpot_compute_shortrng_bins, and Msmpot_cuda_setup_shortrng. | 
| 
 | 
| 
 Definition at line 167 of file msmpot_compute.c. References Msmpot_t::dx, Msmpot_t::dy, and Msmpot_t::dz. Referenced by Msmpot_compute. | 
| 
 | ||||||||||||||||
| 
 Definition at line 608 of file msmpot_compute.c. Referenced by Msmpot_compute, Msmpot_compute_shortrng_bins, and Msmpot_cuda_compute_shortrng. | 
| 
 | 
| 
 Definition at line 56 of file msmpot_setup.c. | 
| 
 | 
| 
 Definition at line 205 of file msmpot_setup.c. References Msmpot_t::islongcutoff. | 
 1.2.14 written by Dimitri van Heesch,
 © 1997-2002
1.2.14 written by Dimitri van Heesch,
 © 1997-2002