[petsc-users] 2 Dirichlet conditions for one Element in PetscFE

Matthew Knepley knepley at gmail.com
Thu Nov 23 06:45:58 CST 2017


On Thu, Nov 23, 2017 at 3:39 AM, Yann Jobic <yann.jobic at univ-amu.fr> wrote:

> Hello,
>
> I checked out  the branch knepley/fix-plex-bc-multiple, but i now have a
> strange problem.
> I splited my labels as in ex69.c of snes. It may be the right way to do it.
> In petsc 3.8.2, i have the same behavior as before, the element containing
> the face is called by PetscDSAddBoundary.
> In the git version, PetscDSAddBoundary does not call my boundary function
> at all.
> The call :
>   ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "wallL",
> "markerLeft",   0, Ncomp, components, (void (*)(void)) uIn,  1, &id,
> ctx);CHKERRQ(ierr);
>
> I checked that my labels are correct :
>   markerLeft: 1 strata with value/size (1 (11))
>   markerTop: 1 strata with value/size (1 (11))
>   markerRight: 1 strata with value/size (1 (11))
>   markerBottom: 1 strata with value/size (1 (11))
>
> What am i doing wrong ?
>

So you call AddBoundary() and then the boundary values are never inserted?
The call looks correct. Can you send me an example to check?
Obviously this works for my simple examples in the repo. I can't see by
looking what might be wrong for you.

  Thanks,

    Matt


> Thanks,
>
> Regards,
>
> Yann
>
> Le 22/11/2017 à 18:51, Matthew Knepley a écrit :
>
> On Wed, Nov 22, 2017 at 12:39 PM, Yann Jobic <yann.jobic at univ-amu.fr>
> wrote:
>
>> Hello,
>>
>> I've found a strange behavior when looking into a bug for the pressure
>> convergence of a simple Navier-Stokes problem using PetscFE.
>>
>> I followed many examples for labeling boundary faces. I first use
>> DMPlexMarkBoundaryFaces, (label=1 to the faces).
>> I find those faces using DMGetStratumIS and searching 1 as it is the
>> value of the marked boundary faces.
>> Finally i use DMPlexLabelComplete over the new label.
>> I then use :
>>   ierr = PetscDSAddBoundary(prob, DM_BC_ESSENTIAL, "in", "Faces", 0,
>> Ncomp, components, (void (*)(void)) uIn, NWest, west, NULL);CHKERRQ(ierr);
>> in order to impose a dirichlet condition for the faces labeled by the
>> correct value (west=1, south=3,...).
>>
>> However, the function "uIn()" is called in all the Elements containing
>> the boundary faces, and thus impose the values at nodes that are not in the
>> labeled faces.
>> Is it a normal behavior ? I then have to test the position of the node
>> calling uIn, in order to impose the good value.
>> I have this problem for a Poiseuille flow, where at 2 corner Elements i
>> have a zero velocity dirichlet condition (wall) and a In flow velocity one.
>>
>
> I believe I have fixed this in knepley/fix-plex-bc-multiple which should
> be merged soon. Do you know how to merge that branch and try?
>
>   Thanks,
>
>      Matt
>
>
>> The pressure is then very high at the corner nodes of those 2 Elements.
>> Do you think my pressure problem comes from there ? (The velocity field
>> is correct)
>>
>> Many thanks,
>>
>> Regards,
>>
>> Yann
>>
>> PS : i'm using those runtime options :
>> -vel_petscspace_order 2 -pres_petscspace_order 1 \
>> -ksp_type fgmres -pc_type fieldsplit -pc_fieldsplit_type schur
>> -pc_fieldsplit_schur_fact_type full  \
>> -fieldsplit_velocity_pc_type lu -fieldsplit_pressure_ksp_rtol 1.0e-10
>> -fieldsplit_pressure_pc_type jacobi
>>
>>
>> ---
>> L'absence de virus dans ce courrier électronique a été vérifiée par le
>> logiciel antivirus Avast.
>> https://www.avast.com/antivirus
>>
>>
>
>
> --
> 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.caam.rice.edu/%7Emk51/>
>
>
>


-- 
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.caam.rice.edu/~mk51/>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20171123/62542a74/attachment-0001.html>


More information about the petsc-users mailing list