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().