[petsc-users] Configure nested PCFIELDSPLIT with general index sets

Matthew Knepley knepley at gmail.com
Thu Mar 30 14:25:27 CDT 2017


On Wed, Mar 22, 2017 at 1:45 PM, Natacha BEREUX <natacha.bereux at gmail.com>
wrote:

> Hello Matt,
> Thanks a lot for your answers.
> Since I am working on a large FEM Fortran code, I have to stick to
> Fortran.
> Do you know if  someone plans to add this Fortran interface? Or may be I
> could do it myself ? Is this particular interface very hard to add ?
> Perhaps could  I mimic some other interface ?
> What would you advise ?
>

I have added the interface in branch knepley/feature-fortran-compose. I
also put this in the 'next' branch. It
should make it to master soon. There is a test in sys/examples/tests/ex13f

  Thanks,

    Matt


> Best regards,
> Natacha
>
> On Wed, Mar 22, 2017 at 12:33 PM, Matthew Knepley <knepley at gmail.com>
> wrote:
>
>> On Wed, Mar 22, 2017 at 10:03 AM, Natacha BEREUX <
>> natacha.bereux at gmail.com> wrote:
>>
>>> Hello,
>>> if my understanding is correct, the approach proposed by Matt and
>>> Lawrence is the following :
>>> - create a DMShell (DMShellCreate)
>>> - define my own CreateFieldDecomposition to return the index sets I need
>>> (for displacement, pressure and temperature degrees of freedom) :
>>> myCreateFieldDecomposition(... )
>>> - set it in the DMShell ( DMShellSetCreateFieldDecomposition)
>>> - then sets  the DM in KSP context  (KSPSetDM)
>>>
>>> I  have some more questions
>>> - I did not succeed in setting my own CreateFieldDecomposition in the
>>> DMShell : link  fails with " unknown reference to «
>>> dmshellsetcreatefielddecomposition_ ». Could it be a Fortran problem (I
>>> am using Fortran)?  Is this routine available in PETSc  Fortran interface ?
>>> \
>>>
>>
>> Yes, exactly. The Fortran interface for passing function pointers is
>> complex, and no one has added this function yet.
>>
>>
>>> - CreateFieldDecomposition is supposed to return an array of dms (to
>>> define the fields). I am not able to return such datas.  Do I return a
>>> PETSC_NULL_OBJECT instead ?
>>>
>>
>> Yes.
>>
>>
>>> - do I have to provide something else to define the DMShell ?
>>>
>>
>> I think you will have to return local and global vectors, but this just
>> means creating a vector of the correct size and distribution.
>>
>>   Thanks,
>>
>>      Matt
>>
>>
>>> Thanks a lot for your help
>>> Natacha
>>>
>>> On Tue, Mar 21, 2017 at 2:44 PM, Natacha BEREUX <
>>> natacha.bereux at gmail.com> wrote:
>>>
>>>> Thanks for your quick answers. To be honest, I am not familiar at all
>>>> with DMShells and DMPlexes. But since it is what I need, I am going to try
>>>> it.
>>>> Thanks again  for your advices,
>>>> Natacha
>>>>
>>>> On Tue, Mar 21, 2017 at 2:27 PM, Lawrence Mitchell <
>>>> lawrence.mitchell at imperial.ac.uk> wrote:
>>>>
>>>>>
>>>>> > On 21 Mar 2017, at 13:24, Matthew Knepley <knepley at gmail.com> wrote:
>>>>> >
>>>>> > I think the remedy is as easy as specifying a DMShell that has a
>>>>> PetscSection (DMSetDefaultSection) with your ordering, and
>>>>> > I think this is how Firedrake (http://www.firedrakeproject.org/)
>>>>> does it.
>>>>>
>>>>> We actually don't use a section, but we do provide
>>>>> DMCreateFieldDecomposition_Shell.
>>>>>
>>>>> If you have a section that describes all the fields, then I think if
>>>>> the DMShell knows about it, you effectively get the same behaviour as
>>>>> DMPlex (which does the decomposition in the same manner?).
>>>>>
>>>>> > However, I usually use a DMPlex which knows about my
>>>>> > mesh, so I am not sure if this strategy has any holes.
>>>>>
>>>>> I haven't noticed anything yet.
>>>>>
>>>>> Lawrence
>>>>
>>>>
>>>>
>>>
>>
>>
>> --
>> 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
>>
>
>


-- 
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/20170330/c92fec53/attachment.html>


More information about the petsc-users mailing list