Data structore to represent the tree for storing sources and targets of the fmm problem
Type | Visibility | Attributes | Name | Initial | |||
---|---|---|---|---|---|---|---|
integer(kind=ip), | public | :: | tree_degree | = | 0 |
Maximum number of children for each node |
|
integer(kind=ip), | public | :: | n_nodes | = | 0 |
Number of nodes in the tree |
|
integer(kind=ip), | public | :: | breadth | = | 0 |
Number of levels in the tree |
|
integer(kind=ip), | public, | allocatable | :: | children(:,:) |
For each node in the tree, its children (0 is the null element) |
||
integer(kind=ip), | public, | allocatable | :: | parent(:) |
For each node in the tree, its parent (0 is the null element) |
||
integer(kind=ip), | public, | allocatable | :: | node_level(:) |
For each node the level of the tree in which it is located (1-based) |
||
logical(kind=lp), | public, | allocatable | :: | is_leaf(:) |
For each node true if is a leaf and false otherwise |
||
type(yale_sparse), | public | :: | level_list |
For each level, the list of the nodes contained |
|||
integer(kind=ip), | public | :: | n_particles | = | 0 |
Number of particles stored in the tree |
|
real(kind=rp), | public, | pointer | :: | particles_coords(:,:) |
Pointer to particle coordinates |
||
type(yale_sparse), | public | :: | particle_list |
List of particles contained in each node, for all non-leaf nodes this list should be empty |
|||
integer(kind=ip), | public, | allocatable | :: | particle_to_node(:) | |||
real(kind=rp), | public, | allocatable | :: | node_centroid(:,:) |
For each node its centroid (in cartesian coordinates) |
||
real(kind=rp), | public, | allocatable | :: | node_dimension(:) |
For each node, its dimension (or radius) |
||
type(yale_sparse), | public | :: | near_nl |
List of nodes pair eligible for near-field |
|||
type(yale_sparse), | public | :: | far_nl |
List of nodes pair eligible for far-field |