This module contains routines and functions used in creating verlet lists by use of inhomogeneous cell lists.

name | description |
---|---|

This function is to be used for lsymm = TRUE case, where we have | |

This function is to be used for lsymm = TRUE case, where we have | |

Given the cell index, this function checks whether the cell is | |

Given indices of two particles, checks whether the euclidian distance | |

Given indices of two particles, checks whether the euclidian distance | |

Given the index of the cell, this subroutine stores the cell index |

Subroutines contained in this interface:

name | description |
---|---|

Given the particle index, this subroutine locates the cell that this | |

Given the particle index, this subroutine locates the cell that this |

Subroutines contained in this interface:

name | description |
---|---|

This subroutine creates verlet lists for particles whose coordinates | |

This subroutine creates verlet lists for particles whose coordinates |

Subroutines contained in this interface:

name | description |
---|---|

Given the particle index, this subroutine locates the cell that this | |

Given the particle index, this subroutine locates the cell that this |

Subroutines contained in this interface:

name | description |
---|---|

This subroutine allocates nvlist and fills it with number of | |

This subroutine allocates nvlist and fills it with number of |

Subroutines contained in this interface:

name | description |
---|---|

Given the particle index, this subroutine modifies p_coor array and | |

Given the particle index, this subroutine modifies p_coor array and |

Subroutines contained in this interface:

name | description |
---|---|

Given the cell index, this subroutine modifies the list array such | |

Given the cell index, this subroutine modifies the list array such |

Subroutines contained in this interface:

name | description |
---|---|

Subroutines contained in this interface:

name | description |
---|---|

This function checks whether given coordinates are inside whole | |

This function checks whether given coordinates are inside whole |

Subroutines contained in this interface:

name | description |
---|---|

Given indices of two particles, checks whether the euclidian distance | |

Given indices of two particles, checks whether the euclidian distance |

Subroutines contained in this interface:

name | description |
---|---|

Inhomogeneous cross-set neighborlists. This routine provides | |

Inhomogeneous cross-set neighborlists. This routine provides | |

Inhomogeneous cross-set neighborlists. This routine provides | |

Inhomogeneous cross-set neighborlists. This routine provides |

Given the particle index, this subroutine locates the cell that this cell is located in, gathers all particles in these cells and updates verlet lists of all these particles.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Particle index | |||

ppm_clist | (IN) | cell list red | |||

ppm_clist | (IN) | cell list blue | |||

real array | (2*ppm_dim) | Pysical extent of whole domain including ghost layers | |||

real array | (:,:) | (IN) | Particle coordinates red | ||

real array | (:) | (IN) | Particle cutoff radii red | ||

real array | (:,:) | (IN) | Particle coordinates blue | ||

real array | (:) | (IN) | Particle cutoff radii blue | ||

real | (IN) | Skin parameter | |||

integer array | (:) | Number of neighbors of particles. nvlist(i) contains number of |

integer, , (IN)

Particle index

ppm_clist, , (IN)

cell list red

ppm_clist, , (IN)

cell list blue

real array, `(2*ppm_dim)`

, no intent declared

Pysical extent of whole domain including ghost layers

real array, `(:,:)`

, (IN)

Particle coordinates red

real array, `(:)`

, (IN)

Particle cutoff radii red

real array, `(:,:)`

, (IN)

Particle coordinates blue

real array, `(:)`

, (IN)

Particle cutoff radii blue

real, , (IN)

Skin parameter

integer array, `(:)`

, no intent declared

Number of neighbors of particles. nvlist(i) contains number of neighbors particle i has.

*has no uses*

Given the particle index, this subroutine locates the cell that this cell is located in, gathers all particles in these cells and updates verlet lists of all these particles.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Particle index | |||

ppm_clist | (IN) | cell list red | |||

ppm_clist | (IN) | cell list blue | |||

real array | (2*ppm_dim) | Pysical extent of whole domain including ghost layers | |||

real array | (:,:) | (IN) | Particle coordinates red | ||

real array | (:) | (IN) | Particle cutoff radii red | ||

real array | (:,:) | (IN) | Particle coordinates blue | ||

real array | (:) | (IN) | Particle cutoff radii blue | ||

real | (IN) | Skin parameter | |||

integer array | (:) | Number of neighbors of particles. nvlist(i) contains number of |

integer, , (IN)

Particle index

ppm_clist, , (IN)

cell list red

ppm_clist, , (IN)

cell list blue

real array, `(2*ppm_dim)`

, no intent declared

Pysical extent of whole domain including ghost layers

real array, `(:,:)`

, (IN)

Particle coordinates red

real array, `(:)`

, (IN)

Particle cutoff radii red

real array, `(:,:)`

, (IN)

Particle coordinates blue

real array, `(:)`

, (IN)

Particle cutoff radii blue

real, , (IN)

Skin parameter

integer array, `(:)`

, no intent declared

Number of neighbors of particles. nvlist(i) contains number of neighbors particle i has.

*has no uses*

This subroutine creates verlet lists for particles whose coordinates and cutoff radii are provided by xp and cutoff, respectively. Here, Np denotes the number of real particles and Mp is the total number of particles including ghost particles. Given these inputs and others that are required, this subroutine allocates and fills nvlist. If the OPTIONAL parameter lstore is set to TRUE or not passed, vlist is also allocated and filled.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | Coordinates array for refernece particles (red) | ||

integer | (IN) | Number of real red particles | |||

integer | (IN) | Number of all red particles | |||

real array | (:) | (IN) | Red particles cutoff radii | ||

real array | (:,:) | (IN) | Coordinates array for refernece particles (blue) | ||

integer | (IN) | Number of real blue particles | |||

integer | (IN) | Number of all blue particles | |||

real array | (:) | (IN) | blue particles cutoff radii | ||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | ||||

real array | (ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

integer | (OUT) | Info to be RETURNed. 0 if SUCCESSFUL. | |||

integer array | (:,:) | verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6. | |||

integer array | (:) | number of neighbors of particles. nvlist(i) is number of | |||

logical | (IN) |
| OPTIONAL logical parameter to choose whether to store |

real array, `(:,:)`

, (IN)

Coordinates array for refernece particles (red)

integer, , (IN)

Number of real red particles

integer, , (IN)

Number of all red particles

real array, `(:)`

, (IN)

Red particles cutoff radii

real array, `(:,:)`

, (IN)

Coordinates array for refernece particles (blue)

integer, , (IN)

Number of real blue particles

integer, , (IN)

Number of all blue particles

real array, `(:)`

, (IN)

blue particles cutoff radii

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, no intent declared

real array, `(ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

integer, , (OUT)

Info to be RETURNed. 0 if SUCCESSFUL.

integer array, `(:,:)`

, no intent declared

verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6.

integer array, `(:)`

, no intent declared

number of neighbors of particles. nvlist(i) is number of neighbors particle i has.

logical, , (IN)

OPTIONAL logical parameter to choose whether to store vlist or not. By default, it is set to TRUE.

*has no uses*

This subroutine creates verlet lists for particles whose coordinates and cutoff radii are provided by xp and cutoff, respectively. Here, Np denotes the number of real particles and Mp is the total number of particles including ghost particles. Given these inputs and others that are required, this subroutine allocates and fills nvlist. If the OPTIONAL parameter lstore is set to TRUE or not passed, vlist is also allocated and filled.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | Coordinates array for refernece particles (red) | ||

integer | (IN) | Number of real red particles | |||

integer | (IN) | Number of all red particles | |||

real array | (:) | (IN) | Red particles cutoff radii | ||

real array | (:,:) | (IN) | Coordinates array for refernece particles (blue) | ||

integer | (IN) | Number of real blue particles | |||

integer | (IN) | Number of all blue particles | |||

real array | (:) | (IN) | blue particles cutoff radii | ||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | ||||

real array | (ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

integer | (OUT) | Info to be RETURNed. 0 if SUCCESSFUL. | |||

integer array | (:,:) | verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6. | |||

integer array | (:) | number of neighbors of particles. nvlist(i) is number of | |||

logical | (IN) |
| OPTIONAL logical parameter to choose whether to store |

real array, `(:,:)`

, (IN)

Coordinates array for refernece particles (red)

integer, , (IN)

Number of real red particles

integer, , (IN)

Number of all red particles

real array, `(:)`

, (IN)

Red particles cutoff radii

real array, `(:,:)`

, (IN)

Coordinates array for refernece particles (blue)

integer, , (IN)

Number of real blue particles

integer, , (IN)

Number of all blue particles

real array, `(:)`

, (IN)

blue particles cutoff radii

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, no intent declared

real array, `(ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

integer, , (OUT)

Info to be RETURNed. 0 if SUCCESSFUL.

integer array, `(:,:)`

, no intent declared

verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6.

integer array, `(:)`

, no intent declared

number of neighbors of particles. nvlist(i) is number of neighbors particle i has.

logical, , (IN)

OPTIONAL logical parameter to choose whether to store vlist or not. By default, it is set to TRUE.

*has no uses*

This function is to be used for lsymm = TRUE case, where we have ghost layers only in positive direction which makes it necessary to take ghost-ghost interaction into account. So, ghost particles that are cross-neighbors should be detected and put in verlet list of one of them.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of first particle | |||

integer | (IN) | Index of second particle | |||

real array | (:,:) | (IN) | Coordinates of particles | ||

real array | (2*ppm_dim) | (IN) | Physical extent of actual domain without ghost layers |

integer, , (IN)

Index of first particle

integer, , (IN)

Index of second particle

real array, `(:,:)`

, (IN)

Coordinates of particles

real array, `(2*ppm_dim)`

, (IN)

Physical extent of actual domain without ghost layers

*has no uses*

This function is to be used for lsymm = TRUE case, where we have ghost layers only in positive direction which makes it necessary to take ghost-ghost interaction into account. So, ghost particles that are cross-neighbors should be detected and put in verlet list of one of them.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of first particle | |||

integer | (IN) | Index of second particle | |||

real array | (:,:) | (IN) | Coordinates of particles | ||

real array | (2*ppm_dim) | (IN) | Physical extent of actual domain without ghost layers |

integer, , (IN)

Index of first particle

integer, , (IN)

Index of second particle

real array, `(:,:)`

, (IN)

Coordinates of particles

real array, `(2*ppm_dim)`

, (IN)

Physical extent of actual domain without ghost layers

*has no uses*

Given the particle index, this subroutine locates the cell that this cell is located in, gathers all particles in these cells and updates verlet lists of all these particles.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Particle index | |||

ppm_clist | (IN) | cell list red | |||

ppm_clist | (IN) | cell list blue | |||

real array | (2*ppm_dim) | Pysical extent of whole domain including ghost layers | |||

real array | (:,:) | (IN) | Particle coordinates red | ||

real array | (:) | (IN) | Particle cutoff radii red | ||

real array | (:,:) | (IN) | Particle coordinates blue | ||

real array | (:) | (IN) | Particle cutoff radii blue | ||

real | (IN) | Skin parameter | |||

integer array | (:,:) | Verlet list, where vlist(j, i) contains the jth neighbor of | |||

integer array | (:) | Number of neighbors of particles. nvlist(i) contains number of |

integer, , (IN)

Particle index

ppm_clist, , (IN)

cell list red

ppm_clist, , (IN)

cell list blue

real array, `(2*ppm_dim)`

, no intent declared

Pysical extent of whole domain including ghost layers

real array, `(:,:)`

, (IN)

Particle coordinates red

real array, `(:)`

, (IN)

Particle cutoff radii red

real array, `(:,:)`

, (IN)

Particle coordinates blue

real array, `(:)`

, (IN)

Particle cutoff radii blue

real, , (IN)

Skin parameter

integer array, `(:,:)`

, no intent declared

Verlet list, where vlist(j, i) contains the jth neighbor of ith particle

integer array, `(:)`

, no intent declared

Number of neighbors of particles. nvlist(i) contains number of neighbors particle i has.

*has no uses*

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Particle index | |||

ppm_clist | (IN) | cell list red | |||

ppm_clist | (IN) | cell list blue | |||

real array | (2*ppm_dim) | Pysical extent of whole domain including ghost layers | |||

real array | (:,:) | (IN) | Particle coordinates red | ||

real array | (:) | (IN) | Particle cutoff radii red | ||

real array | (:,:) | (IN) | Particle coordinates blue | ||

real array | (:) | (IN) | Particle cutoff radii blue | ||

real | (IN) | Skin parameter | |||

integer array | (:,:) | Verlet list, where vlist(j, i) contains the jth neighbor of | |||

integer array | (:) | Number of neighbors of particles. nvlist(i) contains number of |

integer, , (IN)

Particle index

ppm_clist, , (IN)

cell list red

ppm_clist, , (IN)

cell list blue

real array, `(2*ppm_dim)`

, no intent declared

Pysical extent of whole domain including ghost layers

real array, `(:,:)`

, (IN)

Particle coordinates red

real array, `(:)`

, (IN)

Particle cutoff radii red

real array, `(:,:)`

, (IN)

Particle coordinates blue

real array, `(:)`

, (IN)

Particle cutoff radii blue

real, , (IN)

Skin parameter

integer array, `(:,:)`

, no intent declared

Verlet list, where vlist(j, i) contains the jth neighbor of ith particle

integer array, `(:)`

, no intent declared

Number of neighbors of particles. nvlist(i) contains number of neighbors particle i has.

*has no uses*

This subroutine allocates nvlist and fills it with number of neighbors of each particle. Then, if lstore is TRUE, it also allocates vlist array and fills it with neighbor particles IDs for each particle.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | coordinates array of red particles | ||

real array | (:) | (IN) | Red particles cutoff radii | ||

ppm_clist | (IN) | Red particle cell list | |||

real array | (:,:) | (IN) | coordinates array of blue particles | ||

real array | (:) | (IN) | Blue particles cutoff radii | ||

ppm_clist | (IN) | Blue particle cell list | |||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | Physical extent of whole domain including ghost layers. | |||

real array | (2*ppm_dim) | Physical extent of actual domain without ghost layers. | |||

integer array | (:,:) | Verlet lists of particles. vlist(j, i) corresponds to jth neighbor | |||

integer array | (:) | Number of neighbors that particles have. nvlist(i) is the | |||

logical | (IN) | Logical parameter to choose whether to store vlist or not. | |||

integer |

real array, `(:,:)`

, (IN)

coordinates array of red particles

real array, `(:)`

, (IN)

Red particles cutoff radii

ppm_clist, , (IN)

Red particle cell list

real array, `(:,:)`

, (IN)

coordinates array of blue particles

real array, `(:)`

, (IN)

Blue particles cutoff radii

ppm_clist, , (IN)

Blue particle cell list

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, no intent declared

Physical extent of whole domain including ghost layers.

real array, `(2*ppm_dim)`

, no intent declared

Physical extent of actual domain without ghost layers.

integer array, `(:,:)`

, no intent declared

Verlet lists of particles. vlist(j, i) corresponds to jth neighbor of particle i.

integer array, `(:)`

, no intent declared

Number of neighbors that particles have. nvlist(i) is the number of neighbor particle i has.

logical, , (IN)

Logical parameter to choose whether to store vlist or not.

integer, , no intent declared

*has no uses*

This subroutine allocates nvlist and fills it with number of neighbors of each particle. Then, if lstore is TRUE, it also allocates vlist array and fills it with neighbor particles IDs for each particle.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | coordinates array of red particles | ||

real array | (:) | (IN) | Red particles cutoff radii | ||

ppm_clist | (IN) | Red particle cell list | |||

real array | (:,:) | (IN) | coordinates array of blue particles | ||

real array | (:) | (IN) | Blue particles cutoff radii | ||

ppm_clist | (IN) | Blue particle cell list | |||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | Physical extent of whole domain including ghost layers. | |||

real array | (2*ppm_dim) | Physical extent of actual domain without ghost layers. | |||

integer array | (:,:) | Verlet lists of particles. vlist(j, i) corresponds to jth neighbor | |||

integer array | (:) | Number of neighbors that particles have. nvlist(i) is the | |||

logical | (IN) | Logical parameter to choose whether to store vlist or not. | |||

integer |

real array, `(:,:)`

, (IN)

coordinates array of red particles

real array, `(:)`

, (IN)

Red particles cutoff radii

ppm_clist, , (IN)

Red particle cell list

real array, `(:,:)`

, (IN)

coordinates array of blue particles

real array, `(:)`

, (IN)

Blue particles cutoff radii

ppm_clist, , (IN)

Blue particle cell list

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, no intent declared

Physical extent of whole domain including ghost layers.

real array, `(2*ppm_dim)`

, no intent declared

Physical extent of actual domain without ghost layers.

integer array, `(:,:)`

, no intent declared

Verlet lists of particles. vlist(j, i) corresponds to jth neighbor of particle i.

integer array, `(:)`

, no intent declared

Number of neighbors that particles have. nvlist(i) is the number of neighbor particle i has.

logical, , (IN)

Logical parameter to choose whether to store vlist or not.

integer, , no intent declared

*has no uses*

Given the particle index, this subroutine modifies p_coor array and p_depth variables such that they contain coordinates and depth of the particle, respectively.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ||||

real array | (2*ppm_dim) | ||||

real array | (:) | ||||

integer | (INOUT) | ||||

real array | (:,:) | (IN) | |||

real array | (:) | (IN) | |||

real | (IN) |

integer, , (IN)

real array, `(2*ppm_dim)`

, no intent declared

real array, `(:)`

, no intent declared

integer, , (INOUT)

real array, `(:,:)`

, (IN)

real array, `(:)`

, (IN)

real, , (IN)

*has no uses*

Given the particle index, this subroutine modifies p_coor array and p_depth variables such that they contain coordinates and depth of the particle, respectively.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ||||

real array | (2*ppm_dim) | ||||

real array | (:) | ||||

integer | (INOUT) | ||||

real array | (:,:) | (IN) | |||

real array | (:) | (IN) | |||

real | (IN) |

integer, , (IN)

real array, `(2*ppm_dim)`

, no intent declared

real array, `(:)`

, no intent declared

integer, , (INOUT)

real array, `(:,:)`

, (IN)

real array, `(:)`

, (IN)

real, , (IN)

*has no uses*

Given the cell index, this subroutine modifies the list array such that it contains the particle IDs of this cell and sets nlist to number of particles in this cell.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ||||

real array | (:,:) | (IN) | this is basically a dummy argument to force fortran to generate | ||

ppm_clist | (IN) | ||||

integer array | (:) | (INOUT) | |||

integer | (INOUT) |

integer, , (IN)

real array, `(:,:)`

, (IN)

this is basically a dummy argument to force fortran to generate two versions of this routine

ppm_clist, , (IN)

integer array, `(:)`

, (INOUT)

integer, , (INOUT)

*has no uses*

Given the cell index, this subroutine modifies the list array such that it contains the particle IDs of this cell and sets nlist to number of particles in this cell.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ||||

real array | (:,:) | (IN) | this is basically a dummy argument to force fortran to generate | ||

ppm_clist | (IN) | ||||

integer array | (:) | (INOUT) | |||

integer | (INOUT) |

integer, , (IN)

real array, `(:,:)`

, (IN)

this is basically a dummy argument to force fortran to generate two versions of this routine

ppm_clist, , (IN)

integer array, `(:)`

, (INOUT)

integer, , (INOUT)

*has no uses*

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | Particle coordinates array. | ||

integer | (IN) | Number of real particles | |||

integer | (IN) | Number of all particles including ghost particles | |||

real array | (:) | (IN) | Particles cutoff radii | ||

logical | (IN) | If lsymm = TRUE, verlet lists are symmetric and we have ghost | |||

real array | (2*ppm_dim) | ||||

real array | (ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

real array | (:,:) | Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i. | |||

real array | (:) | Particles cutoff radii | |||

integer | (OUT) | Number of real particles of subdomain | |||

integer | (OUT) | Number of all particles including ghost particles of subdomain | |||

integer array | (:) |

real array, `(:,:)`

, (IN)

Particle coordinates array.
i.e., `xp(1, i)`

is the x-coor of particle i.

integer, , (IN)

Number of real particles

integer, , (IN)

Number of all particles including ghost particles

real array, `(:)`

, (IN)

Particles cutoff radii

logical, , (IN)

If lsymm = TRUE, verlet lists are symmetric and we have ghost layers only in (+) directions in all axes. Else, we have ghost layers in all directions.

real array, `(2*ppm_dim)`

, no intent declared

real array, `(ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

real array, `(:,:)`

, no intent declared

Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i.

real array, `(:)`

, no intent declared

Particles cutoff radii

integer, , (OUT)

Number of real particles of subdomain

integer, , (OUT)

Number of all particles including ghost particles of subdomain

integer array, `(:)`

, no intent declared

*has no uses*

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | Particle coordinates array. | ||

integer | (IN) | Number of real particles | |||

integer | (IN) | Number of all particles including ghost particles | |||

real array | (:) | (IN) | Particles cutoff radii | ||

logical | (IN) | If lsymm = TRUE, verlet lists are symmetric and we have ghost | |||

real array | (2*ppm_dim) | ||||

real array | (ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

real array | (:,:) | Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i. | |||

real array | (:) | Particles cutoff radii | |||

integer | (OUT) | Number of real particles of subdomain | |||

integer | (OUT) | Number of all particles including ghost particles of subdomain | |||

integer array | (:) |

real array, `(:,:)`

, (IN)

Particle coordinates array.
i.e., `xp(1, i)`

is the x-coor of particle i.

integer, , (IN)

Number of real particles

integer, , (IN)

Number of all particles including ghost particles

real array, `(:)`

, (IN)

Particles cutoff radii

logical, , (IN)

If lsymm = TRUE, verlet lists are symmetric and we have ghost layers only in (+) directions in all axes. Else, we have ghost layers in all directions.

real array, `(2*ppm_dim)`

, no intent declared

real array, `(ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

real array, `(:,:)`

, no intent declared

Particle coordinates array. F.e., xp(1, i) is the x-coor of particle i.

real array, `(:)`

, no intent declared

Particles cutoff radii

integer, , (OUT)

Number of real particles of subdomain

integer, , (OUT)

Number of all particles including ghost particles of subdomain

integer array, `(:)`

, no intent declared

*has no uses*

Inhomogeneous cross-set neighborlists. This routine provides Verlet-list-like neighbor lists of particles of one set (blue) to a set of other particles (red). The neighborlists are built analogous to the inhomogenous neighborlists described in Awile2011. The red particles are assumed to have interaction radius = domain size and we use the same neighborhood relation as in INL.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ID of the topology. | |||

real array | (:,:) | (IN) | Coordinates array for reference particles (red) | ||

integer | (IN) | Number of real red particles | |||

integer | (IN) | Number of all red particles including ghost particles | |||

real array | (:,:) | (IN) | Coordinates array for neighbor particle set (blue) | ||

integer | (IN) | Number of real blue particles | |||

integer | (IN) | Number of all blue particles including ghost particles | |||

real | (IN) | Blue particle cutoff radii scalar | |||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

integer | (OUT) | Info to be RETURNed. 0 if SUCCESSFUL. | |||

integer array | (:,:) | verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6. | |||

integer array | (:) | number of neighbors of particles. nvlist(i) is number of | |||

logical | (IN) |
| OPTIONAL logical parameter to choose whether to store |

integer, , (IN)

ID of the topology.

real array, `(:,:)`

, (IN)

Coordinates array for reference particles (red)

integer, , (IN)

Number of real red particles

integer, , (IN)

Number of all red particles including ghost particles

real array, `(:,:)`

, (IN)

Coordinates array for neighbor particle set (blue)

integer, , (IN)

Number of real blue particles

integer, , (IN)

Number of all blue particles including ghost particles

real, , (IN)

Blue particle cutoff radii scalar

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

integer, , (OUT)

Info to be RETURNed. 0 if SUCCESSFUL.

integer array, `(:,:)`

, no intent declared

verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6.

integer array, `(:)`

, no intent declared

number of neighbors of particles. nvlist(i) is number of neighbors particle i has.

logical, , (IN)

OPTIONAL logical parameter to choose whether to store vlist or not. By default, it is set to TRUE.

*has no uses*

Inhomogeneous cross-set neighborlists. This routine provides Verlet-list-like neighbor lists of particles of one set (blue) to a set of other particles (red). The neighborlists are built analogous to the inhomogenous neighborlists described in Awile2011. The red particles are assumed to have interaction radius = domain size and we use the same neighborhood relation as in INL.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ID of the topology. | |||

real array | (:,:) | (IN) | Coordinates array for reference particles (red) | ||

integer | (IN) | Number of real red particles | |||

integer | (IN) | Number of all red particles including ghost particles | |||

real array | (:,:) | (IN) | Coordinates array for neighbor particle set (blue) | ||

integer | (IN) | Number of real blue particles | |||

integer | (IN) | Number of all blue particles including ghost particles | |||

real | (IN) | Blue particle cutoff radii scalar | |||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

integer | (OUT) | Info to be RETURNed. 0 if SUCCESSFUL. | |||

integer array | (:,:) | verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6. | |||

integer array | (:) | number of neighbors of particles. nvlist(i) is number of | |||

logical | (IN) |
| OPTIONAL logical parameter to choose whether to store |

integer, , (IN)

ID of the topology.

real array, `(:,:)`

, (IN)

Coordinates array for reference particles (red)

integer, , (IN)

Number of real red particles

integer, , (IN)

Number of all red particles including ghost particles

real array, `(:,:)`

, (IN)

Coordinates array for neighbor particle set (blue)

integer, , (IN)

Number of real blue particles

integer, , (IN)

Number of all blue particles including ghost particles

real, , (IN)

Blue particle cutoff radii scalar

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

integer, , (OUT)

Info to be RETURNed. 0 if SUCCESSFUL.

integer array, `(:,:)`

, no intent declared

verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6.

integer array, `(:)`

, no intent declared

number of neighbors of particles. nvlist(i) is number of neighbors particle i has.

logical, , (IN)

OPTIONAL logical parameter to choose whether to store vlist or not. By default, it is set to TRUE.

*has no uses*

This function checks whether given coordinates are inside whole domain including ghost layers or not and RETURNs logical result.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (ppm_dim) | (IN) | 1D Array of coordinates. First index is x-coordinate. | ||

real array | (2*ppm_dim) | (IN) | Physical extent of whole domain including ghost layers. |

real array, `(ppm_dim)`

, (IN)

1D Array of coordinates. First index is x-coordinate.

real array, `(2*ppm_dim)`

, (IN)

Physical extent of whole domain including ghost layers.

*has no uses*

This function checks whether given coordinates are inside whole domain including ghost layers or not and RETURNs logical result.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (ppm_dim) | (IN) | 1D Array of coordinates. First index is x-coordinate. | ||

real array | (2*ppm_dim) | (IN) | Physical extent of whole domain including ghost layers. |

real array, `(ppm_dim)`

, (IN)

1D Array of coordinates. First index is x-coordinate.

real array, `(2*ppm_dim)`

, (IN)

Physical extent of whole domain including ghost layers.

*has no uses*

Given the cell index, this function checks whether the cell is in empty list or not and returns TRUE if inside.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Cell index |

integer, , (IN)

Cell index

*has no uses*

Inhomogeneous cross-set neighborlists. This routine provides Verlet-list-like neighbor lists of particles of one set (blue) to a set of other particles (red). The neighborlists are built analogous to the inhomogenous neighborlists described in Awile2011. The red particles are assumed to have interaction radius = domain size and we use the same neighborhood relation as in INL.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ID of the topology. | |||

real array | (:,:) | (IN) | Coordinates array for reference particles (red) | ||

integer | (IN) | Number of real red particles | |||

integer | (IN) | Number of all red particles including ghost particles | |||

real array | (:,:) | (IN) | Coordinates array for neighbor particle set (blue) | ||

integer | (IN) | Number of real blue particles | |||

integer | (IN) | Number of all blue particles including ghost particles | |||

real array | (:) | (IN) | Blue particle cutoff radii array | ||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

integer | (OUT) | Info to be RETURNed. 0 if SUCCESSFUL. | |||

integer array | (:,:) | verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6. | |||

integer array | (:) | number of neighbors of particles. nvlist(i) is number of | |||

logical | (IN) |
| OPTIONAL logical parameter to choose whether to store |

integer, , (IN)

ID of the topology.

real array, `(:,:)`

, (IN)

Coordinates array for reference particles (red)

integer, , (IN)

Number of real red particles

integer, , (IN)

Number of all red particles including ghost particles

real array, `(:,:)`

, (IN)

Coordinates array for neighbor particle set (blue)

integer, , (IN)

Number of real blue particles

integer, , (IN)

Number of all blue particles including ghost particles

real array, `(:)`

, (IN)

Blue particle cutoff radii array

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

integer, , (OUT)

Info to be RETURNed. 0 if SUCCESSFUL.

integer array, `(:,:)`

, no intent declared

verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6.

integer array, `(:)`

, no intent declared

number of neighbors of particles. nvlist(i) is number of neighbors particle i has.

logical, , (IN)

OPTIONAL logical parameter to choose whether to store vlist or not. By default, it is set to TRUE.

*has no uses*

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | ID of the topology. | |||

real array | (:,:) | (IN) | Coordinates array for reference particles (red) | ||

integer | (IN) | Number of real red particles | |||

integer | (IN) | Number of all red particles including ghost particles | |||

real array | (:,:) | (IN) | Coordinates array for neighbor particle set (blue) | ||

integer | (IN) | Number of real blue particles | |||

integer | (IN) | Number of all blue particles including ghost particles | |||

real array | (:) | (IN) | Blue particle cutoff radii array | ||

real | (IN) | Skin parameter | |||

real array | (2*ppm_dim) | (IN) | Extra area/volume over the actual domain introduced by | ||

integer | (OUT) | Info to be RETURNed. 0 if SUCCESSFUL. | |||

integer array | (:,:) | verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6. | |||

integer array | (:) | number of neighbors of particles. nvlist(i) is number of | |||

logical | (IN) |
| OPTIONAL logical parameter to choose whether to store |

integer, , (IN)

ID of the topology.

real array, `(:,:)`

, (IN)

Coordinates array for reference particles (red)

integer, , (IN)

Number of real red particles

integer, , (IN)

Number of all red particles including ghost particles

real array, `(:,:)`

, (IN)

Coordinates array for neighbor particle set (blue)

integer, , (IN)

Number of real blue particles

integer, , (IN)

Number of all blue particles including ghost particles

real array, `(:)`

, (IN)

Blue particle cutoff radii array

real, , (IN)

Skin parameter

real array, `(2*ppm_dim)`

, (IN)

Extra area/volume over the actual domain introduced by ghost layers.

integer, , (OUT)

Info to be RETURNed. 0 if SUCCESSFUL.

integer array, `(:,:)`

, no intent declared

verlet lists. vlist(3, 6) is the 3rd neighbor of particle 6.

integer array, `(:)`

, no intent declared

number of neighbors of particles. nvlist(i) is number of neighbors particle i has.

logical, , (IN)

OPTIONAL logical parameter to choose whether to store vlist or not. By default, it is set to TRUE.

*has no uses*

Given indices of two particles, checks whether the euclidian distance is smaller than the sum of minimum cutoff radius of these particles and the skin, then RETURNs TRUE if so. Works for nD.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of first particle | |||

integer | (IN) | Index of second particle | |||

real array | (:,:) | (IN) | Coordinate array of particles (red) | ||

real array | (:) | (IN) | Cutoff radii of particles (red) | ||

real array | (:,:) | (IN) | Coordinate array of particles (blue) | ||

real array | (:) | (IN) | Cutoff radii of particles (blue) | ||

real | (IN) | Skin parameter |

integer, , (IN)

Index of first particle

integer, , (IN)

Index of second particle

real array, `(:,:)`

, (IN)

Coordinate array of particles (red)

real array, `(:)`

, (IN)

Cutoff radii of particles (red)

real array, `(:,:)`

, (IN)

Coordinate array of particles (blue)

real array, `(:)`

, (IN)

Cutoff radii of particles (blue)

real, , (IN)

Skin parameter

*has no uses*

Given indices of two particles, checks whether the euclidian distance is smaller than the sum of minimum cutoff radius of these particles and the skin, then RETURNs TRUE if so. Works for nD.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of first particle | |||

integer | (IN) | Index of second particle | |||

real array | (:,:) | (IN) | Coordinate array of particles (red) | ||

real array | (:) | (IN) | Cutoff radii of particles (red) | ||

real array | (:,:) | (IN) | Coordinate array of particles (blue) | ||

real array | (:) | (IN) | Cutoff radii of particles (blue) | ||

real | (IN) | Skin parameter |

integer, , (IN)

Index of first particle

integer, , (IN)

Index of second particle

real array, `(:,:)`

, (IN)

Coordinate array of particles (red)

real array, `(:)`

, (IN)

Cutoff radii of particles (red)

real array, `(:,:)`

, (IN)

Coordinate array of particles (blue)

real array, `(:)`

, (IN)

Cutoff radii of particles (blue)

real, , (IN)

Skin parameter

*has no uses*

Given indices of two particles, checks whether the euclidian distance is smaller than the sum of minimum cutoff radius of these particles and the skin, then RETURNs TRUE if so. Works for nD.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of first particle | |||

integer | (IN) | Index of second particle | |||

real array | (:,:) | (IN) | Coordinate array of particles | ||

real array | (:) | (IN) | Cutoff radii of particles | ||

real | (IN) | Skin parameter |

integer, , (IN)

Index of first particle

integer, , (IN)

Index of second particle

real array, `(:,:)`

, (IN)

Coordinate array of particles

real array, `(:)`

, (IN)

Cutoff radii of particles

real, , (IN)

Skin parameter

*has no uses*

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of first particle | |||

integer | (IN) | Index of second particle | |||

real array | (:,:) | (IN) | Coordinate array of particles | ||

real array | (:) | (IN) | Cutoff radii of particles | ||

real | (IN) | Skin parameter |

integer, , (IN)

Index of first particle

integer, , (IN)

Index of second particle

real array, `(:,:)`

, (IN)

Coordinate array of particles

real array, `(:)`

, (IN)

Cutoff radii of particles

real, , (IN)

Skin parameter

*has no uses*

Given the index of the cell, this subroutine stores the cell index in the empty list. In case of insufficient list size, allocates a larger array and copies the content within into the new array.

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

integer | (IN) | Index of the cell |

integer, , (IN)

Index of the cell

*has no uses*

name | type | dimension | description |
---|---|---|---|

ppm_clist | |||

integer array | (:) | ||

integer | |||

integer | |||

integer array | (:,:) | ||

integer array | (:) | ||

integer | |||

integer | |||

integer array | (:) | ||

integer array | (:) | ||

integer | |||

integer | |||

integer array | (:) | ||

ppm_clist | |||

logical array | (:) |

ppm_clist,

integer array, `(:)`

integer,

integer,

integer array, `(:,:)`

integer array, `(:)`

integer,

integer,

integer array, `(:)`

integer array, `(:)`

integer,

integer,

integer array, `(:)`

ppm_clist,

logical array, `(:)`

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_inl_clist, ppm_module_substart