Module ppm_module_find_neigh

This module provides the decomposition routines.

Defined Types

name description

no types

Defined Module Interfaces

name description

ppm_find_neigh

Defined Module Subroutines

name description

no subroutines

Interface ppm_find_neigh

Subroutines contained in this interface:

name description

ppm_find_neigh_s

ppm_find_neigh_d

This routine find the neighbours of a sub domain.

Subroutine ppm_find_neigh_d

This routine find the neighbours of a sub domain. It does that by comparing the coordinates of the bounding box of the sub domains using an N-square algorithm! Moreover, since the routine is called before any mapping has been performed, all the subs (nsubs) must be searched!

[Note]Note

No sub is listed as a neighbor of itself.

[Note]Note

The side effect of this routine is that the lists min_sub(:) and max_sub(:) are extended to include ghost sub domains. This is not used beyond this routine.

The lists that are built contain unique entries. This means that a sub can occur at most once in the neighbor list of a particular other sub. This needs to be taken into account when doing periodic ghosts.

This routine uses cell lists of the sub centers for fast search. The size of the cells is the extent(1:3) of the largest sub that exists. Therefore: if we have one large sub and tons of small ones, this routine will perform poorly. (N**2 in the worst case).

Arguments

name type dimension intent optional description

min_phys

real array

(:)

(IN)

Min. extent of the physical domain

max_phys

real array

(:)

(IN)

Max. extent of the physical domain

bcdef

integer array

(:)

(IN)

Boundary condition definition

min_sub

real array

(:,:)

Min. extent of the sub domain

max_sub

real array

(:,:)

Max. extent of the sub domain

nsubs

integer

(IN)

Total number of (real) sub domains

nneigh

integer array

(:)

nneigh(isub) returns the total number

ineigh

integer array

(:,:)

Points to the nneigh(:) subs of isub

info

integer

(OUT)

Returns status, 0 upon success

min_phys

real array, (:), (IN)

Min. extent of the physical domain

max_phys

real array, (:), (IN)

Max. extent of the physical domain

bcdef

integer array, (:), (IN)

Boundary condition definition

min_sub

real array, (:,:), no intent declared

Min. extent of the sub domain

max_sub

real array, (:,:), no intent declared

Max. extent of the sub domain

nsubs

integer, , (IN)

Total number of (real) sub domains

nneigh

integer array, (:), no intent declared

nneigh(isub) returns the total number of neighbouring subs of isub

ineigh

integer array, (:,:), no intent declared

Points to the nneigh(:) subs of isub

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_util_rank, ppm_module_error, ppm_module_neighlist, ppm_module_alloc, ppm_module_substop, ppm_module_copy_image_subs, ppm_module_substart

Subroutine ppm_find_neigh_s

Arguments

name type dimension intent optional description

min_phys

real array

(:)

(IN)

Min. extent of the physical domain

max_phys

real array

(:)

(IN)

Max. extent of the physical domain

bcdef

integer array

(:)

(IN)

Boundary condition definition

min_sub

real array

(:,:)

Min. extent of the sub domain

max_sub

real array

(:,:)

Max. extent of the sub domain

nsubs

integer

(IN)

Total number of (real) sub domains

nneigh

integer array

(:)

nneigh(isub) returns the total number

ineigh

integer array

(:,:)

Points to the nneigh(:) subs of isub

info

integer

(OUT)

Returns status, 0 upon success

min_phys

real array, (:), (IN)

Min. extent of the physical domain

max_phys

real array, (:), (IN)

Max. extent of the physical domain

bcdef

integer array, (:), (IN)

Boundary condition definition

min_sub

real array, (:,:), no intent declared

Min. extent of the sub domain

max_sub

real array, (:,:), no intent declared

Max. extent of the sub domain

nsubs

integer, , (IN)

Total number of (real) sub domains

nneigh

integer array, (:), no intent declared

nneigh(isub) returns the total number of neighbouring subs of isub

ineigh

integer array, (:,:), no intent declared

Points to the nneigh(:) subs of isub

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_util_rank, ppm_module_error, ppm_module_neighlist, ppm_module_alloc, ppm_module_substop, ppm_module_copy_image_subs, ppm_module_substart

Defined Module Variables

name type dimension description

no variables

Used Modules

has no uses