[petsc-users] Line search: Initial direction and size is 0

Blaise A Bourdin bourdin at lsu.edu
Thu May 9 11:04:50 CDT 2013


Hi,

I am trying to solve a quadratic constrained optimization problem with SNESVI, i.e.
F(v) < 0 if v < 0
F(v) = 0 if 0 < v < 1
F(v) > 0 if v > 0

I am reasonably sure that my function and Jacobian matrix evaluation are correct. In particular, SNES (i.e. unconstrained minimization) works just fine.
In some situation, I get the following error in snesvi when running with -snes_monitor -snes_linesearch_monitor:

  0 SNES Function norm 2.970161116676e+00 
      Line search: Using full step: fnorm 2.970161116676e+00 gnorm 1.028739442283e-01
  1 SNES Function norm 1.028739442283e-01 
      Line search: Using full step: fnorm 1.028739442283e-01 gnorm 6.789609435880e-08
  2 SNES Function norm 6.789609435880e-08 
      Line search: Initial direction and size is 0

The output of snes_view is the following:
SNES Object:(V_) 24 MPI processes
  type: virs
  maximum iterations=50, maximum function evaluations=10000
  tolerances: relative=1e-08, absolute=1e-08, solution=1e-08
  total number of linear solver iterations=25
  total number of function evaluations=3
  KSP Object:  (V_)   24 MPI processes
    type: cg
    maximum iterations=10000, initial guess is zero
    tolerances:  relative=1e-08, absolute=1e-08, divergence=10000
    left preconditioning
    using PRECONDITIONED norm type for convergence test
  PC Object:  (V_)   24 MPI processes
    type: bjacobi
      block Jacobi: number of blocks = 24
      Local solve is same for all blocks, in the following KSP and PC objects:
    KSP Object:    (V_sub_)     1 MPI processes
      type: preonly
      maximum iterations=10000, initial guess is zero
      tolerances:  relative=1e-05, absolute=1e-50, divergence=10000
      left preconditioning
      using NONE norm type for convergence test
    PC Object:    (V_sub_)     1 MPI processes
      type: ilu
        ILU: out-of-place factorization
        0 levels of fill
        tolerance for zero pivot 2.22045e-14
        using diagonal shift to prevent zero pivot
        matrix ordering: natural
        factor fill ratio given 1, needed 1
          Factored matrix follows:
            Matrix Object:             1 MPI processes
              type: seqaij
              rows=0, cols=0
              package used to perform factorization: petsc
              total: nonzeros=0, allocated nonzeros=0
              total number of mallocs used during MatSetValues calls =0
                not using I-node routines
      linear system matrix = precond matrix:
      Matrix Object:       1 MPI processes
        type: seqaij
        rows=0, cols=0
        total: nonzeros=0, allocated nonzeros=0
        total number of mallocs used during MatSetValues calls =0
          not using I-node routines
    linear system matrix = precond matrix:
    Matrix Object:     24 MPI processes
      type: mpiaij
      rows=1890, cols=1890
      total: nonzeros=42208, allocated nonzeros=42208
      total number of mallocs used during MatSetValues calls =0
        not using I-node (on process 0) routines
  SNESLineSearch Object:  (V_)   24 MPI processes
    type: bt
      interpolation: cubic
      alpha=1.000000e-04
    maxstep=1.000000e+08, minlambda=1.000000e-12
    tolerances: relative=1.000000e-08, absolute=1.000000e-15, lambda=1.000000e-08
    maximum iterations=40


I really don't know where to start digging. Any suggestion?

Blaise

-- 
Department of Mathematics and Center for Computation & Technology
Louisiana State University, Baton Rouge, LA 70803, USA
Tel. +1 (225) 578 1612, Fax  +1 (225) 578 4276 http://www.math.lsu.edu/~bourdin










More information about the petsc-users mailing list