> On 13 Mar 2020, at 2:36 PM, Matthew Knepley <[email protected]> wrote:
>
> On Fri, Mar 13, 2020 at 3:19 AM Pierre Jolivet <[email protected]
> <mailto:[email protected]>> wrote:
>
>
>> On 12 Mar 2020, at 11:40 PM, Matthew Knepley <[email protected]
>> <mailto:[email protected]>> wrote:
>>
>> On Thu, Mar 12, 2020 at 5:59 PM Jed Brown <[email protected]
>> <mailto:[email protected]>> wrote:
>> Pierre Jolivet <[email protected]
>> <mailto:[email protected]>> writes:
>>
>> > Hello,
>> > Has there been any follow-up on this
>> > https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/024020.html
>> > <https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/024020.html>
>> > <https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/024020.html
>> > <https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/024020.html>>?
>> > Given a 3x3 MatNest A = [A_00,0,0 ; 0,A_11,0 ; 0,0,A_22], I’d like to
>> > setup a two-way fieldsplit coupling [A_00,0 ; 0,A_11] and [A_22] but I
>> > can’t figure out the proper options.
>>
>> Are you looking for a Schur split or additive/multiplicative?
>
> Don’t know yet which will perform best, do you have a specific solution in
> mind for one scenario or the other?
> I was mostly wondering if it was possible in a general context, not taking
> -pc_fieldsplit_type into account.
>
>> -pc_fieldsplit_field_0 0,1 -pc_fieldsplit_field_1 2 -pc_fieldsplit_type schur
>
> These flags, used with my .cpp, yield:
> [0]PETSC ERROR: Arguments are incompatible
> [0]PETSC ERROR: To use Schur complement preconditioner you must have exactly
> 2 fields
> If I use -pc_fieldsplit_%d_fields <a,b,..> as advocated in the manual
> (instead of -pc_fieldsplit_field_%d as you suggested), I get the same error.
>
> Okay it is -pc_fieldsplit_%d_fields. When you use this, how many fields does
> it think you have?
Three.
In case it’s not clear, the MWE is at the bottom of my first email (nest.cpp).
$ mpicxx nest.cpp -I$PETSC_DIR/$PETSC_ARCH/include -I$PETSC_DIR/include
-L$PETSC_DIR/$PETSC_ARCH/lib -lpetsc
$ ./a.out -pc_type fieldsplit -pc_fieldsplit_0_fields 0,1
-pc_fieldsplit_1_fields 2 -pc_fieldsplit_type schur
[…]
[0]PETSC ERROR: Arguments are incompatible
[0]PETSC ERROR: To use Schur complement preconditioner you must have exactly 2
fields
[…]
Split info:
Split number 0 Defined by IS
Split number 1 Defined by IS
Split number 2 Defined by IS
[…]
Thanks,
Pierre
> Matt
>> I believe.
>>
>> Matt
>>
>> > Jed, in this answer
>> > https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/023993.html
>> > <https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/023993.html><https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/023993.html
>> >
>> > <https://lists.mcs.anl.gov/pipermail/petsc-users/2015-January/023993.html>>,
>> > you recommend not to use MatNest. What would you recommend instead?
>>
>> See src/snes/examples/tutorials/ex28.c for my preferred approach.
>
> I’m not using DM, so in terms of Mat, I guess this example shows that I
> pretty much need to reimplement the field splitting myself?
>
> Thanks,
> Pierre
>
>> --
>> 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.cse.buffalo.edu/~knepley/>
>
>
>
> --
> 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.cse.buffalo.edu/~knepley/>