This module provides the interface to the routines that create topologies.
name | description |
---|---|
Subroutines contained in this interface:
name | description |
---|---|
This routine is the topology creation routine for particles. | |
This routine is the topology creation routine for particles. | |
This routine is the topology creation routine for meshes. | |
This routine is the topology creation routine for meshes. | |
This routine is the topology creation routine for purely | |
This routine is the topology creation routine for purely | |
This routine creates a topology based on ppm_tree. | |
This routine creates a topology based on ppm_tree. |
This routine is the topology creation routine for meshes.
In the user_defined case, the user must pass
existing subdomains and all of user_minsub
, user_maxsub
,
cost
, user_nsubs
must be provided. The sub boundaries
must align with mesh planes.
For all other decompositions, particles can be used
to guide them. For this, Npart
must be > 0. For
Npart ⇐ 0, the decomposition is purely mesh-based.
Subs are then mapped onto processors and
both the topology and the mesh definition is stored.
Note | |
---|---|
In the case of user-defined subs, a lot is currently trusted. We may want to include further checks in that case, e.g. if proper costs are provided, idata and ndata actually make sense, the extents of all subs are integer multiples of the mesh spacing, etc… |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
integer | (INOUT) | Mesh identifier (user numbering) for default mesh (as defined by | |||
real array | (:,:) | Particle positions. If present, domain decomposition will be | |||
integer | (IN) | Number of particles. ⇐0 if no xp is given to guide the decomposition | |||
integer | (IN) | The valid decomposition types are: | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain (double) | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain (double) | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
integer array | (:) | (IN) | Size (width) of the ghost layer. | ||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
integer array | (:) | (IN) | Number of mesh points (not cells) in each direction of the global | ||
integer | (OUT) | Returns status, 0 upon success. | |||
integer | (IN) | X | Number of subdomains requested. If not given, the number | ||
real array | (:) | (IN) | X | Array of length Npart which specifies the computational | |
real array | (:,:) | X | Mimimum of extension of subs. | ||
real array | (:,:) | X | Maximum of extension of subs. | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | Subdomain to processor assignment. index: subID (global) |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
integer, , (INOUT)
Mesh identifier (user numbering) for default mesh (as defined by Nm) on the topology. If <0, ppm will create a number internally and return it here on exit.
real array, (:,:)
, no intent declared
Particle positions. If present, domain decomposition will be guided by particle locations
integer, , (IN)
Number of particles. ⇐0 if no xp is given to guide the decomposition
integer, , (IN)
The valid decomposition types are:
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
Note | |
---|---|
The latter uses the external library METIS and is only available if ppm was compiled with METIS support. |
real array, (:)
, (IN)
Minimum of physical extend of the computational domain (double)
First index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain (double)
First index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
First index is 1-6 (each of the faces)
integer array, (:)
, (IN)
Size (width) of the ghost layer.
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output. The cost of a subdomain is given by its volume.
integer array, (:)
, (IN)
Number of mesh points (not cells) in each direction of the global computational domain (including points ON its boundaries)
integer, , (OUT)
Returns status, 0 upon success.
integer, , (IN)
Number of subdomains requested. If not given, the number of subs will be equal to the number of processors. This is only relevent for decomp_cartesian and pencils without particles.
real array, (:)
, (IN)
Array of length Npart which specifies the computational cost attributed to each particle. If this is absent, a unity cost is assumed for each particle.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
Maximum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. parameter used when decomp is user defined
integer array, (:)
, no intent declared
Subdomain to processor assignment. index: subID (global) parameter used if assignment is user defined.
ppm_module_data, ppm_module_tree, ppm_module_decomp, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_typedef, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_mesh_store, ppm_module_substop, ppm_module_topo_cost, ppm_module_data_mesh, ppm_module_mesh_alloc, ppm_module_topo_subs2proc, ppm_module_mesh_on_subs, ppm_module_find_neigh, ppm_module_topo_store, ppm_module_substart
This routine is the topology creation routine for meshes.
In the user_defined case, the user must pass
existing subdomains and all of user_minsub
, user_maxsub
,
cost
, user_nsubs
must be provided. The sub boundaries
must align with mesh planes.
For all other decompositions, particles can be used
to guide them. For this, Npart
must be > 0. For
Npart ⇐ 0, the decomposition is purely mesh-based.
Subs are then mapped onto processors and
both the topology and the mesh definition is stored.
Note | |
---|---|
In the case of user-defined subs, a lot is currently trusted. We may want to include further checks in that case, e.g. if proper costs are provided, idata and ndata actually make sense, the extents of all subs are integer multiples of the mesh spacing, etc… |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
integer | (INOUT) | Mesh identifier (user numbering) for default mesh (as defined by | |||
real array | (:,:) | Particle positions. If present, domain decomposition will be | |||
integer | (IN) | Number of particles. ⇐0 if no xp is given to guide the decomposition | |||
integer | (IN) | The valid decomposition types are: | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain (double) | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain (double) | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
integer array | (:) | (IN) | Size (width) of the ghost layer. | ||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
integer array | (:) | (IN) | Number of mesh points (not cells) in each direction of the global | ||
integer | (OUT) | Returns status, 0 upon success. | |||
integer | (IN) | X | Number of subdomains requested. If not given, the number | ||
real array | (:) | (IN) | X | Array of length Npart which specifies the computational | |
real array | (:,:) | X | Mimimum of extension of subs. | ||
real array | (:,:) | X | Maximum of extension of subs. | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | Subdomain to processor assignment. index: subID (global) |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
integer, , (INOUT)
Mesh identifier (user numbering) for default mesh (as defined by Nm) on the topology. If <0, ppm will create a number internally and return it here on exit.
real array, (:,:)
, no intent declared
Particle positions. If present, domain decomposition will be guided by particle locations
integer, , (IN)
Number of particles. ⇐0 if no xp is given to guide the decomposition
integer, , (IN)
The valid decomposition types are:
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
Note | |
---|---|
The latter uses the external library METIS and is only available if ppm was compiled with METIS support. |
real array, (:)
, (IN)
Minimum of physical extend of the computational domain (double)
First index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain (double)
First index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
First index is 1-6 (each of the faces)
integer array, (:)
, (IN)
Size (width) of the ghost layer.
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output. The cost of a subdomain is given by its volume.
integer array, (:)
, (IN)
Number of mesh points (not cells) in each direction of the global computational domain (including points ON its boundaries)
integer, , (OUT)
Returns status, 0 upon success.
integer, , (IN)
Number of subdomains requested. If not given, the number of subs will be equal to the number of processors. This is only relevent for decomp_cartesian and pencils without particles.
real array, (:)
, (IN)
Array of length Npart which specifies the computational cost attributed to each particle. If this is absent, a unity cost is assumed for each particle.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
Maximum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. parameter used when decomp is user defined
integer array, (:)
, no intent declared
Subdomain to processor assignment. index: subID (global) parameter used if assignment is user defined.
ppm_module_data, ppm_module_tree, ppm_module_decomp, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_typedef, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_mesh_store, ppm_module_substop, ppm_module_topo_cost, ppm_module_data_mesh, ppm_module_mesh_alloc, ppm_module_topo_subs2proc, ppm_module_mesh_on_subs, ppm_module_find_neigh, ppm_module_topo_store, ppm_module_substart
This routine is the topology creation routine for purely geometry-based decompositions, i.e. without particles and without meshes.
Note | |
---|---|
In the user_defined case, the user must submit existing
subdomains and all of |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
integer | (IN) | The valid decomposition types are: | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain (double) | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain (double) | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
real | (IN) | The size (width) of the ghost layer. | |||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
integer | (OUT) | Returns status, 0 upon success. | |||
real array | (:,:) | X | Mimimum of extension of subs. | ||
real array | (:,:) | X | Maximum of extension of subs. | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | Subdomain to processor assignment. |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
integer, , (IN)
The valid decomposition types are:
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
Note | |
---|---|
The latter uses the external library METIS and is only available if ppm was compiled with METIS support. |
real array, (:)
, (IN)
Minimum of physical extend of the computational domain (double)
first index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain (double)
first index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
first index is 1-6 (each of the faces)
real, , (IN)
The size (width) of the ghost layer.
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output. The cost of a subdomain is given by its volume.
integer, , (OUT)
Returns status, 0 upon success.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
Maximum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. Used when decomp is user defined.
integer array, (:)
, no intent declared
Subdomain to processor assignment. Used if assignment is user defined.
index: subID (global)
ppm_module_data, ppm_module_tree, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_find_neigh, ppm_module_substop, ppm_module_topo_cost, ppm_module_topo_subs2proc, ppm_module_topo_store, ppm_module_substart
This routine is the topology creation routine for purely geometry-based decompositions, i.e. without particles and without meshes.
Note | |
---|---|
In the user_defined case, the user must submit existing
subdomains and all of |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
integer | (IN) | The valid decomposition types are: | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain (double) | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain (double) | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
real | (IN) | The size (width) of the ghost layer. | |||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
integer | (OUT) | Returns status, 0 upon success. | |||
real array | (:,:) | X | Mimimum of extension of subs. | ||
real array | (:,:) | X | Maximum of extension of subs. | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | Subdomain to processor assignment. |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
integer, , (IN)
The valid decomposition types are:
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
Note | |
---|---|
The latter uses the external library METIS and is only available if ppm was compiled with METIS support. |
real array, (:)
, (IN)
Minimum of physical extend of the computational domain (double)
first index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain (double)
first index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
first index is 1-6 (each of the faces)
real, , (IN)
The size (width) of the ghost layer.
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output. The cost of a subdomain is given by its volume.
integer, , (OUT)
Returns status, 0 upon success.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
Maximum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. Used when decomp is user defined.
integer array, (:)
, no intent declared
Subdomain to processor assignment. Used if assignment is user defined.
index: subID (global)
ppm_module_data, ppm_module_tree, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_find_neigh, ppm_module_substop, ppm_module_topo_cost, ppm_module_topo_subs2proc, ppm_module_topo_store, ppm_module_substart
This routine is the topology creation routine for particles. It performs the decomposition of the physical space based on the position of the particles. The subdomains are mapped onto the processors and a neighbour list is created.
The decomposition is based on the particle positions
If user_nsubs is greater than zero, the subdomains
described by (min_sub,max_sub)
given by the user is used.
If user_nsubs is less than one, the subdomains are
found using the decomposition defined by the option
decomp.
If user_nsubs on input is greater than zero, the assigment of subdomain to the processors is used (as described in sub2proc) or else the assigment of subdomain to the processors will be performed to assign as best as possible an equal number of particles/grid points and at the same time minimizing communication (see Farhat 1988, JCP 28(5), pages: 579 — 602).
If topoid is 0 a new topology is created. Else the topoid is used to locate an existing topology and overwrite it
Note | |
---|---|
In the case of user-defined subs, a lot is currently trusted. We may want to include further checks in that case, e.g. if proper costs are provided. |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
real array | (:,:) | Position of particles | |||
integer | (IN) | Number of particles | |||
integer | (IN) | The type of decomposition. One of: | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
real | (IN) | Size (width) of the ghost layer. | |||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
integer | (OUT) | Returns status, 0 upon success | |||
real array | (:) | (IN) | X | Array of length Npart which specifies the computational | |
real array | (:,:) | X | Mimimum of extension of subs. | ||
real array | (:,:) | X | maximum of extension of subs | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | subdomain to processor assignment. index: subID (global) |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
real array, (:,:)
, no intent declared
Position of particles
integer, , (IN)
Number of particles
integer, , (IN)
The type of decomposition. One of:
Note | |
---|---|
There is no more ppm_param_decomp_null. If the user does not want to define a geometric decomposition there is no need for a topology. |
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
nodal and dual assignments use the external library METIS and are only available if ppm was compiled with METIS support.
real array, (:)
, (IN)
Minimum of physical extend of the computational domain
first index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain
first index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
Note | |
---|---|
first index is 1-6 (each of the faces) |
real, , (IN)
Size (width) of the ghost layer.
Tip | |
---|---|
If the particles are moving and you intend to use the ppm neighbor lists, this argument must be equal the particle interaction radius plus the skin parameter |
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output.
integer, , (OUT)
Returns status, 0 upon success
real array, (:)
, (IN)
Array of length Npart which specifies the computational cost attributed to each particle. If this is absent, a unity cost is assumed for each particle.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. Used when decomp is user defined
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
maximum of extension of subs Used when decomp is user defined
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. Used when decomp is user defined
integer array, (:)
, no intent declared
subdomain to processor assignment. index: subID (global) Used when assign is user defined
ppm_module_data, ppm_module_tree, ppm_module_decomp, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_find_neigh, ppm_module_substop, ppm_module_topo_cost, ppm_module_topo_subs2proc, ppm_module_topo_store, ppm_module_substart
This routine is the topology creation routine for particles. It performs the decomposition of the physical space based on the position of the particles. The subdomains are mapped onto the processors and a neighbour list is created.
The decomposition is based on the particle positions
If user_nsubs is greater than zero, the subdomains
described by (min_sub,max_sub)
given by the user is used.
If user_nsubs is less than one, the subdomains are
found using the decomposition defined by the option
decomp.
If user_nsubs on input is greater than zero, the assigment of subdomain to the processors is used (as described in sub2proc) or else the assigment of subdomain to the processors will be performed to assign as best as possible an equal number of particles/grid points and at the same time minimizing communication (see Farhat 1988, JCP 28(5), pages: 579 — 602).
If topoid is 0 a new topology is created. Else the topoid is used to locate an existing topology and overwrite it
Note | |
---|---|
In the case of user-defined subs, a lot is currently trusted. We may want to include further checks in that case, e.g. if proper costs are provided. |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
real array | (:,:) | Position of particles | |||
integer | (IN) | Number of particles | |||
integer | (IN) | The type of decomposition. One of: | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
real | (IN) | Size (width) of the ghost layer. | |||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
integer | (OUT) | Returns status, 0 upon success | |||
real array | (:) | (IN) | X | Array of length Npart which specifies the computational | |
real array | (:,:) | X | Mimimum of extension of subs. | ||
real array | (:,:) | X | maximum of extension of subs | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | subdomain to processor assignment. index: subID (global) |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
real array, (:,:)
, no intent declared
Position of particles
integer, , (IN)
Number of particles
integer, , (IN)
The type of decomposition. One of:
Note | |
---|---|
There is no more ppm_param_decomp_null. If the user does not want to define a geometric decomposition there is no need for a topology. |
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
nodal and dual assignments use the external library METIS and are only available if ppm was compiled with METIS support.
real array, (:)
, (IN)
Minimum of physical extend of the computational domain
first index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain
first index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
Note | |
---|---|
first index is 1-6 (each of the faces) |
real, , (IN)
Size (width) of the ghost layer.
Tip | |
---|---|
If the particles are moving and you intend to use the ppm neighbor lists, this argument must be equal the particle interaction radius plus the skin parameter |
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output.
integer, , (OUT)
Returns status, 0 upon success
real array, (:)
, (IN)
Array of length Npart which specifies the computational cost attributed to each particle. If this is absent, a unity cost is assumed for each particle.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. Used when decomp is user defined
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
maximum of extension of subs Used when decomp is user defined
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. Used when decomp is user defined
integer array, (:)
, no intent declared
subdomain to processor assignment. index: subID (global) Used when assign is user defined
ppm_module_data, ppm_module_tree, ppm_module_decomp, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_find_neigh, ppm_module_substop, ppm_module_topo_cost, ppm_module_topo_subs2proc, ppm_module_topo_store, ppm_module_substart
This routine creates a topology based on ppm_tree.
The user can directly specify the arguments for ppm_tree, rather
than choosing from a set of predefined ppm_param_decomp_*
.
Please see documentation of ppm_tree
for description of the
arguments.
Warning | |
---|---|
This is for advanced users only. |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
integer | (INOUT) | Mesh identifier (user numbering) for default mesh (as defined by | |||
real array | (:,:) | Particle positions. If present, domain decomposition will be | |||
integer | (IN) | Number of particles. Set to something .LE.0 if there are no | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain (double) | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain (double) | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
real | (IN) | The min size of the boxes | |||
logical | (IN) | Whether to keep empty boxes or not? | |||
real array | (3,2) | (IN) | Weights for particles, mesh points and geometry. | ||
logical array | (:) | (IN) | Flags to prevent cuts in certain directions. (see ppm_tree) | ||
real | (IN) | Maximum allowed variance of costs between subs | |||
real | (IN) | Maximum cost of a box. Subdivision will continue (if possible) | |||
integer array | (:,:) | Start indices (i,j[,k]) (first index) of sub mesh isub (second | |||
integer array | (:,:) | Number of grid points in x,y[,z] (first index) of sub mesh isub | |||
integer array | (:) | (IN) | Number of mesh points (not cells) in each direction of the global | ||
logical | (IN) | If | |||
integer | (IN) | One of: | |||
integer | (OUT) | Returns status, 0 upon success. | |||
real array | (:) | (IN) | X | Array of length Npart which specifies the computational | |
real array | (:,:) | X | Mimimum of extension of subs. OPTIONAL parameter used if | ||
real array | (:,:) | X | maximum of extension of subs. | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | Subdomain to processor assignment. |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
integer, , (INOUT)
Mesh identifier (user numbering) for default mesh (as defined by Nm) on the topology. If <0, ppm will create a number internally and return it here on exit.
real array, (:,:)
, no intent declared
Particle positions. If present, domain decomposition will be guided by particle locations
integer, , (IN)
Number of particles. Set to something .LE.0 if there are no particles.
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
Note | |
---|---|
The latter uses the external library METIS and is only available if ppm was compiled with METIS support. |
real array, (:)
, (IN)
Minimum of physical extend of the computational domain (double)
first index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain (double)
first index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
first index is 1-6 (each of the faces)
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output. The cost of a subdomain is given by its volume.
real, , (IN)
The min size of the boxes
logical, , (IN)
Whether to keep empty boxes or not?
real array, (3,2)
, (IN)
Weights for particles, mesh points and geometry. weights(:,1)
defines the box costs (where to refine), weights(:,2)
defines
where to cut a box.
logical array, (:)
, (IN)
Flags to prevent cuts in certain directions. (see ppm_tree)
real, , (IN)
Maximum allowed variance of costs between subs
real, , (IN)
Maximum cost of a box. Subdivision will continue (if possible) if cost of any box is larger than this. Set to ⇐ 0 to disable this criterion.
integer array, (:,:)
, no intent declared
Start indices (i,j[,k]) (first index) of sub mesh isub (second index) in global mesh.
integer array, (:,:)
, no intent declared
Number of grid points in x,y[,z] (first index) of sub mesh isub (second index). Includes the points ON the sub boundaries.
integer array, (:)
, (IN)
Number of mesh points (not cells) in each direction of the global computational domain (including points ON its boundaries)
logical, , (IN)
If TRUE
store the mesh definition internally. If FALSE
,
the mesh serves only as a guide for the decomposition and is not
stored as a ppm compute mesh.
integer, , (IN)
One of:
*ppm_param_tree_bin *ppm_param_tree_quad *ppm_param_tree_oct (3D only)
integer, , (OUT)
Returns status, 0 upon success.
real array, (:)
, (IN)
Array of length Npart which specifies the computational cost attributed to each particle. If this is absent, a unity cost is assumed for each particle.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. OPTIONAL parameter used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
maximum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. Used when decomp is user defined
integer array, (:)
, no intent declared
Subdomain to processor assignment. Used if assignment is user defined.
index: subID (global)
ppm_module_data, ppm_module_tree, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_mesh_store, ppm_module_substop, ppm_module_topo_cost, ppm_module_data_mesh, ppm_module_mesh_alloc, ppm_module_topo_subs2proc, ppm_module_mesh_on_subs, ppm_module_find_neigh, ppm_module_topo_store, ppm_module_substart
This routine creates a topology based on ppm_tree.
The user can directly specify the arguments for ppm_tree, rather
than choosing from a set of predefined ppm_param_decomp_*
.
Please see documentation of ppm_tree
for description of the
arguments.
Warning | |
---|---|
This is for advanced users only. |
name | type | dimension | intent | optional | description |
---|---|---|---|---|---|
integer | (INOUT) | ID number identifying the topology. | |||
integer | (INOUT) | Mesh identifier (user numbering) for default mesh (as defined by | |||
real array | (:,:) | Particle positions. If present, domain decomposition will be | |||
integer | (IN) | Number of particles. Set to something .LE.0 if there are no | |||
integer | (IN) | The type of subdomain-to-processor assignment. One of: | |||
real array | (:) | (IN) | Minimum of physical extend of the computational domain (double) | ||
real array | (:) | (IN) | Maximum of physical extend of the computational domain (double) | ||
integer array | (:) | (IN) | Boundary conditions for the topology | ||
real array | (:) | Estimated cost associated with subdomains. Either user-defined on | |||
real | (IN) | The min size of the boxes | |||
logical | (IN) | Whether to keep empty boxes or not? | |||
real array | (3,2) | (IN) | Weights for particles, mesh points and geometry. | ||
logical array | (:) | (IN) | Flags to prevent cuts in certain directions. (see ppm_tree) | ||
real | (IN) | Maximum allowed variance of costs between subs | |||
real | (IN) | Maximum cost of a box. Subdivision will continue (if possible) | |||
integer array | (:,:) | Start indices (i,j[,k]) (first index) of sub mesh isub (second | |||
integer array | (:,:) | Number of grid points in x,y[,z] (first index) of sub mesh isub | |||
integer array | (:) | (IN) | Number of mesh points (not cells) in each direction of the global | ||
logical | (IN) | If | |||
integer | (IN) | One of: | |||
integer | (OUT) | Returns status, 0 upon success. | |||
real array | (:) | (IN) | X | Array of length Npart which specifies the computational | |
real array | (:,:) | X | Mimimum of extension of subs. OPTIONAL parameter used if | ||
real array | (:,:) | X | maximum of extension of subs. | ||
integer | X | Total number of subs on all processors. | |||
integer array | (:) | X | Subdomain to processor assignment. |
integer, , (INOUT)
ID number identifying the topology. If topoid == 0 on input a new topology is created and the new topoid is returned here, else the indicated toplogy is replaced.
Caution | |
---|---|
SEMANTICS CHANGED: |
integer, , (INOUT)
Mesh identifier (user numbering) for default mesh (as defined by Nm) on the topology. If <0, ppm will create a number internally and return it here on exit.
real array, (:,:)
, no intent declared
Particle positions. If present, domain decomposition will be guided by particle locations
integer, , (IN)
Number of particles. Set to something .LE.0 if there are no particles.
integer, , (IN)
The type of subdomain-to-processor assignment. One of:
Note | |
---|---|
The latter uses the external library METIS and is only available if ppm was compiled with METIS support. |
real array, (:)
, (IN)
Minimum of physical extend of the computational domain (double)
first index is ppm_dim
real array, (:)
, (IN)
Maximum of physical extend of the computational domain (double)
first index is ppm_dim
integer array, (:)
, (IN)
Boundary conditions for the topology
first index is 1-6 (each of the faces)
real array, (:)
, no intent declared
Estimated cost associated with subdomains. Either user-defined on input or decomposition result on output. The cost of a subdomain is given by its volume.
real, , (IN)
The min size of the boxes
logical, , (IN)
Whether to keep empty boxes or not?
real array, (3,2)
, (IN)
Weights for particles, mesh points and geometry. weights(:,1)
defines the box costs (where to refine), weights(:,2)
defines
where to cut a box.
logical array, (:)
, (IN)
Flags to prevent cuts in certain directions. (see ppm_tree)
real, , (IN)
Maximum allowed variance of costs between subs
real, , (IN)
Maximum cost of a box. Subdivision will continue (if possible) if cost of any box is larger than this. Set to ⇐ 0 to disable this criterion.
integer array, (:,:)
, no intent declared
Start indices (i,j[,k]) (first index) of sub mesh isub (second index) in global mesh.
integer array, (:,:)
, no intent declared
Number of grid points in x,y[,z] (first index) of sub mesh isub (second index). Includes the points ON the sub boundaries.
integer array, (:)
, (IN)
Number of mesh points (not cells) in each direction of the global computational domain (including points ON its boundaries)
logical, , (IN)
If TRUE
store the mesh definition internally. If FALSE
,
the mesh serves only as a guide for the decomposition and is not
stored as a ppm compute mesh.
integer, , (IN)
One of:
*ppm_param_tree_bin *ppm_param_tree_quad *ppm_param_tree_oct (3D only)
integer, , (OUT)
Returns status, 0 upon success.
real array, (:)
, (IN)
Array of length Npart which specifies the computational cost attributed to each particle. If this is absent, a unity cost is assumed for each particle.
real array, (:,:)
, no intent declared
Mimimum of extension of subs. OPTIONAL parameter used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
real array, (:,:)
, no intent declared
maximum of extension of subs. Used if decomp is user defined.
1st index: x,y,(z) 2nd: subID
integer, , no intent declared
Total number of subs on all processors. Used when decomp is user defined
integer array, (:)
, no intent declared
Subdomain to processor assignment. Used if assignment is user defined.
index: subID (global)
ppm_module_data, ppm_module_tree, ppm_module_error, ppm_module_topo_metis_s2p, ppm_module_define_subs_bc, ppm_module_topo_box2subs, ppm_module_alloc, ppm_module_mesh_store, ppm_module_substop, ppm_module_topo_cost, ppm_module_data_mesh, ppm_module_mesh_alloc, ppm_module_topo_subs2proc, ppm_module_mesh_on_subs, ppm_module_find_neigh, ppm_module_topo_store, ppm_module_substart