[Trilinos-Users] LOCA: how to use NOX trust region based solver.

Daniele Avitabile D.Avitabile at surrey.ac.uk
Thu Jan 25 04:37:48 MST 2007


Hi everybody,

do you know whether there are any examples for using NOX trust region
based solver under LOCA? A 

grep -r "Trust" .

search in the "trilinos-7.0.4/packages/nox/examples" directory produces 

./epetra/NOX_1DFEMNonlinear/Example.C:  //nlParams.set("Nonlinear
Solver", "Trust Region Based");
./epetra/LOCA_Brusselator_xyzt/Example.C: //nlParams.set("Nonlinear
Solver", "Trust Region Based");

>From these codes, it seems that setting the "Nonlinear" parameter to
"Trust Region Based" instead of "Line Search Based" would be enough.

If I try to do this in my code (that is working for the Linear Search
Based"), I obtain the error

../../../../packages/teuchos/src/Teuchos_RefCountPtr.cpp:40: true:
RefCountPtr<N3NOX8Abstract5GroupE>::assert_not_null() : You can not call
operator->() or operator*() if get()==NULL!

>From the logfile attached you can see the list I pass to NOX.

Thanks in advance

Daniele




Thanks in advance

Daniele
-------------- next part --------------
#@/bin/nice -n 19 lamboot
#mpirun -np 2 brusselatorCont.exe
#@lamhalt
Continuation File = continuation.dat   [unused]
Continuation Parameter = b   [unused]
Continuation Parameter Final Value = 10.7   [unused]
Grid Points Space = 2000   [unused]
Grid Points Time = 63   [unused]
Initial Guess File = ./initialGuess.dat   [unused]
L = 249.875   [unused]
Output Directory = ./   [unused]
Stepsize Space = 0.00050025   [unused]
Stepsize Time = 0.0997331   [unused]
a = 2.5   [unused]
b = 10.1   [unused]
du = 4.11   [unused]
dv = 9.73   [unused]
omega = 1.24189   [unused]


CREATING MAPS... DONE

CREATING PARAMETER LIST... DONE
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.1
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.24189

CREATING CRS_GRAPH FOR THE JACOBIAN... DONE

CREATING OVERLAPPED MAP AND EXPORTER... DONE

CREATING AN INITIAL GUESS... DONE

COMPUTING TIME DERIVATIVE... DONE

************************************************************************

-- Parameters Passed to Nonlinear Solver --

     Nonlinear Solver = Trust Region Based
     Direction -> 
       Method = Newton   [unused]
       Newton -> 
         Forcing Term Method = Constant   [unused]
         Rescue Bad Newton Solve = 1   [unused]
         Linear Solver -> 
           Aztec Solver = GMRES
           Compute Scaling Manually = 1   [default]
           Convergence Test = r0
           Fill Factor = 10   [unused]
           Max Age Of Prec = 1   [default]
           Max Iterations = 500   [unused]
           Orthogonalization = Classical   [default]
           Output Frequency = 50
           Output Solver Details = 1   [default]
           Preconditioner = Ifpack
           Preconditioner Operator = Use Jacobian   [default]
           Preconditioner Reuse Policy = Rebuild   [default]
           RCM Reordering = Disabled   [default]
           Scaling = None   [unused]
           Size of Krylov Subspace = 500
           Tolerance = 1e-06   [unused]
           Write Linear System = 0   [unused]
           Zero Initial Guess = 0   [default]
     Line Search -> 
       [empty list]
     Printing -> 
       MyPID = 0
       Output Information = 6143
       Output Precision = 6
       Output Processor = 0   [default]
     Solver Options -> 
       [empty list]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Beginning Continuation Run 
Stepper Method:             Arc Length
Initial Parameter Value = 1.010000e+01
Maximum Parameter Value = 1.070000e+01
Minimum Parameter Value = 1.010000e+01
Maximum Number of Continuation Steps = 100
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

LOCA -> 
  Bifurcation -> 
    Type = None   [default]
  Constraints -> 
    Bordered Solver Method = Householder
    Constraint Object = RefCountPtr<N4LOCA17MultiContinuation19ConstraintInterfaceE>{ptr=0x276ee160,node=0x276ee4c0,count=4}
    Constraint Parameter Names = RefCountPtr<std::vector<string>>{ptr=0x276ee720,node=0x276ee7e0,count=2}
    Include UV In Preconditioner = 0   [default]
    Use P For Preconditioner = 0   [default]
  Predictor -> 
    Method = Secant
    First Step Predictor -> 
      Method = Constant   [default]
    Last Step Predictor -> 
      [empty list]
  Step Size -> 
    Aggressiveness = 0.5   [default]
    Failed Step Reduction Factor = 0.1
    Initial Step Size = 0.1
    Max Step Size = 1
    Method = Adaptive   [default]
    Min Step Size = 1e-12   [default]
    Successful Step Increase Factor = 1.26   [default]
  Stepper -> 
    Bordered Solver Method = Nested   [unused]
    Compute Eigenvalues = 0   [default]
    Continuation Method = Arc Length   [default]
    Continuation Parameter = b
    Enable Tangent Factor Step Size Scaling = 0   [default]
    Initial Value = 10.1
    Max Nonlinear Iterations = 15
    Max Steps = 100   [default]
    Max Value = 10.7
    Min Tangent Factor = 0.1   [default]
    Min Value = 10.1
    Tangent Factor Exponent = 1   [default]
    Eigensolver -> 
      Method = Default   [default]
      Save Eigen Data Method = Default   [default]
    Nested Bordered Solver -> 
      Bordered Solver Method = Householder   [unused]
NOX -> 
  Nonlinear Solver = Trust Region Based
  Cauchy Direction -> 
    Method = Steepest Descent   [default]
    Steepest Descent -> 
      Scaling Type = Quadratic Model Min   [default]
  Direction -> 
    Method = Newton
    Newton -> 
      Forcing Term Method = Constant
      Rescue Bad Newton Solve = 1
      Linear Solver -> 
        Aztec Solver = GMRES
        Compute Scaling Manually = 1   [default]
        Convergence Test = r0
        Fill Factor = 10   [unused]
        Max Age Of Prec = 1   [default]
        Max Iterations = 500   [unused]
        Orthogonalization = Classical   [default]
        Output Frequency = 50
        Output Solver Details = 1   [default]
        Preconditioner = Ifpack
        Preconditioner Operator = Use Jacobian   [default]
        Preconditioner Reuse Policy = Rebuild   [default]
        RCM Reordering = Disabled   [default]
        Scaling = None   [unused]
        Size of Krylov Subspace = 500
        Tolerance = 1e-06
        Write Linear System = 0   [unused]
        Zero Initial Guess = 0   [default]
  Line Search -> 
    [empty list]
  Printing -> 
    MyPID = 0
    Output Information = 6143
    Output Precision = 6
    Output Processor = 0   [default]
  Solver Options -> 
    Status Test Check Type = 1   [default]
  Trust Region -> 
    Contraction Factor = 0.25   [default]
    Contraction Trigger Ratio = 0.1   [default]
    Expansion Factor = 4   [default]
    Expansion Trigger Ratio = 0.75   [default]
    Maximum Trust Region Radius = 1e+10   [default]
    Minimum Improvement Ratio = 0.0001   [default]
    Minimum Trust Region Radius = 1e-06   [default]
    Recovery Step = 1   [default]
    Use Ared/Pred Ratio Calculation = 0   [default]

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Start of Continuation Step 0 : Attempting to converge initial guess at initial parameter values.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.1... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.24189... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.1
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.24189
DONE
************************************************************************
-- Status Test Results --
**...........OR Combination -> 
  **...........F-Norm = 7.092e-01 < 1.000e-09
               (Length-Scaled Two-Norm, Absolute Tolerance)
  **...........Number of Iterations = 0 < 15
************************************************************************

************************************************************************
-- Newton Trust-Region Step 0 -- 
f = 3.560176e+02 fmax = 6.715854e+01  dx = 0.000000e+00  radius = 0.000000e+00
************************************************************************

       CALCULATING FORCING TERM
       Method: Constant
       Forcing Term: 1e-06

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.1... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.24189... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.1
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.24189
DONE

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.1... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.24189... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.1
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.24189
DONE

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.1... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.24189... DONE

COMPUTING JACOBIAN... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.1
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.24189
DONE

       Creating a new preconditioner
NOX::Epetra::LinearSolverAztecOO : createIfpackPrecon - 
  using Fill Factor --> 10

       Condition number estimate of preconditioner is 3.515282e+02

       Time required to create precondtioner : 1.15568 (sec.)

		*******************************************************
		***** Problem: LOCA::Epetra::LowRankUpdateOp
		***** Preconditioned GMRES solution
		***** Epetra::Object
		***** No scaling
		*******************************************************

                iter:    0           residual = 1.000000e+00
                iter:   50           residual = 5.362137e-02
                iter:  100           residual = 2.435547e-02
                iter:  150           residual = 3.462674e-03
                iter:  191           residual = 8.323049e-07


		Solution time: 39.904311 (sec.)
		total iterations: 191

       Destroying preconditioner
************************************************************************
-- Trust Region Inner Iteration --

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.1... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.24077... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.1
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.24077
DONE
radius = 1.0e+03 ratio =   -1 f = 2.846566e+05 old f = 3.560176e+02 Newton

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.0993... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.23675... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.0993
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.23675
DONE
radius = 2.5e+02 ratio =   -1 f = 7.107991e+03 old f = 3.560176e+02 Dogleg

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.0991... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.23574... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.0991
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.23574
DONE
radius = 6.4e+01 ratio =   -1 f = 4.402826e+02 old f = 3.560176e+02 Dogleg

SETTING PARAMETER a TO 2.5... DONE

SETTING PARAMETER b TO 10.0991... DONE

SETTING PARAMETER L TO 249.875... DONE

SETTING PARAMETER du TO 4.11... DONE

SETTING PARAMETER dv TO 9.73... DONE

SETTING PARAMETER omega TO 1.23549... DONE

COMPUTING F... 
WITH PARAMETERS
LOCA::ParameterVector 
(size = 6)
    0    a = 2.5
    1    b = 10.0991
    2    L = 249.875
    3    du = 4.11
    4    dv = 9.73
    5    omega = 1.23549
DONE
../../../../packages/teuchos/src/Teuchos_RefCountPtr.cpp:40: true: RefCountPtr<N3NOX8Abstract5GroupE>::assert_not_null() : You can not call operator->() or operator*() if get()==NULL!
../../../../packages/teuchos/src/Teuchos_RefCountPtr.cpp:40: true: RefCountPtr<N3NOX8Abstract5GroupE>::assert_not_null() : You can not call operator->() or operator*() if get()==NULL!


More information about the Trilinos-Users mailing list