quadgrid 0.1
simple cartesian quad grid with particles for c++/octave
Loading...
Searching...
No Matches
quadgrid_t< distributed_vector >::neighbor_iterator Class Reference

#include <quadgrid_cpp.h>

Inheritance diagram for quadgrid_t< distributed_vector >::neighbor_iterator:
quadgrid_t< distributed_vector >::cell_iterator

Public Member Functions

void operator++ ()
 neighbor_iterator (cell_t *_data=nullptr, int _face_idx=-1)
int get_face_idx ()
cell_t & operator* ()
const cell_t & operator* () const
cell_t * operator-> ()
const cell_t * operator-> () const
bool operator== (const cell_iterator &other)
bool operator!= (const cell_iterator &other)

Private Attributes

idx_t face_idx
cell_t * data
 Face index in 0...3 (-1 if not defined).

Detailed Description

template<class distributed_vector>
class quadgrid_t< distributed_vector >::neighbor_iterator

Definition at line 239 of file quadgrid_cpp.h.

Constructor & Destructor Documentation

◆ neighbor_iterator()

template<class distributed_vector>
quadgrid_t< distributed_vector >::neighbor_iterator::neighbor_iterator ( cell_t * _data = nullptr,
int _face_idx = -1 )
inline

Definition at line 248 of file quadgrid_cpp.h.

Member Function Documentation

◆ get_face_idx()

template<class distributed_vector>
int quadgrid_t< distributed_vector >::neighbor_iterator::get_face_idx ( )
inline

Definition at line 253 of file quadgrid_cpp.h.

254 { return face_idx; };

◆ operator!=()

template<class distributed_vector>
bool quadgrid_t< distributed_vector >::cell_iterator::operator!= ( const cell_iterator & other)
inlineinherited

Definition at line 231 of file quadgrid_cpp.h.

232 { return ! ((*this) == other); }

◆ operator*() [1/2]

template<class distributed_vector>
cell_t & quadgrid_t< distributed_vector >::cell_iterator::operator* ( )
inlineinherited

Definition at line 211 of file quadgrid_cpp.h.

212 { return *(this->data); };

◆ operator*() [2/2]

template<class distributed_vector>
const cell_t & quadgrid_t< distributed_vector >::cell_iterator::operator* ( ) const
inlineinherited

Definition at line 215 of file quadgrid_cpp.h.

216 { return *(this->data); };

◆ operator++()

template<class T>
void quadgrid_t< T >::neighbor_iterator::operator++ ( )

Definition at line 76 of file quadgrid_cpp_imp.h.

76 {
77 static idx_t tmp = 0;
78 if (data != nullptr) {
79 tmp = ++face_idx;
81 data = nullptr;
82 face_idx = -1;
83 }
84 else {
85 switch (face_idx) {
86 case 0 :
87 if (data->rowidx == 0)
88 face_idx++;
89 else {
90 data->rowidx = tmp % data->num_rows ();
91 data->colidx = tmp / data->num_rows ();
92 data->global_cell_idx = tmp;
93 data->local_cell_idx = tmp -
94 (data->start_cell_row () +
95 data->num_rows () * data->start_cell_col ());
96 }
97 case 1 :
98 if (data->rowidx == data->num_rows () - 1)
99 face_idx++;
100 else {
101
102
103 }
104 case 2 :
105 if (data->colidx == 1)
106 face_idx++;
107 else {
108
109
110 }
111 case 3 :
112 if (data->colidx == data->num_cols () - 1) {
113 face_idx = -1;
114 data = nullptr;
115 }
116 else {
117
118
119 }
120 }
121 data->rowidx = tmp % data->num_rows ();
122 data->colidx = tmp / data->num_rows ();
123 data->global_cell_idx = tmp;
124 data->local_cell_idx = tmp -x
125 (data->start_cell_row () +
126 data->num_rows () * data->start_cell_col ());
127 }
128 }
129};
cell_t * data
Face index in 0...3 (-1 if not defined).
idx_t num_rows() const

◆ operator->() [1/2]

template<class distributed_vector>
cell_t * quadgrid_t< distributed_vector >::cell_iterator::operator-> ( )
inlineinherited

Definition at line 219 of file quadgrid_cpp.h.

220 { return this->data; };

◆ operator->() [2/2]

template<class distributed_vector>
const cell_t * quadgrid_t< distributed_vector >::cell_iterator::operator-> ( ) const
inlineinherited

Definition at line 223 of file quadgrid_cpp.h.

224 { return this->data; };

◆ operator==()

template<class distributed_vector>
bool quadgrid_t< distributed_vector >::cell_iterator::operator== ( const cell_iterator & other)
inlineinherited

Definition at line 227 of file quadgrid_cpp.h.

228 { return (data == other.data); }

Member Data Documentation

◆ data

template<class distributed_vector>
cell_t* quadgrid_t< distributed_vector >::neighbor_iterator::data
private

Face index in 0...3 (-1 if not defined).

Definition at line 260 of file quadgrid_cpp.h.

◆ face_idx

template<class distributed_vector>
idx_t quadgrid_t< distributed_vector >::neighbor_iterator::face_idx
private

Definition at line 257 of file quadgrid_cpp.h.


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