|
MP-Gadget
5.0.1.dev1-76bc7d4726-dirty
|
Go to the source code of this file.
Classes | |
| struct | TreeWalkQueryBase |
| struct | TreeWalkResultBase |
| struct | TreeWalkNgbIterBase |
| struct | LocalTreeWalk |
| struct | TreeWalk |
Macros | |
| #define | NODELISTLENGTH 8 |
| #define | TREEWALK_REDUCE(A, B) (A) = (mode==TREEWALK_PRIMARY)?(B):((A) + (B)) |
| #define | MAXITER 400 |
Typedefs | |
| typedef struct TreeWalk | TreeWalk |
| typedef int(* | TreeWalkVisitFunction) (TreeWalkQueryBase *input, TreeWalkResultBase *output, LocalTreeWalk *lv) |
| typedef void(* | TreeWalkNgbIterFunction) (TreeWalkQueryBase *input, TreeWalkResultBase *output, TreeWalkNgbIterBase *iter, LocalTreeWalk *lv) |
| typedef int(* | TreeWalkHasWorkFunction) (const int i, TreeWalk *tw) |
| typedef void(* | TreeWalkProcessFunction) (const int i, TreeWalk *tw) |
| typedef void(* | TreeWalkFillQueryFunction) (const int j, TreeWalkQueryBase *query, TreeWalk *tw) |
| typedef void(* | TreeWalkReduceResultFunction) (const int j, TreeWalkResultBase *result, const enum TreeWalkReduceMode mode, TreeWalk *tw) |
Enumerations | |
| enum | NgbTreeFindSymmetric { NGB_TREEFIND_SYMMETRIC , NGB_TREEFIND_ASYMMETRIC } |
| enum | TreeWalkReduceMode { TREEWALK_PRIMARY , TREEWALK_GHOSTS } |
| enum | TreeWalkType { TREEWALK_ACTIVE = 0 , TREEWALK_ALL , TREEWALK_SPLIT } |
Functions | |
| void | set_treewalk_params (ParameterSet *ps) |
| void | treewalk_run (TreeWalk *tw, int *active_set, size_t size) |
| int | treewalk_visit_ngbiter (TreeWalkQueryBase *I, TreeWalkResultBase *O, LocalTreeWalk *lv) |
| int | treewalk_export_particle (LocalTreeWalk *lv, int no) |
| int | treewalk_visit_nolist_ngbiter (TreeWalkQueryBase *I, TreeWalkResultBase *O, LocalTreeWalk *lv) |
| void | treewalk_do_hsml_loop (TreeWalk *tw, int *queue, int64_t queuesize, int update_hsml) |
| double | ngb_narrow_down (double *right, double *left, const double *radius, const double *numNgb, int maxcmpt, int desnumngb, int *closeidx, double BoxSize) |
| void | treewalk_build_queue (TreeWalk *tw, int *active_set, const size_t size, int may_have_garbage) |
| #define MAXITER 400 |
Definition at line 201 of file treewalk.h.
| #define NODELISTLENGTH 8 |
Definition at line 8 of file treewalk.h.
| #define TREEWALK_REDUCE | ( | A, | |
| B | |||
| ) | (A) = (mode==TREEWALK_PRIMARY)?(B):((A) + (B)) |
Definition at line 189 of file treewalk.h.
Definition at line 1 of file treewalk.h.
| typedef void(* TreeWalkFillQueryFunction) (const int j, TreeWalkQueryBase *query, TreeWalk *tw) |
Definition at line 75 of file treewalk.h.
| typedef int(* TreeWalkHasWorkFunction) (const int i, TreeWalk *tw) |
Definition at line 72 of file treewalk.h.
| typedef void(* TreeWalkNgbIterFunction) (TreeWalkQueryBase *input, TreeWalkResultBase *output, TreeWalkNgbIterBase *iter, LocalTreeWalk *lv) |
Definition at line 70 of file treewalk.h.
| typedef void(* TreeWalkProcessFunction) (const int i, TreeWalk *tw) |
Definition at line 73 of file treewalk.h.
| typedef void(* TreeWalkReduceResultFunction) (const int j, TreeWalkResultBase *result, const enum TreeWalkReduceMode mode, TreeWalk *tw) |
Definition at line 76 of file treewalk.h.
| typedef int(* TreeWalkVisitFunction) (TreeWalkQueryBase *input, TreeWalkResultBase *output, LocalTreeWalk *lv) |
Definition at line 68 of file treewalk.h.
| enum NgbTreeFindSymmetric |
| enum TreeWalkReduceMode |
| enum TreeWalkType |
| double ngb_narrow_down | ( | double * | right, |
| double * | left, | ||
| const double * | radius, | ||
| const double * | numNgb, | ||
| int | maxcmpt, | ||
| int | desnumngb, | ||
| int * | closeidx, | ||
| double | BoxSize | ||
| ) |
Definition at line 1366 of file treewalk.c.
Referenced by sfr_wind_weight_postprocess(), and stellar_density_check_neighbours().
| void set_treewalk_params | ( | ParameterSet * | ps | ) |
Definition at line 55 of file treewalk.c.
References ImportBufferBoost, param_get_int(), and ThisTask.
Referenced by read_parameter_file().
| void treewalk_build_queue | ( | TreeWalk * | tw, |
| int * | active_set, | ||
| const size_t | size, | ||
| int | may_have_garbage | ||
| ) |
Definition at line 394 of file treewalk.c.
References endrun(), gadget_compact_thread_arrays(), gadget_setup_thread_arrays(), TreeWalk::haswork, mymalloc, myrealloc, TreeWalk::NThread, P, qsort_openmp, ta_free, ta_malloc, TreeWalk::work_set_stolen_from_active, TreeWalk::WorkSet, and TreeWalk::WorkSetSize.
Referenced by blackhole(), ev_begin(), and treewalk_do_hsml_loop().
| void treewalk_do_hsml_loop | ( | TreeWalk * | tw, |
| int * | queue, | ||
| int64_t | queuesize, | ||
| int | update_hsml | ||
| ) |
Definition at line 1254 of file treewalk.c.
References endrun(), gadget_compact_thread_arrays(), gadget_setup_thread_arrays(), TreeWalk::haswork, MAXITER, TreeWalk::maxnumngb, message(), TreeWalk::minnumngb, MPI_INT64, myfree, mymalloc, mymalloc2, myrealloc, TreeWalk::Niteration, TreeWalk::NPLeft, TreeWalk::NPRedo, P, TreeWalk::Redo_thread_alloc, ta_free, ta_malloc, treewalk_build_queue(), treewalk_run(), TreeWalk::WorkSet, and TreeWalk::WorkSetSize.
Referenced by density(), stellar_density(), and winds_find_weights().
| int treewalk_export_particle | ( | LocalTreeWalk * | lv, |
| int | no | ||
| ) |
Definition at line 567 of file treewalk.c.
References LocalTreeWalk::BunchSize, LocalTreeWalk::DataIndexOffset, DataIndexTable, DataNodeList, endrun(), LocalTreeWalk::exportflag, LocalTreeWalk::exportindex, LocalTreeWalk::exportnodecount, data_index::Index, data_index::IndexGet, ForceTree::lastnode, LocalTreeWalk::mode, LocalTreeWalk::Nexport, data_nodelist::NodeList, NODELISTLENGTH, LocalTreeWalk::NThisParticleExport, LocalTreeWalk::target, topleaf_data::Task, data_index::Task, ForceTree::TopLeaves, TreeWalk::tree, topleaf_data::treenode, and LocalTreeWalk::tw.
Referenced by force_treeev_shortrange(), ngb_treefind_threads(), and treewalk_visit_nolist_ngbiter().
| void treewalk_run | ( | TreeWalk * | tw, |
| int * | active_set, | ||
| size_t | size | ||
| ) |
Definition at line 619 of file treewalk.c.
References endrun(), ev_begin(), ev_finish(), ev_get_remote(), ev_ndone(), ev_primary(), ev_reduce_result(), ev_secondary(), TreeWalk::evaluated, force_tree_allocated(), GDB_current_ev, myfree, mymalloc, TreeWalk::Nexport, TreeWalk::Nexport_sum, TreeWalk::Nexportfull, TreeWalk::Niteration, TreeWalk::NTask, TreeWalk::postprocess, TreeWalk::preprocess, TreeWalk::repeatdisallowed, second(), SendRecvBuffer::Send_count, ta_free, TreeWalk::timecomp3, timediff(), TreeWalk::tree, TreeWalk::visit, TreeWalk::WorkSet, and TreeWalk::WorkSetSize.
Referenced by blackhole(), fof_label_primary(), fof_label_secondary(), grav_short_pair(), grav_short_tree(), hydro_force(), ionize_all_part(), metal_return(), treewalk_do_hsml_loop(), and winds_and_feedback().
| int treewalk_visit_ngbiter | ( | TreeWalkQueryBase * | I, |
| TreeWalkResultBase * | O, | ||
| LocalTreeWalk * | lv | ||
| ) |
Definition at line 924 of file treewalk.c.
References ForceTree::BoxSize, TreeWalkNgbIterBase::dist, DMAX, endrun(), TreeWalkNgbIterBase::Hsml, ForceTree::mask, TreeWalkNgbIterBase::mask, LocalTreeWalk::mode, NEAREST, NGB_TREEFIND_SYMMETRIC, ngb_treefind_threads(), TreeWalk::ngbiter, TreeWalk::ngbiter_type_elsize, LocalTreeWalk::ngblist, LocalTreeWalk::Ninteractions, LocalTreeWalk::Nlist, LocalTreeWalk::Nnodesinlist, TreeWalkQueryBase::NodeList, TreeWalkNgbIterBase::other, P, TreeWalkQueryBase::Pos, TreeWalkNgbIterBase::r, TreeWalkNgbIterBase::r2, TreeWalkNgbIterBase::symmetric, TreeWalk::tree, and LocalTreeWalk::tw.
Referenced by blackhole(), fof_label_primary(), grav_short_pair(), hydro_force(), ionize_all_part(), and metal_return().
| int treewalk_visit_nolist_ngbiter | ( | TreeWalkQueryBase * | I, |
| TreeWalkResultBase * | O, | ||
| LocalTreeWalk * | lv | ||
| ) |
Definition at line 1143 of file treewalk.c.
References ForceTree::BoxSize, NODE::ChildType, cull_node(), TreeWalkNgbIterBase::dist, endrun(), NODE::f, TreeWalkNgbIterBase::Hsml, TreeWalkNgbIterBase::mask, LocalTreeWalk::mode, NEAREST, TreeWalk::ngbiter, TreeWalk::ngbiter_type_elsize, LocalTreeWalk::Nlist, LocalTreeWalk::Nnodesinlist, NodeChild::noccupied, TreeWalkQueryBase::NodeList, ForceTree::Nodes, TreeWalkNgbIterBase::other, P, PARTICLE_NODE_TYPE, TreeWalkQueryBase::Pos, PSEUDO_NODE_TYPE, TreeWalkNgbIterBase::r, TreeWalkNgbIterBase::r2, NODE::s, NODE::sibling, NodeChild::suns, LocalTreeWalk::target, NODE::TopLevel, TreeWalk::tree, treewalk_export_particle(), LocalTreeWalk::tw, and NodeChild::Types.
Referenced by density(), fof_label_secondary(), stellar_density(), and winds_find_weights().