[petsc-dev] default SNES rtol for single precision builds

Barry Smith bsmith at mcs.anl.gov
Tue Sep 20 08:05:42 CDT 2011


On Sep 20, 2011, at 2:53 AM, Jose E. Roman wrote:

> 
> El 19/09/2011, a las 19:59, Barry Smith escribió:
> 
>> 
>>  In particular the e-8 for SNES is very ad-hoc and has no justification, I originally used that number because I wanted something smaller than what we use for KSP but not too small. Does anybody have suggestions for a self-consistent justified set of rules for defining all our default tolerances?
> 
> Could use precision-independent expressions, such as
>  rtol_KSP = PETSC_SQRT_MACHINE_EPSILON
>  rtol_SNES = 0.1*PETSC_SQRT_MACHINE_EPSILON
> but I don't have a justification why these values and not others.
> 
> By the way, it always seemed strange to me that PETSC_MACHINE_EPSILON (in double) is defined to be 1.e-14 instead of the actual IEEE value 1.11022e-16 (or 2.22045e-16). Its square root is 1.0537e-08.

   I'll fix this.

> 
> Also, it could be possible to set these values by calling Lapack's _lamch at configure.

   Yuck


   Barry

> 
> Jose
> 
>> 
>>  Barry
>> 
>> 
>> On Sep 19, 2011, at 12:27 PM, Lisandro Dalcin wrote:
>> 
>>> After debugging a failing petsc4py testcase using single precision
>>> builds, I realized the default SNES relative tolerance is 1e-8. What
>>> should we do?
>>> 
>>> -- 
>>> Lisandro Dalcin
>>> ---------------
>>> CIMEC (INTEC/CONICET-UNL)
>>> Predio CONICET-Santa Fe
>>> Colectora RN 168 Km 472, Paraje El Pozo
>>> 3000 Santa Fe, Argentina
>>> Tel: +54-342-4511594 (ext 1011)
>>> Tel/Fax: +54-342-4511169
>> 
> 




More information about the petsc-dev mailing list