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.

Reply via email to