|
void | tree_add_to_fetch_stack (node *nop, int nodetoopen, unsigned char shmrank) |
|
void | tree_add_to_work_stack (int target, int no, unsigned char shmrank, int mintopleafnode) |
|
void | prepare_shared_memory_access (void) |
|
void | cleanup_shared_memory_access (void) |
|
void | tree_fetch_foreign_nodes (enum ftype fetch_type) |
|
void | tree_initialize_leaf_node_access_info (void) |
|
foreign_point_data * | get_foreignpointsp (int n, unsigned char shmrank) |
|
subfind_data * | get_PSp (int n, unsigned char shmrank) |
|
pdata | get_Pp (int n, unsigned char shmrank) |
|
sph_particle_data * | get_SphPp (int n, unsigned char shmrank) |
|
| tree () |
|
int | treebuild (int ninsert, int *indexlist) |
|
void | treefree (void) |
|
void | treeallocate (int max_partindex, partset *Pptr, domain< partset > *Dptr) |
|
void | treeallocate_share_topnode_addresses (void) |
|
void | tree_export_node_threads (int no, int i, thread_data *thread, offset_tuple off=0) |
|
void | tree_export_node_threads_by_task_and_node (int task, int nodeindex, int i, thread_data *thread, offset_tuple off=0) |
|
virtual void | update_node_recursive (int no, int sib, int mode)=0 |
|
virtual void | exchange_topleafdata (void)=0 |
|
virtual void | report_log_message (void)=0 |
|
virtual void | fill_in_export_points (point_data *exp_point, int i, int no)=0 |
|
node * | get_nodep (int no) |
|
node * | get_nodep (int no, unsigned char shmrank) |
|
int * | get_nextnodep (unsigned char shmrank) |
|
point_data * | get_pointsp (int no, unsigned char shmrank) |
|
void | tree_get_node_and_task (int i, int &no, int &task) |
|
template<typename node, typename partset, typename point_data, typename foreign_point_data>
class tree< node, partset, point_data, foreign_point_data >
Definition at line 90 of file tree.h.
int treebuild |
( |
int |
ninsert, |
|
|
int * |
indexlist |
|
) |
| |
public functions
This file contains the construction of the tree used for calculating the gravitational force and the neighbor tree for SPH. The type of tree implemented is a geometrical oct-tree, starting from a cube encompassing all particles. This cube is automatically found in the domain decomposition, which also splits up the global "top-level" tree along node boundaries, moving the particles of different parts of the tree to separate processors. In the present version of the code, the tree construction may be repeated without a renewed domain decomposition. In this case, if particles are on the "wrong" processor because a new domain decomposition has not been carried out, they are sent as temporary points to the right insertion processor according to the layout of the top-level nodes.
This function is a driver routine for constructing the oct-tree.
- Returns
- number of local nodes (including top level nodes) of the constructed tree
Definition at line 52 of file tree.cc.