I'm working on a problem which involves iterating over the DoFHandlers of both a scalar and a vector field at the same time, similar to step 31 <https://dealii.org/developer/doxygen/deal.II/step_31.html#BoussinesqFlowProblemassemble_stokes_system>. I'm creating an iterator class which will wrap up the iterators for both the scalar and vector field into one object using a std::array of active_cell_iterators. The increment operator is implemented by incrementing each active_cell_iterator in the array; the dereference operator returns a reference to the array; etc. I've tested this out and it works fine.
I'd like to be able to parallelize the assembly using WorkStream, which uses an iterator range. What operations are required of the iterators passed to WorkStream? From the comments in the source code, it looks like the iterator must have operator- defined, so I take it that it must be a random-access iterator <http://en.cppreference.com/w/cpp/concept/RandomAccessIterator>. The simple multi-iterator implementation I have now is only a forward iterator, since that was the bare minimum needed to get things working in single-threaded mode. -- The deal.II project is located at http://www.dealii.org/ For mailing list/forum options, see https://groups.google.com/d/forum/dealii?hl=en --- You received this message because you are subscribed to the Google Groups "deal.II User Group" group. To unsubscribe from this group and stop receiving emails from it, send an email to dealii+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.