Module ppm_module_typedef

This module contains the definition of some ppm data types. Namely the topology datatype.

Defined Types

name description

ppm_ptr_t_topo

ppm_t_clist

Cell list data structure

ppm_t_equi_mesh

Type for equispaced cartesian meshes on subs

ppm_t_mesh_maplist

TODO: check what this is used for (imported from Petros code

ppm_t_topo

The topology type

Defined Module Interfaces

name description

no interfaces

Defined Module Subroutines

name description

no subroutines

Type ppm_ptr_t_topo

Defined Type Members

name type dimension description

t

ppm_t_topo

t

ppm_t_topo,

Type ppm_t_clist

Cell list data structure

Defined Type Members

name type dimension description

lhbx

integer array

(:)

first particle in each cell

lpdx

integer array

(:)

particle index list

nm

integer array

(:)

Number of cells in x,y,(z) direction (including the ghosts

lhbx

integer array, (:)

first particle in each cell

lpdx

integer array, (:)

particle index list

nm

integer array, (:)

Number of cells in x,y,(z) direction (including the ghosts cells) in each subdomain.

Type ppm_t_equi_mesh

Type for equispaced cartesian meshes on subs

Defined Type Members

name type dimension description

ghost_blk

integer array

(:)

mesh ghost block list. 1st index: target processor

ghost_blksize

integer array

(:,:)

size (in grid points) of ghost blocks. 1st index: x,y[,z], 2nd:

ghost_blkstart

integer array

(:,:)

start (lower-left corner) of ghost mesh block in GLOBAL

ghost_fromsub

integer array

(:)

list of source subs of ghost mesh blocks (globel sub number).

ghost_initialized

logical

is .TRUE. if the ghost mappings have been initialized

ghost_nrecv

integer

number of mesh blocks to be recvd as ghosts

ghost_nsend

integer

number of mesh blocks to be sent as ghosts

ghost_recvblk

integer array

(:)

mesh ghost block receive list. 1st index: target processor

ghost_recvblksize

integer array

(:,:)

size (in grid points) of recvd ghost blocks.

ghost_recvblkstart

integer array

(:,:)

start (lower-left corner) of received ghost mesh block in

ghost_recvtosub

integer array

(:)

list of target subs for ghost mesh blocks to be received,

ghost_tosub

integer array

(:)

list of target subs of ghost mesh blocks (globel sub number).

id

integer

ID of the mesh in the belonging topology

istart

integer array

(:,:)

Starting indices of the mesh of this sub in the global mesh

mapping

ppm_t_mesh_maplist

nm

integer array

(:)

global number of mesh points in computational domain

nnodes

integer array

(:,:)

The number of mesh nodes (not cells) in each direction in

ghost_blk

integer array, (:)

mesh ghost block list. 1st index: target processor

ghost_blksize

integer array, (:,:)

size (in grid points) of ghost blocks. 1st index: x,y[,z], 2nd: meshblock ID

ghost_blkstart

integer array, (:,:)

start (lower-left corner) of ghost mesh block in GLOBAL mesh coordinates. First index: x,y[,z], 2nd: meshblock ID

ghost_fromsub

integer array, (:)

list of source subs of ghost mesh blocks (globel sub number). These are the owner subs of the actual real mesh points 1st index: meshblock ID

ghost_initialized

logical,

is .TRUE. if the ghost mappings have been initialized else, .FALSE.

ghost_nrecv

integer,

number of mesh blocks to be recvd as ghosts

ghost_nsend

integer,

number of mesh blocks to be sent as ghosts

ghost_recvblk

integer array, (:)

mesh ghost block receive list. 1st index: target processor

ghost_recvblksize

integer array, (:,:)

size (in grid points) of recvd ghost blocks. 1st index: x,y[,z], 2nd: meshblock ID

ghost_recvblkstart

integer array, (:,:)

start (lower-left corner) of received ghost mesh block in GLOBAL mesh coordinates. 1st index: x,y[,z], 2nd: meshblock ID

ghost_recvtosub

integer array, (:)

list of target subs for ghost mesh blocks to be received, i.e. being ghost on the local processor (globel sub number). These are the subs where the blocks will serve as ghosts 1st index: meshblock ID

ghost_tosub

integer array, (:)

list of target subs of ghost mesh blocks (globel sub number). These are the subs a block will serve as a ghost on. 1st index: meshblock ID

id

integer,

ID of the mesh in the belonging topology It is the same as its index in the ppm_t_topo%mesh array

istart

integer array, (:,:)

Starting indices of the mesh of this sub in the global mesh

mapping

ppm_t_mesh_maplist,

nm

integer array, (:)

global number of mesh points in computational domain

nnodes

integer array, (:,:)

The number of mesh nodes (not cells) in each direction in each sub

Type ppm_t_mesh_maplist

TODO: check what this is used for (imported from Petros code

Defined Type Members

name type dimension description

irecvblksize

integer array

(:,:)

recv block size list

irecvblkstart

integer array

(:,:)

recv block start list

irecvlist

integer array

(:)

recv rank lists

irecvtosub

integer array

(:)

recv send sublist

isendblksize

integer array

(:,:)

send block size list

isendblkstart

integer array

(:,:)

send block start list

isendfromsub

integer array

(:)

source send sublist

isendlist

integer array

(:)

send rank lists

nrecvlist

integer

recv rank size

nsendlist

integer

send rank list size

precvbuffer

integer array

(:)

recv buffer pointer

psendbuffer

integer array

(:)

send buffer pointer

target_meshid

integer

target mesh ID

target_topoid

integer

target topology ID

irecvblksize

integer array, (:,:)

recv block size list

irecvblkstart

integer array, (:,:)

recv block start list

irecvlist

integer array, (:)

recv rank lists

irecvtosub

integer array, (:)

recv send sublist

isendblksize

integer array, (:,:)

send block size list

isendblkstart

integer array, (:,:)

send block start list

isendfromsub

integer array, (:)

source send sublist

isendlist

integer array, (:)

send rank lists

nrecvlist

integer,

recv rank size

nsendlist

integer,

send rank list size

precvbuffer

integer array, (:)

recv buffer pointer

psendbuffer

integer array, (:)

send buffer pointer

target_meshid

integer,

target mesh ID

target_topoid

integer,

target topology ID

Type ppm_t_topo

The topology type

Defined Type Members

name type dimension description

bcdef

integer array

(:)

boundary conditions for the topology

ghostsized

real

max ghostsize width used when creating this topology (double)

ghostsizes

real

max ghostsize width used when creating this topology (single)

icommseq

integer array

(:)

optimal communication sequence for this processor. 1st index:

id

integer

ID of this topology

ineighproc

integer array

(:)

list of neighboring processors. Index 1: neighbor index

ineighsubs

integer array

(:,:)

list of neighboring subs of all local subs.

isdefined

logical

flag to tell if this topology is defined/in use

isoptimized

logical

has optimal communication sequence already been determined for

isublist

integer array

(:)

list of subs of the current processor. 1st index: local sub

max_meshid

integer

Number of meshes defined on this topology

max_physd

real array

(:)

maximum of physical extend of the computational domain (double)

max_physs

real array

(:)

maximum of physical extend of the computational domain (single)

max_subd

real array

(:,:)

maximum of extension of subs (double)

max_subs

real array

(:,:)

maximum of extension of subs (single)

mesh

ppm_t_equi_mesh array

(:)

List of meshes defined on this topology. Index: meshid

min_physd

real array

(:)

minimum of physical extend of the computational domain (double)

min_physs

real array

(:)

minimum of physical extend of the computational domain (single)

min_subd

real array

(:,:)

mimimum of extension of subs (double)

min_subs

real array

(:,:)

mimimum of extension of subs (single)

ncommseq

integer

number of communication rounds needed for partial mapping

nneighproc

integer

number of neighboring processors.

nneighsubs

integer array

(:)

number of neighboring subs of all local subs.

nsublist

integer

number of subs on the current processor.

nsubs

integer

total number of subs on all processors.

prec

integer

numerical precision (ppm_kind) for this topology

sub2proc

integer array

(:)

subdomain to processor assignment. index: subID (global)

sub_costd

real array

(:)

estimated cost associated with subdomains (double). Index: sub-ID.

sub_costs

real array

(:)

estimated cost associated with subdomains (single). Index: sub-ID.

subs_bc

integer array

(:,:)

boundary conditions on a sub:

bcdef

integer array, (:)

boundary conditions for the topology Note: first index is 1-6 (each of the faces)

ghostsized

real,

max ghostsize width used when creating this topology (double) using a larger cutoff when calling routines such as ghost_get should ideally raise a warning

ghostsizes

real,

max ghostsize width used when creating this topology (single)

icommseq

integer array, (:)

optimal communication sequence for this processor. 1st index: communication round

id

integer,

ID of this topology

It is the same as its index in the ppm_topo array

ineighproc

integer array, (:)

list of neighboring processors. Index 1: neighbor index

ineighsubs

integer array, (:,:)

list of neighboring subs of all local subs. - index 1: neighbor index - index 2: sub id (local index, not global ID!)

isdefined

logical,

flag to tell if this topology is defined/in use

isoptimized

logical,

has optimal communication sequence already been determined for this topology?

isublist

integer array, (:)

list of subs of the current processor. 1st index: local sub number.

max_meshid

integer,

Number of meshes defined on this topology

max_physd

real array, (:)

maximum of physical extend of the computational domain (double) Note: first index is ppm_dim

max_physs

real array, (:)

maximum of physical extend of the computational domain (single) Note: first index is ppm_dim

max_subd

real array, (:,:)

maximum of extension of subs (double) Note: 1st index: x,y,(z), 2nd: subID

max_subs

real array, (:,:)

maximum of extension of subs (single) Note: 1st index: x,y,(z), 2nd: subID

mesh

ppm_t_equi_mesh array, (:)

List of meshes defined on this topology. Index: meshid

min_physd

real array, (:)

minimum of physical extend of the computational domain (double) Note: first index is ppm_dim

min_physs

real array, (:)

minimum of physical extend of the computational domain (single) Note: first index is ppm_dim

min_subd

real array, (:,:)

mimimum of extension of subs (double) Note: 1st index: x,y,(z), 2nd: subID

min_subs

real array, (:,:)

mimimum of extension of subs (single) Note: 1st index: x,y,(z), 2nd: subID

ncommseq

integer,

number of communication rounds needed for partial mapping

nneighproc

integer,

number of neighboring processors.

nneighsubs

integer array, (:)

number of neighboring subs of all local subs.

index 1: sub id (local index, not global ID!)

nsublist

integer,

number of subs on the current processor.

nsubs

integer,

total number of subs on all processors.

prec

integer,

numerical precision (ppm_kind) for this topology

sub2proc

integer array, (:)

subdomain to processor assignment. index: subID (global)

sub_costd

real array, (:)

estimated cost associated with subdomains (double). Index: sub-ID.

sub_costs

real array, (:)

estimated cost associated with subdomains (single). Index: sub-ID.

subs_bc

integer array, (:,:)

boundary conditions on a sub:

  • west : 1
  • east : 2
  • south : 3
  • north : 4
  • bottom: 5
  • top : 6

index 1: the index of the 4 or 6 faces in 2 and 3 D index 2: the global sub id

states:

  • value: 0 the face is internal
  • value: 1 otherwise

Defined Module Variables

name type dimension description

ppm_char

integer

ppm_error_error

integer

ppm_error_fatal

integer

ppm_error_notice

integer

ppm_error_warning

integer

ppm_integer

integer

ppm_kind_double

integer

ppm_kind_int32

integer

ppm_kind_int64

integer

ppm_kind_single

integer

ppm_logical

integer

ppm_param_alloc_fit

integer

ppm_param_alloc_fit_preserve

integer

ppm_param_alloc_grow

integer

ppm_param_alloc_grow_preserve

integer

ppm_param_assign_cic

integer

ppm_param_assign_dual_comm

integer

ppm_param_assign_dual_cut

integer

ppm_param_assign_internal

integer

ppm_param_assign_m3p6

integer

ppm_param_assign_mp4

integer

ppm_param_assign_ngp

integer

ppm_param_assign_nodal_comm

integer

ppm_param_assign_nodal_cut

integer

ppm_param_assign_tcs

integer

ppm_param_assign_user_defined

integer

ppm_param_bcdef_antisymmetry

integer

ppm_param_bcdef_dirichlet

integer

ppm_param_bcdef_freespace

integer

ppm_param_bcdef_neumann

integer

ppm_param_bcdef_periodic

integer

ppm_param_bcdef_robin

integer

ppm_param_bcdef_symmetry

integer

ppm_param_connect_distribute

integer

ppm_param_connect_prune

integer

ppm_param_connect_send

integer

ppm_param_dealloc

integer

ppm_param_decomp_bisection

integer

ppm_param_decomp_cartesian

integer

ppm_param_decomp_cuboid

integer

ppm_param_decomp_pruned_cell

integer

ppm_param_decomp_tree

integer

ppm_param_decomp_user_defined

integer

ppm_param_decomp_xpencil

integer

ppm_param_decomp_xy_slab

integer

ppm_param_decomp_xz_slab

integer

ppm_param_decomp_ypencil

integer

ppm_param_decomp_yz_slab

integer

ppm_param_decomp_zpencil

integer

ppm_param_id_internal

integer

ppm_param_id_user

integer

ppm_param_io_append

integer

ppm_param_io_ascii

integer

ppm_param_io_binary

integer

ppm_param_io_centralized

integer

ppm_param_io_concat

integer

ppm_param_io_distributed

integer

ppm_param_io_double

integer

ppm_param_io_read

integer

ppm_param_io_read_write

integer

ppm_param_io_replace

integer

ppm_param_io_root

integer

ppm_param_io_same

integer

ppm_param_io_single

integer

ppm_param_io_split

integer

ppm_param_io_sum

integer

ppm_param_io_write

integer

ppm_param_kernel_ddx_sph2d_p2

integer

ppm_param_kernel_ddy_sph2d_p2

integer

ppm_param_kernel_dx_sph2d_p2

integer

ppm_param_kernel_dxdy_sph2d_p2

integer

ppm_param_kernel_dy_sph2d_p2

integer

ppm_param_kernel_fast3d

integer

ppm_param_kernel_fast3d_dx

integer

ppm_param_kernel_fast3d_dy

integer

ppm_param_kernel_fast3d_dz

integer

ppm_param_kernel_fast3d_lap

integer

ppm_param_kernel_laplace2d_p2

integer

ppm_param_kernel_laplace3d_p2

integer

ppm_param_kernel_sph2d_p2

integer

ppm_param_loadbal_sar

integer

ppm_param_map_cancel

integer

ppm_param_map_ghost_get

integer

ppm_param_map_ghost_put

integer

ppm_param_map_global

integer

ppm_param_map_init

integer

ppm_param_map_partial

integer

ppm_param_map_pop

integer

ppm_param_map_push

integer

ppm_param_map_remap

integer

ppm_param_map_send

integer

ppm_param_mesh_coarsen

integer

ppm_param_mesh_refine

integer

ppm_param_pop_add

integer

ppm_param_pop_replace

integer

ppm_param_rmsh_kernel_bsp2

integer

ppm_param_rmsh_kernel_m3p6

integer

ppm_param_rmsh_kernel_mp4

integer

ppm_param_success

integer

ppm_param_topo_field

integer

ppm_param_topo_part

integer

ppm_param_topo_undefined

integer

ppm_param_tree_bin

integer

ppm_param_tree_oct

integer

ppm_param_tree_quad

integer

ppm_param_undefined

integer

ppm_param_update_average

integer

ppm_param_update_expfavg

integer

ppm_param_update_replace

integer

ppm_char

integer,

ppm_error_error

integer,

ppm_error_fatal

integer,

ppm_error_notice

integer,

ppm_error_warning

integer,

ppm_integer

integer,

ppm_kind_double

integer,

ppm_kind_int32

integer,

ppm_kind_int64

integer,

ppm_kind_single

integer,

ppm_logical

integer,

ppm_param_alloc_fit

integer,

ppm_param_alloc_fit_preserve

integer,

ppm_param_alloc_grow

integer,

ppm_param_alloc_grow_preserve

integer,

ppm_param_assign_cic

integer,

ppm_param_assign_dual_comm

integer,

ppm_param_assign_dual_cut

integer,

ppm_param_assign_internal

integer,

ppm_param_assign_m3p6

integer,

ppm_param_assign_mp4

integer,

ppm_param_assign_ngp

integer,

ppm_param_assign_nodal_comm

integer,

ppm_param_assign_nodal_cut

integer,

ppm_param_assign_tcs

integer,

ppm_param_assign_user_defined

integer,

ppm_param_bcdef_antisymmetry

integer,

ppm_param_bcdef_dirichlet

integer,

ppm_param_bcdef_freespace

integer,

ppm_param_bcdef_neumann

integer,

ppm_param_bcdef_periodic

integer,

ppm_param_bcdef_robin

integer,

ppm_param_bcdef_symmetry

integer,

ppm_param_connect_distribute

integer,

ppm_param_connect_prune

integer,

ppm_param_connect_send

integer,

ppm_param_dealloc

integer,

ppm_param_decomp_bisection

integer,

ppm_param_decomp_cartesian

integer,

ppm_param_decomp_cuboid

integer,

ppm_param_decomp_pruned_cell

integer,

ppm_param_decomp_tree

integer,

ppm_param_decomp_user_defined

integer,

ppm_param_decomp_xpencil

integer,

ppm_param_decomp_xy_slab

integer,

ppm_param_decomp_xz_slab

integer,

ppm_param_decomp_ypencil

integer,

ppm_param_decomp_yz_slab

integer,

ppm_param_decomp_zpencil

integer,

ppm_param_id_internal

integer,

ppm_param_id_user

integer,

ppm_param_io_append

integer,

ppm_param_io_ascii

integer,

ppm_param_io_binary

integer,

ppm_param_io_centralized

integer,

ppm_param_io_concat

integer,

ppm_param_io_distributed

integer,

ppm_param_io_double

integer,

ppm_param_io_read

integer,

ppm_param_io_read_write

integer,

ppm_param_io_replace

integer,

ppm_param_io_root

integer,

ppm_param_io_same

integer,

ppm_param_io_single

integer,

ppm_param_io_split

integer,

ppm_param_io_sum

integer,

ppm_param_io_write

integer,

ppm_param_kernel_ddx_sph2d_p2

integer,

ppm_param_kernel_ddy_sph2d_p2

integer,

ppm_param_kernel_dx_sph2d_p2

integer,

ppm_param_kernel_dxdy_sph2d_p2

integer,

ppm_param_kernel_dy_sph2d_p2

integer,

ppm_param_kernel_fast3d

integer,

ppm_param_kernel_fast3d_dx

integer,

ppm_param_kernel_fast3d_dy

integer,

ppm_param_kernel_fast3d_dz

integer,

ppm_param_kernel_fast3d_lap

integer,

ppm_param_kernel_laplace2d_p2

integer,

ppm_param_kernel_laplace3d_p2

integer,

ppm_param_kernel_sph2d_p2

integer,

ppm_param_loadbal_sar

integer,

ppm_param_map_cancel

integer,

ppm_param_map_ghost_get

integer,

ppm_param_map_ghost_put

integer,

ppm_param_map_global

integer,

ppm_param_map_init

integer,

ppm_param_map_partial

integer,

ppm_param_map_pop

integer,

ppm_param_map_push

integer,

ppm_param_map_remap

integer,

ppm_param_map_send

integer,

ppm_param_mesh_coarsen

integer,

ppm_param_mesh_refine

integer,

ppm_param_pop_add

integer,

ppm_param_pop_replace

integer,

ppm_param_rmsh_kernel_bsp2

integer,

ppm_param_rmsh_kernel_m3p6

integer,

ppm_param_rmsh_kernel_mp4

integer,

ppm_param_success

integer,

ppm_param_topo_field

integer,

ppm_param_topo_part

integer,

ppm_param_topo_undefined

integer,

ppm_param_tree_bin

integer,

ppm_param_tree_oct

integer,

ppm_param_tree_quad

integer,

ppm_param_undefined

integer,

ppm_param_update_average

integer,

ppm_param_update_expfavg

integer,

ppm_param_update_replace

integer,

Used Modules

has no uses