Praveen, We do something like that in CUDA MatrixFree. It is slightly more complicated because we need to update the ghost values on both the source vector and the destination vector. The idea is to first loop over the mesh and store all the vertices that are ghosted then you loop over the active cells, you just need to check that none of the vertices is ghosted. The relevant code is here: https://github.com/dealii/dealii/blob/master/include/deal.II/matrix_free/cuda_matrix_free.templates.h#L1012-L1057
Best, Bruno On Thursday, September 30, 2021 at 11:48:13 PM UTC-4 Praveen C wrote: > Dear all > > I use la::d::Vector in a continuous nodal FE code. I want to mix update > ghost and assemble so that I dont wait for update ghost to finish > > solution.update_ghost_values_start() > Assemble on all locally owned cells that do not need ghost values > solution.update_ghost_values_finish() > Assemble on all locally owned cells that need ghost values > > I use WorkStream for assembly. > > I have to create a FilteredIterator that identifies all cells that do not > have ghost dof values. > > One way is to check all dofs on a cell to see if all of them are locally > owned. > > Is there any other way to create such a filter ? > > I have to use two WorkStreams here, the second one will have less work to > do. Is there a way to avoid using two WorkStreams ? > > Thanks > praveen > -- 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/dealii/8e65c3ba-be99-497d-ad62-1ea226cace90n%40googlegroups.com.
