Results 1 to 3 of 3

Thread: Migrating from DNCONF to NNLPF

  1. #1
    Junior Member
    Join Date
    May 2013
    Posts
    3

    Migrating from DNCONF to NNLPF

    we are currently migrating our code that uses DNCONF to NNLPF. We are really looking for the migration steps to migrate to new version of IMSL (especially to use NNLPF routine).
    Today, we are using DNCONF (we are getting convergence), however with new Intel Fortran compiler this subroutine is deprecated.


    We need clear steps to migrate to NNLPF. This is our production problem and need to be addressed ASAP.



    To begin with -
    Based on the documentation we made modifications to port to NNLPF. However, we were not able to get the convergence.


    It seems that the reason we dont converge on a solution is due to the following message.

    TERMINATION REASON:
    STEPSIZESELECTION: DIRECTIONAL DERIV. VERY SMALL, INFEASIBLE

    How do we adjust the step-size to acheive convergence?

    Just for information, below are the defaults we are using in our program:

    IDTYPE = 1 !! Type of numerical differntiation
    EPSDIF = EPSILON(X(1)) !! Relative precision in gradients
    TAU0 = 1.0 !! Universal boundry condition
    DEL0 = 0.5*TAU0 !! Phase minimization constraint
    EPSFCN = EPSILON(X(1)) !! Relative precision to evaluate to
    TAUBND = 1.0 !! Amount by which bounds may be violated
    SMALLW = exp(2*log(epsilon(x(1)/3))) !! Error allowed in multipliers
    DELMIN = min(DEL0/10, max(EPSDIF,min(DEL0/10,max(.000001*DEL0,SMALLW)))) !! Allowable constraint violations
    SCFMAX = 10000

  2. #2
    Junior Member
    Join Date
    May 2013
    Posts
    3
    I made some progress and observed the user supplied routine FCN is not getting called with IACT=0. I see FCN getting called several times with IACT>0 i.e., request for the constraint.


    Why is the objective function never requested?


    Per IMSL doc-

    IACT – Integer indicating whether evaluation of the objective function is requested or
    evaluation of a constraint is requested. If IACT is zero, then an objective
    function evaluation is requested. If IACT is nonzero then the value if IACT
    indicates the index of the constraint to evaluate. (Input)

  3. #3
    Can you post an example of your problem and the code that calls DNCONF? Providing compilable code of your problem may attract more responses.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •