[petsc-users] [PATCH 2/2] Call KSPSetFromOptions before setting fieldsplit-specific options

Umut Tabak u.tabak at tudelft.nl
Sun Sep 8 08:45:59 CDT 2013


On 09/08/2013 03:00 PM, Matthew Knepley wrote:
>
>
> If you want to solve hard systems, you must learn to debug a solver 
> yourself. What does "just hangs" mean? Start with a full
> Schur complement factorization with LU on block 1 and a tiny tolerance 
> on block 2. This will converge in 1 iterate. Then
> start slowly making the preconditioner weaker.

Ok just for reference for future search on the topic for the others, 
here is the correct set of options

./ex3 -pc_type fieldsplit -fieldsplit_1_pc_type lu 
-fieldsplit_1_ksp_type preonly -fieldsplit_2_pc_type icc 
-fieldsplit_2_ksp_type minres -fieldsplit_2_ksp_rtol 1e-4 -ksp_view

>
>    Matt
>
>     The system is a symmetric system in this case given as
>
>     A =
>     A11 C
>     C^T A22
>
>     C is of size 1490X2432
>
>     Could you please comment on this point for me, do I still have an
>     error on the problem setup or on the usage of the options?
>
>     BR,
>     Umut
>
>
>          
>          ISCreateBlock(PETSC_COMM_SELF,bs,n1,inputindices,PETSC_COPY_VALUES,&is_row1);
>          
>          ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices,PETSC_COPY_VALUES,&is_row2);
>
>         We could check for this case, but it would require a little
>         code and
>         isn't currently done.  This is probably what you wanted:
>
>         diff --git i/ex2.c w/ex2.c
>         index 94cea2c..0cce3e6 100644
>         --- i/ex2.c
>         +++ w/ex2.c
>         @@ -45,7 +45,7 @@ int main(int argc,char **args)
>             PetscInt bs = 2, n1=1, n2=1, inputindices[]={0,1}; /*
>         block size is 2 */
>                  
>         ISCreateBlock(PETSC_COMM_SELF,bs,n1,inputindices,PETSC_COPY_VALUES,&is_row1);
>         -
>          ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices,PETSC_COPY_VALUES,&is_row2);
>         +
>          ISCreateBlock(PETSC_COMM_SELF,bs,n2,inputindices+n1,PETSC_COPY_VALUES,&is_row2);
>               ISView(is_row1,PETSC_VIEWER_STDOUT_SELF);
>             ISView(is_row2,PETSC_VIEWER_STDOUT_SELF);
>
>
>
>
>
> -- 
> 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/20130908/b4717395/attachment-0001.html>


More information about the petsc-users mailing list