#ifndef BHTREE_H # define BHTREE_H /*----------------------------------------------------------------------------- * BHtree : basic class for C++ implementation of BH treecode * J. Makino 2001/1/23 *----------------------------------------------------------------------------- */ #include "vector.h" #include "particle.h" class bhnode { private: vector cpos; real l; bhnode * child[8]; particle * pfirst; int nparticle; vector pos; real mass; public: bhnode(){ cpos = 0.0; l = 0.0; for(int i = 0; i<8;i++)child[i] = NULL; pfirst = NULL; nparticle = 0; pos = 0.0; mass = 0.0; } void create_tree_recursive(bhnode * & heap_top, int & heap_remainder); void assign_root(vector root_pos, real length, particle * p, int nparticle); void dump(int indent = 0); int sanity_check(); void set_cm_quantities(); void accumulate_force_from_tree(vector & ipos, real eps2, real theta2, vector & acc, real & phi); }; #endif