[petsc-dev] help for use PETSc

tuane tuane at lncc.br
Wed Jun 29 09:48:24 CDT 2011


Thank you for your help.
Well, but if the redundant preconditioner uses a direct solve what 
means:
1. number of  iterations diversify with tolerance
2. reductions iterations with the use the KSPSetInitialGuessNonzero.
When I use the jacobi preconditioner, the number of iterations remains 
high.

What about tolerance? when I use jacobi preconditioner I need of a 
tolerance =1.0e-14 for to obtain the same result when I use the 
redundant preconditioner with tolerance=1.0e-10. I think that the 
tolerance is too small for jacobi preconditioner. What do you think?

Thanks again.
Tuane



On Tue, 28 Jun 2011 14:00:06 -0500, Jed Brown wrote:
> On Tue, Jun 28, 2011 at 11:55, tuane  wrote:
>
>> cg+redundant-PC give us the best result, similar to out original
>> direct solver. we don't be sure what “redundant” is.
>
> Redundant means that the whole problem is solved redundantly (using a
> direct solver by default) on every process. It only makes sense as a
> coarse level solver.
>   
>
>> Our response are beeing too dependent of these parameters:
>>
>>   1. iterative solver (CG, GMRES, BCGS)
>>   2. preconditioners (jacobi, redundant, ILU)
>>   3. tolerance
>>   4. number of processors
>
> At this point, you should always run with -ksp_monitor_true_residual
> to make sure that it is really converging.
>
>  We a
>
>> .  We used the routines:
>> call PCSetType (pc, PCMG, ierr)
>>
>> This is not algebraic multigrid, it is geometric multigrid. If you
>> use DMDA to manage the gri
> ould use geometric multigrid here.
>
> But I think you are using a Raviart-Thomas mixed space in which case
> the default interpolants from DMDA are not going to work for you.
>
> The simplest thing you can do is to use PCFieldSplit to eliminate the
> fluxes such that the preconditioner can work with the non-mixed
> (H^1-conforming) operator defined in the potential/pressure space.
>
> The following won't work right now, but it should work soon. I'm
> describing it here for the others on petsc-dev. If you call
>
> PCFieldSplitSetIS(pc,"u",is_fluxes);
> PCFieldSplitSetIS(pc,"p",is_potential);
>
> and
>
> -pc_type fieldsplit -pc_fieldsplit_type schur
> -fieldsplit_u_pc_type jacobi # The (u,u) block is diagonal for lowest
> order RT spaces
> -fieldsplit_p_pc_type ml # or other multigrid, uses SIMPLE
> approximation of the Schur complement which happens to be exact
> because the (u,u) block is diagonal.
>
> This won't work right now because PCFieldSplit does not actually call
> MatGetSchurComplement() is designed. It would simplify fieldsplit.c 
> to
> use MatGetSchurComplement(), but then MatGetSubMatrix() would be
> called twice for certain blocks in the matrix, once inside the Schur
> complement and once directly from fieldsplit.c. This is why I so want
> to make a mode in which the parent retains ownership and the caller
> gets a (intended to be) read-only reference when MatGetSubMatrix() 
> and
> MatGetSchurComplement() are called.
>
> Links:
> ------
> [1] mailto:tuane at lncc.br




More information about the petsc-dev mailing list