[CIG-LONG] model time output?

Walter Landry walter at geodynamics.org
Fri May 8 16:50:50 PDT 2009


Garrett Ito <gito at hawaii.edu> wrote:
> 
> Walter Landry wrote:
>     Most of the time, setting the tolerance for linear solves to be very
>     small should give you the same result as a direct solve.  
>     
> I disagree as I have never seen evidence for this behavior.  No matter what
> linearTolerence is set to I ALWAYS require more nonlinear iterations with the
> iterative solver than the direct solver.  

That is because yielding causes sharp viscosity gradients, which makes
the problem nearly singular.  If you look at a smooth viscous problem
like viscous_extension, you get the same number of Uzawa iterations
and almost identical Uzawa residuals.  As you make the tolerance
smaller, the iterative solution gets closer to the direct solution (up
to a point).

> What I was asking was whether it would be a good idea to control the
> tolerance of that specific part within the Uzawa iteration the
> iterative solver solves, separately than "linearTolerance" (which,
> as I understand controls the tolerance of the whole Uzawa
> iteration).  Basically, I'm wondering if there is a (simple) way the
> code could be modified to drive specifically the iterative solver
> towards more accurate solutions.  (i'm beginning to realize this may
> be a rhetorical question)

"tolerance" controls both the tolerance of the overall Uzawa scheme as
well as the tolerance of the individual solve within each Uzawa
iteration.

If you want to specify that separately, you can modify the lines which call

   MatrixSolver_SetRelativeTolerance

in

   src/StgFEM/SLE/ProvidedSystems/StokesFlow/src/Stoke_SLE_UzawaSolver.c

> What step within the Uzawa scheme is the direct/iterative solver solving?

In section 2.2.8.4 of the manual, that would be steps 2, 6 and 13.

Cheers,
Walter Landry
walter at geodynamics.org


More information about the CIG-LONG mailing list