/[escript]/trunk/ripley/test/python/run_simplesolve.py
ViewVC logotype

Diff of /trunk/ripley/test/python/run_simplesolve.py

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

branches/ripleygmg_from_3668/ripley/test/python/run_simplesolve.py revision 3776 by caltinay, Thu Jan 19 03:48:35 2012 UTC trunk/ripley/test/python/run_simplesolve.py revision 4938 by jfenwick, Wed May 14 01:13:23 2014 UTC
# Line 1  Line 1 
1    
2  ########################################################  ##############################################################################
3  #  #
4  # Copyright (c) 2003-2011 by University of Queensland  # Copyright (c) 2003-2014 by University of Queensland
5  # Earth Systems Science Computational Center (ESSCC)  # http://www.uq.edu.au
 # http://www.uq.edu.au/esscc  
6  #  #
7  # Primary Business: Queensland, Australia  # Primary Business: Queensland, Australia
8  # Licensed under the Open Software License version 3.0  # Licensed under the Open Software License version 3.0
9  # http://www.opensource.org/licenses/osl-3.0.php  # http://www.opensource.org/licenses/osl-3.0.php
10  #  #
11  ########################################################  # Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12    # Development 2012-2013 by School of Earth Sciences
13    # Development from 2014 by Centre for Geoscience Computing (GeoComp)
14    #
15    ##############################################################################
16    
17  __copyright__="""Copyright (c) 2003-2011 by University of Queensland  __copyright__="""Copyright (c) 2003-2014 by University of Queensland
18  Earth Systems Science Computational Center (ESSCC)  http://www.uq.edu.au
 http://www.uq.edu.au/esscc  
19  Primary Business: Queensland, Australia"""  Primary Business: Queensland, Australia"""
20  __license__="""Licensed under the Open Software License version 3.0  __license__="""Licensed under the Open Software License version 3.0
21  http://www.opensource.org/licenses/osl-3.0.php"""  http://www.opensource.org/licenses/osl-3.0.php"""
# Line 33  Test suite for the linearPDE  and pdetoo Line 35  Test suite for the linearPDE  and pdetoo
35    
36  __author__="Lutz Gross, l.gross@uq.edu.au"  __author__="Lutz Gross, l.gross@uq.edu.au"
37    
38  import unittest, sys  import esys.escriptcore.utestselect as unittest, sys
   
39  from esys.escript import *  from esys.escript import *
40  from esys.ripley import Rectangle,Brick  from esys.ripley import Rectangle,Brick
41  from esys.escript.linearPDEs import LinearPDE, SolverOptions  from esys.escript.linearPDEs import LinearPDE, SolverOptions
42  import numpy  import numpy
43  SOLVER_VERBOSE=False  SOLVER_VERBOSE=False
 # setNumberOfThreads(2)  
44    
45  try:  try:
46       RIPLEY_TEST_DATA=os.environ['RIPLEY_TEST_DATA']       RIPLEY_TEST_DATA=os.environ['RIPLEY_TEST_DATA']
47  except KeyError:  except KeyError:
48       RIPLEY_TEST_DATA='.'       RIPLEY_TEST_DATA='.'
49    
 # number of elements in the spatial directions  
 NE0=8  
 NE1=10  
 NE2=12  
   
 NE0=12  
 NE1=12  
 NE2=8  
   
50  SOLVER_TOL=1.e-8  SOLVER_TOL=1.e-8
51  REL_TOL=1.e-6  REL_TOL=1.e-6
52    
53  FAC_DIAG=1.  FAC_DIAG=1.
54  FAC_OFFDIAG=-0.4  FAC_OFFDIAG=-0.4
55    
56    # number of elements in the spatial directions
57    NE0=12
58    NE1=12
59    NE2=8
60    mpiSize=getMPISizeWorld()
61    for x in [int(sqrt(mpiSize)),2,3,5,7,1]:
62        NX=x
63        NY=mpiSize//x
64        if NX*NY == mpiSize:
65            break
66    
67    for x in [(int(mpiSize**(1/3.)),int(mpiSize**(1/3.))),(2,3),(2,2),(1,2),(1,1)]:
68        NXb=x[0]
69        NYb=x[1]
70        NZb=mpiSize//(x[0]*x[1])
71        if NXb*NYb*NZb == mpiSize:
72            break
73    
74  class SimpleSolve_Rectangle_SinglePDE_Paso_BICGSTAB_Jacobi(unittest.TestCase):  class SimpleSolve_Rectangle_SinglePDE_Paso_BICGSTAB_Jacobi(unittest.TestCase):
75       def test_solve(self):       def test_solve(self):
76          # Tell about how many MPI CPUs and OpenMP threads          # Tell about how many MPI CPUs and OpenMP threads
77          domain=Rectangle(NE0,NE1)          domain=Rectangle(n0=NE0*NX-1, n1=NE1*NY-1, d0=NX, d1=NY)
78          x=Solution(domain).getX()          x=Solution(domain).getX()
79          # --- set exact solution ----          # --- set exact solution ----
80          u_ex=Scalar(0,Solution(domain))          u_ex=Scalar(0,Solution(domain))
# Line 95  class SimpleSolve_Rectangle_SinglePDE_Pa Line 103  class SimpleSolve_Rectangle_SinglePDE_Pa
103          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)
104  class SimpleSolve_Rectangle_SinglePDE_Paso_PCG_Jacobi(unittest.TestCase):  class SimpleSolve_Rectangle_SinglePDE_Paso_PCG_Jacobi(unittest.TestCase):
105       def test_solve(self):       def test_solve(self):
106          domain=Rectangle(NE0,NE1)          domain=Rectangle(n0=NE0*NX-1, n1=NE1*NY-1, d0=NX, d1=NY)
107          x=Solution(domain).getX()          x=Solution(domain).getX()
108          # --- set exact solution ----          # --- set exact solution ----
109          u_ex=Scalar(0,Solution(domain))          u_ex=Scalar(0,Solution(domain))
# Line 124  class SimpleSolve_Rectangle_SinglePDE_Pa Line 132  class SimpleSolve_Rectangle_SinglePDE_Pa
132          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)
133  class SimpleSolve_Rectangle_SystemPDE_Paso_PCG_Jacobi(unittest.TestCase):  class SimpleSolve_Rectangle_SystemPDE_Paso_PCG_Jacobi(unittest.TestCase):
134       def test_solve(self):       def test_solve(self):
135          domain=Rectangle(NE0,NE1)          domain=Rectangle(n0=NE0*NX-1, n1=NE1*NY-1, d0=NX, d1=NY)
136          x=Solution(domain).getX()          x=Solution(domain).getX()
137          # --- set exact solution ----          # --- set exact solution ----
138          u_ex=Vector(0,Solution(domain))          u_ex=Vector(0,Solution(domain))
# Line 162  class SimpleSolve_Rectangle_SystemPDE_Pa Line 170  class SimpleSolve_Rectangle_SystemPDE_Pa
170          # -------- test the solution ---------------------------          # -------- test the solution ---------------------------
171          error=Lsup(u-u_ex)          error=Lsup(u-u_ex)
172          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)
 class SimpleSolve_Rectangle_Order2_SinglePDE_Paso_PCG_Jacobi(unittest.TestCase):  
      def test_solve(self):  
         domain=Rectangle(NE0,NE1,2,l0=1.,l1=1)  
         x=Solution(domain).getX()  
         # --- set exact solution ----  
         u_ex=1.+2.*x[0]+3.*x[1]+4.*x[0]**2+5.*x[1]*x[0]+6.*x[1]**2  
         # --- set exact gradient -----------  
         g_ex=Data(0.,(2,),Solution(domain))  
         g_ex[0]=2.+8.*x[0]+5.*x[1]  
         g_ex[1]=3.+5.*x[0]+12.*x[1]  
         # -------- test gradient --------------------------------  
         self.assertTrue(Lsup(g_ex-grad(u_ex))<REL_TOL*Lsup(g_ex))  
         # -------- set-up PDE -----------------------------------  
         pde=LinearPDE(domain,numEquations=1)  
         mask=whereZero(x[0])  
         pde.setValue(r=u_ex,q=mask)  
         pde.setValue(A=kronecker(2),y=inner(g_ex,domain.getNormal()),Y=-20.)  
         # -------- get the solution ---------------------------  
         pde.getSolverOptions().setTolerance(SOLVER_TOL)  
         pde.getSolverOptions().setSolverMethod(SolverOptions.PCG)  
         pde.getSolverOptions().setPreconditioner(SolverOptions.JACOBI)  
         pde.getSolverOptions().setPackage(SolverOptions.PASO)  
         pde.getSolverOptions().setVerbosity(SOLVER_VERBOSE)  
         u=pde.getSolution()  
         # -------- test the solution ---------------------------  
         error=Lsup(u-u_ex)  
         self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)  
173  class SimpleSolve_Brick_SinglePDE_Paso_PCG_Jacobi(unittest.TestCase):  class SimpleSolve_Brick_SinglePDE_Paso_PCG_Jacobi(unittest.TestCase):
174       def test_solve(self):       def test_solve(self):
175          domain=Brick(NE0,NE1,NE2)          domain=Brick(n0=NE0*NXb-1, n1=NE1*NYb-1, n2=NE2*NZb-1, d0=NXb, d1=NYb, d2=NZb)
176          x=Solution(domain).getX()          x=Solution(domain).getX()
177          u_ex=1.+2.*x[0]+3.*x[1]+4.*x[2]          u_ex=1.+2.*x[0]+3.*x[1]+4.*x[2]
178          # --- set exact gradient -----------          # --- set exact gradient -----------
# Line 218  class SimpleSolve_Brick_SinglePDE_Paso_P Line 199  class SimpleSolve_Brick_SinglePDE_Paso_P
199          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)
200  class SimpleSolve_Brick_SystemPDE_Paso_PCG_Jacobi(unittest.TestCase):  class SimpleSolve_Brick_SystemPDE_Paso_PCG_Jacobi(unittest.TestCase):
201       def test_solve(self):       def test_solve(self):
202          domain=Brick(NE0,NE1,NE2)          domain=Brick(n0=NE0*NXb-1, n1=NE1*NYb-1, n2=NE2*NZb-1, d0=NXb, d1=NYb, d2=NZb)
203          x=Solution(domain).getX()          x=Solution(domain).getX()
204          # --- set exact solution ----          # --- set exact solution ----
205          u_ex=Vector(0,Solution(domain))          u_ex=Vector(0,Solution(domain))
# Line 265  class SimpleSolve_Brick_SystemPDE_Paso_P Line 246  class SimpleSolve_Brick_SystemPDE_Paso_P
246          error=Lsup(u-u_ex)          error=Lsup(u-u_ex)
247          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)
248    
 class SimpleSolve_Rectangle_SinglePDE_Paso_TFQMR_Jacobi(unittest.TestCase):  
      def test_solve(self):  
         domain=Rectangle(NE0,NE1)  
         x=Solution(domain).getX()  
         # --- set exact solution ----  
         u_ex=Scalar(0,Solution(domain))  
         u_ex=1.+2.*x[0]+3.*x[1]  
         # --- set exact gradient -----------  
         g_ex=Data(0.,(2,),Solution(domain))  
         g_ex[0]=2.  
         g_ex[1]=3.  
         # -------- test gradient --------------------------------  
         g=grad(u_ex)  
         self.assertTrue(Lsup(g_ex-g)<REL_TOL*Lsup(g_ex))  
         # -------- set-up PDE -----------------------------------  
         pde=LinearPDE(domain,numEquations=1)  
         mask=whereZero(x[0])  
         pde.setValue(r=u_ex,q=mask)  
         pde.setValue(A=kronecker(2),y=inner(g_ex,domain.getNormal()))  
         # -------- get the solution ---------------------------  
         pde.getSolverOptions().setTolerance(SOLVER_TOL)  
         pde.getSolverOptions().setSolverMethod(SolverOptions.TFQMR)  
         pde.getSolverOptions().setPreconditioner(SolverOptions.JACOBI)  
         pde.getSolverOptions().setPackage(SolverOptions.PASO)  
         pde.getSolverOptions().setVerbosity(SOLVER_VERBOSE)  
         u=pde.getSolution()  
         # -------- test the solution ---------------------------  
         error=Lsup(u-u_ex)  
         self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)  
   
 class SimpleSolve_Rectangle_SystemPDE_Paso_TFQMR_Jacobi(unittest.TestCase):  
      def test_solve(self):  
         domain=Rectangle(NE0,NE1)  
         x=Solution(domain).getX()  
         # --- set exact solution ----  
         u_ex=Vector(0,Solution(domain))  
         u_ex[0]=1.+2.*x[0]+3.*x[1]  
         u_ex[1]=-1.+3.*x[0]+2.*x[1]  
         # --- set exact gradient -----------  
         g_ex=Data(0.,(2,2),Solution(domain))  
         g_ex[0,0]=2.  
         g_ex[0,1]=3.  
         g_ex[1,0]=3.  
         g_ex[1,1]=2.  
         # -------- test gradient --------------------------------  
         self.assertTrue(Lsup(g_ex-grad(u_ex))<REL_TOL*Lsup(g_ex))  
         # -------- set-up PDE -----------------------------------  
         pde=LinearPDE(domain,numEquations=2)  
         mask=whereZero(x[0])  
         pde.setValue(r=u_ex,q=mask*numpy.ones(2,))  
         A=Tensor4(0,Function(domain))  
         A[0,:,0,:]=kronecker(2)  
         A[1,:,1,:]=kronecker(2)  
         Y=Vector(0.,Function(domain))  
         Y[0]=u_ex[0]*FAC_DIAG+u_ex[1]*FAC_OFFDIAG  
         Y[1]=u_ex[1]*FAC_DIAG+u_ex[0]*FAC_OFFDIAG  
         pde.setValue(A=A,  
                      D=kronecker(2)*(FAC_DIAG-FAC_OFFDIAG)+numpy.ones((2,2))*FAC_OFFDIAG,  
                      Y=Y,  
                      y=matrixmult(g_ex,domain.getNormal()))  
         # -------- get the solution ---------------------------  
         pde.getSolverOptions().setTolerance(SOLVER_TOL)  
         pde.getSolverOptions().setSolverMethod(SolverOptions.TFQMR)  
         pde.getSolverOptions().setPreconditioner(SolverOptions.JACOBI)  
         pde.getSolverOptions().setPackage(SolverOptions.PASO)  
         pde.getSolverOptions().setVerbosity(SOLVER_VERBOSE)  
         u=pde.getSolution()  
         # -------- test the solution ---------------------------  
         error=Lsup(u-u_ex)  
         self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)  
 class SimpleSolve_Brick_SinglePDE_Paso_TFQMR_Jacobi(unittest.TestCase):  
      def test_solve(self):  
         domain=Brick(NE0,NE1,NE2)  
         x=Solution(domain).getX()  
         u_ex=1.+2.*x[0]+3.*x[1]+4.*x[2]  
         # --- set exact gradient -----------  
         g_ex=Data(0.,(3,),Solution(domain))  
         g_ex[0]=2.  
         g_ex[1]=3.  
         g_ex[2]=4.  
         # -------- test gradient --------------------------------  
         self.assertTrue(Lsup(g_ex-grad(u_ex))<REL_TOL*Lsup(g_ex))  
         # -------- set-up PDE -----------------------------------  
         pde=LinearPDE(domain,numEquations=1)  
         mask=whereZero(x[0])  
         pde.setValue(r=u_ex,q=mask)  
         pde.setValue(A=kronecker(3),y=inner(g_ex,domain.getNormal()))  
         # -------- get the solution ---------------------------  
         pde.getSolverOptions().setTolerance(SOLVER_TOL)  
         pde.getSolverOptions().setSolverMethod(SolverOptions.TFQMR)  
         pde.getSolverOptions().setPreconditioner(SolverOptions.JACOBI)  
         pde.getSolverOptions().setPackage(SolverOptions.PASO)  
         pde.getSolverOptions().setVerbosity(SOLVER_VERBOSE)  
         u=pde.getSolution()  
         # -------- test the solution ---------------------------  
         error=Lsup(u-u_ex)  
         self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)  
           
 class SimpleSolve_Brick_SystemPDE_Paso_TFQMR_Jacobi(unittest.TestCase):  
      def test_solve(self):  
         domain=Brick(NE0,NE1,NE2)  
         x=Solution(domain).getX()  
         # --- set exact solution ----  
         u_ex=Vector(0,Solution(domain))  
         u_ex[0]=1.+2.*x[0]+3.*x[1]+4.*x[2]  
         u_ex[1]=-1.+4.*x[0]+1.*x[1]-2.*x[2]  
         u_ex[2]=5.+8.*x[0]+4.*x[1]+5.*x[2]  
         # --- set exact gradient -----------  
         g_ex=Data(0.,(3,3),Solution(domain))  
         g_ex[0,0]=2.  
         g_ex[0,1]=3.  
         g_ex[0,2]=4.  
         g_ex[1,0]=4.  
         g_ex[1,1]=1.  
         g_ex[1,2]=-2.  
         g_ex[2,0]=8.  
         g_ex[2,1]=4.  
         g_ex[2,2]=5.  
         # -------- test gradient --------------------------------  
         self.assertTrue(Lsup(g_ex-grad(u_ex))<REL_TOL*Lsup(g_ex))  
         # -------- set-up PDE -----------------------------------  
         pde=LinearPDE(domain,numEquations=3)  
         mask=whereZero(x[0])  
         pde.setValue(r=u_ex,q=mask*numpy.ones(3,))  
         A=Tensor4(0,Function(domain))  
         A[0,:,0,:]=kronecker(3)  
         A[1,:,1,:]=kronecker(3)  
         A[2,:,2,:]=kronecker(3)  
         Y=Vector(0.,Function(domain))  
         Y[0]=u_ex[0]*FAC_DIAG+u_ex[2]*FAC_OFFDIAG+u_ex[1]*FAC_OFFDIAG  
         Y[1]=u_ex[1]*FAC_DIAG+u_ex[0]*FAC_OFFDIAG+u_ex[2]*FAC_OFFDIAG  
         Y[2]=u_ex[2]*FAC_DIAG+u_ex[1]*FAC_OFFDIAG+u_ex[0]*FAC_OFFDIAG  
         pde.setValue(A=A,  
                      D=kronecker(3)*(FAC_DIAG-FAC_OFFDIAG)+numpy.ones((3,3))*FAC_OFFDIAG,  
                      Y=Y,  
                      y=matrixmult(g_ex,domain.getNormal()))  
         # -------- get the solution ---------------------------  
         pde.getSolverOptions().setTolerance(SOLVER_TOL)  
         pde.getSolverOptions().setSolverMethod(SolverOptions.TFQMR)  
         pde.getSolverOptions().setPreconditioner(SolverOptions.JACOBI)  
         pde.getSolverOptions().setPackage(SolverOptions.PASO)  
         pde.getSolverOptions().setVerbosity(SOLVER_VERBOSE)  
         u=pde.getSolution()  
         # -------- test the solution ---------------------------  
         error=Lsup(u-u_ex)  
         self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)  
           
249  class SimpleSolve_Rectangle_SinglePDE_Paso_MINRES_Jacobi(unittest.TestCase):  class SimpleSolve_Rectangle_SinglePDE_Paso_MINRES_Jacobi(unittest.TestCase):
250       def test_solve(self):       def test_solve(self):
251          domain=Rectangle(NE0,NE1)          domain=Rectangle(n0=NE0*NX-1, n1=NE1*NY-1, d0=NX, d1=NY)
252          x=Solution(domain).getX()          x=Solution(domain).getX()
253          # --- set exact solution ----          # --- set exact solution ----
254          u_ex=Scalar(0,Solution(domain))          u_ex=Scalar(0,Solution(domain))
# Line 445  class SimpleSolve_Rectangle_SinglePDE_Pa Line 279  class SimpleSolve_Rectangle_SinglePDE_Pa
279    
280  class SimpleSolve_Rectangle_SystemPDE_Paso_MINRES_Jacobi(unittest.TestCase):  class SimpleSolve_Rectangle_SystemPDE_Paso_MINRES_Jacobi(unittest.TestCase):
281       def test_solve(self):       def test_solve(self):
282          domain=Rectangle(NE0,NE1)          domain=Rectangle(n0=NE0*NX-1, n1=NE1*NY-1, d0=NX, d1=NY)
283          x=Solution(domain).getX()          x=Solution(domain).getX()
284          # --- set exact solution ----          # --- set exact solution ----
285          u_ex=Vector(0,Solution(domain))          u_ex=Vector(0,Solution(domain))
# Line 485  class SimpleSolve_Rectangle_SystemPDE_Pa Line 319  class SimpleSolve_Rectangle_SystemPDE_Pa
319          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)          self.assertTrue(error<REL_TOL*Lsup(u_ex), "solution error %s is too big."%error)
320  class SimpleSolve_Brick_SinglePDE_Paso_MINRES_Jacobi(unittest.TestCase):  class SimpleSolve_Brick_SinglePDE_Paso_MINRES_Jacobi(unittest.TestCase):
321       def test_solve(self):       def test_solve(self):
322          domain=Brick(NE0,NE1,NE2)          domain=Brick(n0=NE0*NXb-1, n1=NE1*NYb-1, n2=NE2*NZb-1, d0=NXb, d1=NYb, d2=NZb)
323          x=Solution(domain).getX()          x=Solution(domain).getX()
324          u_ex=1.+2.*x[0]+3.*x[1]+4.*x[2]          u_ex=1.+2.*x[0]+3.*x[1]+4.*x[2]
325          # --- set exact gradient -----------          # --- set exact gradient -----------
# Line 513  class SimpleSolve_Brick_SinglePDE_Paso_M Line 347  class SimpleSolve_Brick_SinglePDE_Paso_M
347                    
348  class SimpleSolve_Brick_SystemPDE_Paso_MINRES_Jacobi(unittest.TestCase):  class SimpleSolve_Brick_SystemPDE_Paso_MINRES_Jacobi(unittest.TestCase):
349       def test_solve(self):       def test_solve(self):
350          domain=Brick(NE0,NE1,NE2)          domain=Brick(n0=NE0*NXb-1, n1=NE1*NYb-1, n2=NE2*NZb-1, d0=NXb, d1=NYb, d2=NZb)
351          x=Solution(domain).getX()          x=Solution(domain).getX()
352          # --- set exact solution ----          # --- set exact solution ----
353          u_ex=Vector(0,Solution(domain))          u_ex=Vector(0,Solution(domain))
# Line 568  if __name__ == '__main__': Line 402  if __name__ == '__main__':
402     suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SystemPDE_Paso_PCG_Jacobi))     suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SystemPDE_Paso_PCG_Jacobi))
403     suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SinglePDE_Paso_PCG_Jacobi))     suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SinglePDE_Paso_PCG_Jacobi))
404     suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SystemPDE_Paso_PCG_Jacobi))     suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SystemPDE_Paso_PCG_Jacobi))
    suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SinglePDE_Paso_TFQMR_Jacobi))  
    suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SystemPDE_Paso_TFQMR_Jacobi))  
    suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SinglePDE_Paso_TFQMR_Jacobi))  
    suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SystemPDE_Paso_TFQMR_Jacobi))  
405     suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SinglePDE_Paso_MINRES_Jacobi))     suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SinglePDE_Paso_MINRES_Jacobi))
406     suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SinglePDE_Paso_MINRES_Jacobi))     suite.addTest(unittest.makeSuite(SimpleSolve_Rectangle_SinglePDE_Paso_MINRES_Jacobi))
407     suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SinglePDE_Paso_MINRES_Jacobi))     suite.addTest(unittest.makeSuite(SimpleSolve_Brick_SinglePDE_Paso_MINRES_Jacobi))

Legend:
Removed from v.3776  
changed lines
  Added in v.4938

  ViewVC Help
Powered by ViewVC 1.1.26