[petsc-users] Extracting solution at a boundary in a DMPlex/PetscFV paradigm
thibault.bridelbertomeu at gmail.com
Thu Apr 22 07:31:00 CDT 2021
I am working with multi-D DMPlex's coupled with PetscFV and a TS to solve
hyperbolic systems of equations. To add boundaries, I use the
PetscDSAddBoundary as shown in some examples throughout the documentation.
I do CFD, meaning I often have an object around which I want to simulate
the flow. And I would like to know how some variables (pressure for
instance) behave at the wall (literally _at_ the wall, and not only in the
first fluid cell above the wall).
After going through the documentation and the PETSc source code, I think
the way to go is to use something like what ex23.c (of plex/tests) does :
mark boundary faces that match the _wall_ boundary condition, create a
submesh with them and somehow project the PetscFV/TS solution onto those
facets based on the order of the spatial discretization (like if it's order
1 then just use the value in the first fluid cell above the boundary
condition, if it's order 2 use the gradient and the value to get something
at the facet, etc...).
But I cannot figure out two things :
1/ how to mark the right boundary faces ? I tried using the
DMPlexMarkBoundaryFaces with (what I thought was) the ID of the wall
boundary condition (I mean, I DMView'd the DMPlex and I picked the right id
in the Face Sets group), but then when I use the label thus created with
DMPlexCreateSubmesh, it just returns ... nothing. The "submesh" is empty
when I DMView it.
2/ how to project on the facets in a PetscFV paradigm ?
Thank you very much in advance for any advice/pointers you could give me !
Take care and have a good day,
-------------- next part --------------
An HTML attachment was scrubbed...
More information about the petsc-users