Compute the pairwise interactions for the given pair using the sorted interactions algorithm.
Fill in the Verlet list entries for the given cell pair.
Fill in the pairwise Verlet list entries for the given cell pair if needed and compute the interactions.
Compute the pairwise interactions for the given pair.
- Parameters:
-
r | The runner computing the pair. |
cell_i | The first cell. |
cell_j | The second cell. |
pshift | A pointer to an array of three floating point values containing the vector separating the centers of cell_i and cell_j . |
- Returns:
- runner_err_ok or <0 on error (see runner_err)
Sorts the particles from cell_i
and cell_j
along the normalized axis pshift
and tries to interact only those particles that are within the cutoff distance along that axis.
It is assumed that cell_i
!= cell_j
.
- See also:
- runner_dopair.
- Parameters:
-
r | The runner computing the pair. |
cell_i | The first cell. |
cell_j | The second cell. |
shift | A pointer to an array of three floating point values containing the vector separating the centers of cell_i and cell_j . |
- Returns:
- runner_err_ok or <0 on error (see runner_err)
Computes the interactions between all the particles in cell_i
and all the paritcles in cell_j
. cell_i
and cell_j
may be the same cell.
- See also:
- #runner_sortedpair.
- Parameters:
-
r | The runner computing the pair. |
cell_i | The first cell. |
cell_j | The second cell. |
pshift | A pointer to an array of three floating point values containing the vector separating the centers of cell_i and cell_j . |
- Returns:
- runner_err_ok or <0 on error (see runner_err)
This routine differs from runner_dopair_verlet in that instead of storing a Verlet table, the sorted particle ids are stored. This requires only (size_i + size_j) entries as opposed to size_i*size_j for the Verlet table, yet may be less efficient since particles within the skin along the cell-pair axis are inspected, as opposed to particles simply within the skin of each other.
- Parameters:
-
r | The runner computing the pair. |
cell_i | The first cell. |
cell_j | The second cell. |
pshift | A pointer to an array of three floating point values containing the vector separating the centers of cell_i and cell_j . |
- Returns:
- runner_err_ok or <0 on error (see runner_err)