Changeset 8470 for trunk/anuga_core/source/anuga/utilities
- Timestamp:
- Jul 19, 2012, 6:01:19 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/anuga_core/source/anuga/utilities/cg_solve.py
r8164 r8470 13 13 self.iter = None 14 14 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 16 25 17 26 def conjugate_gradient(A, b, x0=None, imax=10000, tol=1.0e-8, atol=1.0e-14, … … 24 33 vector. 25 34 """ 26 35 36 27 37 if x0 is None: 28 38 x0 = num.zeros(b.shape, dtype=num.float) … … 66 76 """ 67 77 78 stats = Stats() 79 68 80 b = num.array(b, dtype=num.float) 69 81 if len(b.shape) != 1: … … 75 87 x0 = num.array(x0, dtype=num.float) 76 88 89 90 stats.x0 = num.linalg.norm(x0) 77 91 78 92 if iprint == None or iprint == 0: … … 87 101 rTr = num.dot(r, r) 88 102 rTr0 = rTr 103 104 stats.rTr0 = rTr0 89 105 90 106 #FIXME Let the iterations stop if starting with a small residual … … 119 135 #print x 120 136 121 stats = Stats()137 stats.x = num.linalg.norm(x) 122 138 stats.iter = i 123 139 stats.rTr = rTr
Note: See TracChangeset
for help on using the changeset viewer.