From: Joe Jordan Date: Fri, 19 Feb 2021 20:33:04 +0000 (+0000) Subject: Revome unused code from nsgrid X-Git-Url: http://biod.pnpi.spb.ru/gitweb/?a=commitdiff_plain;h=5e8db7f23e316dbee59209ee7a5ff41d3978a03b;p=alexxy%2Fgromacs.git Revome unused code from nsgrid In addition to removing several functions that are not used, some unused parameters from the t_grid struct are removed. --- diff --git a/src/gromacs/mdlib/nsgrid.cpp b/src/gromacs/mdlib/nsgrid.cpp index 47736d18d1..1bfe85acf0 100644 --- a/src/gromacs/mdlib/nsgrid.cpp +++ b/src/gromacs/mdlib/nsgrid.cpp @@ -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. @@ -42,35 +42,17 @@ #include #include -#include - -#include #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(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((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(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((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); -} diff --git a/src/gromacs/mdlib/nsgrid.h b/src/gromacs/mdlib/nsgrid.h index 4606a8b0f6..7de1184bb2 100644 --- a/src/gromacs/mdlib/nsgrid.h +++ b/src/gromacs/mdlib/nsgrid.h @@ -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 diff --git a/src/gromacs/mdtypes/nblist.h b/src/gromacs/mdtypes/nblist.h index 45e9ce11ed..6427c9d26c 100644 --- a/src/gromacs/mdtypes/nblist.h +++ b/src/gromacs/mdtypes/nblist.h @@ -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)*/