This module provides the routine that determines the optimal direction of subdividing a box.

name | description |
---|---|

Subroutines contained in this interface:

name | description |
---|---|

This routine finds the best cutting directions and | |

This routine finds the best cutting directions and |

This routine finds the best cutting directions and positions for the given cut directions.

Note | |
---|---|

The cost of a particle is counted as pcost (if given) or 1. For meshes, the cost is 1 per mesh point. For the geometry part, the cost of a box is given by its volume. Use weights(3) to adjust this if needed. |

Note | |
---|---|

The best direction cut is given by min cost of geometry&mesh and max cost of moment of inertia (particles cost) |

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | Particle positions | ||

integer | (IN) | Number of particles | |||

real array | (3) | (IN) | Weights for the three cost contributions: particles, mesh, | ||

real array | (:,:) | (IN) | Minimum coordinate of the boxes | ||

real array | (:,:) | (IN) | Maximum coordinate of the boxes | ||

integer | (IN) | ID of box to be cut | |||

integer | (IN) | Number of cut directions | |||

logical array | (:) | (IN) | Set to | ||

real array | (3) | (IN) | Minimum size of a box in all directions. | ||

integer array | (:) | Directions of best cut. icut=i means: cutting plane is orthogonal | |||

integer | (OUT) | Return status, 0 on success | |||

real array | (:) | (IN) |
| Argument of length Npart, specifying the |

real array, `(:,:)`

, (IN)

Particle positions

integer, , (IN)

Number of particles

real array, `(3)`

, (IN)

Weights for the three cost contributions: particles, mesh, geometry for finding the cut directions.

real array, `(:,:)`

, (IN)

Minimum coordinate of the boxes

real array, `(:,:)`

, (IN)

Maximum coordinate of the boxes

integer, , (IN)

ID of box to be cut

integer, , (IN)

Number of cut directions

logical array, `(:)`

, (IN)

Set to `TRUE`

for dimensions which must not be cut

real array, `(3)`

, (IN)

Minimum size of a box in all directions.

integer array, `(:)`

, no intent declared

Directions of best cut. icut=i means: cutting plane is orthogonal to i-th coordinate axis. index: 1..ncut. The directions are sorted with the most favorable first.

integer, , (OUT)

Return status, 0 on success

real array, `(:)`

, (IN)

Argument of length Npart, specifying the computational cost of each particle.

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_data_tree, ppm_module_write, ppm_module_substart

This routine finds the best cutting directions and positions for the given cut directions.

Note | |
---|---|

The cost of a particle is counted as pcost (if given) or 1. For meshes, the cost is 1 per mesh point. For the geometry part, the cost of a box is given by its volume. Use weights(3) to adjust this if needed. |

Note | |
---|---|

The best direction cut is given by min cost of geometry&mesh and max cost of moment of inertia (particles cost) |

name | type | dimension | intent | optional | description |
---|---|---|---|---|---|

real array | (:,:) | (IN) | Particle positions | ||

integer | (IN) | Number of particles | |||

real array | (3) | (IN) | Weights for the three cost contributions: particles, mesh, | ||

real array | (:,:) | (IN) | Minimum coordinate of the boxes | ||

real array | (:,:) | (IN) | Maximum coordinate of the boxes | ||

integer | (IN) | ID of box to be cut | |||

integer | (IN) | Number of cut directions | |||

logical array | (:) | (IN) | Set to | ||

real array | (3) | (IN) | Minimum size of a box in all directions. | ||

integer array | (:) | Directions of best cut. icut=i means: cutting plane is orthogonal | |||

integer | (OUT) | Return status, 0 on success | |||

real array | (:) | (IN) |
| Argument of length Npart, specifying the |

real array, `(:,:)`

, (IN)

Particle positions

integer, , (IN)

Number of particles

real array, `(3)`

, (IN)

Weights for the three cost contributions: particles, mesh, geometry for finding the cut directions.

real array, `(:,:)`

, (IN)

Minimum coordinate of the boxes

real array, `(:,:)`

, (IN)

Maximum coordinate of the boxes

integer, , (IN)

ID of box to be cut

integer, , (IN)

Number of cut directions

logical array, `(:)`

, (IN)

Set to `TRUE`

for dimensions which must not be cut

real array, `(3)`

, (IN)

Minimum size of a box in all directions.

integer array, `(:)`

, no intent declared

Directions of best cut. icut=i means: cutting plane is orthogonal to i-th coordinate axis. index: 1..ncut. The directions are sorted with the most favorable first.

integer, , (OUT)

Return status, 0 on success

real array, `(:)`

, (IN)

Argument of length Npart, specifying the computational cost of each particle.

ppm_module_data, ppm_module_error, ppm_module_substop, ppm_module_data_tree, ppm_module_write, ppm_module_substart