[petsc-users] ex12 with Neumann BC

Matthew Knepley knepley at gmail.com
Wed Apr 9 10:57:05 CDT 2014


On Fri, Oct 11, 2013 at 9:01 AM, Olivier Bonnefon <
olivier.bonnefon at avignon.inra.fr> wrote:

>  Hello,
>
> I now able to simulate a two fields non-linear system with fem, and I get
> a good speed up with Dirichlet BC. Thanks for your help.
>
> About Neumann BC, I need to add "-ksp_type fgmres", else the line search
> failed (even with -snes_mf).
> More over, the Neumann version works only in sequential. Indeed, in
> parallel, the boundary conditions are applied inside the domain. I guess it
> is because the label are automatically add after the mesh partitioning.
> This problem doesn't appear in ex12 because there is a test in the plugin
> function, but it is not possible to do the same thing with a complex shape.
> I don't know what it must be done.
>

I am finally fixing this stuff. First, you can either have the boundary
automatically marked in serial, and then distribute. Or
you can mark the boundary yourself, either in serial or parallel.


> In Neumann case, the 1D-integral apears only in the residual part (ie the
> right side hand of the system). Is it done in the
> FEMIntegrateBdResidualBatch function ?
>

I put in all the hooks for this computation, but I think it would only
contribute for Robin conditions. Are I wrong here?

  Thanks,

     Matt


> Thanks
> Olivier B
>
>
>
>
> On 10/10/2013 02:37 AM, Matthew Knepley wrote:
>
> On Thu, Oct 3, 2013 at 4:48 AM, Olivier Bonnefon <
> olivier.bonnefon at avignon.inra.fr> wrote:
>
>>  Hello,
>>
>> Thank you for your answer, I'm now able to run the ex12.c with Neumann BC
>> (options -bc_type neumann   -interpolate 1).
>>
>> I have adapted the ex12.c for the 2D-system:
>>
>> -\Delta u +u =0
>>
>> It consists in adapting the fem->f0Funcs[0] function and adding the
>> jacobian function fem->g0Funcs[0].
>> My implementation works for Dirichlet BC.
>> With Neumann BC(with options -bc_type neumann   -interpolate 1), the line
>> search failed. I think my jacobian functions are corrects, because the
>> option "-snes_mf_operator" leads to the same behavior.
>>
>
>  Sorry this took me a long time. Do you mean that it converges with
> -snes_mf?
>
>
>>  Do you know what I have missed ?
>> In Neumann case, Where is added the 1d-integral along \delta \Omega ?
>>
>
>  You are correct that I am not doing the correct integral for the
> Jacobian. I will put it in soon. That
> is why it should work with the FD approximation since the residual is
> correct.
>
>    Thanks,
>
>       Matt
>
>
>>  Thanks,
>> Olivier Bonnefon
>>
>>
>>
>>
>>
>>
>>
>> On 09/26/2013 06:54 PM, Matthew Knepley wrote:
>>
>> On Thu, Sep 26, 2013 at 6:04 AM, Olivier Bonnefon <
>> olivier.bonnefon at avignon.inra.fr> wrote:
>>
>>> Hello,
>>>
>>> I have implemented my own system from ex12.c. It works with Dirichlet
>>> BC, but failed with Neumann one.
>>>
>>> So, I'm came back to the example /src/snes/example/tutorial/ex12.c, and
>>> I tried with Neumann BC:
>>>
>>> ./ex12 -bc_type NEUMANN
>>>
>>
>>  Here is the full list of tests I run (just checked that it passes in
>> 'next'):
>>
>>
>> https://bitbucket.org/petsc/petsc/src/f34a81fe8510aa025c9247a5b14f0fe30e3c0bed/config/builder.py?at=master#cl-175
>>
>>  Make sure you use an interpolated mesh with Neumann conditions since
>> you need faces.
>>
>>     Matt
>>
>>
>>> This leads to the following crach:
>>>
>>> [0]PETSC ERROR: --------------------- Error Message
>>> ------------------------------------
>>> [0]PETSC ERROR: No support for this operation for this object type!
>>> [0]PETSC ERROR: Unsupported number of vertices 0 in cell 8 for element
>>> geometry computation!
>>> [0]PETSC ERROR:
>>> ------------------------------------------------------------------------
>>> [0]PETSC ERROR: Petsc Release Version 3.4.2, Jul, 02, 2013
>>> [0]PETSC ERROR: See docs/changes/index.html for recent updates.
>>> [0]PETSC ERROR: See docs/faq.html for hints about trouble shooting.
>>> [0]PETSC ERROR: See docs/index.html for manual pages.
>>> [0]PETSC ERROR:
>>> ------------------------------------------------------------------------
>>> [0]PETSC ERROR: ./ex12 on a arch-linux2-c-debug named pcbiom38 by
>>> olivierb Thu Sep 26 14:53:32 2013
>>> [0]PETSC ERROR: Libraries linked from
>>> /home/olivierb/SOFT/petsc-3.4.2/arch-linux2-c-debug/lib
>>> [0]PETSC ERROR: Configure run at Thu Sep 26 14:44:42 2013
>>> [0]PETSC ERROR: Configure options --with-debugging=1 --download-fiat
>>> --download-scientificpython --download-generator --download-triangle
>>> --download-ctetgen --download-chaco --download-netcdf --download-hdf5
>>> [0]PETSC ERROR:
>>> ------------------------------------------------------------------------
>>> [0]PETSC ERROR: DMPlexComputeCellGeometry() line 732 in
>>> /home/olivierb/SOFT/petsc-3.4.2/src/dm/impls/plex/plexgeometry.c
>>> [0]PETSC ERROR: DMPlexComputeResidualFEM() line 558 in
>>> /home/olivierb/SOFT/petsc-3.4.2/src/dm/impls/plex/plexfem.c
>>> [0]PETSC ERROR: SNESComputeFunction_DMLocal() line 75 in
>>> /home/olivierb/SOFT/petsc-3.4.2/src/snes/utils/dmlocalsnes.c
>>> [0]PETSC ERROR: SNESComputeFunction() line 1988 in
>>> /home/olivierb/SOFT/petsc-3.4.2/src/snes/interface/snes.c
>>> [0]PETSC ERROR: SNESSolve_NEWTONLS() line 162 in
>>> /home/olivierb/SOFT/petsc-3.4.2/src/snes/impls/ls/ls.c
>>> [0]PETSC ERROR: SNESSolve() line 3636 in
>>> /home/olivierb/SOFT/petsc-3.4.2/src/snes/interface/snes.c
>>> [0]PETSC ERROR: main() line 582 in
>>> "unknowndirectory/"/home/olivierb/solvers/trunk/SandBox/PETSC/LANDSCAPE/REF/ex12.c
>>>
>>> --------------------------------------------------------------------------
>>> MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD
>>> with errorcode 56.
>>>
>>> NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
>>> You may or may not see output from other processes, depending on
>>> exactly when Open MPI kills them.
>>>
>>> --------------------------------------------------------------------------
>>>
>>> With Gbd, I saw that DMPlexGetConeSize is 0 for the last point.
>>>
>>> Do I have forget a step to use Neumann BC ?
>>>
>>> Thanks
>>> Olivier Bonnefon
>>>
>>> --
>>> Olivier Bonnefon
>>> INRA PACA-Avignon, Unité BioSP
>>> Tel: +33 (0)4 32 72 21 58 <%2B33%20%280%294%2032%2072%2021%2058>
>>>
>>>
>>
>>
>>  --
>> 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
>>
>>
>>
>> --
>> Olivier Bonnefon
>> INRA PACA-Avignon, Unité BioSP
>> Tel: +33 (0)4 32 72 21 58
>>
>>
>
>
>  --
> 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
>
>
>
> --
> Olivier Bonnefon
> INRA PACA-Avignon, Unité BioSP
> Tel: +33 (0)4 32 72 21 58
>
>


-- 
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
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mcs.anl.gov/pipermail/petsc-users/attachments/20140409/35966653/attachment.html>


More information about the petsc-users mailing list