Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
ogdf::energybased::fmmm::QuadTreeNodeNM Class Reference

Helping data structure that stores the information needed to represent a node of the reduced quad tree in the New Multipole Method (NMM). More...

#include <ogdf/energybased/fmmm/new_multipole_method/QuadTreeNodeNM.h>

Public Member Functions

 QuadTreeNodeNM ()
 constructor
 
 ~QuadTreeNodeNM ()
 destructor
 
bool child_lb_exists ()
 
bool child_lt_exists ()
 
bool child_rb_exists ()
 
bool child_rt_exists ()
 
bool contained_nodes_empty ()
 
QuadTreeNodeNMget_child_lb_ptr () const
 
QuadTreeNodeNMget_child_lt_ptr () const
 
QuadTreeNodeNMget_child_rb_ptr () const
 
QuadTreeNodeNMget_child_rt_ptr () const
 
void get_contained_nodes (List< node > &list) const
 
void get_D1 (List< QuadTreeNodeNM * > &list) const
 
void get_D2 (List< QuadTreeNodeNM * > &list) const
 
QuadTreeNodeNMget_father_ptr () const
 
void get_I (List< QuadTreeNodeNM * > &list) const
 
std::complex< double > * get_local_exp () const
 
void get_M (List< QuadTreeNodeNM * > &list) const
 
std::complex< double > * get_multipole_exp () const
 
int get_particlenumber_in_subtree () const
 
double get_Sm_boxlength () const
 
std::complex< doubleget_Sm_center () const
 
DPoint get_Sm_downleftcorner () const
 
int get_Sm_level () const
 
List< ParticleInfo > * get_x_List_ptr ()
 
List< ParticleInfo > * get_y_List_ptr ()
 
bool is_leaf ()
 
bool is_root ()
 
node pop_contained_nodes ()
 
void pushBack_contained_nodes (node v)
 
void replace_multipole_exp (Array< std::complex< double > > &multi, int precision)
 ME[i] is set to multi[i] for i = 0 to precision and no space for LE is reserved.
 
void set_child_lb_ptr (QuadTreeNodeNM *c)
 
void set_child_lt_ptr (QuadTreeNodeNM *c)
 
void set_child_rb_ptr (QuadTreeNodeNM *c)
 
void set_child_rt_ptr (QuadTreeNodeNM *c)
 
void set_contained_nodes (List< node > &list)
 
void set_D1 (List< QuadTreeNodeNM * > &list)
 
void set_D2 (List< QuadTreeNodeNM * > &list)
 
void set_father_ptr (QuadTreeNodeNM *f)
 
void set_I (List< QuadTreeNodeNM * > &list)
 
void set_locale_exp (Array< std::complex< double > > &local, int precision)
 LE[i] is set to local[i] for i = 0 to precision and space for LE is reserved.
 
void set_M (List< QuadTreeNodeNM * > &list)
 
void set_multipole_exp (Array< std::complex< double > > &multi, int precision)
 ME[i] is set to multi[i] for i = 0 to precision and space for LE is reserved.
 
void set_particlenumber_in_subtree (int p)
 
void set_Sm_boxlength (double len)
 
void set_Sm_center (std::complex< double > c)
 
void set_Sm_downleftcorner (DPoint dlc)
 
void set_Sm_level (int level)
 
void set_x_List_ptr (List< ParticleInfo > *x_ptr)
 
void set_y_List_ptr (List< ParticleInfo > *y_ptr)
 

Private Attributes

QuadTreeNodeNMchild_lb_ptr
 points to left bottom child
 
QuadTreeNodeNMchild_lt_ptr
 points to left top child
 
QuadTreeNodeNMchild_rb_ptr
 points to right bottom child
 
QuadTreeNodeNMchild_rt_ptr
 points to right bottom child
 
List< nodecontained_nodes
 list of nodes of G that are contained in this QuadTreeNode (emty if it is not a leave of the ModQuadTree
 
List< QuadTreeNodeNM * > D1
 
List< QuadTreeNodeNM * > D2
 list of neighbouring(=D1) and not adjacent(=D2) leaves for direct force calculation in DIM2
 
QuadTreeNodeNMfather_ptr
 points to the father node
 
List< QuadTreeNodeNM * > I
 the list of min.
 
List< ParticleInfo > * L_x_ptr
 points to the lists that contain each Particle of G with its x(y)coordinate in increasing order
 
List< ParticleInfo > * L_y_ptr
 and a cross reference to the list_item in the list with the other coordinate
 
std::complex< double > * LE
 Locale Expansion terms.
 
List< QuadTreeNodeNM * > M
 list of nodes with multipole force contribution like in DIM2
 
std::complex< double > * ME
 Multipole Expansion terms.
 
double Sm_boxlength
 length of small cell
 
std::complex< doubleSm_center
 center of the small cell
 
DPoint Sm_downleftcorner
 coords of the down left corner of the small cell
 
int Sm_level
 level of the small cell
 
int subtreeparticlenumber
 the number of particles in the subtree rooted at this node
 

Friends

std::ostream & operator<< (std::ostream &, const QuadTreeNodeNM &)
 Outputstream for QuadTreeNodeNM.
 
std::istream & operator>> (std::istream &, QuadTreeNodeNM &)
 Inputstream for QuadTreeNodeNM.
 

Detailed Description

Helping data structure that stores the information needed to represent a node of the reduced quad tree in the New Multipole Method (NMM).

Definition at line 47 of file QuadTreeNodeNM.h.

Constructor & Destructor Documentation

◆ QuadTreeNodeNM()

ogdf::energybased::fmmm::QuadTreeNodeNM::QuadTreeNodeNM ( )

constructor

◆ ~QuadTreeNodeNM()

ogdf::energybased::fmmm::QuadTreeNodeNM::~QuadTreeNodeNM ( )

destructor

Member Function Documentation

◆ child_lb_exists()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::child_lb_exists ( )
inline

Definition at line 135 of file QuadTreeNodeNM.h.

◆ child_lt_exists()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::child_lt_exists ( )
inline

Definition at line 131 of file QuadTreeNodeNM.h.

◆ child_rb_exists()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::child_rb_exists ( )
inline

Definition at line 137 of file QuadTreeNodeNM.h.

◆ child_rt_exists()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::child_rt_exists ( )
inline

Definition at line 133 of file QuadTreeNodeNM.h.

◆ contained_nodes_empty()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::contained_nodes_empty ( )
inline

Definition at line 78 of file QuadTreeNodeNM.h.

◆ get_child_lb_ptr()

QuadTreeNodeNM * ogdf::energybased::fmmm::QuadTreeNodeNM::get_child_lb_ptr ( ) const
inline

Definition at line 173 of file QuadTreeNodeNM.h.

◆ get_child_lt_ptr()

QuadTreeNodeNM * ogdf::energybased::fmmm::QuadTreeNodeNM::get_child_lt_ptr ( ) const
inline

Definition at line 169 of file QuadTreeNodeNM.h.

◆ get_child_rb_ptr()

QuadTreeNodeNM * ogdf::energybased::fmmm::QuadTreeNodeNM::get_child_rb_ptr ( ) const
inline

Definition at line 175 of file QuadTreeNodeNM.h.

◆ get_child_rt_ptr()

QuadTreeNodeNM * ogdf::energybased::fmmm::QuadTreeNodeNM::get_child_rt_ptr ( ) const
inline

Definition at line 171 of file QuadTreeNodeNM.h.

◆ get_contained_nodes()

void ogdf::energybased::fmmm::QuadTreeNodeNM::get_contained_nodes ( List< node > &  list) const
inline

Definition at line 157 of file QuadTreeNodeNM.h.

◆ get_D1()

void ogdf::energybased::fmmm::QuadTreeNodeNM::get_D1 ( List< QuadTreeNodeNM * > &  list) const
inline

Definition at line 161 of file QuadTreeNodeNM.h.

◆ get_D2()

void ogdf::energybased::fmmm::QuadTreeNodeNM::get_D2 ( List< QuadTreeNodeNM * > &  list) const
inline

Definition at line 163 of file QuadTreeNodeNM.h.

◆ get_father_ptr()

QuadTreeNodeNM * ogdf::energybased::fmmm::QuadTreeNodeNM::get_father_ptr ( ) const
inline

Definition at line 167 of file QuadTreeNodeNM.h.

◆ get_I()

void ogdf::energybased::fmmm::QuadTreeNodeNM::get_I ( List< QuadTreeNodeNM * > &  list) const
inline

Definition at line 159 of file QuadTreeNodeNM.h.

◆ get_local_exp()

std::complex< double > * ogdf::energybased::fmmm::QuadTreeNodeNM::get_local_exp ( ) const
inline

Definition at line 153 of file QuadTreeNodeNM.h.

◆ get_M()

void ogdf::energybased::fmmm::QuadTreeNodeNM::get_M ( List< QuadTreeNodeNM * > &  list) const
inline

Definition at line 165 of file QuadTreeNodeNM.h.

◆ get_multipole_exp()

std::complex< double > * ogdf::energybased::fmmm::QuadTreeNodeNM::get_multipole_exp ( ) const
inline

Definition at line 155 of file QuadTreeNodeNM.h.

◆ get_particlenumber_in_subtree()

int ogdf::energybased::fmmm::QuadTreeNodeNM::get_particlenumber_in_subtree ( ) const
inline

Definition at line 149 of file QuadTreeNodeNM.h.

◆ get_Sm_boxlength()

double ogdf::energybased::fmmm::QuadTreeNodeNM::get_Sm_boxlength ( ) const
inline

Definition at line 143 of file QuadTreeNodeNM.h.

◆ get_Sm_center()

std::complex< double > ogdf::energybased::fmmm::QuadTreeNodeNM::get_Sm_center ( ) const
inline

Definition at line 151 of file QuadTreeNodeNM.h.

◆ get_Sm_downleftcorner()

DPoint ogdf::energybased::fmmm::QuadTreeNodeNM::get_Sm_downleftcorner ( ) const
inline

Definition at line 141 of file QuadTreeNodeNM.h.

◆ get_Sm_level()

int ogdf::energybased::fmmm::QuadTreeNodeNM::get_Sm_level ( ) const
inline

Definition at line 139 of file QuadTreeNodeNM.h.

◆ get_x_List_ptr()

List< ParticleInfo > * ogdf::energybased::fmmm::QuadTreeNodeNM::get_x_List_ptr ( )
inline

Definition at line 145 of file QuadTreeNodeNM.h.

◆ get_y_List_ptr()

List< ParticleInfo > * ogdf::energybased::fmmm::QuadTreeNodeNM::get_y_List_ptr ( )
inline

Definition at line 147 of file QuadTreeNodeNM.h.

◆ is_leaf()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::is_leaf ( )
inline

Definition at line 126 of file QuadTreeNodeNM.h.

◆ is_root()

bool ogdf::energybased::fmmm::QuadTreeNodeNM::is_root ( )
inline

Definition at line 124 of file QuadTreeNodeNM.h.

◆ pop_contained_nodes()

node ogdf::energybased::fmmm::QuadTreeNodeNM::pop_contained_nodes ( )
inline

Definition at line 76 of file QuadTreeNodeNM.h.

◆ pushBack_contained_nodes()

void ogdf::energybased::fmmm::QuadTreeNodeNM::pushBack_contained_nodes ( node  v)
inline

Definition at line 74 of file QuadTreeNodeNM.h.

◆ replace_multipole_exp()

void ogdf::energybased::fmmm::QuadTreeNodeNM::replace_multipole_exp ( Array< std::complex< double > > &  multi,
int  precision 
)
inline

ME[i] is set to multi[i] for i = 0 to precision and no space for LE is reserved.

Definition at line 107 of file QuadTreeNodeNM.h.

◆ set_child_lb_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_child_lb_ptr ( QuadTreeNodeNM c)
inline

Definition at line 120 of file QuadTreeNodeNM.h.

◆ set_child_lt_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_child_lt_ptr ( QuadTreeNodeNM c)
inline

Definition at line 116 of file QuadTreeNodeNM.h.

◆ set_child_rb_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_child_rb_ptr ( QuadTreeNodeNM c)
inline

Definition at line 122 of file QuadTreeNodeNM.h.

◆ set_child_rt_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_child_rt_ptr ( QuadTreeNodeNM c)
inline

Definition at line 118 of file QuadTreeNodeNM.h.

◆ set_contained_nodes()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_contained_nodes ( List< node > &  list)
inline

Definition at line 72 of file QuadTreeNodeNM.h.

◆ set_D1()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_D1 ( List< QuadTreeNodeNM * > &  list)
inline

Definition at line 82 of file QuadTreeNodeNM.h.

◆ set_D2()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_D2 ( List< QuadTreeNodeNM * > &  list)
inline

Definition at line 84 of file QuadTreeNodeNM.h.

◆ set_father_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_father_ptr ( QuadTreeNodeNM f)
inline

Definition at line 114 of file QuadTreeNodeNM.h.

◆ set_I()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_I ( List< QuadTreeNodeNM * > &  list)
inline

Definition at line 80 of file QuadTreeNodeNM.h.

◆ set_locale_exp()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_locale_exp ( Array< std::complex< double > > &  local,
int  precision 
)
inline

LE[i] is set to local[i] for i = 0 to precision and space for LE is reserved.

Definition at line 89 of file QuadTreeNodeNM.h.

◆ set_M()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_M ( List< QuadTreeNodeNM * > &  list)
inline

Definition at line 86 of file QuadTreeNodeNM.h.

◆ set_multipole_exp()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_multipole_exp ( Array< std::complex< double > > &  multi,
int  precision 
)
inline

ME[i] is set to multi[i] for i = 0 to precision and space for LE is reserved.

Definition at line 98 of file QuadTreeNodeNM.h.

◆ set_particlenumber_in_subtree()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_particlenumber_in_subtree ( int  p)
inline

Definition at line 68 of file QuadTreeNodeNM.h.

◆ set_Sm_boxlength()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_Sm_boxlength ( double  len)
inline

Definition at line 62 of file QuadTreeNodeNM.h.

◆ set_Sm_center()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_Sm_center ( std::complex< double c)
inline

Definition at line 70 of file QuadTreeNodeNM.h.

◆ set_Sm_downleftcorner()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_Sm_downleftcorner ( DPoint  dlc)
inline

Definition at line 60 of file QuadTreeNodeNM.h.

◆ set_Sm_level()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_Sm_level ( int  level)
inline

Definition at line 58 of file QuadTreeNodeNM.h.

◆ set_x_List_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_x_List_ptr ( List< ParticleInfo > *  x_ptr)
inline

Definition at line 64 of file QuadTreeNodeNM.h.

◆ set_y_List_ptr()

void ogdf::energybased::fmmm::QuadTreeNodeNM::set_y_List_ptr ( List< ParticleInfo > *  y_ptr)
inline

Definition at line 66 of file QuadTreeNodeNM.h.

Friends And Related Symbol Documentation

◆ operator<<

std::ostream & operator<< ( std::ostream &  ,
const QuadTreeNodeNM  
)
friend

Outputstream for QuadTreeNodeNM.

◆ operator>>

std::istream & operator>> ( std::istream &  ,
QuadTreeNodeNM  
)
friend

Inputstream for QuadTreeNodeNM.

Member Data Documentation

◆ child_lb_ptr

QuadTreeNodeNM* ogdf::energybased::fmmm::QuadTreeNodeNM::child_lb_ptr
private

points to left bottom child

Definition at line 201 of file QuadTreeNodeNM.h.

◆ child_lt_ptr

QuadTreeNodeNM* ogdf::energybased::fmmm::QuadTreeNodeNM::child_lt_ptr
private

points to left top child

Definition at line 199 of file QuadTreeNodeNM.h.

◆ child_rb_ptr

QuadTreeNodeNM* ogdf::energybased::fmmm::QuadTreeNodeNM::child_rb_ptr
private

points to right bottom child

Definition at line 202 of file QuadTreeNodeNM.h.

◆ child_rt_ptr

QuadTreeNodeNM* ogdf::energybased::fmmm::QuadTreeNodeNM::child_rt_ptr
private

points to right bottom child

Definition at line 200 of file QuadTreeNodeNM.h.

◆ contained_nodes

List<node> ogdf::energybased::fmmm::QuadTreeNodeNM::contained_nodes
private

list of nodes of G that are contained in this QuadTreeNode (emty if it is not a leave of the ModQuadTree

Definition at line 190 of file QuadTreeNodeNM.h.

◆ D1

List<QuadTreeNodeNM*> ogdf::energybased::fmmm::QuadTreeNodeNM::D1
private

Definition at line 194 of file QuadTreeNodeNM.h.

◆ D2

List<QuadTreeNodeNM*> ogdf::energybased::fmmm::QuadTreeNodeNM::D2
private

list of neighbouring(=D1) and not adjacent(=D2) leaves for direct force calculation in DIM2

Definition at line 194 of file QuadTreeNodeNM.h.

◆ father_ptr

QuadTreeNodeNM* ogdf::energybased::fmmm::QuadTreeNodeNM::father_ptr
private

points to the father node

Definition at line 198 of file QuadTreeNodeNM.h.

◆ I

List<QuadTreeNodeNM*> ogdf::energybased::fmmm::QuadTreeNodeNM::I
private

the list of min.

ill sep. nodes in DIM2

Definition at line 193 of file QuadTreeNodeNM.h.

◆ L_x_ptr

List<ParticleInfo>* ogdf::energybased::fmmm::QuadTreeNodeNM::L_x_ptr
private

points to the lists that contain each Particle of G with its x(y)coordinate in increasing order

Definition at line 181 of file QuadTreeNodeNM.h.

◆ L_y_ptr

List<ParticleInfo>* ogdf::energybased::fmmm::QuadTreeNodeNM::L_y_ptr
private

and a cross reference to the list_item in the list with the other coordinate

Definition at line 183 of file QuadTreeNodeNM.h.

◆ LE

std::complex<double>* ogdf::energybased::fmmm::QuadTreeNodeNM::LE
private

Locale Expansion terms.

Definition at line 189 of file QuadTreeNodeNM.h.

◆ M

List<QuadTreeNodeNM*> ogdf::energybased::fmmm::QuadTreeNodeNM::M
private

list of nodes with multipole force contribution like in DIM2

Definition at line 196 of file QuadTreeNodeNM.h.

◆ ME

std::complex<double>* ogdf::energybased::fmmm::QuadTreeNodeNM::ME
private

Multipole Expansion terms.

Definition at line 188 of file QuadTreeNodeNM.h.

◆ Sm_boxlength

double ogdf::energybased::fmmm::QuadTreeNodeNM::Sm_boxlength
private

length of small cell

Definition at line 180 of file QuadTreeNodeNM.h.

◆ Sm_center

std::complex<double> ogdf::energybased::fmmm::QuadTreeNodeNM::Sm_center
private

center of the small cell

Definition at line 187 of file QuadTreeNodeNM.h.

◆ Sm_downleftcorner

DPoint ogdf::energybased::fmmm::QuadTreeNodeNM::Sm_downleftcorner
private

coords of the down left corner of the small cell

Definition at line 179 of file QuadTreeNodeNM.h.

◆ Sm_level

int ogdf::energybased::fmmm::QuadTreeNodeNM::Sm_level
private

level of the small cell

Definition at line 178 of file QuadTreeNodeNM.h.

◆ subtreeparticlenumber

int ogdf::energybased::fmmm::QuadTreeNodeNM::subtreeparticlenumber
private

the number of particles in the subtree rooted at this node

Definition at line 185 of file QuadTreeNodeNM.h.


The documentation for this class was generated from the following file: