Re: [petsc-dev] MatNest and inner KSP

2018-12-19 Thread Pierre Jolivet via petsc-dev



> On 19 Dec 2018, at 9:46 AM, Stefano Zampini  wrote:
> 
> Pierre, 
> 
> The details of the  inner solvers for PCFIELDSPLIT are not known if you don’t 
> call PCSetUp, so the cascade approach should be preferred.

OK, great! It was actually not that big of a deal to implement.

Thanks,
Pierre

> After PCSetUp, you can access the inner solves, see e.g.  
> https://bitbucket.org/petsc/petsc/src/4ddd364d454d7bce974e92e0b5bd4f4516dbff02/src/ksp/pc/impls/bddc/bddc.c#lines-2715
>> On Dec 19, 2018, at 9:01 AM, Pierre Jolivet via petsc-dev 
>>  wrote:
>> 
>> Hello,
>> I have a PCFIELDSPLIT where the fields are defined by a MATNEST 
>> “decomposition”.
>> Right now, I am first defining the KSP of the diagonal blocks of the 
>> MATNEST, which are themselves PCFIELDSPLIT, then creating the Mat itself, 
>> and eventually I’d like to solve systems with the complete MATNEST.
>> However, the KSP and PC options of the “first level" inner solvers are not 
>> propagated to the global outer solver.
>> Can this be achieved somehow, or do I always need to set the options in the 
>> opposite direction (first outer solver, then inner solvers, e.g., through a 
>> cascade of PCFieldSplitGetSubKSP)?
>> 
>> Thanks in advance,
>> Pierre
> 



Re: [petsc-dev] MatNest and inner KSP

2018-12-19 Thread Stefano Zampini via petsc-dev
Pierre, 

The details of the  inner solvers for PCFIELDSPLIT are not known if you don’t 
call PCSetUp, so the cascade approach should be preferred.

After PCSetUp, you can access the inner solves, see e.g.  
https://bitbucket.org/petsc/petsc/src/4ddd364d454d7bce974e92e0b5bd4f4516dbff02/src/ksp/pc/impls/bddc/bddc.c#lines-2715
> On Dec 19, 2018, at 9:01 AM, Pierre Jolivet via petsc-dev 
>  wrote:
> 
> Hello,
> I have a PCFIELDSPLIT where the fields are defined by a MATNEST 
> “decomposition”.
> Right now, I am first defining the KSP of the diagonal blocks of the MATNEST, 
> which are themselves PCFIELDSPLIT, then creating the Mat itself, and 
> eventually I’d like to solve systems with the complete MATNEST.
> However, the KSP and PC options of the “first level" inner solvers are not 
> propagated to the global outer solver.
> Can this be achieved somehow, or do I always need to set the options in the 
> opposite direction (first outer solver, then inner solvers, e.g., through a 
> cascade of PCFieldSplitGetSubKSP)?
> 
> Thanks in advance,
> Pierre