[Trilinos-Users] Problem with ML - TestSmoothers() method

Reps Bram Bram.Reps at ua.ac.be
Thu Jun 23 07:30:00 MDT 2011


Hello,

I am using the ML package of Trilinos and would like to test my preconditioner with the method TestSmoothers(). For a given preconditioning object it should return a nice overview of the performance of different smoothers (Jacobi, Gauss-Seidel, Aztec preconditioner...). And each smoother is tested with different damping factors. This is described in Section 6.6.4 of the ML-guide.

However, I get a runtime error. The method TestSmoothers() seems to start, but it returns an error when it wants to set the damping factor of the first smoother, apparently because the parameter name is wrong. (I've pasted the ouput below)
Has anyone encountered this problem yet?

Kind Regards,
Bram Reps

Research group TWNA<http://twna.ua.ac.be/>
University of Antwerp
e: bram.reps at ua.ac.be<mailto:bram.reps at ua.ac.be>
t: +32 3 265 38 95
f: +32 3 265 37 77



Here's the output:

------------------------------------------------------------------------------
*** Analysis of ML parameters (smoothers)

maximum iterations = 500
tolerance          = 1.000000000000000e-05

All options as in the input parameter list, except that
all levels have the same smoother

M: maximum iterations exceeded without convergence
N: normal exit status (convergence achieved)
B: breakdown occurred
I: matrix is ill-conditioned
L: numerical loss of precision occurred

count  smoother type                 its       ||r||/||r_0||  time (s)

- Jacobi
Error, the parameter {name="smoother: damping",type="double",value="0.25"}
in the parameter (sub)list "NSSA default values->smoother: list (level 0)"
was not found in the list of valid parameters!

The valid parameters and types are:
  {
    "coarse: MLS polynomial order" : int = 2
    "coarse: add to diag" : double = 0
    "coarse: polynomial order" : int = 2
    "smoother: Aztec as solver" : bool = 0
    "smoother: Aztec options" : Teuchos::RCP<std::vector<int, std::allocator<int> > > = Teuchos::RCP<std::vector<int, std::allocator<int> > >{ptr=0x2aefda0,node=0x2aefe90,count=1}
    "smoother: Aztec params" : Teuchos::RCP<std::vector<double, std::allocator<double> > > = Teuchos::RCP<std::vector<double, std::allocator<double> > >{ptr=0x2aefed0,node=0x2aefff0,count=1}
    "smoother: Block Chebyshev block list" : int* = 0
    "smoother: Block Chebyshev block starts" : int* = 0
    "smoother: Block Chebyshev number of blocks" : int = -1
    "smoother: Chebyshev alpha" : double = 20
    "smoother: Gauss-Seidel efficient symmetric" : bool = 0
    "smoother: Hiptmair efficient symmetric" : bool = 1
    "smoother: MLS alpha" : double = 20
    "smoother: MLS polynomial order" : int = 2
    "smoother: ParaSails factorized" : int = 0
    "smoother: ParaSails filter" : double = 0.05
    "smoother: ParaSails levels" : int = 0
    "smoother: ParaSails load balancing" : double = 0
    "smoother: ParaSails matrix" : int = 0
    "smoother: ParaSails threshold" : double = 0.01
    "smoother: chebyshev solve normal equations" : bool = 0
    "smoother: damping factor" : double = 1
    "smoother: edge sweeps" : int = 4
    "smoother: ifpack absolute threshold" : double = 0
    "smoother: ifpack level-of-fill" : double = 0
    "smoother: ifpack list" : ParameterList = ...
    "smoother: ifpack overlap" : int = 0
    "smoother: ifpack relative threshold" : double = 1
    "smoother: ifpack type" : string =
    "smoother: max processes" : int = -1
    "smoother: max size" : int = 75
    "smoother: node sweeps" : int = 4
    "smoother: polynomial order" : int = 2
    "smoother: pre or post" : string = both
    "smoother: self list" : ParameterList = ...
    "smoother: self overlap" : int = 0
    "smoother: subsmoother type" : string = Chebyshev
    "smoother: sweeps" : int = 2
    "smoother: type" : string = Chebyshev
    "smoother: user-defined function" : int ()(ML_Smoother_Struct*, int, double*, int, double*)* = 0
    "smoother: user-defined name" : string = User-defined
    "subsmoother: Chebyshev alpha" : double = 20
    "subsmoother: MLS alpha" : double = 20
    "subsmoother: damping factor" : double = 1.333
    "subsmoother: edge sweeps" : int = 4
    "subsmoother: node sweeps" : int = 4
    "subsmoother: type" : string = Chebyshev
    "use crs matrix storage" : bool = 0
  }


Throw number = 1


ERROR: ML's Teuchos::ParameterList contains incorrect parameter!


** IMPORTANT **

ML copies your parameter list and modifies copy:
   1) Level-specific smoother and aggregation options are placed in sublists
      called "smoother: list (level XX)" and "aggregation: list (level XX)",
      respectively.
   2) Coarse options are placed in a sublist called "coarse: list".
   3) In "coarse: list", any option that started with "coarse:" now starts
      with "smoother:".
-------------- next part --------------
An HTML attachment was scrubbed...
URL: https://software.sandia.gov/pipermail/trilinos-users/attachments/20110623/bc118a5d/attachment.html 


More information about the Trilinos-Users mailing list