aboutsummaryrefslogtreecommitdiff
path: root/src/sparse-matrix
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2003-06-12 01:28:36 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2003-06-12 01:28:36 +0000
commit2796e76dc3f5b0b7c77b2b0d6596a3e48cc2836c (patch)
tree4f232e0ae980f2faf4258f900bff9d0463d55d64 /src/sparse-matrix
parent2c5520b97975524905f45db3dd865a5cbbfb8e29 (diff)
change convergence criterion to fix a bug (which I introduced
when modifying these subroutines in 1989) which causes the conjugate gradient iteration to spuriously claim "convergence" after way too few iterations (sometimes only 1 iteration) if the rhs vector is very small (as it is when AHFinderDirect has almost -- but not quite -- converged to the apparent horizon) git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@1106 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/sparse-matrix')
-rw-r--r--src/sparse-matrix/ilucg/dilucg.f775
-rw-r--r--src/sparse-matrix/ilucg/silucg.f775
2 files changed, 8 insertions, 2 deletions
diff --git a/src/sparse-matrix/ilucg/dilucg.f77 b/src/sparse-matrix/ilucg/dilucg.f77
index 11d6c4b..f5e5136 100644
--- a/src/sparse-matrix/ilucg/dilucg.f77
+++ b/src/sparse-matrix/ilucg/dilucg.f77
@@ -48,6 +48,8 @@ C * ADD CONVERGENCE CRITERIA, J. THORNBURG, 17/MAY/85.
C * CHANGED CONVERGENCE CRITERIA, J. THORNBURG, 4/AUG/89.
C * AVOID SKIP RETURNS, J. THORNBURG, 10/SEP/89.
C * CHANGE FUNCTION BACK TO SUBROUTINE, J. THORNBURG, 3.JUN.2003
+C * CHANGE CONVERGENCE CRITERIA TO AVOID SPURIOUSLY STOPPING TOO SOON
+C ON SMALL RHS VECTORS -- J. THORNBURG, 11.JUN.2003
C
C REFERENCE:
C D.S.KERSHAW,"THE INCOMPLETE CHOLESKY-CONJUGATE GRADIENT
@@ -311,7 +313,8 @@ C
C
ALPHA=RDOT/PDOT
C EQUATION 9PA ALPHA=(R,LINV*R)/(P,UT*U*P)
- XMAX=1.0D0
+C 1 + ||X CHANGE|| CHANGED TO ||X CHANGE|| -- J. THORNBURG, 11.JUN.2003
+ XMAX=0.0D0
XDIF=0.0D0
DO 30 I=1,N
AP=ALPHA*P(I)
diff --git a/src/sparse-matrix/ilucg/silucg.f77 b/src/sparse-matrix/ilucg/silucg.f77
index fc97c3b..8198ecb 100644
--- a/src/sparse-matrix/ilucg/silucg.f77
+++ b/src/sparse-matrix/ilucg/silucg.f77
@@ -48,6 +48,8 @@ C * ADD CONVERGENCE CRITERIA, J. THORNBURG, 17/MAY/85.
C * CHANGED CONVERGENCE CRITERIA, J. THORNBURG, 4/AUG/89.
C * AVOID SKIP RETURNS, J. THORNBURG, 10/SEP/89.
C * CHANGE FUNCTION BACK TO SUBROUTINE, J. THORNBURG, 3.JUN.2003
+C * CHANGE CONVERGENCE CRITERIA TO AVOID SPURIOUSLY STOPPING TOO SOON
+C ON SMALL RHS VECTORS -- J. THORNBURG, 11.JUN.2003
C
C REFERENCE:
C D.S.KERSHAW,"THE INCOMPLETE CHOLESKY-CONJUGATE GRADIENT
@@ -306,7 +308,8 @@ C
C
ALPHA=RDOT/PDOT
C EQUATION 9PA ALPHA=(R,LINV*R)/(P,UT*U*P)
- XMAX=1.0
+C 1 + ||X CHANGE|| CHANGED TO ||X CHANGE|| -- J. THORNBURG, 11.JUN.2003
+ XMAX=0.0
XDIF=0.0
DO 30 I=1,N
AP=ALPHA*P(I)