/[escript]/trunk/dudley/benchmarks/dudleybench.py
ViewVC logotype

Diff of /trunk/dudley/benchmarks/dudleybench.py

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

revision 2468 by gross, Thu Jun 11 02:55:51 2009 UTC revision 2502 by gross, Tue Jun 30 05:49:22 2009 UTC
# Line 34  __author__="Lutz Gross, l.gross@uq.edu.a Line 34  __author__="Lutz Gross, l.gross@uq.edu.a
34  from esys.escript import *  from esys.escript import *
35  from esys.escript.benchmark import BenchmarkProblem, Options, BenchmarkFilter  from esys.escript.benchmark import BenchmarkProblem, Options, BenchmarkFilter
36  import esys.finley  import esys.finley
37  from esys.escript.linearPDEs import LinearPDE  from esys.escript.linearPDEs import LinearPDE, SolverOptions
38  import os  import os
39  import math  import math
40  import numpy  import numpy
# Line 92  class FinleyOptions(Options): Line 92  class FinleyOptions(Options):
92                       tolerance=None,                       tolerance=None,
93                       verbose=False):                       verbose=False):
94         self.strmap={         self.strmap={
95                        LinearPDE.DIRECT : "DIRECT",                        SolverOptions.DIRECT : "DIRECT",
96                        LinearPDE.PCG:  "PCG",                        SolverOptions.PCG:  "PCG",
97                        LinearPDE.CR:  "CR",                        SolverOptions.CR:  "CR",
98                        LinearPDE.CGS: "CGS",                        SolverOptions.CGS: "CGS",
99                        LinearPDE.BICGSTAB: "BICGSTAB",                        SolverOptions.BICGSTAB: "BICGSTAB",
100                        LinearPDE.SSOR: "SSOR",                        SolverOptions.SSOR: "SSOR",
101                        LinearPDE.ILU0: "ILU0",                        SolverOptions.ILU0: "ILU0",
102                        LinearPDE.ILUT: "ILUT",                        SolverOptions.ILUT: "ILUT",
103                        LinearPDE.JACOBI: "JACOBI",                        SolverOptions.JACOBI: "JACOBI",
104                        LinearPDE.GMRES:  "GMRES",                        SolverOptions.GMRES:  "GMRES",
105                        LinearPDE.PRES20:  "PRES20",                        SolverOptions.PRES20:  "PRES20",
106                        LinearPDE.LUMPING:  "LUMPIMG",                        SolverOptions.LUMPING:  "LUMPIMG",
107                        LinearPDE.NO_REORDERING:  "NO_REORDERING",                        SolverOptions.NO_REORDERING:  "NO_REORDERING",
108                        LinearPDE.MINIMUM_FILL_IN:  "MINIMUM_FILL_IN",                        SolverOptions.MINIMUM_FILL_IN:  "MINIMUM_FILL_IN",
109                        LinearPDE.NESTED_DISSECTION: "NESTED_DISSECTION",                        SolverOptions.NESTED_DISSECTION: "NESTED_DISSECTION",
110                        LinearPDE.SCSL:  "SCSL",                        SolverOptions.MKL:  "MKL",
111                        LinearPDE.MKL:  "MKL",                        SolverOptions.UMFPACK: "UMFPACK",
112                        LinearPDE.UMFPACK: "UMFPACK",                        SolverOptions.TRILINOS: "TRILINOS",
113                        LinearPDE.TRILINOS: "TRILINOS",                        SolverOptions.PASO:  "PASO",
114                        LinearPDE.PASO:  "PASO",                        SolverOptions.RILU: "RILU",
115                        LinearPDE.RILU: "RILU",                        SolverOptions.AMG:  "AMG"
                       LinearPDE.AMG:  "AMG"  
116                    }                    }
117         name=""         name=""
118         if solver_method==None:         if solver_method==None:
119               solver_method==LinearPDE.PRES20               solver_method==SolverOptions.PRES20
120         else:         else:
121               name+=self.strmap[solver_method]               name+=self.strmap[solver_method]
122         if preconditioner==None:         if preconditioner==None:
123               preconditioner==LinearPDE.JACOBI               preconditioner==SolverOptions.JACOBI
124         else:         else:
125               if not name=="": name+="+"               if not name=="": name+="+"
126               name+=self.strmap[preconditioner]               name+=self.strmap[preconditioner]
127         if package==None:         if package==None:
128               package==LinearPDE.PASO               package==SolverOptions.PASO
129         else:         else:
130               if not name=="": name+=" with "               if not name=="": name+=" with "
131               name+=self.strmap[package]               name+=self.strmap[package]
# Line 160  class FinleyProblem(BenchmarkProblem): Line 159  class FinleyProblem(BenchmarkProblem):
159         """         """
160         domain=self.getDomain()         domain=self.getDomain()
161         pde,u=self.getTestProblem(domain)         pde,u=self.getTestProblem(domain)
162         pde.setTolerance(options.tolerance)         pde.getSolverOptions().setTolerance(options.tolerance)
163         pde.setSolverMethod(options.solver_method,options.preconditioner)         pde.getSolverOptions().setPreconditioner(options.preconditioner)
164         pde.setSolverPackage(options.package)         pde.getSolverOptions().setSolverMethod(options.solver_method)
165           pde.getSolverOptions().setPackage(options.package)
166           pde.getSolverOptions().setVerbosity(options.verbose)
167           pde.getSolverOptions().setIterMax(6000)
168         a=os.times()[4]         a=os.times()[4]
169         uh=pde.getSolution(verbose=options.verbose,iter_max=6000)         uh=pde.getSolution()
170         a=os.times()[4]-a         a=os.times()[4]-a
171         if u==None:         if u==None:
172            return {FinleyFilter.TIME : a , FinleyFilter.ERROR : None }            return {FinleyFilter.TIME : a , FinleyFilter.ERROR : None }

Legend:
Removed from v.2468  
changed lines
  Added in v.2502

  ViewVC Help
Powered by ViewVC 1.1.26