48 inline ListElmSFC(
Real3d& c, T* cell, ListElmSFC<T>* lnk = 0)
49 : lnk_(lnk), cell_(cell), c_(c) {};
51 inline ListElmSFC<T>** linkp() {
return &lnk_;};
52 inline ListElmSFC<T>* link()
const {
return lnk_;}
53 inline const Real3d& center()
const {
return c_;};
54 inline T* cell()
const {
return cell_;};
62 void refine1_(Cell1* cell, uint lvl, ListHead<ListElmSFC<Cell1> >& lst);
68 void refine2_(Cell2* cell, uint lvl, ListHead<ListElmSFC<Cell2> >& lst);
74 void refine3_(Cell3* cell, uint lvl, ListHead<ListElmSFC<Cell3> >& lst);
94 void boundingBox_(ListHead<ListElmSFC<T> >& lst,
Real3d* pmin,
103 void markOwnCells1_(ListHead<ListElmSFC<Cell1> >& cells, uint* ncntr0,
104 DynArray<uchar>& cellmap);
112 void markOwnCells2_(ListHead<ListElmSFC<Cell2> >& cells, uint* ncntr0,
113 uint* ncntr1, DynArray<uchar>& cellmap);
122 void markOwnCells3_(ListHead<ListElmSFC<Cell3> >& cells, uint* ncntr0,
123 uint* ncntr1, uint* ncntr2, DynArray<uchar>& cellmap);
131 bool mapCount1_(Cell1* cell, uint lvl, DynArray<uchar>& cellmap);
138 bool mapCount2_(Cell2* cell, uint lvl, DynArray<uchar>& cellmap);
145 bool mapCount3_(Cell3* cell, uint lvl, DynArray<uchar>& cellmap);
163 DynArray<concepts::Vertex*>& vtxmap,
164 Array<unique_ptr<Connector0> >& cntr0,
165 Array<unique_ptr<Connector1> >& cntr1,
166 Array<unique_ptr<Cell1> >& cell1);
187 DynArray<uchar>& cellmap,
188 DynArray<concepts::Vertex*>& vtxmap,
189 DynArray<concepts::Edge*>& edgmap,
190 Array<unique_ptr<Connector0> >& cntr0,
191 Array<unique_ptr<Connector1> >& cntr1,
192 Array<unique_ptr<Connector2> >& cntr2,
193 Array<unique_ptr<Cell2> >& cell2);
196 DynArray<uchar>& cellmap,
197 DynArray<concepts::Vertex*>& vtxmap,
198 DynArray<concepts::Edge*>& edgmap,
199 Array<unique_ptr<Connector0> >& cntr0,
200 Array<unique_ptr<Connector1> >& cntr1,
201 Array<unique_ptr<Connector2> >& cntr2,
202 Array<unique_ptr<Cell2> >& cell2);
205 DynArray<uchar>& cellmap,
206 DynArray<concepts::Vertex*>& vtxmap,
207 DynArray<concepts::Edge*>& edgmap,
208 Array<unique_ptr<Connector0> >& cntr0,
209 Array<unique_ptr<Connector1> >& cntr1,
210 Array<unique_ptr<Connector2> >& cntr2,
211 Array<unique_ptr<Cell2> >& cell2);
235 DynArray<uchar>& cellmap,
236 DynArray<concepts::Vertex*>& vtxmap,
237 DynArray<concepts::Edge*>& edgmap,
238 DynArray<Connector2*>& fcemap,
239 Array<unique_ptr<Connector0> >& cntr0,
240 Array<unique_ptr<Connector1> >& cntr1,
241 Array<unique_ptr<Connector2> >& cntr2,
242 Array<unique_ptr<Connector3> >& cntr3,
243 Array<unique_ptr<Cell3> >& cell3);
246 const Communicator& com_;
258 SFCDstr(uint maxpnt, SFC& sfc,
const Communicator& com);
267 inline const Communicator& comm()
const {
return com_;};
270 std::ostream&
info(std::ostream& os)
const;