133#ifdef USE_QUADTREE_FOR_STABILITY_TEST
base class for dynamic coordinates management
Implementation of a 2D quadtree.
element in the vicinity of a parent.
Cmomentum * v
pointer to the second borderline particle
double angle
angle with parent
std::list< Cvicinity_elm * > cocircular
list of elements co-circular with this one NB: empty list uses less mem than vector
double eta
eta coordinate of the center
double phi
phi coordinate of the center
Cvicinity_inclusion * is_inside
variable to tell if the particle is inside or outside the cone
double cocircular_range
amount by which the angle can be varied while maintaining this point within co-circularity margin
bool side
true if angle on the positive side, false otherwise
a class to keep track of inclusion status in cone and in cocircular region while using minimal resour...
bool cone
flag for particle inclusion in the cone
Cvicinity_inclusion()
default ctor
bool cocirc
flag for particle inclusion in the border
list of element in the vicinity of a parent.
Cmomentum * parent
parent vector
int n_part
number of particles
std::vector< Cvicinity_inclusion > pincluded
the inclusion state of particles
double inv_R_EPS_COCIRC
R / EPSILON_COCIRCULAR.
Cvicinity(std::vector< Cmomentum > &_particle_list)
constructor with initialisation (see set_particle_list)
Cvicinity_elm * ve_list
list of vicinity elements built from particle list (size=2*n)
double pcx
parent centre (eta)
void append_to_vicinity(Cmomentum *v)
append a particle to the 'vicinity' list after having tested it and computed the angular-ordering qua...
double pcy
parent centre (phi)
std::vector< Cmomentum > plist
the list of particles
std::vector< Cvicinity_elm * > vicinity
list of points in parent's vicinity
unsigned int vicinity_size
number of elements in vicinity
double VR
radius of the vicinity
double VR2
squared radius of the vicinity
double R2
squared normal radius
void build(Cmomentum *_parent, double _VR)
build the vicinity list from the list of points.
double inv_R_2EPS_COCIRC
R / (2*EPSILON_COCIRCULAR)
Cvicinity()
default constructor
~Cvicinity()
default destructor
void set_particle_list(std::vector< Cmomentum > &_particle_list)
set the particle_list
a circulator that is foreseen to take as template member either a pointer or an iterator;