[petsc-dev] help for use PETSc

Matthew Knepley knepley at gmail.com
Wed Jun 29 10:08:01 CDT 2011


On Wed, Jun 29, 2011 at 2:48 PM, tuane <tuane at lncc.br> wrote:

> 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.
>

Redundant runs SOME preconditioner redundantly. If you specify nothing, it
runs
the default which is GMRES/ILU(0). You can always use -ksp_view to see what
you used.

   Matt


> 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
>>
>
>


-- 
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-dev/attachments/20110629/d96671d9/attachment.html>


More information about the petsc-dev mailing list