ScalES-PPM
Loading...
Searching...
No Matches
ppm_uniform_partition Module Reference

compute uniform partitioning of n-dimensional rectilinear More...

Data Types

interface  partidx_of_elem
 
interface  uniform_decomposition
 

Functions/Subroutines

elemental integer function, public uniform_partition_start (set_interval, nparts, part_idx, symmetric)
 compute start integer of uniform interval partition
 
elemental type(extent) function, public uniform_partition (set_interval, nparts, part_idx, symmetric)
 compute nth part of integer set interval
 
subroutine uniform_decomposition_1d (set_interval, nparts, parts, symmetric)
 divide integer set interval into evenly sized sub-intervals forming a partition
 
subroutine uniform_decomposition_nd (pgrid, rect, nparts, symmetric)
 Compute uniform divisions of rectilinear structure.
 
elemental integer function partidx_of_elem_uniform_deco (set_interval, nparts, elem_idx)
 

Variables

character(len= *), parameter filename = 'ppm_uniform_partition.f90'
 

Detailed Description

compute uniform partitioning of n-dimensional rectilinear

Function/Subroutine Documentation

◆ uniform_decomposition_1d()

subroutine ppm_uniform_partition::uniform_decomposition_1d ( type(extent), intent(in) set_interval,
integer, intent(in) nparts,
type(extent), dimension(nparts), intent(out) parts,
logical, intent(in), optional symmetric )
private

divide integer set interval into evenly sized sub-intervals forming a partition

Parameters
set_intervalinterval to partition
npartsnumber of parts to compute
partsnparts sub-intervals
symmetricif .true. partitions(i) will be same-size as partitions(nparts-i+1)

◆ uniform_decomposition_nd()

subroutine ppm_uniform_partition::uniform_decomposition_nd ( type(block_decomposition), dimension(:), intent(out) pgrid,
type(extent), dimension(:), intent(in) rect,
integer, dimension(:), intent(in) nparts,
logical, dimension(:), intent(in), optional symmetric )
private

Compute uniform divisions of rectilinear structure.

Parameters
pgridsame dimension as rect and nparts, holds list of partition extents
rectintervals for indices of rectilinear to partition
npartsnumber of parts to compute in each dimension
symmetricsymmetry requirements for each dimension

◆ uniform_partition()

elemental type(extent) function, public ppm_uniform_partition::uniform_partition ( type(extent), intent(in) set_interval,
integer, intent(in) nparts,
integer, intent(in) part_idx,
logical, intent(in), optional symmetric )

compute nth part of integer set interval

The interval is divided into roughly same sized sub-intervals forming a uniform partition.

Parameters
set_intervalglobal domain
npartsnumber of parts to decompose into
part_idxnumber of sub-interval to compute
symmetricif .true. ensure that SIZE(uniform_partition(i)) == SIZE(uniform_partition(nparts - i + 1))
Returns
part range corresponding to part_idx

Das diesem Bericht zugrundeliegende Vorhaben wurde mit Mitteln des Bundesministeriums für Bildung, und Forschung unter dem Förderkennzeichen 01IH08004E gefördert. Die Verantwortung für den Inhalt dieser Veröffentlichung liegt beim Autor.