Module ppm_module_map_field_ghost

This module contains interfaces to the field ghost mapping routines and all data structures and definitions that are PRIVATE to the mesh routines.

[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 per-topology ppm-internal types, whereas fields are user-provided arrays.

Defined Types

name description

no types

Defined Module Interfaces

Defined Module Subroutines

name description

no subroutines

Interface ppm_map_field_ghost_get

Subroutines contained in this interface:

name description

ppm_map_field_ghost_get

This routine receives/updates the values of the ghost mesh points of

Interface ppm_map_field_ghost_init

Subroutines contained in this interface:

name description

ppm_map_field_ghost_init

This routine sets up the lists needed for sending and receiving

Interface ppm_map_field_ghost_put

Subroutines contained in this interface:

name description

ppm_map_field_ghost_put

This routine sends the values of ghost mesh points

Subroutine ppm_map_field_ghost_get

This routine receives/updates the values of the ghost mesh points of each sub from its corresponding neighbor subs (i.e. adds ghost layers to the subs of the current topology).

[Important]Important

ppm_map_field_ghost_init must not be called anymore. This routine checks whether the ghost mappings have been initialized already and if not, the routine is called internally.

[Note]Note

The first part of the send/recv lists contains the on-processor data.

Arguments

name type dimension intent optional description

topoid

integer

(IN)

Topology ID

meshid

integer

(IN)

Mesh ID

ghostsize

integer array

(:)

(IN)

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

info

integer

(OUT)

Returns status, 0 upon success

topoid

integer, , (IN)

Topology ID

meshid

integer, , (IN)

Mesh ID

ghostsize

integer array, (:), (IN)

Size of the ghost layer in numbers of grid points in all space dimensions (1…ppm_dim).

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

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

Subroutine ppm_map_field_ghost_init

This routine sets up the lists needed for sending and receiving ghost mesh points on a given topology/mesh combination. These lists are stored for later use by ppm_map_field_ghost_get and ppm_map_field_ghost_put.

[Important]Important

This routine should never be called by the user, the library will call this routine before the first ppm_map_field_ghost_get or ppm_map_field_ghost_put.

[Note]Note

The lists are now saved in the mesh structure for which the ghost mappings are initialized. There is no need to reinitialize after doing global mappings

[Warning]Warning

The new version of this routine might cause some memory overhead

[Note]Note

The first part of the send/recv lists contains the on-processor data. The names send and recv are correct for the ghost get map. For the put case, they need to be interpreted the other way round. The shift cases for periodic images are currently hard coded. Probably there is a more elegant way of doing this.

Arguments

name type dimension intent optional description

topoid

integer

(IN)

Topology ID

meshid

integer

(IN)

Mesh ID

ghostsize

integer array

(:)

(IN)

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

info

integer

(OUT)

Returns status, 0 upon success

topoid

integer, , (IN)

Topology ID

meshid

integer, , (IN)

Mesh ID

ghostsize

integer array, (:), (IN)

Size of the ghost layer in numbers of grid points in all space dimensions (1…ppm_dim).

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_typedef, ppm_module_alloc, ppm_module_check_id, ppm_module_substop, ppm_module_util_commopt, ppm_module_mesh_block_intersect, ppm_module_data_mesh, ppm_module_write, ppm_module_substart

Subroutine ppm_map_field_ghost_put

This routine sends the values of ghost mesh points back to their origin in order to add their contribution to the corresponding real mesh point.

[Important]Important

ppm_map_field_ghost_init must not be called anymore. This routine checks wheterh the ghost mappings have been initialized already and if not, the routine is called by the library.

[Note]Note

The first part of the send/recv lists contains the on-processor data.

Arguments

name type dimension intent optional description

topoid

integer

(IN)

Topology ID

meshid

integer

(IN)

Mesh ID

ghostsize

integer array

(:)

(IN)

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

info

integer

(OUT)

Returns status, 0 upon success

topoid

integer, , (IN)

Topology ID

meshid

integer, , (IN)

Mesh ID

ghostsize

integer array, (:), (IN)

Size of the ghost layer in numbers of grid points in all space dimensions (1…ppm_dim).

info

integer, , (OUT)

Returns status, 0 upon success

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