[Scipy-svn] r3255 - trunk/scipy/sandbox/multigrid
scipy-svn at scipy.org
scipy-svn at scipy.org
Wed Aug 22 14:35:13 EDT 2007
Author: wnbell
Date: 2007-08-22 13:35:07 -0500 (Wed, 22 Aug 2007)
New Revision: 3255
Added:
trunk/scipy/sandbox/multigrid/coarsen.py
Removed:
trunk/scipy/sandbox/multigrid/multigrid.py
Modified:
trunk/scipy/sandbox/multigrid/multilevel.py
Log:
moved multigrid.py to coarsen.py
Copied: trunk/scipy/sandbox/multigrid/coarsen.py (from rev 3254, trunk/scipy/sandbox/multigrid/multigrid.py)
Deleted: trunk/scipy/sandbox/multigrid/multigrid.py
===================================================================
--- trunk/scipy/sandbox/multigrid/multigrid.py 2007-08-22 18:26:02 UTC (rev 3254)
+++ trunk/scipy/sandbox/multigrid/multigrid.py 2007-08-22 18:35:07 UTC (rev 3255)
@@ -1,66 +0,0 @@
-from scipy import *
-
-import multigridtools
-import scipy
-import numpy
-
-from pydec import diag_sparse,inf_norm
-
-
-def rs_strong_connections(A,theta):
- if not scipy.sparse.isspmatrix_csr(A): raise TypeError('expected sparse.csr_matrix')
-
- Sp,Sj,Sx = multigridtools.rs_strong_connections(A.shape[0],theta,A.indptr,A.indices,A.data)
- return scipy.sparse.csr_matrix((Sx,Sj,Sp),A.shape)
-
-
-def rs_interpolation(A,theta=0.25):
- if not scipy.sparse.isspmatrix_csr(A): raise TypeError('expected sparse.csr_matrix')
-
- S = rs_strong_connections(A,theta)
-
- T = S.T.tocsr()
-
- Ip,Ij,Ix = multigridtools.rs_interpolation(A.shape[0],\
- A.indptr,A.indices,A.data,\
- S.indptr,S.indices,S.data,\
- T.indptr,T.indices,T.data)
-
- return scipy.sparse.csr_matrix((Ix,Ij,Ip))
-
-
-def sa_strong_connections(A,epsilon):
- if not scipy.sparse.isspmatrix_csr(A): raise TypeError('expected sparse.csr_matrix')
-
- Sp,Sj,Sx = multigridtools.sa_strong_connections(A.shape[0],epsilon,A.indptr,A.indices,A.data)
- return scipy.sparse.csr_matrix((Sx,Sj,Sp),A.shape)
-
-def sa_constant_interpolation(A,epsilon=0.08):
- if not scipy.sparse.isspmatrix_csr(A): raise TypeError('expected sparse.csr_matrix')
-
- S = sa_strong_connections(A,epsilon)
-
- #tentative (non-smooth) interpolation operator I
- Ij = multigridtools.sa_get_aggregates(A.shape[0],S.indptr,S.indices)
- Ip = numpy.arange(len(Ij)+1)
- Ix = numpy.ones(len(Ij))
-
- return scipy.sparse.csr_matrix((Ix,Ij,Ip))
-
-
-def sa_interpolation(A,epsilon=0.08,omega=4.0/3.0):
- if not scipy.sparse.isspmatrix_csr(A): raise TypeError('expected sparse.csr_matrix')
-
- I = sa_constant_interpolation(A,epsilon)
-
- D_inv = diag_sparse(1.0/diag_sparse(A))
-
- D_inv_A = D_inv * A
- D_inv_A *= -omega/inf_norm(D_inv_A)
-
- P = I + (D_inv_A*I) #same as P=S*I, (faster?)
-
- return P
-
-
-
Modified: trunk/scipy/sandbox/multigrid/multilevel.py
===================================================================
--- trunk/scipy/sandbox/multigrid/multilevel.py 2007-08-22 18:26:02 UTC (rev 3254)
+++ trunk/scipy/sandbox/multigrid/multilevel.py 2007-08-22 18:35:07 UTC (rev 3255)
@@ -3,7 +3,7 @@
import scipy
import numpy
-from multigrid import sa_interpolation,rs_interpolation
+from coarsen import sa_interpolation,rs_interpolation
from relaxation import gauss_seidel,jacobi
@@ -149,7 +149,7 @@
if __name__ == '__main__':
from scipy import *
- A = poisson_problem2D(100).T
+ A = poisson_problem2D(200).T
asa = smoothed_aggregation_solver(A)
#asa = ruge_stuben_solver(A)
x = rand(A.shape[0])
More information about the Scipy-svn
mailing list