Revome unused code from nsgrid
authorJoe Jordan <ejjordan12@gmail.com>
Fri, 19 Feb 2021 20:33:04 +0000 (20:33 +0000)
committerAndrey Alekseenko <al42and@gmail.com>
Fri, 19 Feb 2021 20:33:04 +0000 (20:33 +0000)
In addition to removing several functions that are not used,
some unused parameters from the t_grid struct are removed.

src/gromacs/mdlib/nsgrid.cpp
src/gromacs/mdlib/nsgrid.h
src/gromacs/mdtypes/nblist.h

index 47736d18d154cf7edf1aae04dbe925271a16cf93..1bfe85acf07edf6d063a62dc9747cdb9d85384fc 100644 (file)
@@ -4,7 +4,7 @@
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
  * Copyright (c) 2013,2014,2015,2017,2018 by the GROMACS development team.
- * Copyright (c) 2019,2020, by the GROMACS development team, led by
+ * Copyright (c) 2019,2020,2021, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
 
 #include <cmath>
 #include <cstdio>
-#include <cstdlib>
-
-#include <algorithm>
 
 #include "gromacs/domdec/dlb.h"
 #include "gromacs/domdec/domdec.h"
 #include "gromacs/domdec/domdec_struct.h"
-#include "gromacs/fileio/pdbio.h"
-#include "gromacs/gmxlib/network.h"
 #include "gromacs/math/vec.h"
-#include "gromacs/mdtypes/forcerec.h"
-#include "gromacs/pbcutil/pbc.h"
 #include "gromacs/utility/fatalerror.h"
-#include "gromacs/utility/futil.h"
-#include "gromacs/utility/smalloc.h"
 
 /***********************************
  *         Grid Routines
  ***********************************/
 
-static const char* range_warn =
-        "Explanation: During neighborsearching, we assign each particle to a grid\n"
-        "based on its coordinates. If your system contains collisions or parameter\n"
-        "errors that give particles very high velocities you might end up with some\n"
-        "coordinates being +-Infinity or NaN (not-a-number). Obviously, we cannot\n"
-        "put these on a grid, so this is usually where we detect those errors.\n"
-        "Make sure your system is properly energy-minimized and that the potential\n"
-        "energy seems reasonable before trying again.";
-
 static void calc_x_av_stddev(int n, rvec* x, rvec av, rvec stddev)
 {
     dvec s1, s2;
@@ -196,703 +178,3 @@ void get_nsgrid_boundaries(int           nboundeddim,
 
     *grid_density = ncg / vol;
 }
-
-static void set_grid_sizes(matrix              box,
-                           rvec                izones_x0,
-                           rvec                izones_x1,
-                           real                rlist,
-                           const gmx_domdec_t* dd,
-                           const gmx_ddbox_t*  ddbox,
-                           t_grid*             grid,
-                           real                grid_density)
-{
-    int      i, j;
-    gmx_bool bDD, bDDRect;
-    rvec     izones_size;
-    real     inv_r_ideal, size, add_tric, radd;
-
-    for (i = 0; (i < DIM); i++)
-    {
-        if (debug)
-        {
-            fprintf(debug,
-                    "set_grid_sizes, i-zone bounds for dim %d: %6.3f %6.3f\n",
-                    i,
-                    izones_x0[i],
-                    izones_x1[i]);
-        }
-        izones_size[i] = izones_x1[i] - izones_x0[i];
-    }
-
-    /* Use the ideal number of cg's per cell to set the ideal cell size */
-    inv_r_ideal = std::cbrt(grid_density / grid->ncg_ideal);
-    if (rlist > 0 && inv_r_ideal * rlist < 1)
-    {
-        inv_r_ideal = 1 / rlist;
-    }
-    if (debug)
-    {
-        fprintf(debug, "CG density %f ideal ns cell size %f\n", grid_density, 1 / inv_r_ideal);
-    }
-
-    clear_rvec(grid->cell_offset);
-    for (i = 0; (i < DIM); i++)
-    {
-        /* Initial settings, for DD might change below */
-        grid->cell_offset[i] = izones_x0[i];
-        size                 = izones_size[i];
-
-        bDD = (dd != nullptr) && (dd->numCells[i] > 1);
-        if (!bDD)
-        {
-            bDDRect = FALSE;
-        }
-        else
-        {
-            /* With DD grid cell jumps only the first decomposition
-             * direction has uniform DD cell boundaries.
-             */
-            bDDRect = !((ddbox->tric_dir[i] != 0) || (dd_dlb_is_on(dd) && i != dd->dim[0]));
-
-            radd = rlist;
-            if (i >= ddbox->npbcdim
-                && (rlist == 0 || izones_x1[i] + radd > ddbox->box0[i] + ddbox->box_size[i]))
-            {
-                radd = ddbox->box0[i] + ddbox->box_size[i] - izones_x1[i];
-                if (radd < 0)
-                {
-                    radd = 0;
-                }
-            }
-
-            /* With DD we only need a grid of one DD cell size + rlist */
-            if (bDDRect)
-            {
-                size += radd;
-            }
-            else
-            {
-                size += radd / ddbox->skew_fac[i];
-            }
-
-            /* Check if the cell boundary in this direction is
-             * perpendicular to the Cartesian axis.
-             * Since grid->npbcdim isan integer that in principle can take
-             * any value, we help the compiler avoid warnings and potentially
-             * optimize by ensuring that j < DIM here.
-             */
-            for (j = i + 1; j < grid->npbcdim && j < DIM; j++)
-            {
-                if (box[j][i] != 0)
-                {
-                    /* Correct the offset for the home cell location */
-                    grid->cell_offset[i] += izones_x0[j] * box[j][i] / box[j][j];
-
-                    /* Correct the offset and size for the off-diagonal
-                     * displacement of opposing DD cell corners.
-                     */
-                    /* Without rouding we would need to add:
-                     * box[j][i]*rlist/(dd->skew_fac[i]*box[j][j])
-                     */
-                    /* Determine the shift for the corners of the triclinic box */
-                    add_tric = izones_size[j] * box[j][i] / box[j][j];
-                    if (dd->ndim == 1 && j == ZZ)
-                    {
-                        /* With 1D domain decomposition the cg's are not in
-                         * the triclinic box, but trilinic x-y and rectangular y-z.
-                         * Therefore we need to add the shift from the trilinic
-                         * corner to the corner at y=0.
-                         */
-                        add_tric += -box[YY][XX] * box[ZZ][YY] / box[YY][YY];
-                    }
-                    if (box[j][i] < 0)
-                    {
-                        grid->cell_offset[i] += add_tric;
-                        size -= add_tric;
-                    }
-                    else
-                    {
-                        size += add_tric;
-                    }
-                }
-            }
-        }
-        if (!bDDRect)
-        {
-            /* No DD or the box is triclinic is this direction:
-             * we will use the normal grid ns that checks all cells
-             * that are within cut-off distance of the i-particle.
-             */
-            grid->n[i] = gmx::roundToInt(size * inv_r_ideal);
-            if (grid->n[i] < 2)
-            {
-                grid->n[i] = 2;
-            }
-            grid->cell_size[i] = size / grid->n[i];
-            grid->ncpddc[i]    = 0;
-        }
-        else
-        {
-            /* We use grid->ncpddc[i] such that all particles
-             * in one ns cell belong to a single DD cell only.
-             * We can then beforehand exclude certain ns grid cells
-             * for non-home i-particles.
-             */
-            grid->ncpddc[i] = gmx::roundToInt(izones_size[i] * inv_r_ideal);
-            if (grid->ncpddc[i] < 2)
-            {
-                grid->ncpddc[i] = 2;
-            }
-            grid->cell_size[i] = izones_size[i] / grid->ncpddc[i];
-            grid->n[i]         = grid->ncpddc[i] + static_cast<int>(radd / grid->cell_size[i]) + 1;
-        }
-        if (debug)
-        {
-            fprintf(debug,
-                    "grid dim %d size %d x %f: %f - %f\n",
-                    i,
-                    grid->n[i],
-                    grid->cell_size[i],
-                    grid->cell_offset[i],
-                    grid->cell_offset[i] + grid->n[i] * grid->cell_size[i]);
-        }
-    }
-
-    if (debug)
-    {
-        fprintf(debug,
-                "CG ncg ideal %d, actual density %.1f\n",
-                grid->ncg_ideal,
-                grid_density * grid->cell_size[XX] * grid->cell_size[YY] * grid->cell_size[ZZ]);
-    }
-}
-
-t_grid* init_grid(FILE* fplog, t_forcerec* fr)
-{
-    char*   ptr;
-    t_grid* grid;
-
-    snew(grid, 1);
-
-    grid->npbcdim = numPbcDimensions(fr->pbcType);
-
-    if (fr->pbcType == PbcType::XY && fr->nwall == 2)
-    {
-        grid->nboundeddim = 3;
-    }
-    else
-    {
-        grid->nboundeddim = grid->npbcdim;
-    }
-
-    if (debug)
-    {
-        fprintf(debug, "The coordinates are bounded in %d dimensions\n", grid->nboundeddim);
-    }
-
-    /* The ideal number of cg's per ns grid cell seems to be 10 */
-    grid->ncg_ideal = 10;
-    ptr             = getenv("GMX_NSCELL_NCG");
-    if (ptr)
-    {
-        sscanf(ptr, "%d", &grid->ncg_ideal);
-        if (fplog)
-        {
-            fprintf(fplog, "Set ncg_ideal to %d\n", grid->ncg_ideal);
-        }
-        if (grid->ncg_ideal <= 0)
-        {
-            gmx_fatal(FARGS, "The number of cg's per cell should be > 0");
-        }
-    }
-    if (debug)
-    {
-        fprintf(debug, "Set ncg_ideal to %d\n", grid->ncg_ideal);
-    }
-
-    return grid;
-}
-
-void done_grid(t_grid* grid)
-{
-    if (grid == nullptr)
-    {
-        return;
-    }
-    grid->nr = 0;
-    clear_ivec(grid->n);
-    grid->ncells = 0;
-    sfree(grid->cell_index);
-    sfree(grid->a);
-    sfree(grid->index);
-    sfree(grid->nra);
-    grid->cells_nalloc = 0;
-    sfree(grid->dcx2);
-    sfree(grid->dcy2);
-    sfree(grid->dcz2);
-    grid->dc_nalloc = 0;
-
-    if (debug)
-    {
-        fprintf(debug, "Successfully freed memory for grid pointers.");
-    }
-    sfree(grid);
-}
-
-int xyz2ci_(int nry, int nrz, int x, int y, int z)
-/* Return the cell index */
-{
-    return (nry * nrz * x + nrz * y + z);
-}
-
-void ci2xyz(t_grid* grid, int i, int* x, int* y, int* z)
-/* Return x,y and z from the cell index */
-{
-    int ci;
-
-    range_check_mesg(i, 0, grid->nr, range_warn);
-
-    ci = grid->cell_index[i];
-    *x = ci / (grid->n[YY] * grid->n[ZZ]);
-    ci -= (*x) * grid->n[YY] * grid->n[ZZ];
-    *y = ci / grid->n[ZZ];
-    ci -= (*y) * grid->n[ZZ];
-    *z = ci;
-}
-
-static int ci_not_used(const ivec n)
-{
-    /* Return an improbable value */
-    return xyz2ci(n[YY], n[ZZ], 3 * n[XX], 3 * n[YY], 3 * n[ZZ]);
-}
-
-static void set_grid_ncg(t_grid* grid, int ncg)
-{
-    int nr_old, i;
-
-    grid->nr = ncg;
-    if (grid->nr + 1 > grid->nr_alloc)
-    {
-        nr_old         = grid->nr_alloc;
-        grid->nr_alloc = over_alloc_dd(grid->nr) + 1;
-        srenew(grid->cell_index, grid->nr_alloc);
-        for (i = nr_old; i < grid->nr_alloc; i++)
-        {
-            grid->cell_index[i] = 0;
-        }
-        srenew(grid->a, grid->nr_alloc);
-    }
-}
-
-void grid_first(FILE*              fplog,
-                t_grid*            grid,
-                gmx_domdec_t*      dd,
-                const gmx_ddbox_t* ddbox,
-                matrix             box,
-                rvec               izones_x0,
-                rvec               izones_x1,
-                real               rlist,
-                real               grid_density)
-{
-    int i, m;
-
-    set_grid_sizes(box, izones_x0, izones_x1, rlist, dd, ddbox, grid, grid_density);
-
-    grid->ncells = grid->n[XX] * grid->n[YY] * grid->n[ZZ];
-
-    if (grid->ncells + 1 > grid->cells_nalloc)
-    {
-        /* Allocate double the size so we have some headroom */
-        grid->cells_nalloc = 2 * grid->ncells;
-        srenew(grid->nra, grid->cells_nalloc + 1);
-        srenew(grid->index, grid->cells_nalloc + 1);
-
-        if (fplog)
-        {
-            fprintf(fplog, "Grid: %d x %d x %d cells\n", grid->n[XX], grid->n[YY], grid->n[ZZ]);
-        }
-    }
-
-    m = std::max(grid->n[XX], std::max(grid->n[YY], grid->n[ZZ]));
-    if (m > grid->dc_nalloc)
-    {
-        /* Allocate with double the initial size for box scaling */
-        grid->dc_nalloc = 2 * m;
-        srenew(grid->dcx2, grid->dc_nalloc);
-        srenew(grid->dcy2, grid->dc_nalloc);
-        srenew(grid->dcz2, grid->dc_nalloc);
-    }
-
-    grid->nr = 0;
-    for (i = 0; (i < grid->ncells); i++)
-    {
-        grid->nra[i] = 0;
-    }
-}
-
-static void calc_bor(int cg0, int cg1, int ncg, int CG0[2], int CG1[2])
-{
-    if (cg1 > ncg)
-    {
-        CG0[0] = cg0;
-        CG1[0] = ncg;
-        CG0[1] = 0;
-        CG1[1] = cg1 - ncg;
-    }
-    else
-    {
-        CG0[0] = cg0;
-        CG1[0] = cg1;
-        CG0[1] = 0;
-        CG1[1] = 0;
-    }
-    if (debug)
-    {
-        int m;
-
-        fprintf(debug, "calc_bor: cg0=%d, cg1=%d, ncg=%d\n", cg0, cg1, ncg);
-        for (m = 0; (m < 2); m++)
-        {
-            fprintf(debug, "CG0[%d]=%d, CG1[%d]=%d\n", m, CG0[m], m, CG1[m]);
-        }
-    }
-}
-
-void calc_elemnr(t_grid* grid, int cg0, int cg1, int ncg)
-{
-    int  CG0[2], CG1[2];
-    int* cell_index = grid->cell_index;
-    int* nra        = grid->nra;
-    int  i, m, ncells;
-    int  ci, not_used;
-
-    ncells = grid->ncells;
-    if (ncells <= 0)
-    {
-        gmx_fatal(FARGS, "Number of grid cells is zero. Probably the system and box collapsed.\n");
-    }
-
-    not_used = ci_not_used(grid->n);
-
-    calc_bor(cg0, cg1, ncg, CG0, CG1);
-    for (m = 0; (m < 2); m++)
-    {
-        for (i = CG0[m]; (i < CG1[m]); i++)
-        {
-            ci = cell_index[i];
-            if (ci != not_used)
-            {
-                range_check_mesg(ci, 0, ncells, range_warn);
-                nra[ci]++;
-            }
-        }
-    }
-}
-
-void calc_ptrs(t_grid* grid)
-{
-    int* index = grid->index;
-    int* nra   = grid->nra;
-    int  ix, iy, iz, ci, nr;
-    int  nnra, ncells;
-
-    ncells = grid->ncells;
-    if (ncells <= 0)
-    {
-        gmx_fatal(FARGS, "Number of grid cells is zero. Probably the system and box collapsed.\n");
-    }
-
-    ci = nr = 0;
-    for (ix = 0; (ix < grid->n[XX]); ix++)
-    {
-        for (iy = 0; (iy < grid->n[YY]); iy++)
-        {
-            for (iz = 0; (iz < grid->n[ZZ]); iz++, ci++)
-            {
-                range_check_mesg(ci, 0, ncells, range_warn);
-                index[ci] = nr;
-                nnra      = nra[ci];
-                nr += nnra;
-                nra[ci] = 0;
-            }
-        }
-    }
-}
-
-void grid_last(t_grid* grid, int cg0, int cg1, int ncg)
-{
-    int  CG0[2], CG1[2];
-    int  i, m;
-    int  ci, not_used, ind, ncells;
-    int* cell_index = grid->cell_index;
-    int* nra        = grid->nra;
-    int* index      = grid->index;
-    int* a          = grid->a;
-
-    ncells = grid->ncells;
-    if (ncells <= 0)
-    {
-        gmx_fatal(FARGS, "Number of grid cells is zero. Probably the system and box collapsed.\n");
-    }
-
-    not_used = ci_not_used(grid->n);
-
-    calc_bor(cg0, cg1, ncg, CG0, CG1);
-    for (m = 0; (m < 2); m++)
-    {
-        for (i = CG0[m]; (i < CG1[m]); i++)
-        {
-            ci = cell_index[i];
-            if (ci != not_used)
-            {
-                range_check_mesg(ci, 0, ncells, range_warn);
-                ind = index[ci] + nra[ci]++;
-                range_check_mesg(ind, 0, grid->nr, range_warn);
-                a[ind] = i;
-            }
-        }
-    }
-}
-
-void fill_grid(gmx_domdec_zones_t* dd_zones, t_grid* grid, int ncg_tot, int cg0, int cg1, rvec cg_cm[])
-{
-    int*     cell_index;
-    int      nry, nrz;
-    rvec     n_box, offset;
-    int      zone, ccg0, ccg1, cg, d, not_used;
-    ivec     shift0, useall, b0, b1, ind;
-    gmx_bool bUse;
-
-    if (cg0 == -1)
-    {
-        /* We have already filled the grid up to grid->ncg,
-         * continue from there.
-         */
-        cg0 = grid->nr;
-    }
-
-    set_grid_ncg(grid, ncg_tot);
-
-    cell_index = grid->cell_index;
-
-    /* Initiate cell borders */
-    nry = grid->n[YY];
-    nrz = grid->n[ZZ];
-    for (d = 0; d < DIM; d++)
-    {
-        if (grid->cell_size[d] > 0)
-        {
-            n_box[d] = 1 / grid->cell_size[d];
-        }
-        else
-        {
-            n_box[d] = 0;
-        }
-    }
-    copy_rvec(grid->cell_offset, offset);
-
-    if (debug)
-    {
-        fprintf(debug, "Filling grid from %d to %d\n", cg0, cg1);
-    }
-
-    if (dd_zones == nullptr)
-    {
-        for (cg = cg0; cg < cg1; cg++)
-        {
-            for (d = 0; d < DIM; d++)
-            {
-                ind[d] = static_cast<int>((cg_cm[cg][d] - offset[d]) * n_box[d]);
-                /* With pbc we should be done here.
-                 * Without pbc cg's outside the grid
-                 * should be assigned to the closest grid cell.
-                 */
-                if (ind[d] < 0)
-                {
-                    ind[d] = 0;
-                }
-                else if (ind[d] >= grid->n[d])
-                {
-                    ind[d] = grid->n[d] - 1;
-                }
-            }
-            cell_index[cg] = xyz2ci(nry, nrz, ind[XX], ind[YY], ind[ZZ]);
-        }
-    }
-    else
-    {
-        for (zone = 0; zone < dd_zones->n; zone++)
-        {
-            ccg0 = dd_zones->cg_range[zone];
-            ccg1 = dd_zones->cg_range[zone + 1];
-            if (ccg1 <= cg0 || ccg0 >= cg1)
-            {
-                continue;
-            }
-
-            /* Determine the ns grid cell limits for this DD zone */
-            for (d = 0; d < DIM; d++)
-            {
-                shift0[d] = dd_zones->shift[zone][d];
-                useall[d] = static_cast<int>(shift0[d] == 0 || d >= grid->npbcdim);
-                /* Check if we need to do normal or optimized grid assignments.
-                 * Normal is required for dims without DD or triclinic dims.
-                 * DD edge cell on dims without pbc will be automatically
-                 * be correct, since the shift=0 zones with have b0 and b1
-                 * set to the grid boundaries and there are no shift=1 zones.
-                 */
-                if (grid->ncpddc[d] == 0)
-                {
-                    b0[d] = 0;
-                    b1[d] = grid->n[d];
-                }
-                else
-                {
-                    if (shift0[d] == 0)
-                    {
-                        b0[d] = 0;
-                        b1[d] = grid->ncpddc[d];
-                    }
-                    else
-                    {
-                        /* shift = 1 */
-                        b0[d] = grid->ncpddc[d];
-                        b1[d] = grid->n[d];
-                    }
-                }
-            }
-
-            not_used = ci_not_used(grid->n);
-
-            /* Put all the charge groups of this DD zone on the grid */
-            for (cg = ccg0; cg < ccg1; cg++)
-            {
-                if (cell_index[cg] == -1)
-                {
-                    /* This cg has moved to another node */
-                    cell_index[cg] = NSGRID_SIGNAL_MOVED_FAC * grid->ncells;
-                    continue;
-                }
-
-                bUse = TRUE;
-                for (d = 0; d < DIM; d++)
-                {
-                    ind[d] = static_cast<int>((cg_cm[cg][d] - offset[d]) * n_box[d]);
-                    /* Here we have to correct for rounding problems,
-                     * as this cg_cm to cell index operation is not necessarily
-                     * binary identical to the operation for the DD zone assignment
-                     * and therefore a cg could end up in an unused grid cell.
-                     * For dimensions without pbc we need to check
-                     * for cells on the edge if charge groups are beyond
-                     * the grid and if so, store them in the closest cell.
-                     */
-                    if (ind[d] < b0[d])
-                    {
-                        ind[d] = b0[d];
-                    }
-                    else if (ind[d] >= b1[d])
-                    {
-                        if (useall[d])
-                        {
-                            ind[d] = b1[d] - 1;
-                        }
-                        else
-                        {
-                            /* Charge groups in this DD zone further away than the cut-off
-                             * in direction do not participate in non-bonded interactions.
-                             */
-                            bUse = FALSE;
-                        }
-                    }
-                }
-                if (cg > grid->nr_alloc)
-                {
-                    fprintf(stderr, "WARNING: nra_alloc %d cg0 %d cg1 %d cg %d\n", grid->nr_alloc, cg0, cg1, cg);
-                }
-                if (bUse)
-                {
-                    cell_index[cg] = xyz2ci(nry, nrz, ind[XX], ind[YY], ind[ZZ]);
-                }
-                else
-                {
-                    cell_index[cg] = not_used;
-                }
-            }
-        }
-    }
-}
-
-void check_grid(t_grid* grid)
-{
-    int ix, iy, iz, ci, cci, nra;
-
-    if (grid->ncells <= 0)
-    {
-        gmx_fatal(FARGS, "Number of grid cells is zero. Probably the system and box collapsed.\n");
-    }
-
-    ci  = 0;
-    cci = 0;
-    for (ix = 0; (ix < grid->n[XX]); ix++)
-    {
-        for (iy = 0; (iy < grid->n[YY]); iy++)
-        {
-            for (iz = 0; (iz < grid->n[ZZ]); iz++, ci++)
-            {
-                if (ci > 0)
-                {
-                    nra = grid->index[ci] - grid->index[cci];
-                    if (nra != grid->nra[cci])
-                    {
-                        gmx_fatal(FARGS, "nra=%d, grid->nra=%d, cci=%d", nra, grid->nra[cci], cci);
-                    }
-                }
-                cci = xyz2ci(grid->n[YY], grid->n[ZZ], ix, iy, iz);
-                range_check_mesg(cci, 0, grid->ncells, range_warn);
-
-                if (cci != ci)
-                {
-                    gmx_fatal(FARGS, "ci = %d, cci = %d", ci, cci);
-                }
-            }
-        }
-    }
-}
-
-void print_grid(FILE* log, t_grid* grid)
-{
-    int i, nra, index;
-    int ix, iy, iz, ci;
-
-    fprintf(log, "nr:        %d\n", grid->nr);
-    fprintf(log, "nrx:       %d\n", grid->n[XX]);
-    fprintf(log, "nry:       %d\n", grid->n[YY]);
-    fprintf(log, "nrz:       %d\n", grid->n[ZZ]);
-    fprintf(log, "ncg_ideal: %d\n", grid->ncg_ideal);
-    fprintf(log, "    i  cell_index\n");
-    for (i = 0; (i < grid->nr); i++)
-    {
-        fprintf(log, "%5d  %5d\n", i, grid->cell_index[i]);
-    }
-    fprintf(log, "cells\n");
-    fprintf(log, " ix iy iz   nr  index  cgs...\n");
-    ci = 0;
-    for (ix = 0; (ix < grid->n[XX]); ix++)
-    {
-        for (iy = 0; (iy < grid->n[YY]); iy++)
-        {
-            for (iz = 0; (iz < grid->n[ZZ]); iz++, ci++)
-            {
-                index = grid->index[ci];
-                nra   = grid->nra[ci];
-                fprintf(log, "%3d%3d%3d%5d%5d", ix, iy, iz, nra, index);
-                for (i = 0; (i < nra); i++)
-                {
-                    fprintf(log, "%5d", grid->a[index + i]);
-                }
-                fprintf(log, "\n");
-            }
-        }
-    }
-    fflush(log);
-}
index 4606a8b0f674fa2618b443af15c1fc30710a269a..7de1184bb2ad9a8c113f01fa1a9f9aaa39f31ab5 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Copyright (c) 1991-2000, University of Groningen, The Netherlands.
  * Copyright (c) 2001-2004, The GROMACS development team.
- * Copyright (c) 2013,2014,2015,2019, by the GROMACS development team, led by
+ * Copyright (c) 2013,2014,2015,2019,2021, by the GROMACS development team, led by
  * Mark Abraham, David van der Spoel, Berk Hess, and Erik Lindahl,
  * and including many others, as listed in the AUTHORS file in the
  * top-level source directory and at http://www.gromacs.org.
@@ -46,36 +46,6 @@ struct gmx_domdec_t;
 struct gmx_domdec_zones_t;
 struct gmx_ddbox_t;
 struct t_forcerec;
-struct t_grid;
-
-typedef struct t_grid
-{
-    int  nr;           // Total number of charge groups
-    int  nboundeddim;  // The number of bounded dimensions
-    int  npbcdim;      // The number of dimensions with pbc
-    int  ncg_ideal;    // The ideal number of cg's per cell
-    ivec n;            // The dimension of the grid
-    int  ncells;       // Total number of cells
-    int  cells_nalloc; // Allocation size of index and nra
-    ivec ncpddc;       // The number of cells per DD cell
-    rvec cell_size;    // The size of the cells
-    rvec cell_offset;  // The offset of the cell (0,0,0)
-    int* cell_index;   // The cell number of each cg
-    int* index;        // The index into a for each cell
-                       // The location of the cell in the index
-                       // array can be found by calling xyz2ci
-    int*  nra;         // The number of entries in a cell
-    int   icg0;        // The start of the i-cg range
-    int   icg1;        // The end of the i-cg range
-    rvec* os0;
-    rvec* os1;
-    int*  a;         // The grid of cgs
-    int   nr_alloc;  // Allocation size of cell_index and a
-    real* dcx2;      // Squared distance from atom to j-cell
-    real* dcy2;      // Squared distance from atom to j-cell
-    real* dcz2;      // Squared distance from atom to j-cell
-    int   dc_nalloc; // Allocation size of dcx2, dyc2, dcz2
-} t_grid;
 
 /*! \brief Used when estimating the interaction density.
  *
@@ -99,10 +69,6 @@ static const real NSGRID_STDDEV_FAC = 2.0;
  * that a charge group moved to another DD domain.
  */
 
-t_grid* init_grid(FILE* fplog, t_forcerec* fr);
-
-void done_grid(t_grid* grid);
-
 void get_nsgrid_boundaries(int                  nboundeddim,
                            matrix               box,
                            struct gmx_domdec_t* dd,
@@ -124,36 +90,4 @@ void get_nsgrid_boundaries(int                  nboundeddim,
  * on the edges are determined from cgcm.
  */
 
-void grid_first(FILE*                log,
-                t_grid*              grid,
-                struct gmx_domdec_t* dd,
-                const gmx_ddbox_t*   ddbox,
-                matrix               box,
-                rvec                 izones_x0,
-                rvec                 izones_x1,
-                real                 rlong,
-                real                 grid_density);
-
-void fill_grid(struct gmx_domdec_zones_t* dd_zones, t_grid* grid, int ncg_tot, int cg0, int cg1, rvec cg_cm[]);
-/* Allocates space on the grid for ncg_tot cg's.
- * Fills the grid with cg's from cg0 to cg1.
- * When cg0 is -1, contiues filling from grid->nr to cg1.
- */
-
-void calc_elemnr(t_grid* grid, int cg0, int cg1, int ncg);
-
-void calc_ptrs(t_grid* grid);
-
-void grid_last(t_grid* grid, int cg0, int cg1, int ncg);
-
-int xyz2ci_(int nry, int nrz, int x, int y, int z);
-#define xyz2ci(nry, nrz, x, y, z) ((nry) * (nrz) * (x) + (nrz) * (y) + (z))
-/* Return the cell index */
-
-void ci2xyz(t_grid* grid, int i, int* x, int* y, int* z);
-
-void check_grid(t_grid* grid);
-
-void print_grid(FILE* log, t_grid* grid);
-
 #endif
index 45e9ce11edab0a5a0462af4eaab4a247dd62c3ab..6427c9d26c64bc83b45bf707d34aae55706c9721 100644 (file)
@@ -195,21 +195,20 @@ struct t_forcetable
 
 struct gmx_ns_t
 {
-    gmx_bool       bCGlist;
-    int*           simple_aaj;
-    struct t_grid* grid;
-    t_excl*        bexcl;
-    gmx_bool*      bHaveVdW;
-    t_ns_buf**     ns_buf;
-    gmx_bool*      bExcludeAlleg;
-    int            nra_alloc;
-    int            cg_alloc;
-    int**          nl_sr;
-    int*           nsr;
-    int**          nl_lr_ljc;
-    int**          nl_lr_one;
-    int*           nlr_ljc;
-    int*           nlr_one;
+    gmx_bool   bCGlist;
+    int*       simple_aaj;
+    t_excl*    bexcl;
+    gmx_bool*  bHaveVdW;
+    t_ns_buf** ns_buf;
+    gmx_bool*  bExcludeAlleg;
+    int        nra_alloc;
+    int        cg_alloc;
+    int**      nl_sr;
+    int*       nsr;
+    int**      nl_lr_ljc;
+    int**      nl_lr_one;
+    int*       nlr_ljc;
+    int*       nlr_one;
     /* the nblists should probably go in here */
     gmx_bool nblist_initialized; /* has the nblist been initialized?  */
     int      dump_nl;            /* neighbour list dump level (from env. var. GMX_DUMP_NL)*/