35 hPoints.assign(points);
42 if(!simulationDomain_->initialUpdateDomains(points.getSpan()))
45 "error in updating domains"<<
endl;
49 uint32 thisN = simulationDomain_->initialNumberInThis();
53 pointPosition().name(),
54 pointPosition().fieldKey(),
60 auto pSpan = points.getSpan();
62 if(
auto iSpan =
internal.getSpan();
63 !simulationDomain_->initialTransferBlockData(pSpan, iSpan))
66 "Error in transfering the block data "<<
endl;
70 if( !initializePoints(
internal) )
76 boundaries_.createBoundaries();
77 boundaries_.updateNeighborLists(0u,
true);
85 pointPosition().assignFromHost(points);
87 createDeviceFlag(pointPosition().capacity(), 0, pointPosition().size());
121 boundaryUpdateTimer_(
"boundaryUpdate", &timers()),
122 boundaryDataTransferTimer_(
"boundaryDataTransferTimer", &timers())
134 pointSorting_ = makeUnique<pointSorting>(simulationDomain_->subDictOrCreate(
"pointSorting"));
169 "Error in seting up pointStructure"<<
endl;
179 if(pointSorting_().sortTime(ti.
iter(), ti.
t(), ti.
dt()))
181 auto sortedIndices = pointSorting_().getSortedIndices(
182 simulationDomain_().globalBox(),
183 pointPositionDevice(),
184 activePointsMaskDevice()
187 if( !sortPoints(sortedIndices) )
193 boundaryUpdateTimer_.start();
194 boundaries_.beforeIteration(ti,
true);
195 boundaryUpdateTimer_.end();
197 INFORMATION<<
"Reordering of particles has been done. New active range for particles is "<<
208 if(!notify(ti, msg, varList))
211 "cannot notify for reordering items."<<
endl;
219 boundaryUpdateTimer_.start();
220 if( !boundaries_.beforeIteration(ti) )
223 "Unable to perform beforeIteration for boundaries"<<
endl;
226 boundaryUpdateTimer_.end();
234 if( !boundaries_.iterate(TimeInfo()) )
237 "Unable to perform iterate for boundaries"<<
endl;
246 boundaryDataTransferTimer_.start();
247 if( !boundaries_.afterIteration(TimeInfo()) )
250 "Unable to perform afterIteration for boundaries"<<
endl;
253 boundaryDataTransferTimer_.end();
264 this->pointPosition().name(),
265 this->pointPosition().fieldKey()
268 if( !fRead.read(is, iop))
271 "Error in reading pointPosition from stream "<< is.
name()<<
endl;
275 return setupPointStructure(fRead);