Module ppm_module_map_part_util

This module provides various particle mapping utility and helper routines and their work-arrays.

Defined Types

name description

no types

Defined Module Interfaces

Defined Module Subroutines

name description

no subroutines

Interface ppm_map_part_cancel

Subroutines contained in this interface:

name description

ppm_map_part_cancel

This routine cancels an ongoing mapping calling sequence

Interface ppm_map_part_eqdistrib

Subroutines contained in this interface:

name description

ppm_map_part_eqdistrib_d

This routine maps the particles onto the given

ppm_map_part_eqdistrib_s

This routine maps the particles onto the given

Interface ppm_map_part_get_sub

Subroutines contained in this interface:

name description

ppm_map_part_get_sub_s

ppm_map_part_get_sub_d

This routine maps (retrieves) the particles on the sub domains and

Interface ppm_map_part_load

Subroutines contained in this interface:

name description

ppm_map_part_load

This routine loads the internally stored particle mapping.

Interface ppm_map_part_ring_shift

Subroutines contained in this interface:

name description

ppm_map_part_ring_shift_s

Prepares the send and receive lists and the buffers for sending the

ppm_map_part_ring_shift_d

Prepares the send and receive lists and the buffers for sending the

Interface ppm_map_part_store

Subroutines contained in this interface:

name description

ppm_map_part_store

This routine stores the state of the current/active particle mapping.

Subroutine ppm_map_part_cancel

This routine cancels an ongoing mapping calling sequence and resets the internal mapping state variables.

[Note]Note

one needs to reset the arrays since thay are alloc_fit-ed the next time a mapping is called. Their deallocation only happens in ppm_finalize anyway.

Arguments

name type dimension intent optional description

info

integer

(OUT)

Returns status, 0 upon success

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_eqdistrib_d

This routine maps the particles onto the given processors without respect to the topology (i.e. every processor gets as many particles as it can handle according to ppm_proc_speed).

[Note]Note

The first part of the buffer contains the on processor data.

[Note]Note

The storing of ppm_map_type is not used (yet)

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

The positions of the particles

npart

integer

(IN)

The number of particles

info

integer

(OUT)

The return status, 0 on success

xp

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

The positions of the particles

npart

integer, , (IN)

The number of particles

info

integer, , (OUT)

The return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_eqdistrib_s

This routine maps the particles onto the given processors without respect to the topology (i.e. every processor gets as many particles as it can handle according to ppm_proc_speed).

[Note]Note

The first part of the buffer contains the on processor data.

[Note]Note

The storing of ppm_map_type is not used (yet)

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

The positions of the particles

npart

integer

(IN)

The number of particles

info

integer

(OUT)

The return status, 0 on success

xp

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

The positions of the particles

npart

integer, , (IN)

The number of particles

info

integer, , (OUT)

The return status, 0 on success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_get_sub_d

This routine maps (retrieves) the particles on the sub domains and topology listed in the input list.

[Warning]Warning

this routine was NOT tested in serial !

Arguments

name type dimension intent optional description

topoid

integer

(IN)

Topology ID

isublist

integer array

(:)

(IN)

List of sub domain in topology

nsublist

integer

(IN)

Length of list(:)

xp

real array

(:,:)

(IN)

Particle coordinates

npart

integer

(IN)

Number of particles

info

integer

(OUT)

Returns 0 upon success

topoid

integer, , (IN)

Topology ID

isublist

integer array, (:), (IN)

List of sub domain in topology

nsublist

integer, , (IN)

Length of list(:)

xp

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

Particle coordinates

npart

integer, , (IN)

Number of particles

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_check_id, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_get_sub_s

Arguments

name type dimension intent optional description

topoid

integer

(IN)

Topology ID

isublist

integer array

(:)

(IN)

List of sub domain in topology

nsublist

integer

(IN)

Length of list(:)

xp

real array

(:,:)

(IN)

Particle coordinates

npart

integer

(IN)

Number of particles

info

integer

(OUT)

Returns 0 upon success

topoid

integer, , (IN)

Topology ID

isublist

integer array, (:), (IN)

List of sub domain in topology

nsublist

integer, , (IN)

Length of list(:)

xp

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

Particle coordinates

npart

integer, , (IN)

Number of particles

info

integer, , (OUT)

Returns 0 upon success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_check_id, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_load

This routine loads the internally stored particle mapping.

See ppm_map_part_store for more information.

Arguments

name type dimension intent optional description

info

integer

(OUT)

Returns stutus, 0 upon success

info

integer, , (OUT)

Returns stutus, 0 upon success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_data_state, ppm_module_substart

Subroutine ppm_map_part_ring_shift_d

Prepares the send and receive lists and the buffers for sending the particle data along the ring.

[Note]Note

The first part of the buffer contains the on processor data. In this case all particles will be send to itarget.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates

lda

integer

(IN)

The leading dimension of xp

npart

integer

(IN)

Number of particles

itarget

integer

(IN)

Processor to send to

isource

integer

(IN)

Processor to receive from

info

integer

(OUT)

Returns status, 0 upon success

xp

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

Particle coordinates

lda

integer, , (IN)

The leading dimension of xp

npart

integer, , (IN)

Number of particles

itarget

integer, , (IN)

Processor to send to

isource

integer, , (IN)

Processor to receive from

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_ring_shift_s

Prepares the send and receive lists and the buffers for sending the particle data along the ring.

[Note]Note

The first part of the buffer contains the on processor data. In this case all particles will be send to itarget.

Arguments

name type dimension intent optional description

xp

real array

(:,:)

(IN)

Particle coordinates

lda

integer

(IN)

The leading dimension of xp

npart

integer

(IN)

Number of particles

itarget

integer

(IN)

Processor to send to

isource

integer

(IN)

Processor to receive from

info

integer

(OUT)

Returns status, 0 upon success

xp

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

Particle coordinates

lda

integer, , (IN)

The leading dimension of xp

npart

integer, , (IN)

Number of particles

itarget

integer, , (IN)

Processor to send to

isource

integer, , (IN)

Processor to receive from

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_alloc, ppm_module_error, ppm_module_substop, ppm_module_substart

Subroutine ppm_map_part_store

This routine stores the state of the current/active particle mapping.

This is especially useful for alternating ghost-get/ghost-put mappings, which are used for implementing the communication in symmetric particle interactions. The ppm_map_part_ghost_get mapping can then be stored after its first call and reloaded after each ghost-put mapping.

Arguments

name type dimension intent optional description

info

integer

(OUT)

Returns status, 0 upon success

info

integer, , (OUT)

Returns status, 0 upon success

Used Modules

ppm_module_data, ppm_module_error, ppm_module_alloc, ppm_module_substop, ppm_module_data_state, ppm_module_substart

Defined Module Variables

name type dimension description

no variables

Used Modules

has no uses