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

Natacha BEREUX natacha.bereux at gmail.com
Wed Mar 22 05:03:27 CDT 2017


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 ?
- 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 ?
- do I have to provide something else to define the DMShell ?

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


More information about the petsc-users mailing list