Exact frame-to-frame maintenance of the primitive ring network. More...
#include <franzblau.hpp>
Public Member Functions | |
| RingUpdater (int maxDepth) | |
| ~RingUpdater () | |
| RingUpdater (RingUpdater &&) noexcept | |
| RingUpdater & | operator= (RingUpdater &&) noexcept |
| RingUpdater (const RingUpdater &)=delete | |
| RingUpdater & | operator= (const RingUpdater &)=delete |
| const std::vector< std::vector< int > > & | update (const std::vector< std::vector< int > > &nList) |
| int | lastRecomputedSources () const |
| int | lastBallsRefreshed () const |
| Vertices whose bounded balls were rebuilt on the last update. | |
Exact frame-to-frame maintenance of the primitive ring network.
Consecutive trajectory frames share almost all of their bond topology. Rings are stored partitioned by their lowest-indexed member, and on a new frame only sources within a proven locality radius of a changed edge are re-enumerated: a ring's members and every path that can decide its primitivity lie within a bounded neighbourhood of its source, so a source far enough from every change keeps its rings unchanged. The output equals a full recomputation exactly, at a cost that scales with the edge churn between frames rather than with system size.
Definition at line 169 of file franzblau.hpp.