[cig-commits] r16814 - short/3D/PyLith/trunk/playpen/faultpc

brad at geodynamics.org brad at geodynamics.org
Thu May 27 14:46:14 PDT 2010


Author: brad
Date: 2010-05-27 14:46:14 -0700 (Thu, 27 May 2010)
New Revision: 16814

Modified:
   short/3D/PyLith/trunk/playpen/faultpc/checkfaultpc.py
Log:
Fixed a typo. Added more output.

Modified: short/3D/PyLith/trunk/playpen/faultpc/checkfaultpc.py
===================================================================
--- short/3D/PyLith/trunk/playpen/faultpc/checkfaultpc.py	2010-05-27 21:16:10 UTC (rev 16813)
+++ short/3D/PyLith/trunk/playpen/faultpc/checkfaultpc.py	2010-05-27 21:46:14 UTC (rev 16814)
@@ -41,17 +41,25 @@
 P[8:12,0:8] = numpy.dot(CACi, numpy.dot(C, Ai))
 P[8:12,8:12] = -CACi
 
+# Compute condition number
+evals, evecs = numpy.linalg.eig(numpy.dot(P, J))
+print numpy.abs(evals)
+print numpy.max(numpy.abs(evals))/numpy.min(numpy.abs(evals))
+
 # Compute preconditioner using diagonal approximations (but full Ai)
 Pd = numpy.zeros(J.shape)
 Pd[0:8,0:8] = Ai + numpy.dot(numpy.dot(numpy.dot(numpy.dot(Aid, C.transpose()), -CACdi), C), Aid)
-Pd[0:8,8:12] = numpy.dot(numpy.dot(-Aid, C.transpose()), CACdi)
+Pd[0:8,8:12] = numpy.dot(numpy.dot(-Aid, C.transpose()), -CACdi)
 Pd[8:12,0:8] = numpy.dot(CACdi, numpy.dot(C, Aid))
 Pd[8:12,8:12] = -CACdi
 
-evals, evecs = numpy.linalg.eig(numpy.dot(P, J))
+# Compute condition number for diagonal approximations
+evals, evecs = numpy.linalg.eig(numpy.dot(Pd, J))
 print numpy.abs(evals)
 print numpy.max(numpy.abs(evals))/numpy.min(numpy.abs(evals))
 
-evals, evecs = numpy.linalg.eig(numpy.dot(Pd, J))
-print numpy.abs(evals)
-print numpy.max(numpy.abs(evals))/numpy.min(numpy.abs(evals))
+# Print preconditioner formed with diagonal approximations
+print "Pd00:", numpy.dot(numpy.dot(numpy.dot(numpy.dot(Aid, C.transpose()), -CACdi), C), Aid)
+print "Pd01:", numpy.dot(numpy.dot(-Aid, C.transpose()), -CACdi)
+print "Pd10:", numpy.dot(CACdi, numpy.dot(C, Aid))
+print "Pd11:", -CACdi



More information about the CIG-COMMITS mailing list