Ignore:
Timestamp:
Oct 3, 2005 5:45:13 PM (14 years ago)
Author:
andreasw
Message:
File:
1 edited

Legend:

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

    r531 r532  
    195195                   dbg_verbosity);
    196196
     197    IpData().TimingStats().LinearSystemSymbolicFactorization().Start();
     198
    197199    // Call Pardiso to do the analysis phase
    198200    ipfint PHASE = 11;
     
    214216                     "Error in Pardiso during analysis phase.  ERROR = %d.\n",
    215217                     ERROR);
     218      IpData().TimingStats().LinearSystemSymbolicFactorization().End();
    216219      return SYMSOLVER_FATAL_ERROR;
    217220    }
     221
     222    IpData().TimingStats().LinearSystemSymbolicFactorization().End();
    218223
    219224    return SYMSOLVER_SUCCESS;
     
    227232  {
    228233    DBG_START_METH("PardisoSolverInterface::Factorization",dbg_verbosity);
     234
     235    IpData().TimingStats().LinearSystemFactorization().Start();
    229236
    230237    // Call Pardiso to do the factorization
     
    242249    ipfint   i;
    243250
    244     if (IpData().iter_count() != debug_last_iter) {
    245       debug_cnt = 0;
     251    if (IpData().iter_count() != debug_last_iter_) {
     252      debug_cnt_ = 0;
    246253    }
    247254
     
    257264        strcpy (mat_pref, "mat-ipopt");
    258265
    259       sprintf (mat_name, "%s_%03d-%02d.iajaa", mat_pref, IpData().iter_count(), debug_cnt);
     266      sprintf (mat_name, "%s_%03d-%02d.iajaa", mat_pref, IpData().iter_count(), debug_cnt_);
    260267      mat_file = fopen (mat_name, "w");
    261268
     
    282289    }
    283290
    284     debug_last_iter = IpData().iter_count();
    285     debug_cnt ++;
    286 
    287 
     291    debug_last_iter_ = IpData().iter_count();
     292    debug_cnt_++;
    288293
    289294    if (PHASE_ == 0)
     
    295300    if (ERROR==-4) {
    296301      // I think this means that the matrix is singular
     302      IpData().TimingStats().LinearSystemFactorization().End();
    297303      return SYMSOLVER_SINGULAR;
    298304    }
     
    300306      Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA,
    301307                     "Error in Pardiso during factorization phase.  ERROR = %d.\n", ERROR);
     308      IpData().TimingStats().LinearSystemFactorization().End();
    302309      return SYMSOLVER_FATAL_ERROR;
    303310    }
     
    321328                     "Wrong inertia: required are %d, but we got %d.\n",
    322329                     numberOfNegEVals, negevals_);
     330      IpData().TimingStats().LinearSystemFactorization().End();
    323331      return SYMSOLVER_WRONG_INERTIA;
    324332    }
    325333
     334    IpData().TimingStats().LinearSystemFactorization().End();
    326335    return SYMSOLVER_SUCCESS;
    327336  }
     
    334343    DBG_START_METH("PardisoSolverInterface::Solve",dbg_verbosity);
    335344
     345    IpData().TimingStats().LinearSystemBackSolve().Start();
    336346    // Call Pardiso to do the solve for the given right-hand sides
    337347    ipfint PHASE = 33;
     
    342352    ipfint ERROR;
    343353
    344 
    345     // // Dump matrix to file...
    346     // ipfint  NNZ = ia[N]-1;
    347     // ipfint   i;
    348 
    349     // if (IpData().iter_count() != debug_last_iter) {
    350     //   debug_cnt = 0;
    351     // }
    352 
    353     // if (getenv ("IPOPT_WRITE_MAT"))
    354     // {
    355     //   /* Write header */
    356     //   FILE    *mat_file;
    357     //   char     mat_name[128];
    358     //   char     mat_pref[32];
    359 
    360     //   if (getenv ("IPOPT_WRITE_PREFIX"))
    361     //  strcpy (mat_pref, getenv ("IPOPT_WRITE_PREFIX"));
    362     //   else
    363     //  strcpy (mat_pref, "mat-ipopt");
    364 
    365     //   sprintf (mat_name, "%s_%03d-%02d.iajaa", mat_pref, IpData().iter_count(), debug_cnt);
    366     //   mat_file = fopen (mat_name, "w");
    367 
    368     //   fprintf (mat_file, "%d\n", N);
    369     //   fprintf (mat_file, "%d\n", NNZ);
    370 
    371     //   /* Write ia's */
    372     //   for (i = 0; i < N+1; i++)
    373     //  fprintf (mat_file, "%d\n", ia[i]);
    374 
    375     //   /* Write ja's */
    376     //   for (i = 0; i < NNZ; i++)
    377     //  fprintf (mat_file, "%d\n", ja[i]);
    378 
    379     //   /* Write values */
    380     //   for (i = 0; i < NNZ; i++)
    381     //  fprintf (mat_file, "%32.24e\n", a_[i]);
    382 
    383     //   /* Write RHS */
    384     //   for (i = 0; i < N; i++)
    385     //  fprintf (mat_file, "%32.24e\n", rhs_vals[i]);
    386 
    387     //   fclose (mat_file);
    388     // }
    389 
    390     // debug_last_iter = IpData().iter_count();
    391     // debug_cnt ++;
    392 
    393 
    394354    F77_FUNC(pardiso,PARDISO)(PT_, &MAXFCT_, &MNUM_, &MTYPE_,
    395355                              &PHASE, &N, a_, ia, ja, &PERM,
     
    402362    }
    403363
     364    IpData().TimingStats().LinearSystemBackSolve().End();
    404365    if (ERROR!=0 ) {
    405366      Jnlst().Printf(J_ERROR, J_LINEAR_ALGEBRA,
Note: See TracChangeset for help on using the changeset viewer.