Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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

Friends

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

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 52 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 140 of file QuadTreeNodeNM.h.

◆ child_lt_exists()

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

Definition at line 136 of file QuadTreeNodeNM.h.

◆ child_rb_exists()

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

Definition at line 142 of file QuadTreeNodeNM.h.

◆ child_rt_exists()

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

Definition at line 138 of file QuadTreeNodeNM.h.

◆ contained_nodes_empty()

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

Definition at line 83 of file QuadTreeNodeNM.h.

◆ get_child_lb_ptr()

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

Definition at line 178 of file QuadTreeNodeNM.h.

◆ get_child_lt_ptr()

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

Definition at line 174 of file QuadTreeNodeNM.h.

◆ get_child_rb_ptr()

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

Definition at line 180 of file QuadTreeNodeNM.h.

◆ get_child_rt_ptr()

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

Definition at line 176 of file QuadTreeNodeNM.h.

◆ get_contained_nodes()

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

Definition at line 162 of file QuadTreeNodeNM.h.

◆ get_D1()

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

Definition at line 166 of file QuadTreeNodeNM.h.

◆ get_D2()

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

Definition at line 168 of file QuadTreeNodeNM.h.

◆ get_father_ptr()

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

Definition at line 172 of file QuadTreeNodeNM.h.

◆ get_I()

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

Definition at line 164 of file QuadTreeNodeNM.h.

◆ get_local_exp()

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

Definition at line 158 of file QuadTreeNodeNM.h.

◆ get_M()

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

Definition at line 170 of file QuadTreeNodeNM.h.

◆ get_multipole_exp()

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

Definition at line 160 of file QuadTreeNodeNM.h.

◆ get_particlenumber_in_subtree()

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

Definition at line 154 of file QuadTreeNodeNM.h.

◆ get_Sm_boxlength()

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

Definition at line 148 of file QuadTreeNodeNM.h.

◆ get_Sm_center()

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

Definition at line 156 of file QuadTreeNodeNM.h.

◆ get_Sm_downleftcorner()

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

Definition at line 146 of file QuadTreeNodeNM.h.

◆ get_Sm_level()

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

Definition at line 144 of file QuadTreeNodeNM.h.

◆ get_x_List_ptr()

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

Definition at line 150 of file QuadTreeNodeNM.h.

◆ get_y_List_ptr()

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

Definition at line 152 of file QuadTreeNodeNM.h.

◆ is_leaf()

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

Definition at line 131 of file QuadTreeNodeNM.h.

◆ is_root()

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

Definition at line 129 of file QuadTreeNodeNM.h.

◆ pop_contained_nodes()

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

Definition at line 81 of file QuadTreeNodeNM.h.

◆ pushBack_contained_nodes()

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

Definition at line 79 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 112 of file QuadTreeNodeNM.h.

◆ set_child_lb_ptr()

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

Definition at line 125 of file QuadTreeNodeNM.h.

◆ set_child_lt_ptr()

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

Definition at line 121 of file QuadTreeNodeNM.h.

◆ set_child_rb_ptr()

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

Definition at line 127 of file QuadTreeNodeNM.h.

◆ set_child_rt_ptr()

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

Definition at line 123 of file QuadTreeNodeNM.h.

◆ set_contained_nodes()

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

Definition at line 77 of file QuadTreeNodeNM.h.

◆ set_D1()

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

Definition at line 87 of file QuadTreeNodeNM.h.

◆ set_D2()

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

Definition at line 89 of file QuadTreeNodeNM.h.

◆ set_father_ptr()

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

Definition at line 119 of file QuadTreeNodeNM.h.

◆ set_I()

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

Definition at line 85 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 94 of file QuadTreeNodeNM.h.

◆ set_M()

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

Definition at line 91 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 103 of file QuadTreeNodeNM.h.

◆ set_particlenumber_in_subtree()

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

Definition at line 73 of file QuadTreeNodeNM.h.

◆ set_Sm_boxlength()

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

Definition at line 67 of file QuadTreeNodeNM.h.

◆ set_Sm_center()

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

Definition at line 75 of file QuadTreeNodeNM.h.

◆ set_Sm_downleftcorner()

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

Definition at line 65 of file QuadTreeNodeNM.h.

◆ set_Sm_level()

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

Definition at line 63 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 69 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 71 of file QuadTreeNodeNM.h.

Friends And Related Function 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 206 of file QuadTreeNodeNM.h.

◆ child_lt_ptr

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

points to left top child

Definition at line 204 of file QuadTreeNodeNM.h.

◆ child_rb_ptr

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

points to right bottom child

Definition at line 207 of file QuadTreeNodeNM.h.

◆ child_rt_ptr

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

points to right bottom child

Definition at line 205 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 195 of file QuadTreeNodeNM.h.

◆ D1

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

Definition at line 199 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 199 of file QuadTreeNodeNM.h.

◆ father_ptr

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

points to the father node

Definition at line 203 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 198 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 186 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 188 of file QuadTreeNodeNM.h.

◆ LE

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

Locale Expansion terms.

Definition at line 194 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 201 of file QuadTreeNodeNM.h.

◆ ME

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

Multipole Expansion terms.

Definition at line 193 of file QuadTreeNodeNM.h.

◆ Sm_boxlength

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

length of small cell

Definition at line 185 of file QuadTreeNodeNM.h.

◆ Sm_center

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

center of the small cell

Definition at line 192 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 184 of file QuadTreeNodeNM.h.

◆ Sm_level

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

level of the small cell

Definition at line 183 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 190 of file QuadTreeNodeNM.h.


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