Ignore:
Timestamp:
Jul 19, 2012, 6:01:19 PM (13 years ago)
Author:
steve
Message:

A small change to stats reporting in cg_solve

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/anuga_core/source/anuga/utilities/cg_solve.py

    r8164 r8470  
    1313        self.iter = None
    1414        self.rTr = None
    15         self.dt = None
     15        self.dx = None
     16        self.rTr0 = None
     17        self.x = None
     18        self.x0 = None
     19
     20    def __str__(self):
     21        msg = ' iter %.5g rTr %.5g x %.5g dx %.5g rTr0 %.5g x0 %.5g' \
     22              % (self.iter, self.rTr, self.x, self.dx, self.rTr0, self.x0)
     23        return msg
     24
    1625
    1726def conjugate_gradient(A, b, x0=None, imax=10000, tol=1.0e-8, atol=1.0e-14,
     
    2433    vector.
    2534    """
    26    
     35
     36
    2737    if x0 is None:
    2838        x0 = num.zeros(b.shape, dtype=num.float)
     
    6676   """
    6777
     78    stats = Stats()
     79
    6880    b  = num.array(b, dtype=num.float)
    6981    if len(b.shape) != 1:
     
    7587        x0 = num.array(x0, dtype=num.float)
    7688
     89
     90    stats.x0 =  num.linalg.norm(x0)
    7791
    7892    if iprint == None  or iprint == 0:
     
    87101    rTr = num.dot(r, r)
    88102    rTr0 = rTr
     103
     104    stats.rTr0 = rTr0
    89105   
    90106    #FIXME Let the iterations stop if starting with a small residual
     
    119135    #print x
    120136
    121     stats = Stats()
     137    stats.x =  num.linalg.norm(x)
    122138    stats.iter = i
    123139    stats.rTr = rTr
Note: See TracChangeset for help on using the changeset viewer.