[petsc-users] Periodic boundary conditions in DMPlex

Pierre Seize pierre.seize at onera.fr
Fri Oct 15 06:31:06 CDT 2021


It makes sense, thank you. In fact, both ways seems better than my way. 
The first one looks the most straightforward. Unfortunately I do not 
know how to implement either of them. Could you please direct me to the 
corresponding PETSc functions ?

Pierre


On 15/10/21 13:25, Matthew Knepley wrote:
> On Fri, Oct 15, 2021 at 7:08 AM Pierre Seize <pierre.seize at onera.fr 
> <mailto:pierre.seize at onera.fr>> wrote:
>
>     Hi,
>
>     I'm writing a code using PETSc to solve NS equations with FV on an
>     unstructured mesh. Therefore I use DMPlex.
>
>     Regarding periodicity, I manage to implement it this way:
>
>        - for each couple of boundaries that is linked with periodicity, I
>     create a buffer vector with an ISLocalToGlobalMapping
>
>        - then, when I need to fill the ghost cells corresponding to the
>     periodicity, the i "true" cell of the local vector fills the buffer
>     vector on location i with VecSetValuesBlockedLocal, then
>     VecAssemblyBegin/VecAssemblyEnd ensure each value is send to the
>     correct
>     location thanks to the mapping, then the i "ghost" cell of the local
>     vector reads the vector on location i to get it's value.
>
>
>     It works, but it seems to me there is a better way, with maybe
>     PetscSF,
>     VecScatter, or something I don't know yet. Does anyone have any
>     advice ?
>
>
> There are at least two other ways to handle this. First, the method 
> that is advocated in
> Plex is to actually make a periodic geometry, meaning connect the 
> cells that are meant
> to be connected. Then, if you partition with overlap = 1, 
> PetscGlobalToLocal() will fill in
> these cell values automatically.
>
> Second, you could use a non-periodic geometry, but alter the 
> LocalToGlobal map such
> that the cells gets filled in anyway. Many codes use this scheme and 
> it is straightforward
> with Plex just by augmenting the map it makes automatically.
>
> Does this make sense?
>
>   Thanks,
>
>      Matt
>
>     Pierre Seize
>
> -- 
> What most experimenters take for granted before they begin their 
> experiments is infinitely more interesting than any results to which 
> their experiments lead.
> -- Norbert Wiener
>
> https://www.cse.buffalo.edu/~knepley/ 
> <http://www.cse.buffalo.edu/%7Eknepley/>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20211015/104ba230/attachment.html>


More information about the petsc-users mailing list