use parsed-literal sections to reduce spellchecking variable names

This commit is contained in:
Axel Kohlmeyer
2020-12-22 10:13:53 -05:00
parent 75eadabaf0
commit d07cf22ac5

View File

@ -30,7 +30,7 @@ allocated as a 1d vector or 3d array. Either way, the ordering of
values within contiguous memory x fastest, then y, z slowest.
For the ``3d decomposition`` of the grid, the global grid is
partitioned into bricks that correspond to the subdomains of the
partitioned into bricks that correspond to the sub-domains of the
simulation box that each processor owns. Often, this is a regular 3d
array (Px by Py by Pz) of bricks, where P = number of processors =
Px * Py * Pz. More generally it can be a tiled decomposition, where
@ -46,10 +46,11 @@ P1 * P2.
The following indices store the inclusive bounds of the brick a
processor owns, within the global grid:
* nxlo_in,nxhi_in,nylo_in,nyhi_in,nzlo_in,nzhi_in = 3d decomposition brick
* nxlo_fft,nxhi_fft,nylo_fft,nyhi_fft,nzlo_fft,nzhi_fft = FFT decomposition brick
* nxlo_out,nxhi_out,nylo_out,nyhi_out,nzlo_out,nzhi_out = 3d
decomposition brick + ghost cells
.. parsed-literal::
nxlo_in,nxhi_in,nylo_in,nyhi_in,nzlo_in,nzhi_in = 3d decomposition brick
nxlo_fft,nxhi_fft,nylo_fft,nyhi_fft,nzlo_fft,nzhi_fft = FFT decomposition brick
nxlo_out,nxhi_out,nylo_out,nyhi_out,nzlo_out,nzhi_out = 3d decomposition brick + ghost cells
The ``in`` and ``fft`` indices are from 0 to N-1 inclusive in each
dimension, where N is the grid size.
@ -61,41 +62,44 @@ the grid plus ghost cells that surround it. These indices can thus be
The number of ghost cells a processor owns in each of the 6 directions
is a function of:
* neighbor skin distance (since atoms can move outside a proc subdomain)
* qdist = offset or charge from atom due to TIP4P fictitious charge
* order = mapping stencil size
* shift = factor used when order is an even number (see below)
.. parsed-literal::
Here is an explanation of how the PPPM variables order, nlower/nupper,
shift, and OFFSET work.
neighbor skin distance (since atoms can move outside a proc subdomain)
qdist = offset or charge from atom due to TIP4P fictitious charge
order = mapping stencil size
shift = factor used when order is an even number (see below)
These are the relevant variables that determine how atom charge is
mapped to grid points and how field values are mapped from grid points
to atoms:
Here is an explanation of how the PPPM variables ``order``,
``nlower`` / ``nupper``, ``shift``, and ``OFFSET`` work. They are the
relevant variables that determine how atom charge is mapped to grid
points and how field values are mapped from grid points to atoms:
.. parsed-literal::
order = # of nearby grid points in each dim that atom charge/field are mapped to/from
nlower,nupper = extent of stencil around the grid point an atom is assigned to
OFFSET = large integer added/subtracted when mapping to avoid int(-0.75) = 0 when -1 is the desired result
* order = # of nearby grid points in each dim that atom charge/field are mapped to/from
* nlower,nupper = extent of stencil around the grid point an atom is assigned to
* OFFSET = large integer added/subtracted when mapping to avoid
int(-0.75) = 0 when -1 is the desired result
The particle_map() method assigns each atom to a grid point.
If order is even, say 4:
* atom is assigned to grid point to its left (in each dim)
* shift = OFFSET
* nlower = -1, nupper = 2, which are offsets from assigned grid point
* window of mapping grid pts is thus 2 grid points to left of atom, 2 to right
.. parsed-literal::
atom is assigned to grid point to its left (in each dim)
shift = OFFSET
nlower = -1, nupper = 2, which are offsets from assigned grid point
window of mapping grid pts is thus 2 grid points to left of atom, 2 to right
If order is odd, say 5:
* atom is assigned to left/right grid pt it is closest to (in each dim)
* shift = OFFSET + 0.5
* nlower = 2, nupper = 2
* if point is in left half of cell, then
window of affected grid pts is 3 grid points to left of atom, 2 to right
* if point is in right half of cell, then
window of affected grid pts is 2 grid points to left of atom, 3 to right
.. parsed-literal::
atom is assigned to left/right grid pt it is closest to (in each dim)
shift = OFFSET + 0.5
nlower = 2, nupper = 2
if point is in left half of cell, then window of affected grid pts is 3 grid points to left of atom, 2 to right
if point is in right half of cell, then window of affected grid pts is 2 grid points to left of atom, 3 to right
These settings apply to each dimension, so that if order = 5, an
atom's charge is mapped to 125 grid points that surround the atom.