[petsc-users] any good references on matrix scaling

Barry Smith bsmith at mcs.anl.gov
Thu Sep 12 16:01:52 CDT 2013


   If when properly pre scaled and then discretized there is a scaling difference in terms that actually matter of 10^12 then "I" would simply not believe results of any computation done in double precision. With the gnu compilers you can build a PETSc version that computes in quad precision, which gives more than 30 decimal digits to compute with, using the ./configure option --with-precision=__float128.    You have to declare all variables as PetscScalar or PetscReal (not double) and be careful how you print them (for example cast to double) but otherwise it is pretty much just like double precision. 

   The problems will still be difficult to solve in quad precision in terms of iterative methods because of the ill-conditioning but at least when you get answers they may have some meaning and convergence will actually tell you something.

  Good luck,

   Barry



On Sep 12, 2013, at 3:42 PM, Umut Tabak <u.tabak at tudelft.nl> wrote:

> On 09/12/2013 08:48 PM, Barry Smith wrote:
>> 
>> http://en.wikipedia.org/wiki/Nondimensionalization
> Hi Barry,
> 
> For the kind of problems, I am working on, this is a general problem and unfortunately, it is not in general possible to get away from this property with the scaling on the initial differential equations.
> 
> Moreover, the problem is two sided, a structure coupled to a fluid domain, where the physics is already inducing different scaling and math is obeying that ;-)
> 
> This was a problem I discussed here extensively last week. Solving directly is not a problem, the challenge is, if possible, to use Schur complements and iterative solution techniques, where the source of the problem emerged from.
> 
> Thanks for the comments anyway.
> 
> BR,
> Umut
>> 
>>    Barry
>> 
>> On Sep 12, 2013, at 12:04 PM, Umut Tabak <u.tabak at tudelft.nl> wrote:
>> 
>>> Dear all,
>>> 
>>> I am looking for some references for matrix scaling where I would like to improve the conditioning of a block representation such as
>>> 
>>> A C
>>> C^T B
>>> 
>>> where the terms in A and B blocks are of very different orders, such as A is of 1e+8 and B for instance is of order 1e-4 . The ratios can get even worse but not better on the problems I tried.
>>> 
>>> I am trying have an overview for some cheap conditioning approaches for this problem.
>>> 
>>> Any ideas/references are appreciated.
>>> 
>>> BR,
>>> Umut
> 



More information about the petsc-users mailing list