Ignore:
Timestamp:
Oct 24, 2005 11:24:19 AM (14 years ago)
Author:
andreasw
Message:
  • corrected infinite-loop bug in monotone mu mupdate
  • perturbation for constraints now as in paper (with exponent for mu)
  • some changes in Pardiso interface
File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/dev/Algorithm/LinearSolvers/IpPardisoSolverInterface.cpp

    r534 r547  
    121121    IPARM_[9] = 12;
    122122    IPARM_[10] = 1;
    123     IPARM_[12] = 1;
     123    // Matching information:  IPARM_[12] = 1 seems ok, but results in a
     124    // large number of pivot perturbation
     125    // Matching information:  IPARM_[12] = 2 robust,  but more  expensive method
     126    IPARM_[12] = 2;
    124127
    125128    IPARM_[20] = 1;
     
    280283        IpData().TimingStats().LinearSystemSymbolicFactorization().Start();
    281284        PHASE = 11;
     285        Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA,
     286                       "Calling Pardiso for symbolic factorization.\n");
    282287        F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_,
    283288                                  &PHASE, &N, a_, ia, ja, &PERM,
     
    297302
    298303      IpData().TimingStats().LinearSystemFactorization().Start();
     304      Jnlst().Printf(J_MOREDETAILED, J_LINEAR_ALGEBRA,
     305                     "Calling Pardiso for factorization.\n");
    299306      F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_,
    300307                                &PHASE, &N, a_, ia, ja, &PERM,
     
    318325        Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA,
    319326                       "Number of perturbed pivots in factorization phase = %d.\n", IPARM_[13]);
    320         IpData().Append_info_string("Pp");
    321327        // trigger a new symblic factorization for the next factorize
    322328        // call, even if the current inertia estimate is correct
    323329        // OLAF MICHAEL : Maybe we need to discuss this
    324         have_symbolic_factorization_ = false;
     330        have_symbolic_factorization_ = false;
     331        // We assume now that if there was just a symbolic
     332        // factorization and we still have perturbed pivots, that the
     333        // system is actually singular
     334        if (just_performed_symbolic_factorization) {
     335          IpData().Append_info_string("Ps");
     336          //break; // Declaring this system singular doesn't seem to be
     337                 // working well???
     338          return SYMSOLVER_SINGULAR;
     339          }
     340        IpData().Append_info_string("Pp");
     341        /*
    325342        // If we there were perturbed pivots, and the inertia of the
    326343        // system is correct, and we haven't redone the symblic
     
    329346        done = (just_performed_symbolic_factorization || !check_NegEVals ||
    330347                numberOfNegEVals==negevals_);
     348        */
     349        done = false;
    331350      }
    332351      else {
     
    370389                              &ERROR);
    371390
     391    // The following delete was missing (memory leak?)
     392    delete [] X; /* OLAF/MICHAEL: do we really need X? */
     393
    372394    if (IPARM_[6] != 0) {
    373395      Jnlst().Printf(J_DETAILED, J_LINEAR_ALGEBRA,
Note: See TracChangeset for help on using the changeset viewer.