# [gmx-users] How does fourierspacing correspond to fourier_nx, fourier_ny, and fourier_nz?

Mark Abraham Mark.Abraham at anu.edu.au
Fri Apr 20 16:47:51 CEST 2012

```On 21/04/2012 12:33 AM, Andrew DeYoung wrote:
> Hi,
>
> I am wondering how the fourierspacing parameter corresponds to fourier_nx,
> fourier_ny, and fourier_nz.  The manual
> (http://manual.gromacs.org/current/online/mdp_opt.html#ewald) says, "For
> ordinary Ewald the spacing times the box dimensions determines the highest
> example of this?
>
> Suppose I have fourierspacing = 0.24 nm, and my box dimensions are 3.3 nm,
> 3.3 nm, and 30 nm along x, y, and z.  Then what are the values of
> fourier_nx, fourier_ny, and fourier_nz?  fourier_n* is a dimensionless
> integer, and I don't understand how we can get a dimensionless number from
> multiplying two quantities that each have dimensions of nm.  Should I
> actually divide the box dimension by fourierspacing, so that (fourier_nx,
> fourier_ny, and fourier_nz) = (3.3 nm / 0.24 nm, 3.3 nm / 0.24 nm, 30 nm /
> 0.24 nm) = (13.75, 13.75, 125) ~ (14, 14, 125)?  Or am doing this
> incorrectly?

Well spotted - I'll fix both bits of the manual. fourierspacing in fact
functions in the way you suggest - the ratio of the box size and
fourierspacing creates a lower bound for the number of grid points that
will be used in that direction (guaranteeing a minimum accuracy in that
part of the Ewald approximation). The actual number of grid points used
will suit various algorithmic details. At high parallelization it can be
worthwhile to choose fourier_n[xyz] to have common factors with the
number of processors available to use, and to juggle ewald_rtol and
rcoulomb to compensate cost and accuracy. See g_tune_pme, g_pme_error
and other tools.

Mark

```