Module ppm_module_mesh_block_intersect

This module contains the Interface to ppm_mesh_block_intersect

[Note]Note

The terminology distinguishes between meshes and fields (the data living on the meshes). Several fields can use the same mesh. Meshes are defined as ppm-internal TYPES, whereas fields are user-provided arrays.

Defined Types

name description

no types

Defined Module Interfaces

name description

ppm_mesh_block_intersect

Defined Module Subroutines

name description

no subroutines

Interface ppm_mesh_block_intersect

Subroutines contained in this interface:

name description

ppm_mesh_block_intersect

This routine determines common mesh blocks (intersections) of

Subroutine ppm_mesh_block_intersect

This routine determines common mesh blocks (intersections) of two subs, possibly shifted and/or extended with ghostlayers. Start and size of all blocks found are stored and returned. This routine is used by ppm_map_field_global and ppm_map_field_ghost_init.

[Warning]Warning

This does not check whether the from_mesh and the to_mesh are compatible (i.e. have the same Nm). This check must be done by the calling routine. Furthermore, the 5 output lists need to be allocated by the calling routine. They are just grown here if needed. The reason is that this routine is typically called from inside a loop and we do not want to redo the checks at every iteration.

Arguments

name type dimension intent optional description

from_topoid

integer

(IN)

Source topology identifier

to_topoid

integer

(IN)

Target topology identifier

from_meshid

integer

(IN)

Source mesh identifier

to_meshid

integer

(IN)

Target mesh identifier

isub

integer

(IN)

Source sub (from which data will be sent) in global numbering

jsub

integer

(IN)

Destination sub in global numbering

offset

integer array

(:)

(IN)

Shift offset for the source subdomain. Index: 1:ppm_dim

ghostsize

integer array

(:)

(IN)

Size of the ghost layer in numbers of grid points in all space

nsendlist

integer

(INOUT)

Number of mesh blocks in the lists so far

isendfromsub

integer array

(:)

Global sub index of sources

isendtosub

integer array

(:)

Global sub index of targets

isendblkstart

integer array

(:,:)

Start of the mesh blocks in the global mesh. 1st index:

isendblksize

integer array

(:,:)

Size of the meshblocks in numbers of grid points. 1st index:

ioffset

integer array

(:,:)

Meshblock offset for periodic images.

info

integer

(OUT)

Returns status, 0 upon success

lsymm

logical array

(3)

(IN)

X

Use symmetry and chop last point

from_topoid

integer, , (IN)

Source topology identifier

to_topoid

integer, , (IN)

Target topology identifier

from_meshid

integer, , (IN)

Source mesh identifier

to_meshid

integer, , (IN)

Target mesh identifier

isub

integer, , (IN)

Source sub (from which data will be sent) in global numbering

jsub

integer, , (IN)

Destination sub in global numbering

offset

integer array, (:), (IN)

Shift offset for the source subdomain. Index: 1:ppm_dim

ghostsize

integer array, (:), (IN)

Size of the ghost layer in numbers of grid points in all space dimensions (1…ppm_dim). The target subdomain will be enlarged by this.

nsendlist

integer, , (INOUT)

Number of mesh blocks in the lists so far

isendfromsub

integer array, (:), no intent declared

Global sub index of sources

isendtosub

integer array, (:), no intent declared

Global sub index of targets

isendblkstart

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

Start of the mesh blocks in the global mesh. 1st index: 1:ppm_dim, 2nd: meshblock.

isendblksize

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

Size of the meshblocks in numbers of grid points. 1st index: 1:ppm_dim, 2nd: meshblock

ioffset

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

Meshblock offset for periodic images.

1st index: 1:ppm_dim 2nd index: meshblock

To be added to isendblkstart in order to get irecvblkstart on the target subdomain.

info

integer, , (OUT)

Returns status, 0 upon success

(Optional) lsymm

logical array, (3), (IN)

Use symmetry and chop last point

Used Modules

ppm_module_data, ppm_module_error, ppm_module_typedef, ppm_module_alloc, ppm_module_check_id, ppm_module_substop, ppm_module_data_mesh, ppm_module_substart

Defined Module Variables

name type dimension description

no variables

Used Modules

has no uses